📄 cckey.c
字号:
} // ** TCH0.60-1; begin... // below code is for PBC ON mode. if ( !__btPBC ) return FALSE; // these codes almost same as _CC_DVD_PreProcessKey ?? if ( ( __bKey == KEY_PLAY_PAUSE ) || (__bKey == KEY_PLAY) ) { if ( VCD20_IsValid_Command ( LIST_DEFAULT ) ) { // let non-NPF-> play has top priority if ( __bModeCmd != KEY_PLAY || __btPause ) { __bKey = KEY_PLAY; } else // act as confirm key { __bKey = KEY_DEFAULT; } return TRUE; } return FALSE; } return FALSE;}*/// **************************************************************************// Function : CC_VCD_ProcessKey()// Description : Process VCD2.0 related KEY// Arguments : bKey// Return : None// Side Effect : // **************************************************************************#ifndef NO_DISC_MODE //++CoCo2.37p// Micky0.80, remove parameterBYTE CC_VCD_ProcessKey(void)//BYTE bKey){ if ( !( __wDiscType & VCD_2_0 ) ) return KEY_BYPASS; // Micky0.80, return new status //return bKey; if ( !__btPBC && (__bKey != KEY_PBC) && (__bKey != KEY_MENU) ) return KEY_BYPASS; // Micky0.80, return new status// return bKey;// Micky0.77, just return the same key when program input mode.#ifdef FORCE_SWITCH_NONPBC if( __btInputProgram ) return KEY_BYPASS; // Micky0.80, return new status// return bKey;#endif // Micky0.80, move from CC_PreProcessKeyif ( __bKeySource == KEY_FROM_ISR ) { // these codes almost same as _CC_DVD_PreProcessKey ?? if ( ( __bKey == KEY_PLAY_PAUSE ) || (__bKey == KEY_PLAY) ) { if ( VCD20_IsValid_Command ( LIST_DEFAULT ) ) { // Micky0.80, always show PLAY. _CC_MapKeyMessage(KEY_PLAY); // let non-NPF-> play has top priority if ( __bModeCmd != KEY_PLAY || __btPause ) { __bKey = KEY_PLAY; return KEY_TODO; } else // act as confirm key { __bKey = KEY_DEFAULT; } } else return KEY_BYPASS; } // only enable KEY_PLAY to trigger VCD 2.0 play if ( ( __bKey >= NONNPF_PLAYABLEKEY_BEGIN ) && ( __bKey <= NONNPF_PLAYABLEKEY_END ) ) { if (__bModeCmd == KEY_STOP ) return INVALID_KEY; }} switch(__bKey) { case KEY_PLAY: if ( __bModeCmd == KEY_STOP ) { if ( __wStatus & ID_ENDLIST ) { __wStatus= NULL_0; __btPlaying= FALSE; __btPause= FALSE; __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) ) { //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; } return KEY_BYPASS; // Micky0.80, return new status// return bKey; } break; case KEY_DEFAULT: if ( __wStatus != ID_ENDLIST ) { if ( VCD20_Action ( LIST_DEFAULT ) ) break; } return INVALID_KEY; break; case KEY_MENU: case KEY_PBC: CC_KeyCommand ( KEY_STOP );#ifndef NO_DISC_MODE //++CoCo2.37p if ( __btPBC ) { __btPBC= FALSE; OSD_OUTPUT_MACRO(MSG_PBC, FALSE, 3); __wStatus= NULL_0; // clear the record to normal PBC value __wPlayItem= __wTrackBegin; // from first Track#ifdef AUTO_PLAY CC_KeyCommand ( KEY_PLAY );#else // Micky0.65-909. UTL_ShowLogo(); SrcFilter_Stop(__dwSFStreamID);#endif // AUTO_PLAY } else#endif //#ifndef NO_DISC_MODE //++CoCo2.37p { __dwResumeTime=NULL_0; //CC_KeyCommand ( KEY_STOP ); UTL_ModeInitial ( MODE_PBC ); // DVD_101bMicky, show the PBC OSD after mode initial // or Program->PBC has problem. // OSD need adjust. OSD_OUTPUT_MACRO(MSG_PBC, TRUE, 3);#ifdef AUTO_PLAY __wStatus= NULL_0; VCD20_Action ( LIST_FIRST );#else //wait user input key __wStatus= ID_ENDLIST; // Micky0.65-909. UTL_ShowLogo(); SrcFilter_Stop(__dwSFStreamID);#endif // AUTO_PLAY } break; case KEY_STOP_RETURN://-------------------------------------------------------------------// :: Composite KEY_STOP_RETURN, KEY_STOP/ KEY_RETURN// :: Act as KEY_RETURN// - PBC has return list// :: Act as KEY_STOP// - Exclusive with above cases if ( !VCD20_IsValid_Command ( LIST_RETURN ) ) { __bKey = KEY_STOP; return KEY_BYPASS; // Micky0.80, return new status// return KEY_STOP; } case KEY_RETURN: { if ( __wStatus != ID_ENDLIST ) { //It's ok to clear __wStatus, because VCD20_Trigger retrun value //will set __wStatus again __wStatus=NULL_0; VCD20_Action ( LIST_RETURN ); } else return INVALID_KEY; } break;// Micky0.62-909, process number key case KEY_NUMBER:#ifdef AUTO_PBCOFF if (__bModeCmd == KEY_STOP ) // number key will switch PBC off { if (CC_NumberUtility(NUMBER_SET_INPUT)) // number is not decided return KEY_NO_KEY; __btPBC=FALSE; OSD_OUTPUT_MACRO(MSG_PBC, FALSE, 0); __bKey = KEY_NUMBER; return KEY_TODO; // Micky0.80, return new status// return KEY_NUMBER; }#endif //#ifdef AUTO_PBCOFF if (CC_NumberUtility(NUMBER_SET_INPUT)) // number is not decided return KEY_NO_KEY; // Micky0.72, check the return value if ( VCD20_KeyNumber((WORD)__dwNumberPrevious) == TRUE ) { // Micky0.72, number action is done. clear display number OSD_OUTPUT_MACRO(MSG_NUMBER, (WORD)__dwNumberPrevious, 1); } else { OSD_OUTPUT_MACRO ( MSG_INVALID, OSD_ERR_KEY, 1 ); } CC_NumberUtility(NUMBER_CLEAR); return KEY_NO_KEY; break; default: return KEY_BYPASS; // Micky0.80, return new status// return bKey; } return KEY_NO_KEY;}#endif //#ifndef NO_DISC_MODE //++CoCo2.37p// **************************************************************************// Function : CC_DVD_ProcessKey()// Description : Do the DVD title related KEY processing// Arguments : bKey// Return : None// Side Effect : // **************************************************************************// Micky0.80, remove parameter#ifndef NO_DISC_MODE //CoCo2.37pBYTE CC_DVD_ProcessKey(void)//BYTE bKey){ // non-DVD, just return the key value if ( !( __wDiscType & BOOK_DVD ) ) return KEY_BYPASS; // Micky0.80, return new status// return bKey; // Micky0.80if ( __bKeySource == KEY_FROM_ISR ) {//-------------------------------------------------------------------// :: Release DVD still// DVD_161Micky, add general keys for releasing CELL still/ VOBU still// don't enter pause state for these modes// make sure the keys defined within _bReleaseStillKeys// won't return earlier than the checking for release still. if ( _CC_ReleaseStillTrigger() == KEY_ACCEPT) { return KEY_NO_KEY; }// DVD has buttons. (SUPPORT_KEY_PLAY_AS_KEY_ACTIVE)// when KEY_PLAY is shared use with active// the rule is to active button first#ifdef SUPPORT_KEY_PLAY_AS_KEY_ACTIVE if ( (__bKey == KEY_PLAY_PAUSE) || (__bKey == KEY_PLAY) ) { if ( NV_Action(ACTION_ACTIVE_CHECK, NULL_0) ) { // Fix Title menu(motion w/ buttons)-> pause-> KEY_PLAY will hang. // HolySound(travel around the world-8, -3) // let non-NPF-> play has top priority // i.e. Button active only when normal playing if ( __bModeCmd != KEY_PLAY || __btPause ) { __bKey = KEY_PLAY; _CC_MapKeyMessage(__bKey); return KEY_TODO; } else // act as confirm key { __bKey = KEY_ACTIVE; _CC_MapKeyMessage(__bKey); } } else return KEY_BYPASS; }#endif //#ifdef SUPPORT_KEY_PLAY_AS_KEY_ACTIVE// :: Shared Keys(DVD only)// - KEY_DIGEST---> KEY_TITLE// - KEY_AUDIO_LR--->KEY_AST_CTL#ifdef NO_DVDDIGEST if ( __bKey == KEY_DIGEST ) { __bKey = KEY_TITLE; }#endif //#ifdef NO_DVDDIGEST #ifdef KEY_AUDIO_LR_SAME_KEY_AST_CTL if ( __bKey == KEY_AUDIO_LR ) { // Micky0.80, let main flow process it. __bKey = KEY_AST_CTL; // Micky0.85, fix multi-audio can't switch return KEY_TODO; }#endif //#ifdef KEY_AUDIO_LR_SAME_KEY_AST_CTL if ( __bKey == KEY_NEXT ) { if ( __bModeCmd == KEY_STOP ) {#ifdef SUPPORT_NEXT_TRIGGER_FROM_STOP // ** TCH1.72; // Suppose it play from first Track __bKey=KEY_PLAY; // Micky0.80, assign __bKeyMessage _CC_MapKeyMessage(__bKey); return KEY_TODO;#endif //#ifdef SUPPORT_NEXT_TRIGGER_FROM_STOP // ** TCH1.72; } }} switch ( __bKey ){ case KEY_ENTER: case KEY_ACTIVE:#ifdef SUPPORT_PRINTF PRINTF ( " * DVD Button Active;" );#endif //#ifdef SUPPORT_PRINTF __bTemp= NV_Action ( ACTION_ACTIVE, NULL_0 ); if ( ! __bTemp ) return INVALID_KEY; break; case KEY_PBC: // PlayBack Control switch __bNVPlayMode= ! __bNVPlayMode; //Aron1.11-909, constrained repeat, disable repeat mode when switch PBC ON/OFF __bRepeat= REPEAT_NONE; OSD_OUTPUT_MACRO(MSG_REPEAT, __bRepeat, 0 ); // wyc.pro , in DVD title, going to NV mode must clear program variables and then goto NV playing when press KEY_PBC if (__bNVPlayMode) UTL_ModeInitial ( MODE_LINEAR ); OSD_OUTPUT_MACRO ( MSG_PBC, __bNVPlayMode, 3 ); if ( ! __bNVPlayMode ) { if ( __bDomain != TT_DOM ) NV_TitlePlay ( 1, 1 ); } break; case KEY_NEXT: case KEY_PREV: if ( __bKey == KEY_NEXT ) __bTemp= ACTION_NEXT; else __bTemp= ACTION_PREV; // ** TCH1.03; begin... move from below. Done before call NV_Action. // ** TCH1.00; begin... Enhance the XQ request. Push KEY_NEXT will clear REPEAT_CHAPTER only if ( __bKeySource == KEY_FROM_ISR ) // KEY_FROM_FW { if ( __bDomain & TT_DOM ) {#ifdef FORCE_SET_REPEAT_MODE_AFTER_REAL_NEXTPREV if ( __bRepeat == (REPEAT_CHAPTER) ) { __bRepeat= REPEAT_NONE; OSD_OUTPUT_MACRO(MSG_REPEAT, __bRepeat, 0 ); } // Only clear REPEAT_CHAPTER#endif // FORCE_SET_REPEAT_MODE_AFTER_REAL_NEXTPREV } // if ( __bDomain & TT_DOM ) if(__bSearchMode != SEARCH_MODE_OFF) { // Micky0.62-909 OSD_Remo
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -