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

📄 chips.c

📁 ct952 source code use for Digital Frame Photo
💻 C
📖 第 1 页 / 共 5 页
字号:
            HAL_WriteAM(HAL_AM_SURR_EN, 0);        }        // TCC274, move to a function to set variable        _SetDualMode();        HAL_WriteAM(HAL_AM_CHANNEL_MODE, _bChannelMode); //_bChannelMode        HAL_WriteAM(HAL_AM_LFE_OUTPUT, _bLFE); //_bLFE        HAL_WriteAM(HAL_AM_AC3_KOK_MODE, __bVocal); //__bVocal        HAL_WriteAM(HAL_AM_DUAL_MODE, _bDualMode); //_bDualMode        if(_bSpDifMode != 2)        {            HAL_WriteAM(HAL_AM_SPDIF_MODE, (_bSpDifMode&0x01)); //0:pcm 1:raw        }        else        {   // Joey2.51: if _bSpDifMode == 2 (spdif off), switch to spdif raw, because spdif PCM not supported by DTS            HAL_WriteAM(HAL_AM_SPDIF_MODE, 1);  // spdif raw (avoid DTS hang)        }        HAL_WriteAM(HAL_AM_PCM_SCALE, __dwVolAudio); //16 bits        __dwPreVolAudio = __dwVolAudio;        // Joey2.75: Add AC3 downmix scale control. The scale value can be 0~15.        HAL_WriteAM(HAL_AM_AC3_DOWN_MIX_SCALE, 15);        //Kevin1.26, SPDIF enable -> fade in        //Kevin1.10, Control Analog Output on/off        CHIPS_ControlAnalogOutput();        // LLY.103-1, replace with function API        CHIPS_ControlSPDIFOutput();        // Brian.173, enable the MIC input after mute        CHIPS_MICEnable(TRUE);    }    return TRUE;}//  *********************************************************************//  Function    :  CHIPS_MICEnable//  Description :  Enable/Disable MIC Input.//  Arguments   :  bEnable : enable or disable MIC input//              :  TRUE: enable//              :  FASLE: disable//  Return      :  none.//  Change      ://  Side Effect ://  *********************************************************************// Brian.173// LLY.273-1, must add "NOAGRES" pragma// because CHIPS_MICEnable() --> CHIPS_OpenAudio() --> ISR//#pragma NOAREGS         // may be called in ISRvoid CHIPS_MICEnable(BYTE bEnable){#ifdef NO_MIC_INPUT    //kevin0.66, fix pause->normal play => noise (HW bug: Proc1 access AIU => unpack error)	HAL_WriteAM(HAL_AM_MIC_PCM_SCALE, 0);#else //#ifdef NO_MIC_INPUT    if(bEnable)    {        //kevin0.66, fix pause->normal play => noise (HW bug: Proc1 access AIU => unpack error)        HAL_WriteAM(HAL_AM_MIC_PCM_SCALE, __wMICVol);    }    else    {        //kevin0.66, fix pause->normal play => noise (HW bug: Proc1 access AIU => unpack error)        HAL_WriteAM(HAL_AM_MIC_PCM_SCALE, 0);    }#endif //#ifdef NO_MIC_INPUT}//  *********************************************************************//  Function    :  CHIPS_SoftMute//  Description :  Do soft mute.//  Arguments   :  none.//  Return      :  none.//  Change      ://  Side Effect ://  *********************************************************************// LLY.273, remodify the procedure// LLY.273-1, must add "NOAGRES" pragma// because CHIPS_SoftMute() --> CHIPS_OpenAudio() --> ISR//#pragma NOAREGS         // may be called in ISRvoid CHIPS_SoftMute(void){    DWORD dwTimerCount_FadeOut; //kevin1.07    DWORD dwTemp;    HAL_ReadAM(HAL_AM_REAL_PCM_SCALE, &dwTemp);    if(dwTemp == 0)    {        HAL_WriteAM(HAL_AM_PCM_SCALE, 0);        return;    }    HAL_WriteAM(HAL_AM_PCM_SCALE, 0);    //kevin1.07, wait for fade out to be done    dwTimerCount_FadeOut = OS_GetSysTimer();    while((OS_GetSysTimer()-dwTimerCount_FadeOut) < COUNT_250_MSEC) //kevin1.11, 50M->250M    {        //kevin1.11, fix fade out may not be completed        HAL_ReadAM(HAL_AM_REAL_PCM_SCALE, &dwTemp);        if(dwTemp == 0)        {            OS_DelayTime(COUNT_50_MSEC);            // LLY2.61, porting Chuan's code to pass Dolby Certification -- mute is 0dB#if defined(CT909P_IC_SYSTEM) || defined(CT909G_IC_SYSTEM)            REG_PLAT_RESET_CONTROL_ENABLE = PLAT_RESET_AIU_DAC_ENABLE;            REG_PLAT_RESET_CONTROL_DISABLE = PLAT_RESET_AIU_DAC_DISABLE;#endif // #if defined(CT909P_IC_SYSTEM) || defined(CT909G_IC_SYSTEM)            break;        }        OS_YieldThread();    }    /*    if(dwTemp != 0)    {        DBG_Printf(DBG_THREAD_PARSER, DBG_INFO_PRINTF, "PCM sca=%lx\n", dwTemp);    }    */}// Brian.170//  *********************************************************************//  Function    :   CHIPS_SWMICDetect()//  Description :   It read the MIC input and compare it with threshlod,//                  and determine the __sbMICDetect value//  Arguments   :   None//  Return      :   None//  Side Effect ://  *********************************************************************void CHIPS_MICDetect(void){}// J500KWShih_231, mpeg error concealment//  *********************************************************************//  Function    :   CHIPS_ControlMPEGEErrorConcealment()//  Description :   It read the MIC input and compare it with threshlod,//                  and determine the __sbMICDetect value//  Arguments   :   None//  Return      :   None//  Side Effect ://  *********************************************************************void CHIPS_ControlMPEGEErrorConcealment(BYTE bEnable){    HAL_WriteAM(HAL_AM_WMA_MPEG_ERROR_CONCEALMENT_MASK, bEnable);}#ifdef DOLBY_CERTIFICATION //kevin0.80BYTE CHIPS_Dolby_ProcessKey(void){    if (__bKey==KEY_N1)    {            static BYTE    _bCenterDelay=0; //bit[2:0]: 0~5            switch (_bCenterDelay)            {            case 0:                strcpy(__bMsgString, "c delay0");                break;            case 1:                strcpy(__bMsgString, "c delay1");                break;            case 2:                strcpy(__bMsgString, "c delay2");                break;            case 3:                strcpy(__bMsgString, "c delay3");                break;            case 4:                strcpy(__bMsgString, "c delay4");                break;            case 5:                strcpy(__bMsgString, "c delay5");                break;            }            OSD_Output(MSG_STRING, 0, 0x3);            HAL_WriteAM( HAL_AM_CENTER_DELAY, _bCenterDelay);            _bCenterDelay++;            if (_bCenterDelay>5)                _bCenterDelay = 0;            return KEY_NO_KEY;    }    else if (__bKey==KEY_N2)    {        static BYTE    _bSurrDelay=0; //bit[7:3]: 0~31        switch (_bSurrDelay)        {        case 0:            strcpy(__bMsgString, "s delay0");            break;        case 1:            strcpy(__bMsgString, "s delay1");            break;        case 2:            strcpy(__bMsgString, "s delay2");            break;        case 3:            strcpy(__bMsgString, "s delay3");            break;        case 4:            strcpy(__bMsgString, "s delay4");            break;        case 5:            strcpy(__bMsgString, "s delay5");            break;        case 6:            strcpy(__bMsgString, "s delay6");            break;        case 7:            strcpy(__bMsgString, "s delay7");            break;        case 8:            strcpy(__bMsgString, "s delay8");            break;        case 9:            strcpy(__bMsgString, "s delay9");            break;        case 10:            strcpy(__bMsgString, "s delay10");            break;        case 11:            strcpy(__bMsgString, "s delay11");            break;        case 12:            strcpy(__bMsgString, "s delay12");            break;        case 13:            strcpy(__bMsgString, "s delay13");            break;        case 14:            strcpy(__bMsgString, "s delay14");            break;        case 15:            strcpy(__bMsgString, "s delay15");            break;        }        OSD_Output(MSG_STRING, 0, 0x3);        HAL_WriteAM( HAL_AM_SURROUND_DELAY, _bSurrDelay);        _bSurrDelay++;        if (_bSurrDelay>15)            _bSurrDelay = 0;        return KEY_NO_KEY;    }    else if (__bKey == KEY_N3)    {        static BYTE    bDownMixMode=0; //0~2        extern BYTE    _bChannelMode ;        extern char    _bLFE ;        switch (bDownMixMode)        {        case 0:            _bChannelMode=CHIPS_LCRLSRS;            _bLFE=1;            strcpy(__bMsgString, "5.1 ch");            break;        case 1:            _bChannelMode=CHIPS_LRD;            _bLFE=0;            CHIPS_DownMixMode(AC3_DOWNMIX_LTRT);            strcpy(__bMsgString, "2ch LtRt");            break;        case 2:            _bChannelMode=CHIPS_LR;            _bLFE=0;            CHIPS_DownMixMode(AC3_DOWNMIX_LORO);            strcpy(__bMsgString, "2ch LoRo");            break;        case 3:            _bChannelMode=CHIPS_LR;            _bLFE=0;            CHIPS_DownMixMode(AC3_DOWNMIX_AUTO);            strcpy(__bMsgString, "2ch Auto");            break;        }        CHIPS_OpenAudio(TRUE);        OSD_Output(MSG_STRING, 0, 0x5);        bDownMixMode++;        if (bDownMixMode>3)            bDownMixMode = 0;        return KEY_NO_KEY;    }    else if (__bKey == KEY_N4)    {        static BYTE    bACMOD=0;    //0~6        extern BYTE    _bChannelMode ;        extern char    _bLFE ;        //CHIPS_Initial (CHIPS_INIT_CHANNELMODE) ;        switch(bACMOD)        {        case 0:            _bChannelMode=CHIPS_C;            _bLFE=0;            strcpy(__bMsgString, "acmod1_0");            break;        case 1:            _bChannelMode=CHIPS_LR;            _bLFE=0;            strcpy(__bMsgString, "acmod2_0");            break;        case 2:            _bChannelMode=CHIPS_LRLS;            _bLFE=0;            strcpy(__bMsgString, "acmod2_1");            break;        case 3:            _bChannelMode=CHIPS_LRLSRS;            _bLFE=0;            strcpy(__bMsgString, "acmod2_2");            break;        case 4:            _bChannelMode=CHIPS_LCR;            _bLFE=0;            strcpy(__bMsgString, "acmod3_0");            break;        case 5:            _bChannelMode=CHIPS_LCRLS;            _bLFE=0;            strcpy(__bMsgString, "acmod3_1");            break;        case 6:            _bChannelMode=CHIPS_LCRLSRS;            _bLFE=1;            strcpy(__bMsgString, "acmod3_2");            break;        }        CHIPS_OpenAudio(TRUE);        OSD_Output(MSG_STRING, 0, 0x5);        bACMOD++;        if (bACMOD>6)            bACMOD = 0;        return KEY_NO_KEY;    }    else if (__bKey == KEY_N5)    {        static BYTE    bBassMode=0;    //0~3        switch (bBassMode)        {        case 0:            strcpy(__bMsgString, "no bass");            break;        case 1:            strcpy(__bMsgString, "conf 1");            break;        case 2:            strcpy(__bMsgString, "conf 3+sub");            break;        case 3:            strcpy(__bMsgString, "conf3 no sub");            break;        }        HAL_WriteAM(HAL_AM_BASS_MANAGE_CONFIG, bBassMode);        OSD_Output(MSG_STRING, 0, 0x5);        bBassMode++;        if (bBassMode>3)            bBassMode = 0;        return KEY_NO_KEY;    }    //kevin1.05, center/surr delay waveform inverse: add test key before doing/leaving delay testing    else if (__bKey == KEY_N6)    {    	strcpy(__bMsgString, "test delay");        HAL_WriteAM(HAL_AM_TEST_CENTERSURR_DELAY, 1);        OSD_Output(MSG_STRING, 0, 0x5);        return KEY_NO_KEY;    }    else if (__bKey == KEY_N7)    {    	strcpy(__bMsgString, "not test delay");        HAL_WriteAM(HAL_AM_TEST_CENTERSURR_DELAY, 0);        OSD_Output(MSG_STRING, 0, 0x5);        return KEY_NO_KEY;    }    return KEY_BYPASS;}#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -