Added a FX0/1 recording control so that output recording is possible on Audigies

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5011 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Jérôme Duval
2003-10-13 16:06:14 +00:00
parent e3cdd30a7a
commit 27f94d1dcc
@@ -2193,7 +2193,7 @@ emuxki_initfx(emuxki_dev * card)
{
uint16 pc, gpr;
emuxki_gpr *a_front_gpr, *a_rear_gpr, *a_center_sub_gpr = NULL;
emuxki_gpr *p_ac97_in_gpr, *p_cd_in_gpr, *r_ac97_in_gpr, *r_cd_in_gpr;
emuxki_gpr *p_ac97_in_gpr, *p_cd_in_gpr, *r_ac97_in_gpr, *r_cd_in_gpr, *r_fx_out_gpr;
emuxki_gpr *d_front_gpr, *d_rear_gpr, *d_center_sub_gpr;
/* Set all GPRs to 0 */
@@ -2243,6 +2243,8 @@ emuxki_initfx(emuxki_dev * card)
EMU_MIX_GAIN|EMU_MIX_STEREO|EMU_MIX_MUTE|EMU_MIX_RECORD, &gpr, 0.0, 0.0, -46.5, 0.0, -0.75);
r_cd_in_gpr = emuxki_gpr_new(card, "CD Spdif In",
EMU_MIX_GAIN|EMU_MIX_STEREO|EMU_MIX_MUTE|EMU_MIX_RECORD, &gpr, 0.0, 0.0, -46.5, 0.0, -0.75);
r_fx_out_gpr = emuxki_gpr_new(card, "FX 0/1",
EMU_MIX_GAIN|EMU_MIX_STEREO|EMU_MIX_MUTE|EMU_MIX_RECORD, &gpr, 0.0, 0.0, -46.5, 0.0, -0.75);
card->gpr_count = gpr;
@@ -2367,6 +2369,16 @@ emuxki_initfx(emuxki_dev * card)
EMU_A_DSP_CST(0),
EMU_A_DSP_INR(EMU_DSP_IN_AC97), EMU_A_DSP_GPR(r_ac97_in_gpr->gpr + 1));
/* DSP_IN_GPR (l/r) = DSP_IN_GPR(l/r) + FX(0/1) * R_FX_OUT_GPR(l/r) */
emuxki_dsp_addop(&card->config, &pc, EMU_DSP_OP_MACS,
EMU_A_DSP_GPR(EMU_DSP_TMPGPR_DSP_IN_L),
EMU_A_DSP_GPR(EMU_DSP_TMPGPR_DSP_IN_L),
EMU_DSP_FX(0), EMU_A_DSP_GPR(r_fx_out_gpr->gpr));
emuxki_dsp_addop(&card->config, &pc, EMU_DSP_OP_MACS,
EMU_A_DSP_GPR(EMU_DSP_TMPGPR_DSP_IN_R),
EMU_A_DSP_GPR(EMU_DSP_TMPGPR_DSP_IN_R),
EMU_DSP_FX(1), EMU_A_DSP_GPR(r_fx_out_gpr->gpr + 1));
/* DSP_IN_GPR(l/r) = 0 + DSP_IN_GPR(l/r) * 4 */
emuxki_dsp_addop(&card->config, &pc, EMU_DSP_OP_MACINTS,
EMU_A_DSP_GPR(EMU_DSP_TMPGPR_DSP_IN_L),
@@ -2387,6 +2399,8 @@ emuxki_initfx(emuxki_dev * card)
EMU_A_DSP_GPR(EMU_DSP_TMPGPR_DSP_IN_R),
EMU_A_DSP_INR(EMU_DSP_IN_CDSPDIF), EMU_A_DSP_GPR(r_cd_in_gpr->gpr + 1));
/* zero out the rest of the microcode */
while (pc < 512)
emuxki_dsp_addop(&card->config, &pc, EMU_DSP_OP_ACC3,
@@ -2518,6 +2532,16 @@ emuxki_initfx(emuxki_dev * card)
EMU_DSP_CST(0),
EMU_DSP_INR(EMU_DSP_IN_AC97), EMU_DSP_GPR(r_ac97_in_gpr->gpr + 1));
/* DSP_IN_GPR (l/r) = DSP_IN_GPR(l/r) + FX(0/1) * R_FX_OUT_GPR(l/r) */
emuxki_dsp_addop(&card->config, &pc, EMU_DSP_OP_MACS,
EMU_DSP_GPR(EMU_DSP_TMPGPR_DSP_IN_L),
EMU_DSP_GPR(EMU_DSP_TMPGPR_DSP_IN_L),
EMU_DSP_FX(0), EMU_DSP_GPR(r_fx_out_gpr->gpr));
emuxki_dsp_addop(&card->config, &pc, EMU_DSP_OP_MACS,
EMU_DSP_GPR(EMU_DSP_TMPGPR_DSP_IN_R),
EMU_DSP_GPR(EMU_DSP_TMPGPR_DSP_IN_R),
EMU_DSP_FX(1), EMU_DSP_GPR(r_fx_out_gpr->gpr + 1));
/* DSP_IN_GPR(l/r) = 0 + DSP_IN_GPR(l/r) * 4 */
emuxki_dsp_addop(&card->config, &pc, EMU_DSP_OP_MACINTS,
EMU_DSP_GPR(EMU_DSP_TMPGPR_DSP_IN_L),