[Deinterlace-checkins] CVS: DScaler/DScaler CX2388xCard_Audio.cpp,1.21,1.22
Brought to you by:
adcockj,
dschmelzer
From: Torsten S. <to...@us...> - 2004-05-15 19:02:40
|
Update of /cvsroot/deinterlace/DScaler/DScaler In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19367/DScaler Modified Files: CX2388xCard_Audio.cpp Log Message: Some sound fixes. New A2 dematrix settings, with the old we have only Mono... Index: CX2388xCard_Audio.cpp =================================================================== RCS file: /cvsroot/deinterlace/DScaler/DScaler/CX2388xCard_Audio.cpp,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -r1.21 -r1.22 *** CX2388xCard_Audio.cpp 19 Apr 2004 17:33:30 -0000 1.21 --- CX2388xCard_Audio.cpp 15 May 2004 19:02:30 -0000 1.22 *************** *** 24,27 **** --- 24,31 ---- // // $Log$ + // Revision 1.22 2004/05/15 19:02:30 to_see + // Some sound fixes. + // New A2 dematrix settings, with the old we have only Mono... + // // Revision 1.21 2004/04/19 17:33:30 to_see // Added BTSCSAP and FM Audio *************** *** 130,134 **** switch (TVFormat) { - case VIDEOFORMAT_PAL_D: case VIDEOFORMAT_PAL_G: --- 134,137 ---- *************** *** 260,267 **** void CCX2388xCard::AudioInitBTSC(eVideoFormat TVFormat, eCX2388xStereoType StereoType) { ! WriteDword(AUD_AFE_12DB_EN, 0x00000001); ! WriteDword(AUD_INIT, 0x00000001); WriteDword(AUD_INIT_LD, 0x00000001); WriteDword(AUD_SOFT_RESET, 0x00000001); WriteDword(AUD_OUT1_SEL, 0x00000013); WriteDword(AUD_OUT1_SHIFT, 0x00000000); --- 263,270 ---- void CCX2388xCard::AudioInitBTSC(eVideoFormat TVFormat, eCX2388xStereoType StereoType) { ! WriteDword(AUD_INIT, SEL_BTSC); WriteDword(AUD_INIT_LD, 0x00000001); WriteDword(AUD_SOFT_RESET, 0x00000001); + WriteDword(AUD_AFE_12DB_EN, 0x00000001); WriteDword(AUD_OUT1_SEL, 0x00000013); WriteDword(AUD_OUT1_SHIFT, 0x00000000); *************** *** 323,330 **** void CCX2388xCard::AudioInitBTSCSAP(eVideoFormat TVFormat, eCX2388xStereoType StereoType) { ! WriteDword(AUD_AFE_12DB_EN, 0x00000001); ! WriteDword(AUD_INIT, 0x00000008); WriteDword(AUD_INIT_LD, 0x00000001); WriteDword(AUD_SOFT_RESET, 0x00000001); WriteDword(AUD_DBX_IN_GAIN, 0x00007200); WriteDword(AUD_DBX_WBE_GAIN, 0x00006200); --- 326,333 ---- void CCX2388xCard::AudioInitBTSCSAP(eVideoFormat TVFormat, eCX2388xStereoType StereoType) { ! WriteDword(AUD_INIT, SEL_SAP); WriteDword(AUD_INIT_LD, 0x00000001); WriteDword(AUD_SOFT_RESET, 0x00000001); + WriteDword(AUD_AFE_12DB_EN, 0x00000001); WriteDword(AUD_DBX_IN_GAIN, 0x00007200); WriteDword(AUD_DBX_WBE_GAIN, 0x00006200); *************** *** 386,392 **** // from v4l WriteDword(AUD_AFE_12DB_EN, 0x00000001); ! WriteDword(AUD_INIT, 0x00000020); WriteDword(AUD_INIT_LD, 0x00000001); - WriteDword(AUD_SOFT_RESET, 0x00000001); // don't know an better way --- 389,394 ---- // from v4l WriteDword(AUD_AFE_12DB_EN, 0x00000001); ! WriteDword(AUD_INIT, SEL_FMRADIO); WriteDword(AUD_INIT_LD, 0x00000001); // don't know an better way *************** *** 442,446 **** // initialize EIAJ ! WriteDword(AUD_INIT, 0x0002); WriteDword(AUD_INIT_LD, 0x0001); WriteDword(AUD_SOFT_RESET, 0x0001); --- 444,448 ---- // initialize EIAJ ! WriteDword(AUD_INIT, SEL_EIAJ); WriteDword(AUD_INIT_LD, 0x0001); WriteDword(AUD_SOFT_RESET, 0x0001); *************** *** 551,555 **** void CCX2388xCard::AudioInitNICAM(eVideoFormat TVFormat, eCX2388xStereoType StereoType) { ! WriteDword(AUD_INIT, 0x00000010); WriteDword(AUD_INIT_LD, 0x00000001); WriteDword(AUD_SOFT_RESET, 0x00000001); --- 553,557 ---- void CCX2388xCard::AudioInitNICAM(eVideoFormat TVFormat, eCX2388xStereoType StereoType) { ! WriteDword(AUD_INIT, SEL_NICAM); WriteDword(AUD_INIT_LD, 0x00000001); WriteDword(AUD_SOFT_RESET, 0x00000001); *************** *** 606,630 **** } switch(StereoType) { case STEREOTYPE_MONO: case STEREOTYPE_ALT1: ! WriteDword(AUD_CTL, EN_DAC_ENABLE|EN_DMTRX_LR|EN_DMTRX_BYPASS|EN_NICAM_FORCE_MONO1); break; case STEREOTYPE_ALT2: ! WriteDword(AUD_CTL, EN_DAC_ENABLE|EN_DMTRX_LR|EN_DMTRX_BYPASS|EN_NICAM_FORCE_MONO2); break; case STEREOTYPE_STEREO: ! WriteDword(AUD_CTL, EN_DAC_ENABLE|EN_DMTRX_LR|EN_DMTRX_BYPASS|EN_NICAM_FORCE_STEREO); break; case STEREOTYPE_AUTO: ! WriteDword(AUD_CTL, EN_DAC_ENABLE|EN_DMTRX_LR|EN_DMTRX_BYPASS|EN_NICAM_AUTO_STEREO); break; } ! WriteDword(AUD_SOFT_RESET, 0x00000000); // Causes a pop every time/**/ } --- 608,635 ---- } + DWORD dwTemp = EN_DAC_ENABLE|EN_DMTRX_LR|EN_DMTRX_BYPASS; + switch(StereoType) { case STEREOTYPE_MONO: case STEREOTYPE_ALT1: ! dwTemp |= EN_NICAM_FORCE_MONO1; break; case STEREOTYPE_ALT2: ! dwTemp |= EN_NICAM_FORCE_MONO2; break; case STEREOTYPE_STEREO: ! dwTemp |= EN_NICAM_FORCE_STEREO; break; case STEREOTYPE_AUTO: ! dwTemp |= EN_NICAM_AUTO_STEREO; break; } ! WriteDword(AUD_CTL, dwTemp); ! WriteDword(AUD_SOFT_RESET, 0x00000000); // Causes a pop every time/**/ } *************** *** 632,636 **** { // exactly taken from conexant-driver ! WriteDword(AUD_INIT, 0x00000004); WriteDword(AUD_INIT_LD, 0x00000001); WriteDword(AUD_SOFT_RESET, 0x00000001); --- 637,641 ---- { // exactly taken from conexant-driver ! WriteDword(AUD_INIT, SEL_A2); WriteDword(AUD_INIT_LD, 0x00000001); WriteDword(AUD_SOFT_RESET, 0x00000001); *************** *** 682,686 **** WriteDword(AUD_RDSQ_SHIFT, 0x00000000); WriteDword(AUD_POLYPH80SCALEFAC, 0x00000001); - switch (TVFormat) --- 687,690 ---- *************** *** 723,752 **** } switch(StereoType) { case STEREOTYPE_MONO: - WriteDword(AUD_CTL, EN_DAC_ENABLE|EN_DMTRX_MONO|EN_A2_FORCE_MONO1); - break; - case STEREOTYPE_ALT1: ! WriteDword(AUD_CTL, EN_DAC_ENABLE|EN_DMTRX_MONO|EN_A2_FORCE_MONO1); break; case STEREOTYPE_ALT2: ! WriteDword(AUD_CTL, EN_DAC_ENABLE|EN_DMTRX_MONO|EN_A2_FORCE_MONO2); break; case STEREOTYPE_STEREO: ! WriteDword(AUD_CTL, EN_DAC_ENABLE|EN_DMTRX_LR|EN_A2_FORCE_STEREO); break; case STEREOTYPE_AUTO: ! WriteDword(AUD_CTL, EN_DAC_ENABLE|EN_DMTRX_LR|EN_A2_AUTO_STEREO); // Start Autodetecting with mono SetAutoA2StereoToMono(); break; } ! ! WriteDword(AUD_SOFT_RESET, 0x00000000); // Causes a pop every time/**/ } --- 727,756 ---- } + DWORD dwTemp = EN_DAC_ENABLE|EN_DMTRX_SUMDIFF|EN_FMRADIO_EN_RDS; + switch(StereoType) { case STEREOTYPE_MONO: case STEREOTYPE_ALT1: ! dwTemp |= EN_A2_FORCE_MONO1; break; case STEREOTYPE_ALT2: ! dwTemp |= EN_A2_FORCE_MONO2; break; case STEREOTYPE_STEREO: ! dwTemp |= EN_A2_FORCE_STEREO; break; case STEREOTYPE_AUTO: ! dwTemp |= EN_A2_AUTO_STEREO; // Start Autodetecting with mono SetAutoA2StereoToMono(); break; } ! ! WriteDword(AUD_CTL, dwTemp); ! WriteDword(AUD_SOFT_RESET, 0x00000000); // Causes a pop every time/**/ } *************** *** 755,760 **** // set timer to an lower value for faster detection // of bit 0 + 1 in AUD_CTL ! WriteDword (AUD_MODE_CHG_TIMER, 0x00000040); ! AndOrDataDword(AUD_CTL, 0, ~0x00000800); AndOrDataDword(AUD_DEEMPH1_SRC_SEL, 0, ~0x00000002); } --- 759,764 ---- // set timer to an lower value for faster detection // of bit 0 + 1 in AUD_CTL ! WriteDword(AUD_MODE_CHG_TIMER, 0x00000060); ! WriteDword(AUD_PHASE_FIX_CTL, 0x00000000); AndOrDataDword(AUD_DEEMPH1_SRC_SEL, 0, ~0x00000002); } *************** *** 764,769 **** // set timer to this value makes // bit 0 + 1 in AUD_CTL stable ! WriteDword(AUD_MODE_CHG_TIMER, 0x00000120); ! OrDataDword(AUD_CTL, 0x00000800); OrDataDword(AUD_DEEMPH1_SRC_SEL, 0x00000002); } --- 768,773 ---- // set timer to this value makes // bit 0 + 1 in AUD_CTL stable ! WriteDword(AUD_MODE_CHG_TIMER, 0x000000f0); ! WriteDword(AUD_PHASE_FIX_CTL, 0x00000001); OrDataDword(AUD_DEEMPH1_SRC_SEL, 0x00000002); } |