=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/sndiod/dev.c,v retrieving revision 1.68 retrieving revision 1.69 diff -u -r1.68 -r1.69 --- src/usr.bin/sndiod/dev.c 2020/04/15 14:22:29 1.68 +++ src/usr.bin/sndiod/dev.c 2020/04/16 12:23:53 1.69 @@ -1,4 +1,4 @@ -/* $OpenBSD: dev.c,v 1.68 2020/04/15 14:22:29 ratchov Exp $ */ +/* $OpenBSD: dev.c,v 1.69 2020/04/16 12:23:53 ratchov Exp $ */ /* * Copyright (c) 2008-2012 Alexandre Ratchov * @@ -1012,7 +1012,7 @@ d->slot[i].ops = NULL; d->slot[i].vol = MIDI_MAXCTL; d->slot[i].serial = d->serial++; - strlcpy(d->slot[i].name, "prog", SLOT_NAMEMAX); + memset(d->slot[i].name, 0, SLOT_NAMEMAX); } for (i = 0; i < DEV_NCTLSLOT; i++) { d->ctlslot[i].ops = NULL; @@ -1142,6 +1142,8 @@ return 0; for (i = 0; i < DEV_NSLOT; i++) { + if (d->slot[i].name[0] == 0) + continue; slot_ctlname(&d->slot[i], name, CTL_NAMEMAX); dev_addctl(d, "app", CTL_NUM, CTLADDR_SLOT_LEVEL(i), @@ -2433,15 +2435,21 @@ struct ctl *c; char name[CTL_NAMEMAX]; + slot_ctlname(&d->slot[i], name, CTL_NAMEMAX); + c = d->ctl_list; for (;;) { - if (c == NULL) + if (c == NULL) { + dev_addctl(d, "app", CTL_NUM, + CTLADDR_SLOT_LEVEL(i), + name, -1, "level", + NULL, -1, 127, d->slot[i].vol); return; + } if (c->addr == CTLADDR_SLOT_LEVEL(i)) break; c = c->next; } - slot_ctlname(&d->slot[i], name, CTL_NAMEMAX); if (strcmp(c->node0.name, name) == 0) return; strlcpy(c->node0.name, name, CTL_NAMEMAX);