diff options
author | sobomax <sobomax@FreeBSD.org> | 2002-07-30 16:24:00 +0000 |
---|---|---|
committer | sobomax <sobomax@FreeBSD.org> | 2002-07-30 16:24:00 +0000 |
commit | 20b0ab1150a487cd77ac9cc805b26eba3e2cdd77 (patch) | |
tree | 026201303e8cabbfdd1076e7a89bc8fbcdfc3806 /sys/dev/sound | |
parent | d8897f84c8c58bf7361394910d2699f4920aa5ee (diff) | |
download | FreeBSD-src-20b0ab1150a487cd77ac9cc805b26eba3e2cdd77.zip FreeBSD-src-20b0ab1150a487cd77ac9cc805b26eba3e2cdd77.tar.gz |
Add support for controlling line1 mixer device, which on some cards represents
onboard FM tuner.
MFC after: 2 weeks
Diffstat (limited to 'sys/dev/sound')
-rw-r--r-- | sys/dev/sound/isa/sb16.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/sys/dev/sound/isa/sb16.c b/sys/dev/sound/isa/sb16.c index 94e5f91..f8d09fe 100644 --- a/sys/dev/sound/isa/sb16.c +++ b/sys/dev/sound/isa/sb16.c @@ -299,6 +299,7 @@ static const struct sb16_mixent sb16_mixtab[32] = { [SOUND_MIXER_OGAIN] = { 0x41, 2, 6, 1 }, [SOUND_MIXER_TREBLE] = { 0x44, 4, 4, 1 }, [SOUND_MIXER_BASS] = { 0x46, 4, 4, 1 }, + [SOUND_MIXER_LINE1] = { 0x52, 5, 3, 1 } }; static int @@ -308,11 +309,11 @@ sb16mix_init(struct snd_mixer *m) mix_setdevs(m, SOUND_MASK_SYNTH | SOUND_MASK_PCM | SOUND_MASK_SPEAKER | SOUND_MASK_LINE | SOUND_MASK_MIC | SOUND_MASK_CD | - SOUND_MASK_IGAIN | SOUND_MASK_OGAIN | + SOUND_MASK_IGAIN | SOUND_MASK_OGAIN | SOUND_MASK_LINE1 | SOUND_MASK_VOLUME | SOUND_MASK_BASS | SOUND_MASK_TREBLE); mix_setrecdevs(m, SOUND_MASK_SYNTH | SOUND_MASK_LINE | - SOUND_MASK_MIC | SOUND_MASK_CD); + SOUND_MASK_LINE1 | SOUND_MASK_MIC | SOUND_MASK_CD); sb_setmixer(sb, 0x3c, 0x1f); /* make all output active */ @@ -369,6 +370,12 @@ sb16mix_setrecsrc(struct snd_mixer *m, u_int32_t src) sb_setmixer(sb, SB16_IMASK_L, recdev); sb_setmixer(sb, SB16_IMASK_R, recdev); + /* Switch on/off FM tuner source */ + if (src & SOUND_MASK_LINE1) + sb_setmixer(sb, 0x4a, 0x0c); + else + sb_setmixer(sb, 0x4a, 0x00); + /* * since the same volume controls apply to the input and * output sections, the best approach to have a consistent |