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;

Reply via email to