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

📄 w99av2.bak.c

📁 车载电子影音系统dvd播放系统原程序代码
💻 C
📖 第 1 页 / 共 5 页
字号:
        *pdwData = W99AV_ReadRegDW (VBRR);        return TRUE;        break;    // Chuan0.86, Base on last discussion,     // W99AV_INFO_AUDIO_REMAIN: Return the (Audio Buff1 + Audio Buff2) remainder    // W99AV_INFO_AUDIO1_REMAIN: Return the audio buffer 1 remainder    // W99AV_INFO_AUDIO2_REMAIN: Return the audio buffer 2 remainder or 0(audio buff2 doesn't exist)    case    W99AV_INFO_AUDIO_REMAIN : // remainder of audio bitstream buffer in DRAM        // audio remainder returns DWORD, so we don't modify it        if (__bW99AVABuf2Def)            W99AV_ReadDM(W99AV_DM_AUDIO2_REMAIN, pdwData);        else            *pdwData = 0;        *pdwData += W99AV_ReadRegDW (ABRR) ;        return TRUE;        break;            case    W99AV_INFO_AUDIO1_REMAIN : // remainder of audio bitstream buffer in DRAM        *pdwData = W99AV_ReadRegDW (ABRR) ;        return TRUE;        break;            case    W99AV_INFO_AUDIO2_REMAIN : // remainder of audio bitstream buffer in DRAM        //Kevin1.25, A2-Rem=SPDIF raw W-R ptr for one buffer audio type such as AC3/DTS        //if (__bW99AVABuf2Def)        W99AV_ReadDM(W99AV_DM_AUDIO2_REMAIN, pdwData);        //else        //    *pdwData = 0;        return TRUE;        break;    case    W99AV_INFO_RISC_PC :        _dwTemp1=W99AV_ReadRegDW(DEBR);        *pdwData=LOWORD(_dwTemp1);        return TRUE;        break;    case    W99AV_INFO_DSP_PC :        _dwTemp1=W99AV_ReadRegDW(DEBR);        *pdwData=HIWORD(_dwTemp1);        return TRUE;        break;    case    W99AV_INFO_VHSIZE :        return W99AV_ReadDRAMData(W99AV_DRAM_VHSIZE,pdwData);        break;    case    W99AV_INFO_STC :        // LLY.161-2, remove _ReadSysRegW() function,        // because it can be replaced with W99AV_ReadRegW()        //*pdwData = _ReadSysRegDW (STCR) ;        *pdwData = W99AV_ReadRegDW(STCR) ;        return TRUE;        break ;        // TCC038, for getting SCR value    case    W99AV_INFO_SCR :        // LLY.161-2, remove _ReadSysRegW() function,        // because it can be replaced with W99AV_ReadRegW()        //*pdwData = _ReadSysRegDW (SCRR) ;        *pdwData = W99AV_ReadRegDW(SCRR) ;        return TRUE;        break ;    // LLY.171, get the samples/frame -- must use 20011214 DSP code    // And, DSP will report the value base on different sample frequence    // But, only support this feature from BB5580B    // Chuan2.80a, Now just support DBB up.    case    W99AV_INFO_SAMPLES_PER_FRAME:        W99AV_ReadDM(W99AV_DM_MPEG_SAMPLE_NUM, pdwData);        return TRUE;        break;    case    W99AV_INFO_AUDIOFREQ :        //Kevin1.24a, MP3/MP2 bitrate        if( __bAudioType==HAL_AUDIO_MP3 || __bAudioType==HAL_AUDIO_MP2 )        {                W99AV_ReadDM (W99AV_DM_BITRATE_MP3, &_dwTemp2) ;                _dwTemp2 &= 0x000F;                                W99AV_ReadDM (W99AV_DM_FREQ_MP3_LSF, &_dwTemp1) ;                if (_dwTemp1)                     __wW99AVAudioBitrate = aMP3LSFBitrate[(BYTE)(_dwTemp2 & 0x000F)];                else                 {                    if (__bAudioType==HAL_AUDIO_MP3)                        __wW99AVAudioBitrate = aMP3Bitrate[(BYTE)(_dwTemp2 & 0x000F)];                    else                        __wW99AVAudioBitrate = aMP2Bitrate[(BYTE)(_dwTemp2 & 0x000F)];                }        }#ifdef  SUPPORT_MPEG_AUDIO_UP_SAMPLE        if( (__bAudioType==HAL_AUDIO_MPG) || (__bAudioType==HAL_AUDIO_MP3) || (__bAudioType==HAL_AUDIO_MP2) )        {            W99AV_ReadDM(W99AV_DM_CURRENT_FREQ, &_dwTemp1);            // Micky1.20, 4M flash, reduce common bank lib. use switch(DWORD) will invoke C51 lib (?C?LCASE), 58 bytes            switch((BYTE)_dwTemp1)            {            case    16:                *pdwData = AUDIO_FREQ_16K ;                __dwW99AVAudioFreq=16000;                break ;            case    32:                *pdwData = AUDIO_FREQ_32K ;                __dwW99AVAudioFreq=32000;                break ;            case    24:                *pdwData = AUDIO_FREQ_24K ;                __dwW99AVAudioFreq=24000;                break ;            case    48:                *pdwData = AUDIO_FREQ_48K ;                __dwW99AVAudioFreq=48000;                break ;            case    22:                *pdwData = AUDIO_FREQ_22K ;                __dwW99AVAudioFreq=22050;                break ;            case    44:            default:                *pdwData = AUDIO_FREQ_44K ;                __dwW99AVAudioFreq=44100;                break ;            }        }        else if(__bAudioType==HAL_AUDIO_WMA) //Kevin1.08        {            W99AV_ReadDM(W99AV_DM_FREQ_WMA, &_dwTemp1);            // Micky1.20, 4M flash, reduce common bank lib. use switch(DWORD) will invoke C51 lib (?C?LCASE), 58 bytes            switch((WORD)_dwTemp1)            {            case    0x3e80:            case    0x1f40:                *pdwData = AUDIO_FREQ_16K ;                __dwW99AVAudioFreq=16000;                break ;            case    0x7d00:                *pdwData = AUDIO_FREQ_32K ;                __dwW99AVAudioFreq=32000;                break ;            case    0x5dc0:            case    0x2ee0:                *pdwData = AUDIO_FREQ_24K ;                __dwW99AVAudioFreq=24000;                break ;            case    0xbb80:                *pdwData = AUDIO_FREQ_48K ;                __dwW99AVAudioFreq=48000;                break ;            case    0x5622:            case    0x2b11:                *pdwData = AUDIO_FREQ_22K ;                __dwW99AVAudioFreq=22050;                break ;            case    0xac44:            default:                *pdwData = AUDIO_FREQ_44K ;                __dwW99AVAudioFreq=44100;                break ;            }        }        else if(__bAudioType==HAL_AUDIO_AC3)  // AC3        {            W99AV_ReadDM (W99AV_DM_FREQ_AC3, &_dwTemp1) ;            _dwTemp1 = (_dwTemp1) & 0x0003 ;            // Micky1.20, 4M flash, reduce common bank lib. use switch(DWORD) will invoke C51 lib (?C?LCASE), 58 bytes            switch((BYTE)_dwTemp1)            {            case 0 :                *pdwData = AUDIO_FREQ_48K ;                __dwW99AVAudioFreq=48000;                break ;            case 1 :                *pdwData = AUDIO_FREQ_44K ;                __dwW99AVAudioFreq=44100;                break ;            case 2 :                *pdwData = AUDIO_FREQ_32K ;                __dwW99AVAudioFreq=32000;                break ;            }        }        else if(__bAudioType==HAL_AUDIO_LPCM) // LPCM        {            W99AV_ReadDM (W99AV_DM_LPCM_FREQ, &_dwTemp1) ;            _dwTemp1 = (_dwTemp1) & 0x0007 ;            // Micky1.20, 4M flash, reduce common bank lib. use switch(DWORD) will invoke C51 lib (?C?LCASE), 58 bytes            switch((BYTE)_dwTemp1)            {            case 2 :                *pdwData = AUDIO_FREQ_48K ;                __dwW99AVAudioFreq=48000;                break ;            case 3 :                *pdwData = AUDIO_FREQ_96K ;                __dwW99AVAudioFreq=96000;                break ;            }        }                //Kevin1.20, set default audio freq for PCM/DTS        else if(__bAudioType==HAL_AUDIO_PCM) // PCM        {            *pdwData = AUDIO_FREQ_44K ;            __dwW99AVAudioFreq=44100;                                            }                    else if(__bAudioType==HAL_AUDIO_DTS) // DTS        {            *pdwData = AUDIO_FREQ_48K ;            __dwW99AVAudioFreq=48000;                                            }                 #else   //  #ifdef SUPPORT_MPEG_AUDIO_UP_SAMPLE        if ((__wW99AVAVIDRLow & 0xF000) == 0xC000)  // MPEG        {            W99AV_ReadDM (W99AV_DM_FREQ_VCD, &_dwTemp1) ;            _dwTemp1 = _dwTemp1 & 0x0003 ;            // Micky1.20, 4M flash, reduce common bank lib. use switch(DWORD) will invoke C51 lib (?C?LCASE), 58 bytes            switch((BYTE)_dwTemp1)            {            case 0 :                *pdwData = AUDIO_FREQ_44K ;                __dwW99AVAudioFreq=44100;                break ;            case 1 :                *pdwData = AUDIO_FREQ_48K ;                __dwW99AVAudioFreq=48000;                break ;            case 2 :                *pdwData = AUDIO_FREQ_32K ;                __dwW99AVAudioFreq=32000;                break ;            }        }        else if ((__wW99AVAVIDRLow & 0xF000) == 0x8000)  // AC3        {            W99AV_ReadDM (W99AV_DM_FREQ_AC3, &_dwTemp1) ;            _dwTemp1 = (_dwTemp1) & 0x0003 ;            // Micky1.20, 4M flash, reduce common bank lib. use switch(DWORD) will invoke C51 lib (?C?LCASE), 58 bytes            switch((BYTE)_dwTemp1)            {            case 0 :                *pdwData = AUDIO_FREQ_48K ;                __dwW99AVAudioFreq=48000;                break ;            case 1 :                *pdwData = AUDIO_FREQ_44K ;                __dwW99AVAudioFreq=44100;                break ;            case 2 :                *pdwData = AUDIO_FREQ_32K ;                __dwW99AVAudioFreq=32000;                break ;            }        }        else if ((__wW99AVAVIDRLow & 0xF000) == 0xA000) // LPCM        {            W99AV_ReadDM (W99AV_DM_LPCM_FREQ, &_dwTemp1) ;            _dwTemp1 = (_dwTemp1) & 0x0007 ;            // Micky1.20, 4M flash, reduce common bank lib. use switch(DWORD) will invoke C51 lib (?C?LCASE), 58 bytes            switch((BYTE)_dwTemp1)            {            case 2 :                *pdwData = AUDIO_FREQ_48K ;                __dwW99AVAudioFreq=48000;                break ;            case 3 :                *pdwData = AUDIO_FREQ_96K ;                __dwW99AVAudioFreq=96000;                break ;            }        }        else    // treated as MP3        {            // TCC1.00, for MP3 new frequencies            W99AV_ReadDM (W99AV_DM_FREQ_MP3_LSF, &_dwTemp1) ;            _dwTemp1 = (_dwTemp1) & 0x0003 ;            if (_dwTemp1 == 0)            {                W99AV_ReadDM (W99AV_DM_FREQ_MP3, &_dwTemp1) ;                _dwTemp1 = (_dwTemp1) & 0x0003 ;                // Micky1.20, 4M flash, reduce common bank lib. use switch(DWORD) will invoke C51 lib (?C?LCASE), 58 bytes                switch((BYTE)_dwTemp1)                {                case 0 :                    *pdwData = AUDIO_FREQ_44K ;                    __dwW99AVAudioFreq=44100;                    break ;                case 1 :                    *pdwData = AUDIO_FREQ_48K ;                    __dwW99AVAudioFreq=48000;                    break ;                case 2 :                    *pdwData = AUDIO_FREQ_32K ;                    __dwW99AVAudioFreq=32000;                    break ;                }            }            else            {                W99AV_ReadDM (W99AV_DM_FREQ_MP3, &_dwTemp1) ;                _dwTemp1 = (_dwTemp1) & 0x0003 ;                // Micky1.20, 4M flash, reduce common bank lib. use switch(DWORD) will invoke C51 lib (?C?LCASE), 58 bytes                switch((BYTE)_dwTemp1)                {                case 0 :                    *pdwData = AUDIO_FREQ_22K ;                    __dwW99AVAudioFreq=22050;                    break ;                case 1 :                    *pdwData = AUDIO_FREQ_24K ;                    __dwW99AVAudioFreq=24000;                    break ;                case 2 :                    *pdwData = AUDIO_FREQ_16K ;                    __dwW99AVAudioFreq=16000;                    break ;                }            }        }#endif  //  #ifdef SUPPORT_MPEG_AUDIO_UP_SAMPLE        return TRUE ;        break ;    case    W99AV_INFO_CDDA_FORMAT:        W99AV_ReadDM(W99AV_DM_CD_DTS, &_dwTemp1);        // Micky1.20, 4M flash, reduce common bank lib. use switch(DWORD) will invoke C51 lib (?C?LCASE), 58 bytes        switch((BYTE)_dwTemp1)        {        case    0:            *pdwData=W99AV_PCM_CDDA_FORMAT;            break;        case    1:            *pdwData=W99AV_DTS_CDDA_FORMAT;            break;        // LLY.161, DSP can't detect ok for CDDA format        case    2:        default:            *pdwData=W99AV_UNKNOWN_CDDA_FORMAT;            break;

⌨️ 快捷键说明

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