--- audio.c Fri Mar 5 12:21:47 2004 +++ audio.c.myhack Fri Mar 5 12:40:09 2004 @@ -238,9 +238,9 @@ audio_config_read(unit, &actl, &dname); /* If we have values for cf_c_dev or cf_i_dev, use them. */ if (*cf_c_dev) - dname = cf_c_dev; + actl = cf_c_dev; if (*cf_i_dev) - actl = cf_i_dev; + dname = cf_i_dev; #endif /* @@ -304,7 +304,7 @@ if (*cf_agc) { int i; - i = mixer_name(cf_agc, recmask); + i = mixer_name(cf_agc, devmask); if (i >= 0) agc = MIXER_WRITE(i); else @@ -372,11 +372,14 @@ r = 0 ; /* setting to zero nicely mutes the channel */ l |= r << 8; - if (port == 2) { - rval = ioctl(ctl_fd, SOUND_MIXER_WRITE_LINE, &l); - } else { - rval = ioctl(ctl_fd, SOUND_MIXER_WRITE_MIC, &l); - } + if ( cf_agc ) + rval = ioctl(ctl_fd, agc, &l); + else + if (port == 2) { + rval = ioctl(ctl_fd, SOUND_MIXER_WRITE_LINE, &l); + } else { + rval = ioctl(ctl_fd, SOUND_MIXER_WRITE_MIC, &l); + } if (rval == -1) { printf("audio_gain: agc write: %s\n", strerror(errno)); return (rval); @@ -389,7 +392,10 @@ printf("audio_gain: mongain %d/%d\n", mongain, l); # endif l |= r << 8; - rval = ioctl(ctl_fd, SOUND_MIXER_WRITE_VOLUME, &l); + if ( cf_monitor ) + rval = ioctl(ctl_fd, monitor, &l ); + else + rval = ioctl(ctl_fd, SOUND_MIXER_WRITE_VOLUME, &l); if (rval == -1) { printf("audio_gain: mongain write: %s\n", strerror(errno));