diff options
author | Mikael Magnusson <mikma@users.sourceforge.net> | 2005-09-13 05:32:58 -0400 |
---|---|---|
committer | Jaroslav Kysela <perex@suse.cz> | 2005-11-04 07:15:36 -0500 |
commit | edf8e4565c44bffbb4d09e8984df941d0ae9e6e8 (patch) | |
tree | 717847acaec7b4007ae5e8e6e72328fdcda69744 /sound/pci/emu10k1/emufx.c | |
parent | 0f3278d14f0255e4cd9e07ccefc33ff12d8bb59c (diff) |
[ALSA] emu10k1: Front channels via fxbus 8 and 9
Modules: EMU10K1/EMU10K2 driver
Adds left and right front channel outputs using fxbus 8 and 9 and 'Front'
playback and capture volume controls.
Signed-off-by: Mikael Magnusson <mikma@users.sourceforge.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/emu10k1/emufx.c')
-rw-r--r-- | sound/pci/emu10k1/emufx.c | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/sound/pci/emu10k1/emufx.c b/sound/pci/emu10k1/emufx.c index 646b5d972e6f..20db3ac6cd61 100644 --- a/sound/pci/emu10k1/emufx.c +++ b/sound/pci/emu10k1/emufx.c | |||
@@ -964,8 +964,8 @@ static int snd_emu10k1_ipcm_peek(emu10k1_t *emu, emu10k1_fx8010_pcm_t *ipcm) | |||
964 | return err; | 964 | return err; |
965 | } | 965 | } |
966 | 966 | ||
967 | #define SND_EMU10K1_GPR_CONTROLS 41 | 967 | #define SND_EMU10K1_GPR_CONTROLS 44 |
968 | #define SND_EMU10K1_INPUTS 10 | 968 | #define SND_EMU10K1_INPUTS 12 |
969 | #define SND_EMU10K1_PLAYBACK_CHANNELS 8 | 969 | #define SND_EMU10K1_PLAYBACK_CHANNELS 8 |
970 | #define SND_EMU10K1_CAPTURE_CHANNELS 4 | 970 | #define SND_EMU10K1_CAPTURE_CHANNELS 4 |
971 | 971 | ||
@@ -1527,7 +1527,7 @@ static int __devinit _snd_emu10k1_init_efx(emu10k1_t *emu) | |||
1527 | 1527 | ||
1528 | strcpy(icode->name, "SB Live! FX8010 code for ALSA v1.2 by Jaroslav Kysela"); | 1528 | strcpy(icode->name, "SB Live! FX8010 code for ALSA v1.2 by Jaroslav Kysela"); |
1529 | ptr = 0; i = 0; | 1529 | ptr = 0; i = 0; |
1530 | /* we have 10 inputs */ | 1530 | /* we have 12 inputs */ |
1531 | playback = SND_EMU10K1_INPUTS; | 1531 | playback = SND_EMU10K1_INPUTS; |
1532 | /* we have 6 playback channels and tone control doubles */ | 1532 | /* we have 6 playback channels and tone control doubles */ |
1533 | capture = playback + (SND_EMU10K1_PLAYBACK_CHANNELS * 2); | 1533 | capture = playback + (SND_EMU10K1_PLAYBACK_CHANNELS * 2); |
@@ -1551,6 +1551,8 @@ static int __devinit _snd_emu10k1_init_efx(emu10k1_t *emu) | |||
1551 | OP(icode, &ptr, iMACINT0, GPR(7), C_00000000, FXBUS(FXBUS_PCM_LFE), C_00000004); | 1551 | OP(icode, &ptr, iMACINT0, GPR(7), C_00000000, FXBUS(FXBUS_PCM_LFE), C_00000004); |
1552 | OP(icode, &ptr, iMACINT0, GPR(8), C_00000000, C_00000000, C_00000000); /* S/PDIF left */ | 1552 | OP(icode, &ptr, iMACINT0, GPR(8), C_00000000, C_00000000, C_00000000); /* S/PDIF left */ |
1553 | OP(icode, &ptr, iMACINT0, GPR(9), C_00000000, C_00000000, C_00000000); /* S/PDIF right */ | 1553 | OP(icode, &ptr, iMACINT0, GPR(9), C_00000000, C_00000000, C_00000000); /* S/PDIF right */ |
1554 | OP(icode, &ptr, iMACINT0, GPR(10), C_00000000, FXBUS(FXBUS_PCM_LEFT_FRONT), C_00000004); | ||
1555 | OP(icode, &ptr, iMACINT0, GPR(11), C_00000000, FXBUS(FXBUS_PCM_RIGHT_FRONT), C_00000004); | ||
1554 | 1556 | ||
1555 | /* Raw S/PDIF PCM */ | 1557 | /* Raw S/PDIF PCM */ |
1556 | ipcm->substream = 0; | 1558 | ipcm->substream = 0; |
@@ -1697,6 +1699,21 @@ static int __devinit _snd_emu10k1_init_efx(emu10k1_t *emu) | |||
1697 | VOLUME_ADD(icode, &ptr, playback + 5, 7, gpr); | 1699 | VOLUME_ADD(icode, &ptr, playback + 5, 7, gpr); |
1698 | snd_emu10k1_init_mono_control(controls + i++, "LFE Digital Playback Volume", gpr++, 100); | 1700 | snd_emu10k1_init_mono_control(controls + i++, "LFE Digital Playback Volume", gpr++, 100); |
1699 | 1701 | ||
1702 | /* Front Playback Volume */ | ||
1703 | for (z = 0; z < 2; z++) | ||
1704 | VOLUME_ADD(icode, &ptr, playback + z, 10 + z, gpr + z); | ||
1705 | snd_emu10k1_init_stereo_control(controls + i++, "Front Playback Volume", gpr, 100); | ||
1706 | gpr += 2; | ||
1707 | |||
1708 | /* Front Capture Volume + Switch */ | ||
1709 | for (z = 0; z < 2; z++) { | ||
1710 | SWITCH(icode, &ptr, tmp + 0, 10 + z, gpr + 2); | ||
1711 | VOLUME_ADD(icode, &ptr, capture + z, tmp + 0, gpr + z); | ||
1712 | } | ||
1713 | snd_emu10k1_init_stereo_control(controls + i++, "Front Capture Volume", gpr, 0); | ||
1714 | snd_emu10k1_init_mono_onoff_control(controls + i++, "Front Capture Switch", gpr + 2, 0); | ||
1715 | gpr += 3; | ||
1716 | |||
1700 | /* | 1717 | /* |
1701 | * Process inputs | 1718 | * Process inputs |
1702 | */ | 1719 | */ |