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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? monitor.c

?? 車載電子影音系統(tǒng)dvd播放系統(tǒng)原程序代碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
// The file "winav.h" must be included in first line
#include "winav.h"

#include "utl.h"
#include "hal.h"
#include "servo.h"
#include "input.h"
#include "chips.h"

#include "cdinfo.h"

#include "digest.h"

#include "navigate.h"
#include "cc.h"
#include "monitor.h"
#include "isr.h"
#include "osd.h"
#include "linear.h"
#include "cell.h"
#include "comutl.h"  // LLY.042-2
#include "vcd20.h"  // LLY.161-2
#include "thumb.h"  //CoCo.jpeg
#include "setup.h"      //Brian2.81
#include "avsys.h" //Kevin2.81-2
#include "ucode.h"
#ifdef SUPPORT_AVIN
#include "tft.h"
#endif
////////////////////////////////////////////////////////////////
// wyc2.80, default disable this define
//#define   ENABLE_ALWAYS_CHECK_SEQUENCEHEADER

// wyc1.22, add define to issuing KEY_STOP to stop playing scratched title when KEY_NEXT several times.
// wyc1.24a, re-arrange the recover path when disc is scratched and hardly to recover it.
// #define SCRATCH_ENTER_STOP_MODE
#define RECOVER_NORMAL      0
#define RECOVER_ENTER_STOP      1
#define RECOVER_GO_MENU_TITLE        2

#define ERROR_RECOVER_MODE      RECOVER_GO_MENU_TITLE

#if ERROR_RECOVER_MODE == RECOVER_GO_MENU_TITLE
BYTE    __bGoMENU_TITLE;
#endif //


#ifdef SERIAL_DEBUG
// Chuan1.00-2, define it to dump debug information
#define DUMP_DEBUGINFO
#endif
// Some extern variable which are defined in other module
// *** MULTI_DISC;
extern  BYTE    __bMinActual, __bSecActual;

//GOTOTIME use
extern  DWORD   __dwGoToTime;
extern  BIT     __btNewTime;
extern  BIT     __btPlayFromBegin;
extern  BIT     __btFromStopMode;

//REPEATAB use
extern  BYTE    __bRepeatAB;
extern  DWORD   __dwTimeA, __dwTimeB;   // record the times for repeatAB

//SLOW use
//extern  BIT     __btFreeze;

// The sectors to jump for each SCAN complete
// The sectors is defined in SCAN_GAP
extern  WORD    __wScanGap;

// recover stage usage
extern  BYTE    __bStillTime;   // record the Still Time (0: NONE, 0xFF: Infinite; Other: seconds.)
// DVD_161aMicky, remove unused cell variable.
//extern  BYTE    __bVOBUWait;
extern  BYTE    __bVOBUStill;

// wyc1.20, extern some variables from ISR for reducing common back code size.
extern  WORD IDATA      __wTempPSR;                     // record PSR value in ISR module
extern  DWORD    _dwDRAMValue;      // read DRAM value for ISR
// wyc1.24, extern variables for JPG recover mechanism.
extern  BYTE    __bFMJPGNext;
extern  DWORD   __dwFMJPGNextGap;

////////////////////////////////////////////////////////////////////////
// Some global variable
static  BYTE    __bCountCDDA2VCD;

//LJY1.23, LJY1.11b-2, for anti-shock error recovery
#ifdef SUPPORT_ANTISHOCK
DWORD __dwPrevTime;
BYTE __bSctErrCntr;
#endif
// TCC172r, this variable is not used in any module
//DWORD   __dwServoTime;
WORD            __wV_TEMP;                // record V_TEMP value

