diff --git a/sndiod/dev.c b/sndiod/dev.c index 64c0b3c..cec9fce 100644 --- a/sndiod/dev.c +++ b/sndiod/dev.c @@ -1236,12 +1236,15 @@ dev_open(struct dev *d) NULL, -1, 127, d->slot[i].vol); } - for (a = d->alt_list; a != NULL; a = a->next) { - snprintf(name, sizeof(name), "%d", a->idx); - dev_addctl(d, "", CTL_SEL, - CTLADDR_ALT_SEL + a->idx, - "server", -1, "device", - name, -1, 1, a->idx == d->alt_num); + /* if there are multiple alt devs, add server.device knob */ + if (d->alt_list->next != NULL) { + for (a = d->alt_list; a != NULL; a = a->next) { + snprintf(name, sizeof(name), "%d", a->idx); + dev_addctl(d, "", CTL_SEL, + CTLADDR_ALT_SEL + a->idx, + "server", -1, "device", + name, -1, 1, a->idx == d->alt_num); + } } d->pstate = DEV_INIT;