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

📄 chips.c

📁 ct952 source code use for Digital Frame Photo
💻 C
📖 第 1 页 / 共 5 页
字号:
                    _bLFE = 0;                }                break ;            default:                break;            }            switch(__SetupInfo.bAudioDigitalOut)            {            case SETUP_AUDIO_DIGITAL_OUT_SPDIF_PCM:                _bSpDifMode = 0;	//pcm                break;            case SETUP_AUDIO_DIGITAL_OUT_SPDIF_RAW:                _bSpDifMode = 1;	//raw                break;            case SETUP_AUDIO_DIGITAL_OUT_OFF:                _bSpDifMode = 2;	//off                break;            default:                break;            }        }        if(wInit & CHIPS_INIT_AC3KOKMODE)      // Initial AC3 Karaoke Mode        {            __bVocal = CHIPS_DEFAULT_AC3KOKMODE;        }        if(wInit & CHIPS_INIT_DUALMODE)        // Initial Dual Mode        {            _SetDualMode();        }        if(wInit & CHIPS_INIT_AUDTYPE) // Initial Audio Type        {            _SetAudio(__bAudioType);        }    }}//  *********************************************************************//  Function    :   CHIPS_KeyControl//  Description :   It will do key control according to the parameter//  Arguments   :   bKey:      The type of command//                      CHIPS_UP : control up 1 level//                      CHIPS_DOWN : control down 1 level//                      CHIPS_NORMAL : set to default level//                      CHIPS_TOGGLE : toggle between levels in range//                      CHIPS_LEVEL : return current level//                      CHIPS_SUPPORT : return if this function supported//  Return      :   TRUE : Supported/Succeeded//              :   FALSE : Not supported//  Change      :   Will turn off surround.//                  Will open audio if mute//  Side Effect :   Only MPEG1 and AC3 support key control//  *********************************************************************BYTE CHIPS_KeyControl(BYTE bKey){    BOOL fKey = TRUE;    //Kevin2.81, Filter if the desired function is supported or not in one file    if(!_CHIPS_FilterFunSupport(CHIPS_KEYCONTROL))    {        return FALSE;    }    // key-up/down will open volume    if(__btMute)    {        // J500KWShih_218, fixed mantis bug 1400 and 1563,        HAL_IOMute(FALSE);       __btMute = FALSE;       OSD_OUTPUT_MACRO(MSG_MUTE, __btMute, 0);    }    switch(bKey)    {    case CHIPS_UP:        __cKeyShift++;        if(__cKeyShift > NORMALKEY_OFFSET)        {            fKey = FALSE;            __cKeyShift = NORMALKEY_OFFSET;        }        break;    case CHIPS_DOWN:        __cKeyShift--;        if(__cKeyShift < (-1*(char)NORMALKEY_OFFSET))        {            fKey = FALSE;            __cKeyShift = -1 * (char)NORMALKEY_OFFSET;        }        break;    case CHIPS_NORMAL:        if(__cKeyShift == 0)        {            fKey = FALSE;        }        else        {            __cKeyShift = 0;        }        break ;    default:        break;    }    // J500KWShih_221a, if KEY does not need to change, we will not close/open audio.    if(fKey)    {        //Kevin1.01, avoid the bo noise when pressing key +/-        CHIPS_OpenAudio(FALSE);        //kevin1.07, move form CHIPS_OpenAudio        if(__cKeyShift < 0) // from -1 to -7        {            _wCHIPSTmp = -(__cKeyShift) | 0x8;        }        else // from 0 to 7        {            _wCHIPSTmp = __cKeyShift;        }        HAL_WriteAM(HAL_AM_KEYSHIFT, _wCHIPSTmp);        //kevin0.72, PCM / DTS also supports keyshift        if(__cKeyShift != 0)        {            HAL_WriteAM(HAL_AM_KEYSHIFT_EN, 1);        }        else        {            HAL_WriteAM(HAL_AM_KEYSHIFT_EN, 0);        }        CHIPS_OpenAudio(TRUE);    }	OSD_OUTPUT_MACRO(MSG_KEY, __cKeyShift+NORMALKEY_OFFSET, 1);    return TRUE;}//  *********************************************************************//  Function    :   CHIPS_ProLogicControl//  Description :   set ProLogic|| DM//  Arguments   :   None//  Return      :   None//  Side Effect :   None//  *********************************************************************//Kevin1.08, createvoid CHIPS_ProLogicControl(void){    //#define         W99AV_DM_PROLOGIC_ENABLE        0x0175c //1:enable  0:disable (If src > 2 ch, enable will be of no use)    //#define         W99AV_DM_PROLOGIC_OCFG          0x00de2    //bit[2:0] chancfg    //    011: L,R,C    //    110: L,R,Ls,Rs    //    111: L,R,Ls,Rs,C    //bit[5:3] decmode    //    000: ProLogic I    //    001: Virtual    //    010: Music    //    011: Movie    //    100: Matrix    //bit[7:6] samprate    //    00 : 48K    //    01 : 44.1K    //    10 : 32K    //#define         W99AV_DM_PROLOGIC_OCTRL         0x00de4 //default : 0x1b0    DWORD dwTemp;    BYTE bTemp;    //Kevin1.24, add protection    if(!(__dwSupportFeature & SUPPORT_FEATURE_PROLOGIC))    {        __SetupInfo.bAudioPrologic = SETUP_AUDIO_PROLOGIC_OFF;    }    switch(__SetupInfo.bAudioPrologic)    {    case SETUP_AUDIO_PROLOGIC_PROLOGIC:        dwTemp = 0 << 3;        bTemp = 1;        break;    case SETUP_AUDIO_PROLOGIC_VIRTUAL:        dwTemp = 1 << 3;        bTemp = 0;        break;    case SETUP_AUDIO_PROLOGIC_MUSIC:        dwTemp = 2 << 3;        bTemp = 0;        break;    case SETUP_AUDIO_PROLOGIC_MOVIE:        dwTemp = 3 << 3;        bTemp = 1;        break;    case SETUP_AUDIO_PROLOGIC_MATRIX:        dwTemp = 4 << 3;        bTemp = 0;        break;    case SETUP_AUDIO_PROLOGIC_OFF:    default:        HAL_WriteAM(HAL_AM_PROLOGIC_ENABLE, 0);        return;    }    switch(__SetupInfo.bAudioAnalogOut)    {    case SETUP_AUDIO_ANALOG_OUT_2CH: //Kevin1.10-2, disable Prologic for 2CH output        HAL_WriteAM(HAL_AM_PROLOGIC_ENABLE, 0);        return;    case SETUP_AUDIO_ANALOG_OUT_51CH:        if(__SetupInfo.bAudioCenter==SETUP_AUDIO_CENTER_ON && __SetupInfo.bAudioRear==SETUP_AUDIO_REAR_ON)        {            dwTemp |= 7;        }        else if(__SetupInfo.bAudioCenter==SETUP_AUDIO_CENTER_ON && __SetupInfo.bAudioRear==SETUP_AUDIO_REAR_OFF)        {            dwTemp |= 3;        }        else if(__SetupInfo.bAudioCenter==SETUP_AUDIO_CENTER_OFF && __SetupInfo.bAudioRear==SETUP_AUDIO_REAR_ON)        {            dwTemp |= 6;        }        else        {            HAL_WriteAM(HAL_AM_PROLOGIC_ENABLE, 0);            return;        }    default:        break;    }    HAL_ReadInfo(HAL_INFO_AUDIOFREQ, &__dwTemp);    //Kevin1.20, use the most close freq settings    if(__dwTemp < AUDIO_FREQ_44K)    {        dwTemp |= (2 << 6); //32K    }    else if(__dwTemp < AUDIO_FREQ_48K)    {        dwTemp |= (1 << 6); //44K    }    //else        //dwTemp |= (0<<6); //48K    /* //kevin909, add HAL_AM_PROLOGIC_SUR_DELAY later    //Kevin2.37, conflicts w/ AC3    //HAL_WriteDM(HAL_AM_PROLOGIC_SUR_DELAY, (DWORD)bTemp);    HAL_WriteAM(HAL_AM_PROLOGIC_SUR_DELAY, 0);    */    HAL_WriteAM (HAL_AM_PROLOGIC_CTRL, 0x1b0);    HAL_WriteAM (HAL_AM_PROLOGIC_CFG, dwTemp);  //kevin0.69    HAL_WriteAM(HAL_AM_PROLOGIC_ENABLE, 1);    //Kevin1.24, let Prologic & Surround mutual exclusive    if(__bSurround)    {       __bSurround = 0;       OSD_Output(MSG_SURROUND, __bSurround, 0x0);    }}//  *********************************************************************//  Description :   set HDCD DM//  Arguments   :   None//  Return      :   None//  *********************************************************************void CHIPS_ControlHDCD(void){	if( (__bAttrPlay==ATTR_CDDA) && ( __bCDDA_DTS==CDDA_PURE || __bCDDA_DTS==CDDA_HDCD || __bCDDA_DTS==CDDA_CDG )) //kevin0.80-2, add ATTR_CDDA protection    {        HAL_WriteAM(HAL_AM_HDCD_CTRL, 0x613c);        HAL_WriteAM(HAL_AM_PCM_MODE, 1);    }    //HDCD + Prologic => performance issue    if(__SetupInfo.bAudioPrologic != SETUP_AUDIO_PROLOGIC_OFF)    {        HAL_WriteAM(HAL_AM_PCM_MODE, 1);    }}//  *********************************************************************//  Function    :   CHIPS_Surround//  Description :   It will do surround according to the parameter//  Arguments   :   bKey:      The type of command//                      CHIPS_UP : control up 1 level//                      CHIPS_DOWN : control down 1 level//                      CHIPS_NORMAL : set to default level//                      CHIPS_TOGGLE : toggle between levels in range//                      CHIPS_LEVEL : return current level//                      CHIPS_SUPPORT : return if this function supported//  Return      :   TRUE : Supported/Succeeded//              :   FALSE : Not supported//  Change      :   Will turn off key control//  Side Effect :   Only MP3 doesn't support surround//  *********************************************************************BYTE CHIPS_Surround(BYTE bSurd){    //Kevin2.81, Filter if the desired function is supported or not in one place    if(!_CHIPS_FilterFunSupport(CHIPS_SURROUND))    {        return FALSE;    }    HAL_WriteAM(HAL_AM_PROLOGIC_ENABLE, 0);    //Kevin0.86, add to fix the "KEY_SURROUND but mute is not canceled" bug    // surround will open volume    if(__btMute)    {        // J500KWShih_218, fixed mantis bug 1400 and 1563,        HAL_IOMute(FALSE);       __btMute = FALSE;       OSD_OUTPUT_MACRO(MSG_MUTE, __btMute, 0);    }    switch(bSurd)    {    case CHIPS_UP:        if(__bSurround < CHIPS_SURROUND_TYPE)        {            __bSurround++;        }        break;    case CHIPS_DOWN:        if(__bSurround > CHIPS_SURROUND_NONE)        {            __bSurround--;        }        break;    case CHIPS_NORMAL:        __bSurround = CHIPS_SURROUND_NONE;        break ;    case CHIPS_TOGGLE:        __bSurround++;        __bSurround %= (CHIPS_SURROUND_TYPE + 1);        break;    case CHIPS_LEVEL:        return __bSurround;    case CHIPS_SUPPORT:        return TRUE;    default:        break;    }    CHIPS_OpenAudio(TRUE);    OSD_OUTPUT_MACRO(MSG_SURROUND, __bSurround, 0x3);    return TRUE ;}//  *********************************************************************//  Function    :   CHIPS_Echo//  Description :   It will do echo according to the parameter//                  w9922qf doesn't support echo//  Arguments   :   bEcho:      The type of command//                      CHIPS_UP : control up 1 level//                      CHIPS_DOWN : control down 1 level//                      CHIPS_NORMAL : set to default level//                      CHIPS_TOGGLE : toggle between levels in range//                      CHIPS_LEVEL : return current level//                      CHIPS_SUPPORT : return if this function supported//  Return      :   TRUE : Supported/Succeeded//              :   FALSE : Not supported//  Change      ://  Side Effect ://  *********************************************************************BYTE CHIPS_Echo(BYTE bEcho){    //Kevin2.81, Filter if the desired function is supported or not in one place    if(!_CHIPS_FilterFunSupport(CHIPS_ECHO))    {        return FALSE;    }    switch(bEcho)    {    case CHIPS_UP:        if(++__bEchoLevel > ECHO_LEVEL)        {            __bEchoLevel = ECHO_LEVEL;        }        break;    case CHIPS_DOWN:        if(__bEchoLevel > 0)        {            __bEchoLevel--;        }        break;

⌨️ 快捷键说明

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