//DVD_037RECOVER, Recover stage usage
DWORD   __dwAudioFrames;
DWORD   __dwTimeHalt;
// wyc1.07, rename some variables.
BYTE    __bResetRecover;
// wyc1.23, modify __bTotalRecover to __bResetInitialCount for record the times of issuing function HAL_RealResetInitial
BYTE   __bResetInitialCount;
//BYTE    __bResetFailCount=0;  // wyc1.23, remove this variable
BYTE    __bTotalFailCount;
// wyc1.07, some new variables for new error concealment mechanism.
BYTE    __bDoActionInStage;
BYTE    __bSoftResetCount;
BYTE    __bNEXTPREVCount;
BYTE    __bJumpSectorCount;
WORD    __wJumpTime ;
// wyc1.21, add this variable to record last time jump time. If jump time of last time and this time are the same, then we assume CELL provide same time to us because of status abnormal.
// So F/W jump same time because CELL provide same time every time. If FRAME_ID detected but system still hang then F/W will involve in infinite loop because of every time enter
// stage 2 will jump same time. So need to add this variable to break the infinite loop by checking.
// we need to break it. So record it to check the infinite loop status and break them if needed.
WORD    __wPreJumpTime ;
// wyc1.10, because default now we will support soft reset when KEY_NEXT / KEY_PREV. So this variable need to modify to record if need to H/W reset. So rename it.
BYTE    __bNextHWReset;

// kwd1.05-4th declare new variable for error concealment
BYTE	_bSaveModeCmd;	


// #define _DEBUG_INFO
////////////////////////////////////////////////////////////////////////
// Some internal global variable
//DVD_039-1, recover stage usage -- keep SCR value
static DWORD    _dwTimeRecoverUsed;

// LLY.051, modify to fix linker error -- can't find ?CO?MONITOR
// while #define NO_SCREEN_SAVER
// LLY.050a, re-define for screen saver mode usage
#ifndef NO_SCREEN_SAVER

DWORD   _dwTimeWaitSCR;    // check time
int     _iSCR_XGap; // the gap for horizontal moving, 4N
int     _iSCR_YGap;  // the gap for vertical moving
// LLY.100a-1, don't give the default value for SCR (X,Y) start point
// because it will be calculated base on VDS/ HDS
WORD    _wSCRXPos; //=0x104L; // the horizontal start for screen saver, 4N
WORD    _wSCRYPos; //=0x12L;  // the vertical start for screen saver
#define SCRXOFFSET      0x4
#define SCRYOFFSET      0x2
DWORD   _dwMoveCnt;  // indicate the count for bitmap moving
#endif  // #ifndef NO_SCREEN_SAVER

#ifdef  SUPPORT_SCR_COLOR_CHANGE
#define COLOR_CHANGE_IDX   1  // define color change index
// LLY.102, indicate the next index of aRGBVal[] for color change usage
// 0x0 ~ 0xFE: means real index
// 0xFF: means the color of original bitmap
BYTE    _bSCRRGBIdx;
// LLY.102, define aRGBVal[] total number for color change usage
#define MAXNO_COLOR_CHANGE_SEQUENCE     0xB
// specify the color change sequence
// 1st item: total number
// last item: the original color for color change action
//            it can be get by read DRAM after OSD_ShowBitmap
DWORD   code    aRGBVal[]=
{
0x00000080, 0x000000FF, 0x00008000, 0x0000FF00,
0x00800000, 0x00FF0000, 0x00FF0080, 0x00FF00FF,
0x00FF8000, 0x00FFFF00, 0x00FFFF80,
};

// LLY.102, keep original RGB value
DWORD   _dwOldRGBVal;

//CK.102, for screen saver color palette transition
// _bCurX means current RGB value
// _bNextX means current RGB value
BYTE _bCurR, _bCurG, _bCurB;
BYTE _bNextR, _bNextG, _bNextB;

#else   // #ifdef SUPPORT_SCR_COLOR_CHANGE

DWORD   code    aRGBVal[]=
{
0
};
#endif  // #ifdef SUPPORT_SCR_COLOR_CHANGE

// LLY.101, define some internal global variable
DWORD   _dwMONITORTemp;

