From 73d8f2842884220890837e66ae491ca3f4440883 Mon Sep 17 00:00:00 2001 From: Alexandre Ratchov Date: Mon, 14 Nov 2011 09:29:33 +0100 Subject: [PATCH] always create a default device in server mode --- aucat/aucat.c | 19 ++++++++++--------- aucat/opt.c | 19 +------------------ aucat/sock.c | 10 ++++++++++ 3 files changed, 21 insertions(+), 27 deletions(-) diff --git a/aucat/aucat.c b/aucat/aucat.c index f7499d1..6d4ec37 100644 --- a/aucat/aucat.c +++ b/aucat/aucat.c @@ -548,24 +548,25 @@ main(int argc, char **argv) fputs(usagestr, stderr); exit(1); } - if (dev_list == NULL) - mkdev(DEFAULT_DEV, 0, bufsz, round, hold, autovol); - for (d = dev_list; d != NULL; d = d->next) { - if ((d->reqmode & (MODE_PLAYREC | MODE_MIDIMASK)) != 0) - continue; - mkopt("default", d, &rpar, &ppar, mode, vol, mmc, join); - server = 1; - } if (wav_list) { if (server) errx(1, "-io not allowed in server mode"); if ((d = dev_list) && d->next) - errx(1, "single device required in non-server mode"); + errx(1, "only one device allowed in non-server mode"); if ((d->reqmode & MODE_THRU) && d->ctl_list == NULL) { if (!devctl_add(d, "default", MODE_MIDIMASK)) errx(1, "%s: can't open port", optarg); d->reqmode |= MODE_MIDIMASK; } + } else { + if (dev_list == NULL) + mkdev(DEFAULT_DEV, 0, bufsz, round, hold, autovol); + for (d = dev_list; d != NULL; d = d->next) { + if (opt_byname("default", d->num)) + continue; + mkopt("default", d, &rpar, &ppar, mode, vol, mmc, join); + server = 1; + } } if (server) { getbasepath(base, sizeof(base)); diff --git a/aucat/opt.c b/aucat/opt.c index 3abebbc..3e0d2e6 100644 --- a/aucat/opt.c +++ b/aucat/opt.c @@ -122,26 +122,9 @@ opt_byname(char *name, unsigned num) for (o = opt_list; o != NULL; o = o->next) { if (o->dev->num != num) continue; - if (strcmp(name, o->name) == 0) { -#ifdef DEBUG - if (debug_level >= 3) { - dbg_putu(num); - dbg_puts("."); - dbg_puts(name); - dbg_puts(": option found\n"); - } -#endif + if (strcmp(name, o->name) == 0) return o; - } } -#ifdef DEBUG - if (debug_level >= 3) { - dbg_putu(num); - dbg_puts("."); - dbg_puts(name); - dbg_puts(": option not found\n"); - } -#endif return NULL; } diff --git a/aucat/sock.c b/aucat/sock.c index 437a417..df3cca6 100644 --- a/aucat/sock.c +++ b/aucat/sock.c @@ -1036,6 +1036,16 @@ sock_hello(struct sock *f) f->opt = opt_byname(p->opt, AMSG_ISSET(p->devnum) ? p->devnum : 0); if (f->opt == NULL) return 0; +#ifdef DEBUG + if (debug_level >= 3) { + sock_dbg(f); + dbg_puts(": using "); + dev_dbg(f->opt->dev); + dbg_puts("."); + dbg_puts(f->opt->name); + dbg_puts("\n"); + } +#endif if (!dev_ref(f->opt->dev)) return 0; if ((mode & MODE_REC) && (f->opt->mode & MODE_MON)) {