亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? monitor.c

?? 車載電子影音系統dvd播放系統原程序代碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
            _bBrightnessDuration = 0;
        }
    }

// ** TCH0.65; begin... 
#ifdef SUPPORT_ANTISHOCK
{
	extern BYTE __bWrongPartNo;
    
        W99AV_ReadDRAMData ( 0xc9, & __dwTemp ); 
        if ( HIWORD(__dwTemp ) == 0x111)
        {
                __bWrongPartNo = TRUE;
                printf ( "\n *** Wrong Part [%lx]", __dwTemp ); // ** TCH0.65; 
        }
}
#endif
// ** TCH0.65; end... 


#ifdef  NOT_SUPPORT_HWINT
    ISR_Timer0();
    //DVD_047-1
    if (__btPlaying)
        ISR_INT1();
#endif  // #ifdef NOT_SUPPORT_HWINT
}


//  *********************************************************************
//  Function    :   MONITOR_AudioStream
//  Description :   Check audio bitrate for SVCD/MP3 title, and re-setting
//                  the correct value to audio DAC.
//  Arguments   :   None
//  Return      :   None
//  Side Effect :
//  *********************************************************************
void MONITOR_AudioStream(void)
{
    // some SVCD is not 48K??(It don't rain..., it's 44.1K)
    extern  BYTE    __bCheckAudioType;
    // LLY.101, replace "dwAudioFreq" with "_dwMONITORTemp"

    // monitor audio frequency and set DAC to correct freq.
    // continue check 5 times.
    if(__btPlaying)
    {
        if(__bCheckAudioType & CHECK_AUDIO_FREQ)
        {
            if ( HAL_Monitor(HAL_MONITOR_AUDIO_FREQ) )
            {
                // 1. read back audio frequency, and set audio DAC -- LLY.275a
                W99AV_ReadInfo(W99AV_INFO_AUDIOFREQ, &_dwMONITORTemp); //Step 2: DSP reads the header for frequency and waits.
                // LLY.101, re-adjust the control flow
                HAL_SetAudioDAC((BYTE)_dwMONITORTemp); //Step3: Host reads the frequency DM and sets correct ACLK frequency & programs ADAC. 


                // 2. read back the audio's samples/frame value -- LLY.171
                W99AV_ReadInfo(W99AV_INFO_SAMPLES_PER_FRAME, &_dwMONITORTemp);
                __wW99AVSamplesPerFrame=(WORD)_dwMONITORTemp;

                //Kevin1.23, Freq may change after changing track/file within 1 sec=> set prologic again
                CHIPS_ProLogicControl();

				//Kevin1.25, fix "SPDIF discont. while changing files" and "Freq wrong at file beginning" by programming ACLK & ADAC first                
				//Step4: host tells DSP to start decoding             
#ifdef SUPPORT_WMA 
                if(__bAttrPlay==ATTR_WMA)                              
                    W99AV_WriteDM(W99AV_DM_WMA_FREQ_READ_FLAG, 1);  
#endif                
                if(__bAttrPlay==ATTR_MP3)                            
                    W99AV_WriteDM(W99AV_DM_MP3_FREQ_READ_FLAG, 1);  


                __bCheckAudioType &= ~CHECK_AUDIO_FREQ;

            }
        }
        // wyc.170-2, monitor the audio stream and if need to check LPCM de-emphasis, we check the de-emphasis information
        // and set audio DAC in W6630.
#ifdef SUPPORT_AUDIO_DEEMPHASYS
        if (__bCheckAudioType & CHECK_LPCM_DEEMPHASIS)
        {
            if (HAL_Monitor(HAL_MONITOR_LPCM_DEEMPHASIS))
            {
                // wyc.275a, enhance de-emphasis code.
                W99AV_ReadInfo(W99AV_INFO_LPCM_DEEMPHASIS, &_dwMONITORTemp);
                if (_dwMONITORTemp)
                {
                    //Kevin2.37, add
                    __bHAL1_Deemphasis = TRUE; //referenced by _ProgramAudioDAC()
                    
                    // Read back audio frequency, and re-setting audio DAC -- LLY.275a
                    W99AV_ReadInfo(W99AV_INFO_AUDIOFREQ, &_dwMONITORTemp);
                    HAL_SetAudioDAC((BYTE)_dwMONITORTemp);
                }
                __bCheckAudioType &= ~CHECK_LPCM_DEEMPHASIS;
            }
        }
#endif //
        // end ..

        // LLY.161-2, it's unnecessary by 20010928 DSP code
        // because detecting CDDA method has modified
        /*
        // LLY.101, run time detect CDDA format
        if(__bCheckAudioType & CHECK_CDDA_FORMAT)
        { 
            if(HAL_Monitor(HAL_MONITOR_CDDA_FORMAT) )
            {
                W99AV_ReadInfo(W99AV_INFO_CDDA_FORMAT, &_dwMONITORTemp);
                __bCDDA_DTS &= 0xF0; // clear bit[3:0] first
                if(_dwMONITORTemp== W99AV_DTS_CDDA_FORMAT)
                {
                     // LLY.103-1, don't control SPDIF_MUTE procedure by MONITOR module
                     // only let CHIPS to control this procedure : CHIPS_ControlSPDIFOutput()
                     //W99AV_WriteDM (W99AV_DM_SPDIF_MUTE, 1) ;   // Turn-on SPDIF
                     // LLY.161, set CDDA bitstream format
                     __bCDDA_DTS |= CDDA_BITSTREAM_DTS;
                }
                else
                {
                     // LLY.102-1, disable PARFIFOCTLR[7] to 0
                     // let parser know that the stream is pure CDDA format
                     __wW99AVPARFIFOCTLRLow &= 0xFF7F;
                     W99AV_WriteRegDW (PARFIFOCTLR, __wW99AVPARFIFOCTLRLow, __wW99AVPARFIFOCTLRHigh) ;
                     // LLY.104, tell dsp start to decode pure CDDA,
                     // othersise, dsp will hang
                     W99AV_WriteDM (0x705, 1) ;
                     // LLY.161, set CDDA bitstream format
                     __bCDDA_DTS |= CDDA_BITSTREAM_PURE;
                }
                // LLY.161, tell OSD to update disc type info.
                OSD_Output(MSG_DISCTYPE, __wDiscType, 0x0);
                __bCheckAudioType &= ~CHECK_CDDA_FORMAT;
                // LLY.103-1, re-call HAL_SetAudioType() to let CHIPS
                // issue W99AV_DM_SPDIF_MUTE control base on correct __bCDDA_DTS value
                CHIPS_ControlSPDIFOutput();
            }
        }
        */
    }
}


