📄 cckey.c
字号:
case KEY_SPST2_CTL: return CC_SPST_Change(CC_TOGGLE_SP2); break; // DVD_101-2, add VIDEO_OUTPUT_CTL for switch normal/yuv/rgb directly //Alex1.07a, 20031013 Support OSD SHOW PSCAN PROMPT, OSDPROMPT_ProcessKey will handle this KEY#ifndef SUPPORT_PSCAN_PROMPT_OSD case KEY_VIDEO_OUTPUT_CTL: __SetupInfo.bVideoOutput++; if (__SetupInfo.bVideoOutput > SETUP_SCREEN_VIDEO_OUTPUT_END) __SetupInfo.bVideoOutput = SETUP_SCREEN_VIDEO_OUTPUT_BEGIN; // DVD_104Micky. convert setup value ID SETUP_ChangeValue(SETUP_SCREEN_VIDEO_OUTPUT); //Brian1.06, P-SCAN is integrated into Video Output // SETUP_ChangeValue will set __SetupInfo.bProgressiveScan according to __bSetupInfo.VideoOutput SETUP_ChangeValue(SETUP_SCREEN_PROGRESSIVE_SCAN); OSD_OUTPUT_MACRO(MSG_PSCAN, (WORD)NULL, 0); //CoCo1.50, send PSCAN information here to prevent the information in Display UI is not updated. //HAL_AdjustTVMode(); // Brian.172r call SETUP_AdjustSetting instead SETUP_AdjustSetting(SETUP_SCREEN_VIDEO_OUTPUT); OSD_Output(MSG_VIDEO_OUTPUT, __SetupInfo.bVideoOutput, 0x3); // LLY.101-2 break;#endif // #ifndef SUPPORT_PSCAN_PROMPT_OSD default: // Micky0.65-909, must return INVALID_KEY; return INVALID_KEY;} return TRUE;}// *****************************************************************// Function : _KeyGroupOthers// Description : Process Video Group// Return : None// Side Effect :// *****************************************************************BYTE _KeyGroupOthers(BYTE bKey){ if (bKey != KEY_NO_KEY) return INVALID_KEY; else return KEY_NO_KEY;}#ifdef SUPPORT_AV_INBYTE _KeyGroupTFT(BYTE bKey) //Jeff 20060705 Add for TFT{ if ( !_btTFT_PowerDown ) { if (bKey == KEY_AV_IN) { if ( !_btAVIN ) { _btAVIN=1; } else { _btAVIN=0; } __bFWKey = KEY_POWER; TFT_Trigger(); } } return bKey; }#endif //#ifdef SUPPORT_AV_INBYTE _KeyGroupPlay(BYTE bKey){#ifdef SUPPORT_NPF_TRIGGER_ONLY// LLY.0992, don't allow non-play playable macro command key in stop mode if(__bModeCmd==KEY_STOP) { if( (bKey>=NONNPF_PLAYABLEKEY_BEGIN) && (bKey<=NONNPF_PLAYABLEKEY_END) ) return INVALID_KEY; }#endif // #ifdef SUPPORT_NPF_TRIGGER_ONLYswitch(bKey){// KEY_GROUP3, Play back Command case KEY_SCF: case KEY_SCB: case KEY_FREEZE: case KEY_STEP: // Micky2.81, Merge KEY_STOP's action together/// case KEY_STOP:// DVD_16a1Micky, fix repeat A-> fast-> can't repeat AB// don't allow repeat A mode change macro command to fast// now repeat ab only allow npf and slow. case KEY_FF: { extern DWORD _dwTimePrev; // [UTL] _dwTimePrev= 0xfffffff; // ** TCH1.60-1; Let Time Display can show current time. } // Do NOT allow REPEAT AB -> scan/freeze/step if (__bRepeatAB != REPEAT_NONE) { return INVALID_KEY; } if (bKey==KEY_STEP) { //do NOT allow stop/scan/freeze -> step if ( (__bModeCmd==KEY_STOP) || (__bModeCmd==KEY_FREEZE) || (__bModeCmd==KEY_SCF) || (__bModeCmd==KEY_SCB) ) { return INVALID_KEY; } } // Only allow playing/freeze->freeze // what about !__btPlaying if ( __bModeCmd != KEY_FREEZE ) { if ( bKey==KEY_FREEZE ) if ( ( __bModeCmd != KEY_PLAY ) || !__btPlaying ) { return INVALID_KEY; } } case KEY_PLAY:// DVD_16a1Micky, fix repeat A-> fast-> can't repeat AB// case KEY_FF: // wyc2.17-909S, add one key for language study. case KEY_LAN_STUDY: case KEY_SF: if (__btIntroMode) if ( (bKey != KEY_PLAY) ) return INVALID_KEY; // wyc2.37-909s, fix mpeg-cd can slow problem.#ifdef SUPPORT_FUSS_MPEG_CD if ((INFOFILTER_FUSSMPEGCD(IF_MODE_CHECK_MPEG_CD,0)) && (bKey == KEY_SF)) return INVALID_KEY;#endif // wyc1.06-909, only press KEY_SF can make SLOW message active.#if (SLOW_MODE_CONFIG != NORMAL_SLOW_PLUS_LANGUAGE_STUDY) if (bKey == KEY_SF) __bActiveMessage = MSG_SLOW;#else if ((bKey == KEY_SF) || (bKey == KEY_LAN_STUDY)) __bActiveMessage = MSG_SLOW;#endif //#ifndef NO_DISC_MODE //CoCo2.37p // **** TCH0.99E-XQ, Begin... if (__wDiscType & BOOK_DVD) { if( (bKey>=NONNPF_PLAYABLEKEY_BEGIN) && (bKey<=NONNPF_PLAYABLEKEY_END) ) // DVD_155Micky, check cell still and vobu still if (CELL_QueryStatus(CELL_IS_STILL) || (CELL_QueryStatus (CELL_VOBU_STILL_ON) ) ) // DVD_100Micky, query cell still status { return INVALID_KEY; } } // **** TCH0.99E-XQ, end...#endif //#ifndef NO_DISC_MODE //CoCo2.37p// wyc2.17-909S, add differenr case for language study function.#if (SLOW_MODE_CONFIG == LANGUAGE_STUDY_MODE) if (bKey == KEY_SF) { if ( !(__wDiscType & BOOK_DVD) && !( (__wDiscType & BOOK_VCD) && !(__wDiscType & BOOK_SVCD) && !(__wDiscType & BOOK_CVD) ) ) //for DVD/VCD only now //kevin1,10, fix SVCD freq wrong when language study return INVALID_KEY; }#elif (SLOW_MODE_CONFIG == NORMAL_SLOW_PLUS_LANGUAGE_STUDY) if (bKey == KEY_LAN_STUDY) { if ( !(__wDiscType & BOOK_DVD) && !( (__wDiscType & BOOK_VCD) && !(__wDiscType & BOOK_SVCD) && !(__wDiscType & BOOK_CVD) ) ) //for DVD/VCD only now //kevin1,10, fix SVCD freq wrong when language study return INVALID_KEY; }#endif // ** S-TCH; if ( bKey == KEY_FF ) { // ** 0.17; Don't allow FF within SCAN mode if ( __bRepeatAB == REPEAT_AB ) return INVALID_KEY; } // DVD_160Micky, make number input mode has top priority begin // fix VCD2.0 menu-> Program-> input number-> key_play // move (bKey==KEY_PLAY) before PBC check //Check trigger GOTOTIME->PLAY or PROGRAM->PLAY if ( bKey == KEY_PLAY ) { //KEY_PLAY will trigger PROGRAM to play // wyc.pro , in DVD playing, NV_Trigger will enter follow code to change titles. // So we must avoid enter follow code by not IR key operation. // wyc1.10-909, when pause + program edit mode, we treat KEY_PLAY to exit pause mode, not edit program entries. if ( (__btInputProgram) && ( __bKeySource == KEY_FROM_ISR ) && (__btPause == FALSE)) { // wyc.102 , to count the program entry number for program playing usage // if in playing mode and not input digit in program input menu, not affect the program playing // and move clear program OSD to up place __btInputProgram=FALSE; // LLY2.78b-3, support "Program Play" message#ifdef SUPPORT_PROGRAM_PLAY_INFO __bKeyMessage=MSG_PROGRAM_PLAY; OSD_OUTPUT_MACRO(MSG_PROGRAM_PLAY, NULL_0, 0x3);#endif // SUPPORT_PROGRAM_PLAY_INFO // wyc1.10-909, because when no program entries + program edit mode and press KEY_PLAY, then MM will process clear program // mode, so it won't need to process follow code in CC. And when MP3 pre-stop + program edit mode, then press KEY_RESUME. // The key will be transfer to KEY_PLAY here. So we don't do follow code to let code can do CC_Keycommand(KEY_PLAY) tyo avoid // KEY_RESUME in MP3 pre-stop + program edit mode -> KEY_RESUME -> Can't play problem. if ((__bAttrPlay & TYPE_CDROM_AUDIO) && (__bProgramMaxEntry == 0) && (__wDiscType & CDROM_M1)) { } else { // Micky0.75, modify Program-> KEY_PLAY checking if ( ! __bProgramMaxEntry ) { LINEAR_Program(LINEAR_PROGRAM_CLEAR,NULL_0); // Micky0.75, fix Program-> no input-> KEY_PLAY will show invalid. OSD_Output(MSG_PROGRAM, 0, 0); // let display mode clear Program icon break; } __btPlayingProgram = TRUE; OSD_Output(MSG_PROGRAM, 0, 0); // let display mode show Program icon __dwTimeKey=NULL_0; if (__btPlaying ||__btPause ) { __btNextPlayProgram = TRUE;#ifdef PROGRAM_PLAY_DIRECT __bFWKey= KEY_NEXT;#endif // PROGRAM_PLAY_DIRECT break; } } } } //check trigger PLAY // DVD_160Micky, make number input mode has top priority end // wyc2.37-909s, replace to NO_DISC_MODE#ifndef NO_DISC_MODE //++CoCo2.37p if ( __btPBC ) { if ( ( bKey == KEY_PLAY ) ) { if ( __bModeCmd == KEY_STOP ) { if ( __wStatus & ID_ENDLIST ) { __wStatus= NULL_0; __btPlaying= FALSE; __btPause= FALSE;// ** TCH1.61-2; __bModeCmd= KEY_PLAY; //force it into play mode __bModeCmd= KEY_PAUSE; // ** TCH1.61-2; Pause is using by VCD20 Module VCD20_Action ( LIST_FIRST ); break; } } else { // VCD20 default play function lost // when menu playend, __bModeCmd will change to KEY_PAUSE if ( (__bModeCmd == KEY_SF) || (__bModeCmd == KEY_FF) || (__bModeCmd == KEY_SCB) || (__bModeCmd == KEY_SCF) || (__bModeCmd == KEY_STEP) || (__bModeCmd == KEY_FREEZE) ) // if (__bModeCmd!=KEY_PLAY) { //do motion switching } // Pause-> Play, taken as normal case(non-PBC) else if ( ! __btPause ) { // Check LIST_DEFAULT is valid or not // Current Invalid will by-pass KEY_PLAY, don't show "INVALID" if ( VCD20_Action ( LIST_DEFAULT ) ) break; } } // ! KEY_STOP } // KEY_PLAY else if (bKey != KEY_STOP) { // KEY_SCF/KEY_SCB/KEY_FREEZE/KEY_STEP/KEY_FF/KEY_SF // only enable KEY_PLAY to trigger VCD 2.0 play if (!__btPlaying && !__btPause) return INVALID_KEY; } } //__btPBC#endif //#ifndef NO_DISC_MODE //++CoCo2.37p return CC_KeyCommand ( bKey ); break; // Micky2.81, Merge KEY_STOP's action together // also move in the part that are outside CC_DoKeyAction(Show LOGO and MSG_STOP) case KEY_STOP: { extern DWORD _dwTimePrev; // [UTL] _dwTimePrev= 0xfffffff; // ** TCH1.60-1; Let Time Display can show current time. } if (bKey==KEY_STOP) { // wyc1.00-909, temply not set __btPlayEnd to TRUE when VCD2.0 disc to fix VCD2.0 stop->resume but can't play problem. if (!(__wDiscType & VCD_2_0)) __btPlayEnd=TRUE; OSD_OUTPUT_MACRO ( MSG_SELECTIONLIST, 0xFFFF, 0 ); }#ifndef NO_DISC_MODE //CoCo2.37p // ** TCH0.452; begin... // One DVD-Title "Gloden Eye" from mustek. // The play is inhibited as region-code (?), // We can do STOP-> Play..... // Micky2.81, only check UOP_CAN_STOP when DVD channel#ifdef SUPPORT_AV_SYSTEM if (__bAUXChannel == AUX_CHANNEL_DVD)#endif //#ifdef SUPPORT_AV_SYSTEM#ifdef PRESTOP_BEFORE_SETUP_AND_PROGRAM if(!__bSetupMode) //Alan2.02, if SETUP cause stop, force it enter stop mode.#endif { if ( ! NV_QueryUOP ( UOP_CAN_STOP ) ) { return INVALID_KEY; } }#endif //#ifndef NO_DISC_MODE //CoCo2.37p// Micky2.79, tune the usage of __bCountStop,// only the process KEY_STOP will reference DOUBLE_STOP define// if DOUBLE_STOP is not defined, __bCountStop will be 2(real stop) only.#ifdef DOUBLE_STOP if ( __bKeySource == KEY_FROM_ISR) { __bCountStop++; if ( __bCountStop >= 2 ) {#ifdef SET_REPEAT_OFF_WHEN_FULL_STOP __bRepeat = REPEAT_NONE;#endif // __bCountStop = 2; } // MP3(w/o resume)/ Digest don't have pre-stop state. if ( // Micky1.20, 4M flash#ifndef NO_DIGEST __btDIGEST ||#endif//Micky0.66-909, don't support stop/resume, pre-stop for CDG.#ifndef NO_CDG (__bCDDA_DTS == CDDA_CDG) ||#endif#ifndef SUPPORT_MP3_RESUME (__bAttrPlay == ATTR_MP3) || // LLY2.13, don't assign __bCountStop = 2 while support MP3/ MP2 resume feature // Otherwise, the action maybe fail by press KEY_RESUME (__bAttrPlay == ATTR_MP2) || #endif //#ifndef SUPPORT_MP3_RESUME//Alex1.10-2, 20031105 System will support MP2 format audio 0 ) __bCountStop = 2; } // some case will call DoKeyAction(KEY_STOP),such as KEY_SCB // __bKeySource will be KEY_FROM_NONE else if ( __bKeySource == KEY_FROM_FW )#endif //#ifdef DOUBLE_STOP// If DOUBLE_STOP is not defined, __bCountStop will be 2(real stop) only. { __bCountStop = 2; } // Micky2.79-2, support FullScreen function // always clear Full screen status when stop. __bFullScreen = 0; // DVD_273.2, for encrpyted DVD begin // clear the auto scan next 2 cell's command. __bAutoScans = 0; //must clear repeat AB and GOTO time
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -