version 1.40, 2021/01/29 11:36:44 |
version 1.41, 2021/01/29 11:38:23 |
|
|
sock_setpar(struct sock *f) |
sock_setpar(struct sock *f) |
{ |
{ |
struct slot *s = f->slot; |
struct slot *s = f->slot; |
struct dev *d = s->dev; |
struct dev *d = s->opt->dev; |
struct amsg_par *p = &f->rmsg.u.par; |
struct amsg_par *p = &f->rmsg.u.par; |
unsigned int min, max; |
unsigned int min, max; |
uint32_t rate, appbufsz; |
uint32_t rate, appbufsz; |
|
|
opt = opt_byname(d, p->opt); |
opt = opt_byname(d, p->opt); |
if (opt == NULL) |
if (opt == NULL) |
return 0; |
return 0; |
f->slot = slot_new(d, opt, id, p->who, &sock_slotops, f, mode); |
f->slot = slot_new(opt, id, p->who, &sock_slotops, f, mode); |
if (f->slot == NULL) |
if (f->slot == NULL) |
return 0; |
return 0; |
f->midi = NULL; |
f->midi = NULL; |
|
|
f->rstate = SOCK_RMSG; |
f->rstate = SOCK_RMSG; |
f->lastvol = ctl; /* dont trigger feedback message */ |
f->lastvol = ctl; /* dont trigger feedback message */ |
slot_setvol(s, ctl); |
slot_setvol(s, ctl); |
dev_midi_vol(s->dev, s); |
dev_midi_vol(s->opt->dev, s); |
dev_onval(s->dev, |
dev_onval(s->opt->dev, |
CTLADDR_SLOT_LEVEL(f->slot - slot_array), ctl); |
CTLADDR_SLOT_LEVEL(f->slot - slot_array), ctl); |
break; |
break; |
case AMSG_CTLSUB: |
case AMSG_CTLSUB: |