// wyc1.20, re-arrange the define of NO_SCREEN_SAVER
#ifndef NO_SCREEN_SAVER
// brian.155, for Multi-bitmap, mix ratio control
extern BYTE __bBitmapIndex; //brian, multiple bitmap screen saver
char    _cStep=0;
BYTE    __bFisrtLoad=TRUE;
DWORD __dwBitmapTBuffer, __dwBitmapBBuffer;
#endif
BYTE    _bBrightnessDuration;
// wyc.160
DWORD _dwCDDAScanTime;
BYTE _bReadCDDA;
// wyc1.25, two variable to force reset DSP when it is abnormal.
// wyc2.31, remove this variable.
//BYTE    __bNeedResetAudio;
WORD    __wAudioResetCount;
// wyc1.21, update CoCo's code for C3 retry.
//CoCo.C3-retry
#if defined(SUPPORT_JPEG_C3) || defined(SUPPORT_MP3_C3)
BYTE __bC3Retry;
DWORD __dwC3ResendSector;
#ifdef _DEBUG_INFO
DWORD __dwC3RetryTimes;
#endif
extern BYTE  IDATA     __bMin, __bSec, __bFrame;
#endif

#ifdef SUPPORT_RISC_DETECT_ERROR //CoCo2.32
DWORD __dwErrorCount;
DWORD   __dwErrorDisplay;       // ** TCH2.37; 
#endif
// wyc2.39, for martking non-playable MP3 file in FM mode.
void    _FM_MP3CANNOTPLAY(void);

// wyc1.07, some new function to read the DM and SCRR for recover checked usage.
void    _SetCheckedValue();
void    _GetCheckedValue();
BYTE _GetStreamInputState(DWORD *pdwVal);
// wyc1.07, one function to initial value for intiial to reference.
void    MONITOR_InitialValue(void);
// wyc1.20, move from ISR to reduce common bank code size.
void    _ISR_CheckHang (void);
void _ISR_CountOneSector();
/////////////////////////////////////

// wyc1.07, add a new API to show debug information for error concealmernt.
#if defined (SERIAL_DEBUG) || defined(SUPPORT_PRINTF)
void    MONITOR_ShowDebug();
#endif // 
// wyc1.25, extern this function.
void OSD_RecoverOSD(void);

