?? w99av2.c
字號:
*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 + -