version 1.23, 2009/08/19 05:54:15 |
version 1.24, 2009/08/21 16:48:03 |
|
|
sock_reset(f); |
sock_reset(f); |
f->pipe.file.rproc = NULL; |
f->pipe.file.rproc = NULL; |
if (f->pipe.file.wproc) { |
if (f->pipe.file.wproc) { |
|
if (dev_midi && f->slot >= 0) |
|
ctl_slotdel(dev_midi, f->slot); |
aproc_del(f->pipe.file.wproc); |
aproc_del(f->pipe.file.wproc); |
file_del(&f->pipe.file); |
file_del(&f->pipe.file); |
} |
} |
|
|
sock_reset(f); |
sock_reset(f); |
f->pipe.file.wproc = NULL; |
f->pipe.file.wproc = NULL; |
if (f->pipe.file.rproc) { |
if (f->pipe.file.rproc) { |
|
if (dev_midi && f->slot >= 0) |
|
ctl_slotdel(dev_midi, f->slot); |
aproc_del(f->pipe.file.rproc); |
aproc_del(f->pipe.file.rproc); |
file_del(&f->pipe.file); |
file_del(&f->pipe.file); |
} |
} |
|
|
f->delta = 0; |
f->delta = 0; |
f->tickpending = 0; |
f->tickpending = 0; |
f->vol = ADATA_UNIT; |
f->vol = ADATA_UNIT; |
|
f->slot = -1; |
|
|
wproc = aproc_new(&wsock_ops, f->pipe.file.name); |
wproc = aproc_new(&wsock_ops, f->pipe.file.name); |
wproc->u.io.file = &f->pipe.file; |
wproc->u.io.file = &f->pipe.file; |
|
|
} |
} |
f->mode |= AMSG_REC; |
f->mode |= AMSG_REC; |
} |
} |
|
if (dev_midi) { |
|
f->slot = ctl_slotnew(dev_midi, p->who, f->pipe.file.rproc); |
|
if (f->slot < 0) { |
|
DPRINTF("sock_hello: out of mixer slots\n"); |
|
return 0; |
|
} |
|
if (f->mode & AMSG_PLAY) |
|
ctl_slotvol(dev_midi, f->slot, MIDI_MAXCTL); |
|
} |
f->pstate = SOCK_INIT; |
f->pstate = SOCK_INIT; |
return 1; |
return 1; |
} |
} |
|
|
} |
} |
DPRINTF("sock_execmsg: SETVOL %u\n", m->u.vol.ctl); |
DPRINTF("sock_execmsg: SETVOL %u\n", m->u.vol.ctl); |
sock_setvol(f, MIDI_TO_ADATA(m->u.vol.ctl)); |
sock_setvol(f, MIDI_TO_ADATA(m->u.vol.ctl)); |
|
if (dev_midi && f->slot >= 0) |
|
ctl_slotvol(dev_midi, f->slot, m->u.vol.ctl); |
f->rtodo = sizeof(struct amsg); |
f->rtodo = sizeof(struct amsg); |
f->rstate = SOCK_RMSG; |
f->rstate = SOCK_RMSG; |
break; |
break; |