On 2020/11/17 18:23, Peter J. Philipp wrote: > On Tue, Nov 17, 2020 at 05:09:28PM +0000, Stuart Henderson wrote: > > On 2020/11/17 17:13, Peter J. Philipp wrote: > > > Hi, > > > > > > I have a mic on snd/1 and speakers on snd/0. I had tried a lot of > > > different > > > settings with audacity port but couldn't get this to work, so I chose the > > > method of last resort. Below is a patch to allow an AUDIORECDEVICE > > > environment > > > variable specifying the wanted microphone. > > > > This seems a worthwhile addition. > > > > > Index: sio.c > > > =================================================================== > > > RCS file: /cvs/src/lib/libsndio/sio.c,v > > > retrieving revision 1.24 > > > diff -u -p -u -r1.24 sio.c > > > --- sio.c 29 Jun 2019 06:05:26 -0000 1.24 > > > +++ sio.c 17 Nov 2020 16:13:04 -0000 > > > @@ -43,6 +43,7 @@ sio_open(const char *str, unsigned int m > > > { > > > static char devany[] = SIO_DEVANY; > > > struct sio_hdl *hdl; > > > + char *rec = NULL; > > > > > > #ifdef DEBUG > > > _sndio_debug_init(); > > > @@ -55,6 +56,12 @@ sio_open(const char *str, unsigned int m > > > str = getenv("AUDIODEVICE"); > > > if (str == NULL) > > > str = devany; > > > + rec = getenv("AUDIORECDEVICE"); > > > + if (rec == NULL) > > > + rec = devany; > > > + > > > + if (rec && mode == SIO_REC) > > > + str = rec; > > > > If AUDIORECDEVICE is unset, it would be better to fallback to > > AUDIODEVICE rather than directly to devany. > > This is a good suggestion! Thanks! I have updated the patch. I also > appreciate Solene's offer for manpage addition, thanks! > > New diff follows... let me know if it can be done better, I won't be able > to update it until tomorrow. > > -peter > > Index: sio.c > =================================================================== > RCS file: /cvs/src/lib/libsndio/sio.c,v > retrieving revision 1.24 > diff -u -p -u -r1.24 sio.c > --- sio.c 29 Jun 2019 06:05:26 -0000 1.24 > +++ sio.c 17 Nov 2020 17:18:57 -0000 > @@ -43,6 +43,7 @@ sio_open(const char *str, unsigned int m > { > static char devany[] = SIO_DEVANY; > struct sio_hdl *hdl; > + char *rec = NULL; > > #ifdef DEBUG > _sndio_debug_init(); > @@ -55,6 +56,12 @@ sio_open(const char *str, unsigned int m > str = getenv("AUDIODEVICE"); > if (str == NULL) > str = devany; > + rec = getenv("AUDIORECDEVICE"); > + if (rec == NULL) > + rec = str; > + > + if (rec && mode == SIO_REC) > + str = rec;
the "if rec == NULL" needs to go for that to work; simplifies the diff nicely too :) Index: sio.c =================================================================== RCS file: /cvs/src/lib/libsndio/sio.c,v retrieving revision 1.24 diff -u -p -r1.24 sio.c --- sio.c 29 Jun 2019 06:05:26 -0000 1.24 +++ sio.c 17 Nov 2020 17:27:42 -0000 @@ -43,6 +43,7 @@ sio_open(const char *str, unsigned int m { static char devany[] = SIO_DEVANY; struct sio_hdl *hdl; + char *rec = NULL; #ifdef DEBUG _sndio_debug_init(); @@ -55,6 +56,9 @@ sio_open(const char *str, unsigned int m str = getenv("AUDIODEVICE"); if (str == NULL) str = devany; + rec = getenv("AUDIORECDEVICE"); + if (rec && mode == SIO_REC) + str = rec; } if (strcmp(str, devany) == 0) { hdl = _sio_aucat_open("snd/0", mode, nbio); Index: sioctl.c =================================================================== RCS file: /cvs/src/lib/libsndio/sioctl.c,v retrieving revision 1.1 diff -u -p -r1.1 sioctl.c --- sioctl.c 26 Feb 2020 13:53:58 -0000 1.1 +++ sioctl.c 17 Nov 2020 17:27:42 -0000 @@ -28,6 +28,7 @@ sioctl_open(const char *str, unsigned in { static char devany[] = SIO_DEVANY; struct sioctl_hdl *hdl; + char *rec = NULL; #ifdef DEBUG _sndio_debug_init(); @@ -38,6 +39,9 @@ sioctl_open(const char *str, unsigned in str = getenv("AUDIODEVICE"); if (str == NULL) str = devany; + rec = getenv("AUDIORECDEVICE"); + if (rec && mode == SIO_REC) + str = rec; } if (strcmp(str, devany) == 0) { hdl = _sioctl_aucat_open("snd/0", mode, nbio);