//  ************************************************************************
//  Function    :   MONITOR_CheckBuffer
//  Description :   Monitor buffer fullness or playing range for different
//                  playing mode. It also do the buffer control and check
//                  some info. : Repeat AB, GotoTime, NPF/ Freeze/ SF
//                  / SCB/ SCF
//  Arguments   :   NULL
//  Return      :   TRUE
//  Side Effect :
//  ************************************************************************
BIT  MONITOR_CheckBuffer(void)
{
    // REPEAT AB flow
    // Set A poiint-> Set B point
    // check reaching B point->Play from A point->check reaching B point...
    if ( __bRepeatAB == REPEAT_AB )
    {
#ifdef  _WINDVD
        if (__wDiscType & BOOK_DVD) // DVD title is controled by CELL module
            return TRUE;
#endif  // #ifdef _WINDVD

        // If Current time already reach B point(__dwTimeB) must turn back
        // to play A point(__dwTimeA)
        //LJY1.22, LJY1.11b, update __dwTimeNow for repeatAB.
        UTL_GetCurrentTime(); 
//LJY1.22, LJY1.11b, LJY1.21, fix VCD repeatAB time incorrect issue for anti-shock mode, need to re-calculate __dwTimeNow due to enlarged buffer.
        //LJY1.24a, using UTL_EstimateBufferTime() for code refinement.        
        __dwTemp = UTL_EstimateBufferTime();            

        if((__dwTimeNow - __dwTemp) >= __dwTimeB)
        {
            // must jump data back to A point
            // the action is the same as GOTOTIME
            __dwGoToTime=__dwTimeA;
            __btNewTime=TRUE;   // flag indicate that need perform GOTOTIME
        }   // end checking B point
    }   // if ( __bRepeatAB == REPEAT_AB )

    // next play must play from __dwGoToTime
    if (__btNewTime)    // GOTOTIME or REPEAT AB B->A
    {

        //DVD_049MickyGoTime
        // the reset point shall be before starting A point
        _Play_TimeA();
    }   // End of if (__btNewTime)
    // wyc1.21, Update CoCo's code for C3 retry.
    //CoCo.C3-retry
#if defined(SUPPORT_JPEG_C3) || defined(SUPPORT_MP3_C3)
    if (W99AV_GetPSRDW() & INT_AINT)
    {
        //this sector have bad bits that C3 cannot fix and DSP will enter an infinite loop
        //F/W needs to resend bitstream and set dm(crc_sync_en)[6] to zero and then DSP can exit an infinite loop
        W99AV_ReadDM(W99AV_DM_CRC_ENABLE, &__dwTemp);
        if (__dwTemp & 0x40)
        {
            __bC3Retry = TRUE;
            
            HAL_CheckCDIFbyISR(HAL_CDIF_FREEZE_TIME, 0);
            __dwIER &= ~INT_AINT;
        }
    }
    if ((__bC3Retry) && (!__bDVDROM))
    {
        if ((__bAttrPlay == ATTR_MP3) || (__bAttrPlay == ATTR_JPG) || (__bAttrPlay == ATTR_MP2))
        {
            //Get the wrong M,S,F from DM (reported by DSP)
            W99AV_ReadDM(W99AV_DM_HEADER_MIN, &__dwTemp);
            __bMin = (BYTE)__dwTemp;
            W99AV_ReadDM(W99AV_DM_HEADER_SEC, &__dwTemp);
            __bSec = (BYTE)__dwTemp;
            W99AV_ReadDM(W99AV_DM_HEADER_SECTOR, &__dwTemp);
            __bFrame = (BYTE)__dwTemp;
                 
            __bMin= COMUTL_BCDtoDecimal ( __bMin );
            __bSec= COMUTL_BCDtoDecimal ( __bSec );
            __bFrame= COMUTL_BCDtoDecimal ( __bFrame );
            
            //clear bit 6 to let DSP leave the inifinite loop.
            W99AV_ReadDM(W99AV_DM_CRC_ENABLE, &__dwTemp);
            __dwTemp &= 0xFFFFFFBF; //clear bit 6
            W99AV_WriteDM(W99AV_DM_CRC_ENABLE, __dwTemp);

            // convert the MSF value into HSG
            __dwC3ResendSector = COMUTL_MSFtoHSG (MAKE_MSF(__bMin, __bSec, __bFrame));

            // Jump to new time, and open CD-IF
            if ((__dwC3ResendSector >= __dwTimeBegin ) && (__dwC3ResendSector <= __dwTimeEnd))
            {            
                if (!UTL_PlayFromTime (__dwC3ResendSector))
                {
                    SERVO_ReadSectors (__dwC3ResendSector - __dwTimeTorelence, __dwTimeEnd);
                    HAL_ControlCDIF(HAL_CDIF_OPEN);
                }

#ifdef _DEBUG_INFO
		    __dwC3RetryTimes++;
#endif
            }
                       
            __bC3Retry = FALSE;
        }
    }
#endif

//LJY2.30a, for checking AO in ISR
#ifdef CHECK_OVERFLOW_IN_ISR
            if(__bAudioOverflow)
            {
                W99AV_ReadInfo ( W99AV_INFO_AUDIO_REMAIN , &_dwMONITORTemp );                
                if(_dwMONITORTemp < __dwAOBuffer) //LJY2.33, reference __dwAOBuffer instead of __dwAUBuffer
                {
		    EX1 = 0 ;   //LJY2.33, move EX1=0 here             	
                    __bAudioOverflow = FALSE;                    
                    W99AV_ClearInterrupt(INT_AO);      
                    //EX1 = 0;                                      
                    __dwIER |= (INT_AO);  
                    W99AV_EnableInterrupt(__dwIER);
                    EX1 = 1 ;                   
                }
            }
#endif

    // monitor buffer fullness/ empty procedure
    switch ( __bModeCmd )
    {
        // ** S-TCH;
        // must check if CD-IF is closed when buffer underflow interrupt
        // occurred, then re-open CD-IF
    // wyc.275-PicCD, add KEY_STOP in this switch and make KEY_STOP in thumbnail mode to do buffer control.
    case    KEY_STOP:
    case    KEY_FF:
    case    KEY_PLAY :
    case    KEY_SF :
        // Micky2.78, fix VCD Step will hang and picture uncomplete(28C only)
        // Found on title "Christmas Song", several steps(>60~70) will hang at UV ready
        // modify the Step buffer control to be done by MONITOR_CheckBuffer.
    case    KEY_STEP:

        // TCC277a, must re-enable servo running because SF cmd will close it.
        // TCC278, add check KEY_STEP here as Micky moved the check here.
        if ( __bServoAutoCtrl && (__bModeCmd==KEY_SF ||__bModeCmd==KEY_STEP ))
        {
            HAL_ControlCDIF(HAL_CDIF_OPEN); // ** TCH0.48P;
            break;
        }
        // wyc.275e __bJPGVar BIT1 TRUE means play end.
        // wyc2.85, rename to __bJPGVar
        if (__bJPGVar & UTL_JPG_SMALL_SIZE) 
            __btPlayEnd = TRUE;
        // wyc.275-PicCD, add KEY_STOP in this switch and make KEY_STOP in thumbnail mode to do buffer control.
        //LJY277.3rd, enable checking for DIGEST mode
        if ((__bModeCmd == KEY_STOP) && (!__bThumbnailMode) 
#ifndef NO_DIGEST //LJY1.20, support 4M flash, remove digest            
            && (!__btDIGEST)
#endif            
            )
        //if ((__bModeCmd == KEY_STOP) && (!__bThumbnailMode))
            break;
        //DVD_046-1DVD_IF
        if ( __bServoAutoCtrl)
            break;

        //DVD021, MICKY: in pause/ play_end, do not need open CD-IF
        if (__btPause || __btPlayEnd)
            break;

        // Chuan 278 2002/10/23: Check DVDCTLR[0] = 1, specified sector MSF found flag.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产999精品久久久久久| 久久亚洲精品国产精品紫薇| 日韩视频在线你懂得| 中文在线一区二区| 青青草97国产精品免费观看无弹窗版 | 久久精品欧美日韩| 亚洲国产精品麻豆| 99久久精品一区| 337p日本欧洲亚洲大胆精品| 亚欧色一区w666天堂| av午夜一区麻豆| 久久久久久久网| 久久国产精品色| 欧美日韩视频在线观看一区二区三区| 国产欧美一区二区精品性| 天天操天天干天天综合网| 色哟哟日韩精品| 亚洲欧美自拍偷拍| 国产91精品一区二区麻豆网站| 日韩免费电影一区| 亚洲6080在线| 欧美日韩国产一级二级| 中文字幕日韩一区| av一区二区三区在线| 国产亚洲一区二区三区四区| 国产在线精品一区二区三区不卡| 欧美精品一级二级三级| 亚洲欧美日韩国产中文在线| 91影院在线观看| 中文字幕在线观看一区| 99精品桃花视频在线观看| 欧美韩日一区二区三区| 成人免费看片app下载| 国产精品伦一区| 成人免费不卡视频| 亚洲视频资源在线| 91麻豆精品秘密| 亚洲第一二三四区| 在线不卡一区二区| 国产在线视频精品一区| 国产亚洲福利社区一区| 成人免费视频播放| 亚洲精品伦理在线| 欧美日韩国产区一| 美国一区二区三区在线播放| 日韩欧美aaaaaa| 国产aⅴ精品一区二区三区色成熟| 久久久久国产免费免费| 国产999精品久久久久久绿帽| 中文字幕一区二区三区蜜月| 91美女视频网站| 午夜久久久久久久久久一区二区| 欧美日韩一区二区在线观看| 午夜精品久久久久久久蜜桃app| 欧美丰满少妇xxxbbb| 六月丁香综合在线视频| 亚洲成av人**亚洲成av**| 91精品国产一区二区三区| 美女视频一区二区| 国产精品久久久久久久久免费樱桃 | a级高清视频欧美日韩| 亚洲国产综合91精品麻豆 | 成人黄色一级视频| 性做久久久久久免费观看欧美| 欧美成人一区二区三区片免费 | 日本在线不卡视频一二三区| 久久一夜天堂av一区二区三区| 北岛玲一区二区三区四区| 亚洲香蕉伊在人在线观| 久久久亚洲午夜电影| 色欧美日韩亚洲| 国产在线精品免费av| 一区二区三区精密机械公司| 精品国产伦一区二区三区观看方式 | 亚洲国产日韩一级| 欧美精选一区二区| 精品中文字幕一区二区小辣椒| 久久久www成人免费无遮挡大片| 成人激情午夜影院| 亚洲国产成人av| 久久久亚洲精品石原莉奈| 福利一区二区在线| 一区二区三区中文字幕精品精品| 欧美写真视频网站| 久草在线在线精品观看| 国产精品日日摸夜夜摸av| 欧美日韩国产一二三| 香蕉成人啪国产精品视频综合网| 亚洲精品一区在线观看| aaa亚洲精品| 亚洲高清视频中文字幕| 久久久噜噜噜久久人人看 | 经典三级视频一区| 中文字幕一区视频| 日韩欧美一级片| 欧美亚洲国产一卡| 99视频精品在线| 免费精品视频最新在线| 最新热久久免费视频| 欧美r级电影在线观看| 91浏览器入口在线观看| 国产中文一区二区三区| 一区二区三区不卡视频在线观看| 亚洲国产精品v| 91精品国产综合久久久久久漫画 | 激情成人综合网| 丝袜美腿亚洲一区二区图片| 国产三级精品视频| 3d成人动漫网站| 一本高清dvd不卡在线观看| 狠狠色狠狠色综合系列| 婷婷综合另类小说色区| 国产精品国产三级国产aⅴ原创 | 日韩成人午夜电影| **欧美大码日韩| 亚洲人成网站影音先锋播放| 亚洲精品一区二区精华| 欧美网站一区二区| 91网站最新网址| 国产成人av影院| 精品一区二区三区不卡| 一区二区三区四区蜜桃| 国产精品另类一区| 久久久777精品电影网影网 | 国产精品一二三四| 亚洲激情图片小说视频| 亚洲一区二区三区爽爽爽爽爽| 中文字幕第一页久久| 久久久久久久久97黄色工厂| 精品精品欲导航| 欧美一区二区精品在线| 日韩一区二区三区在线| 91精品国产91综合久久蜜臀| 欧美变态tickle挠乳网站| 欧美大胆人体bbbb| 欧美精品一区在线观看| 国产日韩av一区| 国产日本亚洲高清| 中文字幕在线不卡国产视频| 亚洲国产成人一区二区三区| 亚洲欧美日韩国产中文在线| 综合激情网...| 亚洲一区二区欧美激情| 亚洲国产精品久久艾草纯爱| 天天综合日日夜夜精品| 奇米色777欧美一区二区| 韩国女主播成人在线| 国产乱码精品一区二区三区忘忧草| 国产一区啦啦啦在线观看| 国产精品综合一区二区| 成人性视频免费网站| 色综合久久99| 欧美区在线观看| 精品免费国产二区三区| 久久精品人人做人人爽人人| 国产精品欧美一级免费| 一区二区三区在线视频免费观看 | 亚洲曰韩产成在线| 日韩精品久久理论片| 捆绑调教一区二区三区| 韩国精品免费视频| 粉嫩av一区二区三区| 97精品视频在线观看自产线路二| 99天天综合性| 欧美日韩国产综合一区二区三区| 日韩免费高清电影| 亚洲婷婷国产精品电影人久久| 亚洲一区二区三区视频在线播放| 亚洲一区二区中文在线| 欧美日韩国产bt| 精品国产乱码91久久久久久网站| 国产女人18毛片水真多成人如厕| 亚洲一线二线三线视频| 久久精品国产亚洲高清剧情介绍| 成人小视频免费观看| 91免费观看视频| 国产拍揄自揄精品视频麻豆| 亚洲高清免费视频| 国产成人在线影院 | 国产乱人伦偷精品视频不卡| 91网站最新网址| 精品国产污污免费网站入口 | 精品国产自在久精品国产| 国产精品每日更新| 国产成人综合亚洲91猫咪| 欧美福利视频导航| 国产精品午夜在线| 九色综合国产一区二区三区| 91福利资源站| 国产欧美日韩三级| 亚洲成人久久影院| 欧美三级电影在线观看| 国产精品免费视频一区| 日本一不卡视频| 欧美日韩一区二区在线观看| 国产精品美女视频| 国产麻豆日韩欧美久久| 777色狠狠一区二区三区| 亚洲欧美日韩国产另类专区 | 丝瓜av网站精品一区二区 |