//  ************************************************************************
//  Function    :   MONITOR_VideoStream
//  Description :   Monitor the video stream info. It's used to detect if
//                  IC auto perform some kinds of actions
//  Arguments   :   None
//  Return      :   None
//  Side Effect :
//  ************************************************************************
void MONITOR_VideoStream(void)
{
    // must check W9922QF about the title -- "It don't rain" !!
    extern BIT  __btCheckVideoType;
    if (__btPlaying)
    {
        if ( __btCheckVideoType )
        {
            // one title playitem is encoded as motion
            // but the segment play item content is encoded as High PAL still
            // now the ucode(02.26) can auto detect this, and set DRAM to let
            // F/W know this case.
            // DVD.012, if (HAL_MonitorVideo()==HAL_VIDEO_MOTION)
            if ( HAL_Monitor(HAL_MONITOR_VIDEO_STATUS_DONE) ) // not check yet
            {
                __bModePlay=MODE_PLAYMOTION;
                __btCheckVideoType=FALSE;
            }
        }
    }
    // wyc2.80, add TCH modified code here.
#ifdef   ENABLE_ALWAYS_CHECK_SEQUENCEHEADER
    // ** TCH2.80; begin... Fix problem: One DVCD has two format @ 1 track. first is 352x288, 2nd is 352x240. 
    // The DVCD title name is "管㏑鋇牟" from SZ. The reaction is a little slow. If hope to accelerate, need ISR support.
    if ( __wDiscType & (BOOK_2X|BOOK_VCD|BOOK_CDI) )
    {
        W99AV_ReadDRAMData (W99AV_DRAM_UPDATE_SEQ, &__dwTemp);        
        if ((__dwTemp& 0xFFFF0000) == NULL)
        {        
            _wSCRYPos= __wPicVsize;     // Keep it as temp variable as avoid to do HAL_AdjustTVMode each time.
            if ( HAL_GetStreamInfo () )
            {
                if ( _wSCRYPos != __wPicVsize )
                {
                    HAL_AdjustTVMode();
                }
            }     
///                printf ( "V= %d, H=%d,,\n ", __wPicVsize, __wPicHsize );
            W99AV_WriteDRAMData(W99AV_DRAM_UPDATE_SEQ, 0x10000);        // mean re-do sequence header one time again.               
        }           
    }   // check __wDiscType
#endif  // ENABLE_ALWAYS_CHECK_SEQUENCEHEADER
    // LLY.102-1, reset SPST while dis-continue
    // [1] SCAN command
    // [2] FAST command
    // DVD_100aMicky, fix fast mode, subpicture buffer overflow, cause no DMA done
    // on title Titantic(48:00)
    //if (__bModeCmd==KEY_FF)
    if(__bModeCmd==KEY_FF || __bModeCmd==KEY_SCF || __bModeCmd==KEY_SCB)
    {
        HAL_Reset(HAL_RESET_SPST);
        // Chuan2.79, SCB/SCF <-> FAST, SCB <->SCF, System will hang.
        // If can't detect IFD > 1 sec, the following code will force enter Recover Stage 2 when FAST/SCF/SCB
        if ((__wMonitorLackIFD > 10) && (__wMonitorLackIFD < 80) && (__bAttrPlay!=ATTR_CDDA))
        {
            if (_bBrightnessDuration++ == 1)
            {
                __wMonitorLackIFD = MONITOR_RESETCHIP + 1;
                // wyc1.11-2, should set to 1 because recover stage 1 will do soft reset RISC, not stage 2.
                __bRecoverStage = 1;
                //__bRecoverStage = 2;
                __bResetRecover = 0;
            }
         }
        else
        {
            // Chuan2.79, Clear _bScanHang count

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品一区二区三区四区视频| 午夜精品久久久久久久99水蜜桃 | 粉嫩嫩av羞羞动漫久久久| 午夜精品久久久| 五月婷婷欧美视频| 午夜精品一区二区三区免费视频| 在线免费观看一区| 一本大道久久a久久综合| 91麻豆视频网站| 在线亚洲+欧美+日本专区| 91久久精品网| 欧美精品黑人性xxxx| 制服视频三区第一页精品| 91麻豆精品国产91久久久久| 日韩区在线观看| 久久九九99视频| 中文字幕亚洲精品在线观看| 一卡二卡三卡日韩欧美| 亚洲777理论| 激情另类小说区图片区视频区| 国产精品一区二区久久精品爱涩| 粉嫩av一区二区三区| 91美女福利视频| 4438亚洲最大| 久久九九久久九九| 亚洲日本va在线观看| 午夜精品福利久久久| 韩国视频一区二区| 91一区一区三区| 69堂亚洲精品首页| 国产欧美一区二区三区在线看蜜臀| 成人免费在线视频| 欧美视频一区二区三区在线观看| 欧美一级久久久久久久大片| 久久久九九九九| 亚洲一区自拍偷拍| 久久国产精品99久久人人澡| 不卡av电影在线播放| 欧美日韩国产电影| 国产色婷婷亚洲99精品小说| 樱桃视频在线观看一区| 免费看黄色91| 色综合久久99| 日韩女优毛片在线| 成人欧美一区二区三区小说| 人人精品人人爱| 91亚洲精品久久久蜜桃| 日韩一区二区三区高清免费看看| 国产欧美一区二区精品秋霞影院| 亚洲第一精品在线| 成人免费不卡视频| 日韩欧美国产电影| 亚洲影视资源网| 成人性生交大片免费看在线播放| 在线观看国产一区二区| 久久久久久**毛片大全| 亚洲v精品v日韩v欧美v专区| 成人永久免费视频| 6080国产精品一区二区| 亚洲免费观看高清完整| 国产精品一区一区三区| 欧美乱妇20p| 亚洲天堂av一区| 国产精品亚洲а∨天堂免在线| 欧美日韩一区国产| 亚洲欧洲国产专区| 国产精品一区在线观看你懂的| 欧美日韩亚洲综合在线| 18涩涩午夜精品.www| 国产在线精品不卡| 欧美一区在线视频| 一区二区三区不卡在线观看| 国产成人精品影视| 欧美一区二区播放| 一区二区欧美国产| 91亚洲永久精品| 欧美高清在线精品一区| 国内精品免费**视频| 7878成人国产在线观看| 亚洲亚洲人成综合网络| 91蜜桃在线免费视频| 国产精品国产三级国产aⅴ中文| 久久精品国产免费看久久精品| 欧美日韩中字一区| 一区二区三区精密机械公司| 91免费精品国自产拍在线不卡| 中日韩免费视频中文字幕| 国产精品亚洲成人| 久久日韩精品一区二区五区| 免费不卡在线观看| 日韩视频一区二区三区在线播放| 日本伦理一区二区| 亚洲天堂网中文字| 波多野结衣亚洲| 国产精品久久久久影院老司| 国产91精品一区二区麻豆网站| 精品国产免费一区二区三区香蕉| 蜜臀久久久久久久| 精品人在线二区三区| 久久精品国产精品青草| 欧美sm美女调教| 九九久久精品视频| 精品久久久三级丝袜| 麻豆国产欧美一区二区三区| 亚洲精品一区二区三区99| 国产在线国偷精品免费看| 久久久国产午夜精品| 粉嫩av一区二区三区粉嫩| 中文字幕中文字幕中文字幕亚洲无线 | 亚洲一卡二卡三卡四卡无卡久久| 99re66热这里只有精品3直播 | 日韩一区在线看| 色综合视频在线观看| 亚洲激情网站免费观看| 欧美性大战久久久久久久蜜臀 | 激情成人综合网| 久久综合色婷婷| 国产精品香蕉一区二区三区| 中文字幕欧美日韩一区| 色综合久久综合网97色综合| 亚洲国产中文字幕| 日韩欧美视频在线| 国产黄色91视频| 亚洲三级电影网站| 欧美日韩国产系列| 青青国产91久久久久久| 国产片一区二区| 9l国产精品久久久久麻豆| 一区二区不卡在线播放| 欧美肥妇毛茸茸| 国产老肥熟一区二区三区| 国产精品激情偷乱一区二区∴| 9人人澡人人爽人人精品| 亚洲成人一二三| 精品久久久久一区| 99国产精品视频免费观看| 亚洲一区在线视频| 精品电影一区二区三区| 99re亚洲国产精品| 日本成人在线不卡视频| 久久久久国产精品厨房| 色偷偷久久一区二区三区| 奇米一区二区三区| 国产精品免费人成网站| 欧美高清视频不卡网| 国产福利视频一区二区三区| 一区二区三区精品在线| 久久综合网色—综合色88| 色哟哟国产精品| 狠狠网亚洲精品| 亚洲午夜一二三区视频| 精品国产乱码久久久久久夜甘婷婷 | 成人精品免费视频| 亚洲国产cao| 国产欧美日韩精品一区| 欧美顶级少妇做爰| 国产日产欧美一区二区三区| 在线看国产一区二区| 韩国毛片一区二区三区| 亚洲综合图片区| 国产欧美一区二区精品婷婷| 777亚洲妇女| 色婷婷久久久亚洲一区二区三区 | 国产91精品在线观看| 午夜精品久久久久影视| 日本一区二区三区四区在线视频| 欧美在线观看一区| 国产成人在线电影| 美女www一区二区| 亚洲黄色在线视频| 国产免费成人在线视频| 精品入口麻豆88视频| 欧美在线观看视频在线| av动漫一区二区| 国产成人精品一区二区三区四区 | 全国精品久久少妇| 亚洲欧美激情小说另类| 久久精品日产第一区二区三区高清版 | 91免费国产视频网站| 国产成人8x视频一区二区| 精品一区二区三区免费观看| 一区二区三区资源| 国产亚洲综合av| 精品三级在线看| 欧美巨大另类极品videosbest| 99精品久久久久久| 成人av资源站| 国产成人精品一区二区三区四区 | 久久精品亚洲精品国产欧美| 欧美成人激情免费网| 亚洲成人自拍偷拍| 一区二区成人在线视频| 亚洲欧美日韩系列| 日韩一区欧美小说| 最新日韩在线视频| 亚洲欧洲一区二区在线播放| 国产精品高潮呻吟| 日韩美女精品在线| 亚洲女子a中天字幕| 亚洲蜜臀av乱码久久精品 |