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
/*
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
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);
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));