On Tue, Oct 11, 2011 at 12:09:33PM +0300, Paul Irofti wrote: > On Tue, Oct 11, 2011 at 10:58:54AM +0200, Paul de Weerd wrote: > > On Tue, Oct 11, 2011 at 11:01:41AM +0300, Paul Irofti wrote: > > | With this patch I can no longer get 6 channels to play, only stereo. > > | > > | I run aucat with: > > | > > | aucat -aoff -l -c0:5 -fsun:1 > > | > > | Without this patch, and with the same aucat invocation, everything works > > | fine and I get 6 channel output. > > > > How did you configure that before ? I suppose you had aucat_flags in > > /etc/rc.conf.local, to set this, no ? That should still work (and > > override what's in /etc/rc.conf). Valid point about the lack of > > support for such setups with the proposed default though... > > Oh, I don't mind that not being a default. And this doesn't work with > aucat being started by hand. It's a bug in the -c parsing. Ratchov knows > and provided me with a fix in the meantime :-)
fwiw, here's the fix (to apply on top of the cleanup diff). The bug is causing play and record parameters to be exchanged, so -c0:5 used to set recording channels. -- Alexandre Index: aucat.c =================================================================== RCS file: /var/anoncvs/sndio/sndio/aucat/aucat.c,v retrieving revision 1.26 diff -u -p -r1.26 aucat.c --- aucat.c 10 Oct 2011 12:19:33 -0000 1.26 +++ aucat.c 11 Oct 2011 08:50:39 -0000 @@ -358,7 +358,7 @@ mkopt(char *path, struct dev *d, struct mode = MODE_MIDIMASK; if (!rpar->rate) ppar->rate = rpar->rate = DEFAULT_RATE; - o = opt_new(path, d, ppar, rpar, MIDI_TO_ADATA(vol), mmc, join, mode); + o = opt_new(path, d, rpar, ppar, MIDI_TO_ADATA(vol), mmc, join, mode); if (o == NULL) errx(1, "%s: couldn't create subdev", path); dev_adjpar(d, o->mode, rpar, ppar); @@ -501,7 +501,7 @@ main(int argc, char **argv) break; case 's': d = mkdev(NULL, 0, bufsz, round, 1, autovol); - mkopt(optarg, d, &ppar, &rpar, + mkopt(optarg, d, &rpar, &ppar, mode, vol, mmc, join); /* XXX: set device rate, if never set */ server = 1;