⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tidtv_msp34x0g.c

📁 ti的数字电视芯片 tvp9000的源码
💻 C
📖 第 1 页 / 共 3 页
字号:
*	@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 + -