📄 tidtv_msp34x0g.c
字号:
* @Return :: none
********************************************************************************/
void dev_msp3410VolumeControl(int k)
{
dev_msp3420DspWrite(0x0000,Cfg_VolumeTable[99-k-36]);
}
/*******************************************************************************
* @RoutineName:: dev_msp3410GetWooferStatus
*
* @Description:: get woofer status
*
* @Input :: none
*
* @Output :: status data
*
* @Return :: none
********************************************************************************/
/*
BYTE dev_msp3410GetWooferStatus(void)
{
return StoredAudioData.Woofer;
}
*/
/*******************************************************************************
* @RoutineName:: AdjustAudioBbeBase
*
* @Description:: set BBE
*
* @Input :: UCHAR
*
* @Output :: none
*
* @Return :: none
********************************************************************************/
#if 1
void AdjustAudioBbeBase(UCHAR Effect_ID, UCHAR AvInput )
{
if(Effect_ID==OFF)
{
dev_msp3420DspWrite(0x0004,0x0000);
//SaveModeIndependentSettings();
}
else
{
if(Effect_ID==BBE)
{
if(AvInput != TI_DTV_AV_INPUT_A_VIDEO1 || TiDTV_SysCtrl.AvInput != TI_DTV_AV_INPUT_DTV)
{
//UserPrefmStoredAudioTreble=15;
//UserPrefmStoredAudioBass=50;
dev_msp3420DspWrite(0x0002,0xf800);//correspond UserPrefmStoredAudioTreble=15
dev_msp3420DspWrite(0x0003,0xa800);
//SaveModeIndependentSettings();
dev_msp3420DspWrite(0x0004,0x4008);
}
else
{
//UserPrefmStoredAudioTreble=15;
//UserPrefmStoredAudioBass=47;
dev_msp3420DspWrite(0x0002,0xf800);
dev_msp3420DspWrite(0x0003,0xc000);
//SaveModeIndependentSettings();
dev_msp3420DspWrite(0x0004,0x3408);
}
}
}
}
#endif
/*******************************************************************************
* @RoutineName:: AdjustAudioSRS(UCHAR Effect_ID)
*
* @Description:: set SRS
*
* @Input :: UCHAR
*
* @Output :: none
*
* @Return :: none
********************************************************************************/
void AdjustAudioSRS(UCHAR Effect_ID)
{
switch (Effect_ID)
{
case SRS:
// msgPrint_msp3420(" SURROUND_SPATIAL ",0);
dev_msp3420DspWrite(MSP_DSP_VIRTUAL_3D_WREG, 0x0000);//
dev_msp3420DspWrite(MSP_DSP_VIRTUAL_SPTL_WREG, 0x3f00);//
dev_msp3420DspWrite(MSP_DSP_VIRTUAL_ON_WREG, 0x0100);//
break;
case OFF:
default:
// msgPrint_msp3420(" SURROUND_OFF ",0);
dev_msp3420DspWrite(MSP_DSP_VIRTUAL_ON_WREG, 0x0000);//
break;
}
}
//******************************************************************************
// FUNCTION : void dev_mspSetSurroundEffect(UCHAR Effect_ID)
// USAGE : this functions enabled a particulat suround effetc
// INPUT : suuround effect
// OUTPUT : None
// GLOBALS : None
// USED_REGS : None
//******************************************************************************
void dev_mspSetSurroundEffect(UCHAR Effect_ID, UCHAR AvInput)
{
AdjustAudioBbeBase( Effect_ID,AvInput);
AdjustAudioSRS(Effect_ID);
}
#if 0
void dev_mspSetSurroundEffect(UCHAR Effect_ID)
{
switch (Effect_ID)
{
case 0:
// msgPrint_msp3420(" SURROUND_NORMAL ",0);
dev_msp3420DspWrite(MSP_DSP_VIRTUAL_SPTL_WREG, 0x0000);//
dev_msp3420DspWrite(MSP_DSP_VIRTUAL_3D_WREG, 0x5400);//
dev_msp3420DspWrite(MSP_DSP_VIRTUAL_ON_WREG, 0x0100);//
break;
case 1:
// msgPrint_msp3420(" SURROUND_SPATIAL ",0);
dev_msp3420DspWrite(MSP_DSP_VIRTUAL_3D_WREG, 0x0000);//
dev_msp3420DspWrite(MSP_DSP_VIRTUAL_SPTL_WREG, 0x3f00);//
dev_msp3420DspWrite(MSP_DSP_VIRTUAL_ON_WREG, 0x0100);//
break;
case 2:
default:
// msgPrint_msp3420(" SURROUND_OFF ",0);
dev_msp3420DspWrite(MSP_DSP_VIRTUAL_ON_WREG, 0x0000);//
break;
}
}
#endif
/**************************
************************/
void dev_mspFMMonoOut(void)
{
//gm_Print("BTSC-Mono", 0);
dev_msp3420DemodWrite(0x0020,0x0020); // BTSC-Stereo
dev_msp3420DspWrite(0x000e,0x2403); //FM/AM Prescale: 100 kHz FM deviation, FM Matrix Modes: sound A mono
dev_msp3420DspWrite(0x0008, 0x0100);// FM input to Mono out
}
void dev_mspFMStereoOut(void)
{
//gm_Print("BTSC-Stereo", 0);
dev_msp3420DemodWrite(0x0020,0x0020); // BTSC-Stereo
dev_msp3420DspWrite(0x000e,0x2402); //FM/AM Prescale: 100 kHz FM deviation, FM Matrix Modes: Korea Stereo
dev_msp3420DspWrite(0x0008, 0x120);// FM input to Stereo out
}
void dev_mspSAPout(void)
{
//gm_Print("BTSC-SAP", 0);
dev_msp3420DemodWrite(0x0020,0x0021); // BTSC-Mono + SAP
dev_msp3420DspWrite(0x000e,0x2404); //FM/AM Prescale: 100 kHz FM deviation, FM Matrix Modes: sound B mono
dev_msp3420DspWrite(0x0008, 0x0110);// FM input to Stereo out
}
//*****************************************************************************
// FUNCTION : void dev_msp3410GetNICAMSource(void)
// USAGE : this fn get the nicam source from msp chip
// INPUT : None
// OUTPUT : nicam source
// GLOBALS : None
// USED_REGS : None
//*****************************************************************************
//hgh add 05-01-10{
BYTE dev_msp3420GetNICAMSource(void)
{
//if(InputPortArray[gmvb_CurrentPortMain].DevType&&(InputPortArray[
//gmvb_CurrentPortMain].VideoInput==VDD_INTYP_TUNER))
//if(UserPrefMainSourceInput == BOARD_TV || UserPrefMainSourceInput == BOARD_TV2)
//{
BYTE NICAMSource;
WORD NICAMStatus;
BYTE Status_bit5;
BYTE Status_bit6;
BYTE Status_bit8;
BYTE Status_bit9;
NICAMStatus=dev_msp3420DemodRead(0x0200);//Status register
//msg_msp3410("NICAMStatus(0x0200)=0x%x",NICAMStatus);
Status_bit8 = ((NICAMStatus)&0x0100)>>8; //bit 8
Status_bit6 = ((NICAMStatus)&0x0040)>>6; //bit 6
Status_bit5 = ((NICAMStatus)&0x0020)>>5;
Status_bit9 = ((NICAMStatus)&0x0200)>>9;
if((Status_bit5==0)&&(Status_bit9==0))
{
NICAMSource =1; //mono// maybe need check Status reg bit[5,9]==00, datasheet page 28
return NICAMSource;
}
else
{
if(Status_bit8 == 1)
{
NICAMSource = 4;//AUD_SRC_NICAM_DUAL;
}
else //Status_bit8 == 0
{
if(Status_bit6 == 0)
{
NICAMSource = 3;//AUD_SRC_NICAM_MONO;
}
else //Status_bit6 == 1
{
NICAMSource = 2; //AUD_SRC_NICAM_STEREO;
}
}
//msg_msp3410("Get NICAM Source---%d",NICAMSource);
return NICAMSource;
}
//}
}
//hgh add 05-01-10}
/**************************
************************/
int AdjustAudioMTS(int mts_id)
{
BYTE soundtype;
int ret = 1;
UserPrefmNicamEnable=1;
soundtype=dev_msp3420GetNICAMSource();
//gm_Print("UserPrefmAudioNicam=%d",UserPrefmAudioNicam);
switch (mts_id)
{
case 0:
if(2==soundtype)
{
dev_mspFMStereoOut();//add by Mark for test
}
else
{
ret = 0;
}
break;
case 1:
if (4==soundtype)
{
dev_mspSAPout();
}
else
{
ret = 0;
}
break;
case 2:
if (3==soundtype)
{
dev_mspFMMonoOut();
}
else
{
ret = 0;
}
break;
default:
break;
}
return ret;
}
//-----------------------------------------------------------------------------
void gm_WriteI2C(BYTE B_DevAddress, UCHAR *Bp_Buffer,
BYTE B_Length, BYTE B_Stop )
{
TiDTV_I2cWrite(msp3410_I2C_CHANNEL, 1, B_DevAddress,
B_Length, (UCHAR *)Bp_Buffer, OS_TICKS_PER_SEC / 2);
}
void gm_ReadI2C(UCHAR B_DevAddress, UCHAR *Bp_Buffer,
BYTE B_Length, BYTE B_Stop )
{
BYTE count;
for (count = 0; count < B_Length; count++)
{
TiDTV_I2cRead(msp3410_I2C_CHANNEL, 1, B_DevAddress, 0,
0, B_Length, Bp_Buffer + count, OS_TICKS_PER_SEC / 2);
}
}
void Msp3410ReadSubI2C(int TxDataSize, UCHAR *pTxDataBuf,
int B_Length, UCHAR *Bp_Buffer)
{
TiDTV_I2cReadAfterWrite(msp3410_I2C_CHANNEL, 1, TxDataSize, pTxDataBuf,
B_Length, Bp_Buffer, OS_TICKS_PER_SEC / 2);
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -