From: Mikael Magnusson <mikaelmagnusson@glocalnet.net>
To: alsa-devel@alsa-project.org
Subject: [PATCH] emu10k1 SB Live: Front channels independent of default pcm
Date: Wed, 23 Feb 2005 15:58:52 +0100 [thread overview]
Message-ID: <421C9A2C.7000708@glocalnet.net> (raw)
[-- Attachment #1: Type: text/plain, Size: 766 bytes --]
These patches add front channels that are independent of the default pcm
output. It will also reduce the difference between the SB Live and
Audigy drivers. One potential problem is that the changed configuration
file can't be used with an unpatched driver. Then you won't get any
front output during multichannel playback.
front_fx_v2.patch:
Adds left and right front channel inputs using fxbus 8 and 9 and "Front"
playback and capture controls.
Signed-Off-By: Mikael Magnusson <mikma@users.sourceforge.net>
front_config_v2.patch:
Routes front channels via fxbus 8 and 9 instead of fxbus 0 and 1. This
makes the front and default pcm outputs independent of each other, as in
the Audigy driver.
Signed-Off-By: Mikael Magnusson <mikma@users.sourceforge.net>
[-- Attachment #2: front_config_v2.patch --]
[-- Type: text/x-patch, Size: 1310 bytes --]
--- alsa-lib/src/conf/cards/EMU10K1.conf 16 Feb 2005 11:47:05 -0000 1.14
+++ alsa-lib/src/conf/cards/EMU10K1.conf 23 Feb 2005 10:32:19 -0000
@@ -9,9 +9,29 @@
@args.CARD {
type string
}
- type hw
- card $CARD
- device 0
+ type hooks
+ slave.pcm {
+ type hw
+ card $CARD
+ device 0
+ }
+ hooks.0 {
+ type ctl_elems
+ hook_args [
+ {
+ name "EMU10K1 PCM Send Volume"
+ index { @func private_pcm_subdevice }
+ lock true
+ value [ 255 255 0 0 255 0 0 0 0 255 0 0 ]
+ }
+ {
+ name "EMU10K1 PCM Send Routing"
+ index { @func private_pcm_subdevice }
+ lock true
+ value [ 8 9 0 0 8 9 0 0 8 9 0 0 ]
+ }
+ ]
+ }
}
<confdir:pcm/rear.conf>
@@ -31,13 +51,6 @@
type ctl_elems
hook_args [
{
- name "Wave Surround Playback Volume"
- preserve true
- # don't lock a global control
- # lock true
- value [ 0 0 ]
- }
- {
name "EMU10K1 PCM Send Volume"
index { @func private_pcm_subdevice }
lock true
@@ -64,18 +77,6 @@
type ctl_elems
hook_args [
{
- name "Wave Center Playback Volume"
- preserve true
- # lock true
- value 0
- }
- {
- name "Wave LFE Playback Volume"
- preserve true
- # lock true
- value 0
- }
- {
name "Headphone Center Playback Switch"
index 1
preserve true
[-- Attachment #3: front_fx_v2.patch --]
[-- Type: text/x-patch, Size: 2019 bytes --]
--- alsa-kernel/pci/emu10k1/emufx.c 17 Feb 2005 14:51:52 -0000 1.69
+++ alsa-kernel/pci/emu10k1/emufx.c 23 Feb 2005 10:31:40 -0000
@@ -934,8 +934,8 @@
return err;
}
-#define SND_EMU10K1_GPR_CONTROLS 41
-#define SND_EMU10K1_INPUTS 10
+#define SND_EMU10K1_GPR_CONTROLS 44
+#define SND_EMU10K1_INPUTS 12
#define SND_EMU10K1_PLAYBACK_CHANNELS 8
#define SND_EMU10K1_CAPTURE_CHANNELS 4
@@ -1489,7 +1489,7 @@
strcpy(icode->name, "SB Live! FX8010 code for ALSA v1.2 by Jaroslav Kysela");
ptr = 0; i = 0;
- /* we have 10 inputs */
+ /* we have 12 inputs */
playback = SND_EMU10K1_INPUTS;
/* we have 6 playback channels and tone control doubles */
capture = playback + (SND_EMU10K1_PLAYBACK_CHANNELS * 2);
@@ -1513,6 +1513,8 @@
OP(icode, &ptr, iMACINT0, GPR(7), C_00000000, FXBUS(FXBUS_PCM_LFE), C_00000004);
OP(icode, &ptr, iMACINT0, GPR(8), C_00000000, C_00000000, C_00000000); /* S/PDIF left */
OP(icode, &ptr, iMACINT0, GPR(9), C_00000000, C_00000000, C_00000000); /* S/PDIF right */
+ OP(icode, &ptr, iMACINT0, GPR(10), C_00000000, FXBUS(FXBUS_PCM_LEFT_FRONT), C_00000004);
+ OP(icode, &ptr, iMACINT0, GPR(11), C_00000000, FXBUS(FXBUS_PCM_RIGHT_FRONT), C_00000004);
/* Raw S/PDIF PCM */
ipcm->substream = 0;
@@ -1659,6 +1661,21 @@
VOLUME_ADD(icode, &ptr, playback + 5, 7, gpr);
snd_emu10k1_init_mono_control(controls + i++, "LFE Digital Playback Volume", gpr++, 100);
+ /* Front Playback Volume */
+ for (z = 0; z < 2; z++)
+ VOLUME_ADD(icode, &ptr, playback + z, 10 + z, gpr + z);
+ snd_emu10k1_init_stereo_control(controls + i++, "Front Playback Volume", gpr, 100);
+ gpr += 2;
+
+ /* Front Capture Volume + Switch */
+ for (z = 0; z < 2; z++) {
+ SWITCH(icode, &ptr, tmp + 0, 10 + z, gpr + 2);
+ VOLUME_ADD(icode, &ptr, capture + z, tmp + 0, gpr + z);
+ }
+ snd_emu10k1_init_stereo_control(controls + i++, "Front Capture Volume", gpr, 0);
+ snd_emu10k1_init_mono_onoff_control(controls + i++, "Front Capture Switch", gpr + 2, 0);
+ gpr += 3;
+
/*
* Process inputs
*/
reply other threads:[~2005-02-23 14:58 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=421C9A2C.7000708@glocalnet.net \
--to=mikaelmagnusson@glocalnet.net \
--cc=alsa-devel@alsa-project.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.