📄 cc.c
字号:
WORD __wSP_LCD; // SP LanguageWORD __wA_LCD; // Audio LanguageDWORD __dw1stSCR; // Keep 1st SCR valueBOOL __bSmartPB_ABLE;BYTE __bMaxPBT_TT; // the Title with max playback time in current DVD disc#ifndef NO_SCREEN_SAVERBYTE __bScreenSaver; //=NONE_SCREEN_SAVER;#endif // #ifndef NO_SCREEN_SAVERDWORD __dwSTCValue; // ** TCH0.99-1; Record Current STC ValueDWORD __dwTimeA, __dwTimeB; // record the times for repeatAB// LLY2.61, add new variable to keep A point frame count value for audio only file's repeat A-B usageDWORD __dwTimeA_FrameCnt;BIT __btIntroMode;DWORD __dwIntroPlayTime;// wyc2.22-909s, new variable to check if force enter stop mode.DWORD _dwForceStopMode;//Kevin1.22a, utl will use also, don't declare as staticDWORD _dwTimerCount_MainLoop;// ** TCH0.99-1; Main-Loop CounterBYTE _KeyGroupTest(BYTE bKey);BYTE _KeyGroupAudio(BYTE bKey);BYTE _KeyGroupPlay(BYTE bKey);BYTE _KeyGroupMode(BYTE bKey);// ** TCH0.60; BYTE _KeyGroupMultiDisc(BYTE bKey);BYTE _KeyGroupVideo(BYTE bKey);BYTE _KeyGroupOthers(BYTE bKey);#ifdef SUPPORT_AV_INBYTE _KeyGroupTFT(BYTE bKey); //Jeff 20060705 add for TFT#endif //#ifdef SUPPORT_AV_INDWORD __dwTimerCount_Keyscan=0; //Jeff 20050530 add for panel key// DVD_273.2, for encrpyted DVD begin// clear the auto scan next cell's command.BYTE __bAutoScans;// DVD_273.2, for encrpyted DVD end//DVD_039-1SCFBYTE __bScanLevel;//DVD_043-1BYTE __bInvalidRegion;//DVD_049MickyPowerDown#ifdef AUTO_POWERDOWN// support auto power down// when the value is 0xFFFFFFFF, means don't need do auto power down check// other value, means need do auto power down check.DWORD __dwTimeWaitPowerDown;#endif// wyc1.06-909, vairable to represent current play mode is from AVI scanBYTE _bAVIScan2Play;// Because REPEATAB and SLOW use same OSD regin and they are both forever message, so need to add one variable to decide which is active message.BYTE __bActiveMessage;// wyc2.77-909p, add the usb performance test code.#ifdef TEST_DEVICE_PERFORMANCEextern DWORD __dwTestUSBSpeed;#endif //// DVD_099bMicky, support another backdoor method// DVD_100-3Micky, the general backdoor is supported in drive open case#ifdef SUPPORT_GENERAL_BACKDOOR// Brian1.24, add another general backdoor#define BACKDOOR_NUMBER 3 // number of backdoors that supported#define BACKDOOR_KEYNUM 4 // number of passwords for backdoor// DVD_100-3Micky, support backdoor for reset default setup dataBYTE code __bBackDoorKeys[BACKDOOR_NUMBER][BACKDOOR_KEYNUM]= { {KEY_N9, KEY_N9, KEY_N2, KEY_N2}, // #1 backdoors {KEY_N1, KEY_N2, KEY_N3, KEY_N4}, // #2 backdoors {KEY_N6, KEY_N6, KEY_N6, KEY_N6}, // #3 backdoors // Brian1.24, Total default };#define BACKDOOR_VIDEO_OUTPUT 0#define BACKDOOR_SETUP_DEFAULT 1#define BACKDOOR_SETUP_TOTAL_DEFAULT 2 // Brian1.24, total defaultBYTE __bKeyIndex[BACKDOOR_NUMBER]; // the index for each backdoor#endif// DVD_099cMicky, support show OSD only when IR key is pressed#ifdef SHOW_IR_KEY_OSD_ONLY// the mapping table for KEYs & MSGs// Only list MSGs, and KEY sequence is according to input.h// start from INPUT_KEY_GROUP2(KEY_MUTE)// Micky2.79-2, don't need specify the array sizeBYTE code _bMessageMap[]={// for 0.80, should keep group3 only. add next/prev extra.#ifdef MAP_PLAYABLE_MESSAGE_ONLY MSG_PLAYING, MSG_STOP, MSG_FAST, MSG_SCANFORWARD, MSG_SCANBACKWARD,MSG_SLOW, MSG_PAUSE, MSG_STEP, MSG_FREEZE, MSG_NULL, // dummy MSG_PBC, MSG_NEXT, MSG_PREV,#else // Group 2, 20s MSG_MUTE, MSG_VOLUME, MSG_VOLUME, MSG_KEY, MSG_KEY, MSG_KEY, MSG_ECHO, MSG_ECHO, MSG_AUDIO, MSG_SURROUND, MSG_VOCAL, MSG_AUTOVOCAL, MSG_VOICECANCEL,MSG_3D, MSG_KARAOKE, MSG_AST_CTL, //CoCo.099d // support a key to switch audio output(2 ch/5.1ch/spdif) // Micky1.10, map KEY_MIC_VOL_UP/DOWN to MSG_VOLUME MSG_AUDIO_OUTPUT_CTL, MSG_NULL, MSG_VOLUME, MSG_VOLUME, // dummy // Group 3, 10s MSG_PLAYING, MSG_STOP, MSG_FAST, // Micky1.07, fix the key message sequence error // these message are forever display, OSD won't check message // but FM will use 3s. MSG_SCANFORWARD, MSG_SCANBACKWARD,MSG_SLOW, MSG_PAUSE, MSG_STEP, MSG_FREEZE, MSG_NULL, // dummy // Group 4, 30s MSG_PBC, MSG_NEXT, MSG_PREV, MSG_RETURN, MSG_PROGRAM, MSG_NULL, MSG_PROGRAM, MSG_NULL, MSG_NULL, MSG_TVMODE, MSG_DISPLAY, MSG_DIGEST, MSG_REPEATAB, MSG_REPEAT, MSG_INTRO, MSG_RANDOM, MSG_REMAIN_ABSTIME, MSG_RESUME, MSG_GOTOTIME, MSG_NULL, MSG_OPEN, MSG_POWER, MSG_NULL,//KEY_DEFAULT // Micky2.81, add message for thumbnail. MSG_NULL, MSG_NULL, MSG_PSCAN, MSG_NULL, // dummy MSG_NULL, MSG_NULL, MSG_NULL, // dummy // Group 5, 15s MSG_NULL, MSG_NULL, MSG_NULL, MSG_NULL, // KEY_LED1~4 MSG_NULL, MSG_NULL, // KEY_DISCSKIP, SKIP_BACK // change MSG_DISCPOSITION into MSG_NULL MSG_NULL, MSG_NULL, MSG_NULL, MSG_NULL, MSG_NULL, MSG_NULL, MSG_NULL, MSG_NULL, MSG_NULL, // dummy // Group 6, 25s MSG_NUMBER, MSG_NUMBER, MSG_NUMBER, MSG_NUMBER, MSG_NUMBER, MSG_NUMBER, MSG_NUMBER, MSG_NUMBER, MSG_NUMBER, MSG_NUMBER, MSG_NUMBER, MSG_NUMBER, MSG_NUMBER, MSG_NUMBER, MSG_NUMBER, MSG_NUMBER, MSG_NUMBER, MSG_NUMBER, MSG_NUMBER, MSG_NUMBER, MSG_NUMBER, MSG_KEY10, MSG_KEY10, MSG_NULL, MSG_NULL, // dummy // Group 7, 10s // Micky2.80, accord cc.h ZOOM ID for HAL_Zoom. // MS_ZOOMMOVE will be removed. MSG_ZOOM, MSG_ZOOM, MSG_ZOOM, MSG_ZOOM, MSG_ZOOM, MSG_SPST_CTL, /* MSG_ZOOM, MSG_ZOOMMOVE, MSG_ZOOMMOVE, MSG_ZOOMMOVE, MSG_ZOOMMOVE, MSG_SPST_CTL, */ // DVD_101bMicky, for KEY_VIDEO_OUTPUT_CTL MSG_VIDEO_OUTPUT, MSG_NULL, MSG_NULL, MSG_NULL, // dummy // Group 8, 20s MSG_NULL, MSG_NULL, MSG_NULL, MSG_NULL, MSG_NULL, MSG_NULL, MSG_NULL, MSG_NULL, MSG_NULL,// dummy MSG_NULL, MSG_NULL, MSG_NULL, MSG_NULL,// dummy MSG_NULL, MSG_NULL, MSG_NULL, MSG_NULL,// dummy MSG_NULL, MSG_NULL, MSG_NULL, // dummy // Group 9, 20s MSG_NULL, MSG_NULL, MSG_INVALID, MSG_INVALID, MSG_NULL, // ** TCH0.60-1; OSDGAME is not exist MSG_NULL, MSG_NULL, MSG_NULL, MSG_NULL,// dummy MSG_NULL, MSG_NULL, MSG_NULL, MSG_NULL,// dummy MSG_NULL, MSG_NULL, MSG_NULL, MSG_NULL,// dummy MSG_NULL, MSG_NULL, MSG_NULL, // dummy // Group 10 MSG_MENU, MSG_MENU, // LLY.099c MSG_NULL, MSG_NULL, MSG_NULL, MSG_ANGLE_CTL, // Micky2.79-2, support FullScreen function // MSG_FULLSCREEN MSG_NULL, // KEY_ACTIVE MSG_NULL, // KEY_HOTKEY MSG_FULLSCREEN, // MSG_FULLSCREEN#endif };#endifBYTE __bKeyMessage;BYTE __bKeySource;// wyc0.91, Brain's updated code.// Brian0.91// define the version number variable for each protected modules// these variables are initialized to 0, and the correct version value is assigned by related module.// the version of these module is expressed in 0xYYYYMMDD format : // for example, 2005-02-21 will be expressed as 0x07D5 02 15DWORD __dwVersionMPEG=0; // MPEG decoder module versionDWORD __dwVersionJPEG=0; // JPEG decoder module versionDWORD __dwVersionDisplay=0; // Display module versionDWORD __dwVersionDivX=0; // DivX module versionDWORD __dwVersionNavigate=0; // Navigate module versionDWORD __dwVersionParser=0; // Parser module version// wyc1.20-909, for USB version.DWORD __dwVersionUSB=0; // USB module version.// wyc1.50-909, new protected module group.DWORD __dwVersionINFO=0; // INFO module version.DWORD __dwVersionCard=0; // the version of these module is expressed in xx.xx format: // high WORD is the F/W digit part// high BYTE of low WORD is the alpha-beta part for RD release use, 0 means 0, 1 means a, 2 means b,...// low BYTE of low WORD is the alpha-beta part for FAE release use, 0 means 0, 1 means a, 2 means b,...// for example, for RD release F/W// 0.90 ==> 0x005a 0100// 0.90a ==> 0x005a 0100// 0.90b ==> 0x005a 0200// 1.00 ==> 0x0064 0000// 1.01a ==> 0x0065 0100// for FAE, according to Version Naming Rule, FAE could only change the LSB// 0.90_a ==> 0x005a 0001// 0.90aa ==> 0x005a 0101// 0.90bc ==> 0x005a 0203// 1.00_a ==> 0x0064 0001// 1.01aa ==> 0x0065 0101DWORD __dwVersionServo=0; // Servo module versionDWORD __dwVersionServoBM=0; // Servo BM versionDWORD __dwVersionServoUCode=0; // Servo uCode version#ifdef SUPPORT_TFT //Alan2.17, for TFT DWORD __dwVersionTFT = 0; // VD version#endif DWORD __dwVersionRelease= (SW_VERSION<<16) | (SW_MINOR_VERSION<<8); // F/W release versionDWORD __dwVersionFAE= (SW_VERSION<<16) | (SW_MINOR_VERSION<<8) | FAE_SW_MINOR_VERSION; // FAE version// Customer version may be free format, so use stringconst BYTE __csVersionCustomer[] = CS_VERSION_CUSTOMER; // Customer version string// wyc1.05-909, rename _CC_ResetState to CC_ResetState// DVD_172Micky, FLOW_CONTROL// let __bFlowState be general use for auto play.// DVD_161Micky, support Loading-> Setup-> Exit, will continue loading action///#ifdef SUPPORT_LOADING_SETUPBYTE __bFlowState ;BYTE _ProceedFlowState(void);BYTE _CC_AVIScanToPlayProcess(void);#ifdef ENABLE_AUTOVOCALBYTE _CC_AutoVocal(BYTE bValidKey);DWORD __dwMICDectectInterval;bit _btPreMICDetect;BYTE _bMICOffCount;#ifdef SW_MIC_DETECTbit __sbMICDetect;#endif#endif //#ifdef ENABLE_AUTOVOCAL#ifdef _SHOW_IR_MAPBYTE _bIRMap [4], _bIRGet;#endif // _SHOW_IR_MAP// Brian.276-5, for system hang control// Timer0 ISR use it value to decide if the man loop is hanging// wyc1.01-909, remove it because of not use it.//DWORD __dwProgressCount;// Micky2.79-2, support FullScreen function// init. value 0 will be assigned within INITIAL_Variables.// 1: means full screen video on, 0: means full screen video off.BYTE __bFullScreen;// Micky2.80, Modify global variable init.// move from INTIIAL.cWORD __wScanGap; // the real sectors that will jump for each SCAN// Micky2.81, Support different number of digits for different mode// VCD/ DVD : max number is 9-// AVSYS : 999-// when exceed the max. number, will reset the number as 0//WORD __wMaxNumber;CHAR __csUPGAPName[] = CS_UPGAP_NAME; // Chuan2.78, Define UPGAP Name.// Micky1.05, add auto test for IC sorting by CoCo#ifdef AUTO_TEST //CoCo1.07, verify auto-test//alex1.23,20040218 combine gototime , search//in autotest function, key_search replace key_gototime /*WORD aDVDRule[] = {COUNT_2_SEC, KEY_SEARCH, 0, KEY_N2, 0, KEY_PLAY, 0, KEY_GOTOTIME, 0, KEY_GOTOTIME, 0, KEY_N2, 0, KEY_N2, 0, KEY_N2, 0, KEY_N0, COUNT_1_SEC, KEY_PLAY, 0, KEY_AST_CTL, COUNT_3_SEC*2, KEY_AST_CTL, 0, KEY_AST_CTL, COUNT_5_SEC+COUNT_3_SEC, KEY_STOP, 0, KEY_STOP, 0, 0};*/// Brian2.17WORD aDVDRule[] = {0, KEY_DISPLAY, 0, KEY_DISPLAY, 0, KEY_DISPLAY, 0, KEY_DISPLAY, 0, KEY_DISPLAY, 0, KEY_DISPLAY, 0, KEY_SEARCH, 0, KEY_N3, 0, KEY_PLAY, 0, KEY_SEARCH, 0, KEY_SEARCH, 0, KEY_N1, 0, KEY_N2, 0, KEY_N7, 0, KEY_N1, 0, KEY_N5, 0, KEY_PLAY, 0, KEY_SPST_CTL, 0, KEY_AST_CTL, (COUNT_3_SEC*2+COUNT_2_SEC), KEY_STOP, 0, KEY_STOP, 0, 0};WORD aCDROMRule[] = {COUNT_1_SEC * 7, KEY_STOP, 0, KEY_STOP, 0, 0};DWORD __dwAutoTestTime;BYTE __bRuleIndex;BYTE __bAutoTest;WORD *_wpRule;#endif#ifdef SUPPORT_POWER_SWITCHBYTE __bPowerSw_StandBy;BYTE __bPowerSw=TRUE;extern BYTE _bBacklight;#endif //SUPPORT_POWER_SWITCH//Alex1.07a SHOW PSCAN PROMPT#if defined (SUPPORT_PSCAN_PROMPT_SETUP) || defined (SUPPORT_PSCAN_PROMPT_OSD)//Alex1.07a 20031013 SUPPORT_PSCAN_PROMPT_OSD#ifdef SUPPORT_PSCAN_PROMPT_OSDextern BYTE OSDPROMPT_ProcessKey(BYTE bKey);#endif //#ifdef SUPPORT_PSCAN_PROMPT_OSDextern void OSDPROMPT_Trigger(void);extern BYTE __bOSDPromptMode;#endif //#if defined (SUPPORT_PSCAN_PROMPT_SETUP) || defined (SUPPORT_PSCAN_PROMPT_OSD)// Micky1.07, adding DEBUG info variable declarationBIT __btDumpFlag;BYTE __bDumpType;// Micky1.23 support resume info from EEPROMBYTE _bAPPAction;// Micky0.65-909. add a time count for OSD trigger.DWORD _dwTimeCount_OSDTrigger = 0;// winnie 2.77, add to save volume function and fix play move un-continually issue while press vol +/- quickly// The reason is that volume value be stored frequently. So, using time count to store the volume value.#ifdef SUPPORT_SAVE_VOLUMEextern DWORD __dwVolAudio;DWORD __dwTimerCount_Volume=0; #endif// Micky0.80, new method for the ProcessKey//void (*KeyProcess)(BYTE); // OKtypedef BYTE (*pFunction)(void);pFunction FuncArray[]={ &OSDAP_ProcessKey, // LLY1.50, add AP process key routine#ifdef SUPPORT_TFT &TFT_ProcessKey,#endif#ifdef SUPPORT_OSDGAME //CoCo1.02, add OSD game from XuLi's code
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -