📄 key_handler_idle.c
字号:
OsdIconCtrl_st icon_ctrl;#if _APP_CAP_FUNC_DVD_DIGEST//clina 061018 add number key process for digest mode bug701 MediaInfo_t media; GetMediaInfoState(&media); if(gOSD_state.etCur_dsp==DISPLAY_DIGEST_MENU&&media.dvdv.total_digestnum>=temp_3dig&&temp_3dig!=0) { icon_ctrl.num = (UINT)temp_3dig; OSD_SetIconDisplay(ICON_NUMERIC, &icon_ctrl, SYS_NO_WAIT); } else if(gOSD_state.etCur_dsp==DISPLAY_DIGEST) { OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_NO_WAIT); InitTempValueState(); } else #endif if(DvdInfo->cur_title!=0 && DvdInfo->total_chapter!=0 &&temp_3dig!=0 && #if _APP_CAP_FUNC_SEARCH_TITLE_BY_NUMBER (temp_3dig<= DvdInfo->total_chapter||(temp_3dig <= DvdInfo->total_title && DvdInfo->total_chapter == 1)) #else temp_3dig<= DvdInfo->total_chapter#endif/*_APP_CAP_FUNC_SEARCH_TITLE_BY_NUMBER*/ ) { icon_ctrl.num = (UINT)temp_3dig; OSD_SetIconDisplay(ICON_NUMERIC, &icon_ctrl, SYS_NO_WAIT); } else {#if _APP_CAP_OSD_SEPERATE_ICON_TIMER /* Yanglu 05.04.27 Clear numeric osd if numer is invalid*/ OSD_SetIconDisplay(ICON_KEEP, NULL, SYS_NO_WAIT);#endif OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_NO_WAIT); InitTempValueState(); } return TRUE;} /******************************************************************************* Function name : * Arguments : * IN * * OUT * I/O * Return : * VOID* By : Liu renliang* Description : * Revision : *******************************************************************************/VOID NumberKeyControl(UCHAR key){ TempKeeper_t data; OSD_State_st *osd_state; OsdCtrl_st ctrl; OsdIconCtrl_st icon_ctrl; OSD_MenuCtrl_st menu; DiscType_t disc = GetDiscState(); BYTE2 temp_2dig; // to get 2 digit value BYTE2 temp_3dig; // to get 3 digit value BYTE2 temp_4dig; // cydrain 20060407 BYTE1 input_dig; // how many digit inputed BOOL ret; #if (_APP_CAP_NAV_DVD_VIDEO) DvdvAngleInfo_t angle;#endif osd_state = OSD_GetState(); SetTempValueSetFlag( TRUE ); if (key == RC_KEY_NUM10) SetTempValue(10); else SetTempValue(key - RC_KEY_NUM0); /* Get current data */ GetTempValueState( &data ); temp_2dig = GetTempValue(2); temp_3dig = GetTempValue(3); temp_4dig = GetTempValue(4); // cydrain 20060407 input_dig = GetTempInputDig();#if _APP_CAP_FUNC_RC_CODE_FREE RcCodeFree();#endif if( GetMainState()==MAIN_OPEN && osd_state->etCur_dsp!= DISPLAY_SETUP && osd_state->etCur_dsp!=DISPLAY_RC_MSG ) { if(data.number[4]==8 && data.number[3]==1 && data.number[2]==3 && data.number[1]==2 && data.number[0]==8) { OSD_SetIconDisplay(ICON_KEEP, NULL, SYS_NO_WAIT); OSD_SetMainDisplay(DISPLAY_RC_MSG, SYS_WAIT); } else if(data.number[0] !=0xff) { icon_ctrl.num = GetTempInputDig(); OSD_SetIconDisplay(ICON_RC_CODE, &icon_ctrl, SYS_NO_WAIT); } return; } switch(disc) {#if _APP_CAP_NAV_DVD_VIDEO case DVDV_DISC:#if _APP_CAP_NAV_DVD_AUDIO case DVDA_DISC: /*Jiangshanbin for DVDA disc*/#endif { /* <<< @: 5008CHN-XXX.Liu renliang 050505: DVD: info osd on enable number select */ if ((osd_state->etCur_dsp == DISPLAY_INFO && osd_state->etInfo_sub ==INFO_SUB_NONE) || (osd_state->etCur_dsp != DISPLAY_SETUP && osd_state->etCur_dsp != DISPLAY_ADULT_PSWD_CHECK && osd_state->etCur_dsp != DISPLAY_ANGLE && osd_state->etCur_dsp != DISPLAY_ADULT_PSWD_ERROR && osd_state->etCur_dsp != DISPLAY_PROGRAM && osd_state->etCur_dsp != DISPLAY_INFO )) /* >>> @: 5008CHN-XXX.Liu renliang 050505 */ { USHORT btn_low = 0, btn_high = 0; DvdVideoInfo_t DvdInfo; if( GetDvdButtonSelectionState() != DVD_BTN_NONE && IsDvdButtonNumberSelectable( &btn_low, &btn_high ) != FALSE ) { if((temp_3dig != 0) && ((temp_3dig >= btn_low && temp_3dig <= btn_high) || (temp_3dig >= (btn_low/10) && temp_3dig <= (btn_high/10)) || (temp_3dig >= (btn_low/100) && temp_3dig <= (btn_high/100)) )) { OsdIconCtrl_st icon_ctrl; icon_ctrl.num = (UINT)temp_3dig; OSD_SetIconDisplay(ICON_NUMERIC, &icon_ctrl, SYS_NO_WAIT); }else {#if _APP_CAP_OSD_SEPERATE_ICON_TIMER OSD_SetIconDisplay(ICON_KEEP, NULL, SYS_NO_WAIT);#endif/*_APP_CAP_OSD_SEPERATE_ICON_TIMER*/ OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_NO_WAIT); InitTempValueState(); } return; } else { Domain_t domain; domain = GetDvdDomain(); if( (domain == DVD_DOM_VTSM) || (domain == DVD_DOM_VMGM) || GetDvdvPlayMode() != PARAM_PB_NORMAL) { OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_NO_WAIT); InitTempValueState(); return; } GetDvdVideoInfo(&DvdInfo); if ( IsDvdFullStopMode() || (GetDvdResumeStopDomain() == DVD_DOM_VMGM ||GetDvdResumeStopDomain() == DVD_DOM_VTSM)) { Pttn_t total_chapter; GetDvdTtInfo(1, &total_chapter); DvdInfo.cur_title = 1; DvdInfo.total_chapter = total_chapter; } DvdSearchValidInNumWithoutBtn(temp_3dig,&DvdInfo) ; return; } } } break;#endif/*limeng 060422* control by custom option*/ //#if (_APP_CAP_NAV_SUPER_VIDEO_CD || _APP_CAP_NAV_VIDEO_CD ) case SVCD_DISC: case VCD_DISC: case CD_DA: case HQVCD_DISC: { BOOL search_allowed = FALSE; MediaInfo_t media; GetMediaInfoState(&media); if( (osd_state->etCur_dsp != DISPLAY_PROGRAM && osd_state->etCur_dsp!= DISPLAY_SETUP && osd_state->etCur_dsp!= DISPLAY_INFO) || \ (osd_state->etCur_dsp== DISPLAY_INFO && osd_state->etInfo_sub ==INFO_SUB_NONE)) { menu.pass_step=PASSWD_SUB_NONE; SetMenuState(&menu); if( IsNumericAllowed(temp_3dig) ) { if ( temp_3dig != 0) //limeng 060515: check input validity in vcd navi search_allowed = TRUE; } if( search_allowed ) { OsdIconCtrl_st icon_ctrl; icon_ctrl.num = (UINT)temp_2dig; OSD_SetIconDisplay(ICON_NUMERIC, &icon_ctrl, SYS_NO_WAIT); } else {#if _APP_CAP_OSD_SEPERATE_ICON_TIMER OSD_SetIconDisplay(ICON_KEEP, NULL, SYS_NO_WAIT);#endif OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_NO_WAIT); InitTempValueState(); } return; } } break;//#endif #if _APP_CAP_NAV_MMP_PLAY_VIDEO_FILE // cydrain 20060117 case CD_DATA: case DVD_DATA: case USB_DATA: case FX_DATA: { BOOL search_allowed = FALSE; if( (osd_state->etCur_dsp != DISPLAY_PROGRAM && osd_state->etCur_dsp!= DISPLAY_SETUP && osd_state->etCur_dsp!= DISPLAY_INFO) || \ (osd_state->etCur_dsp == DISPLAY_INFO && osd_state->etInfo_sub == INFO_SUB_NONE)) { if ((temp_4dig <=GetMmpTotalPlayListNum()) && temp_4dig != 0 && temp_4dig <= MMP_MAX_INPUT_NUM) // cydrain 20060407 search_allowed = TRUE; if( search_allowed ) { OsdIconCtrl_st icon_ctrl; icon_ctrl.num = (UINT)temp_4dig; OSD_SetIconDisplay(ICON_NUMERIC, &icon_ctrl, SYS_NO_WAIT); } else { #if _APP_CAP_OSD_SEPERATE_ICON_TIMER // cydrain 20060407 OSD_SetIconDisplay(ICON_KEEP, NULL, SYS_NO_WAIT); #endif OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_NO_WAIT);// Qian liping 060627: bug fix 499 InitTempValueState(); } return; } }#endif default: break; } switch( osd_state->etCur_dsp ) { case DISPLAY_INFO: NumericSearchDataCtrl(osd_state->etInfo_sub); //Qian liping 060525 OsdNumericTimerSet(1, TIMER_DISABLE ); OsdSelTimerSet(1, TIMER_DISABLE ); OSD_ChangeDisplay(OSD_CTRL_UPDATE_INFO, NULL, SYS_NO_WAIT); break; case DISPLAY_ANGLE: /* Make number */ GetDvdvAngleAttribute( &angle ); if( temp_2dig> 0 && temp_2dig<= angle.total_num ) UiAngle( (UCHAR)temp_2dig); InitTempValueState(); #if !_APP_CAP_OSD_TOGGLE_BY_HOTKEY OSD_SetTimer( OSD_TIMER_NORMAL, OSD_TIME_FOR_BANNER );#endif /* _APP_CAP_OSD_TOGGLE_BY_HOTKEY */ break; //case DISPLAY_SETUP: // ControlSetUpNum(); // break; case DISPLAY_ADULT_PSWD_CHECK: ctrl.p.value = input_dig; OSD_ChangeDisplay(OSD_CTRL_PSWD_UPDATE, &ctrl, SYS_NO_WAIT); if( input_dig== 4 ) { ret = SetupComparePassword( data.number[0], data.number[1], data.number[2], data.number[3] ); if( ret == TRUE ) { gPasswd_wrong_cnt = 0; OSD_SetMainDisplay(DISPLAY_OFF, SYS_WAIT); OSD_SetIconDisplay(ICON_CLEAR, NULL, SYS_NO_WAIT); UiDvdvPassword( TRUE ); } else { gPasswd_wrong_cnt++; if( gPasswd_wrong_cnt < 3 ) { OSD_SetMainDisplay(DISPLAY_ADULT_PSWD_ERROR, SYS_WAIT); SysSleep(1500, NULL); OSD_SetMainDisplay(DISPLAY_ADULT_PSWD_CHECK, SYS_WAIT); } else { gPasswd_wrong_cnt = 0; OSD_SetMainDisplay(DISPLAY_OFF, SYS_WAIT); OSD_SetIconDisplay(ICON_CLEAR, NULL, SYS_NO_WAIT); UiDvdvPassword( FALSE ); } } InitTempValueState(); } break; case DISPLAY_PROGRAM: case DISPLAY_EXPLORER: break; default: InitTempValueState(); OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_NO_WAIT); break; } } /******************************************************************************* Function name : GuiRegionCodeControlHandle* Arguments : * IN * * OUT * I/O * Return : * VOID* By : QQ* Description : * Revision : *******************************************************************************/VOID GuiRegionCodeControlHandle(UCHAR key){ TempKeeper_t datatmp; GetTempValueState(&datatmp); if( key<RC_KEY_NUM7 && key>RC_KEY_XXXX ) { SetTempValue( key - RC_KEY_NUM0 ); OSD_ChangeDisplay(DISPLAY_RC_MSG, NULL, SYS_WAIT); return; } switch(key) { case RC_KEY_ENTER: if(gOSD_state.etRc_dsp == RC_DUMMY || gOSD_state.etRc_dsp == RC_EXPLAINMENT || gOSD_state.etRc_dsp == RC_SELECT_NUM) { gOSD_state.etRc_dsp = RC_OTHER_INFO; OSD_ChangeDisplay(DISPLAY_RC_MSG, NULL, SYS_WAIT); } else if(gOSD_state.etRc_dsp == RC_OTHER_INFO) { InitTempValueState(); OSD_SetMainDisplay(DISPLAY_OFF, SYS_WAIT); GuiMessageKeep(); } break; case RC_KEY_SETUP: SetupInfoSetMenuRegionCode(datatmp.number[0]); InitTempValueState(); OSD_SetMainDisplay(DISPLAY_OFF, SYS_NO_WAIT); GuiMessageKeep(); return; case RC_KEY_RETURN: InitTempValueState(); OSD_SetMainDisplay(DISPLAY_OFF, SYS_NO_WAIT); GuiMessageKeep(); break; default: OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_NO_WAIT); break; }} /******************************************************************************* Function name : * Arguments : * IN * * OUT * I/O * Return : * VOID* By : Liu renliang* Description : * Revision : *******************************************************************************/#if _APP_CAP_FUNC_RC_CODE_FREE VOID RcCodeFree(VOID){ TempKeeper_t data; UINT pre_region_code = 0xFF; OsdIconCtrl_st icon_ctrl; GetTempValueState( &data ); if( gMode_code_free == TRUE ) { if( data.number[4] != 0xFF ) { switch( gRegion_code ) { case REGION_CODE_NUM_1: SysPrintf("\n[RC] Region Code Free Restricted."); gCode_free_ready = FALSE; gMode_code_free = FALSE; break; case REGION_CODE_NUM_2: SysPrintf("\n[RC] Region code free ready."); if( data.number[0] == 8 && data.number[1] == 3 && data.number[2] == 5 && data.number[3] == 7 && data.number[4] == 5 ) { gCode_free_ready = TRUE; pre_region_code = (UINT)SetupInfoGetMenuRegionCode(); icon_ctrl.num = (UINT)pre_region_code; OSD_SetIconDisplay(ICON_NUMERIC, &icon_ctrl, SYS_NO_WAIT); } else { gCode_free_ready = FALSE; //gMode_code_free = FALSE; // erased 2004.03.25 in SEIN by KTJ } break; case REGION_CODE_NUM_3: SysPrintf("\n[RC] Region code free ready."); if( data.number[0] == 2 && data.number[1] == 3 && data.number[2] == 7 && data.number[3] == 6 && data.number[4] == 5 ) { gCode_free_ready = TRUE; pre_region_code = (UINT)SetupInfoGetMenuRegionCode(); icon_ctrl.num = (UINT)pre_region_code; OSD_SetIconDisplay(ICON_NUMERIC, &icon_ctrl, SYS_NO_WAIT); } else { gCode_free_ready = FALSE; //gMode_code_free = FALSE; // erased 2004.03.25 in SEIN by KTJ } break; case REGION_CODE_NUM_4 : SysPrintf("\n[RC] Region code free ready."); if( data.number[0] == 4 && data.number[1] == 8 && data.number[2] == 8 && data.number[3] == 6 && data.number[4] == 7 ) { gCode_free_ready = TRUE; pre_region_code = (UINT)SetupInfoGetMenuRegionCode(); icon_ctrl.num = (UINT)pre_region_code; OSD_SetIconDisplay(ICON_NUMERIC, &icon_ctrl, SYS_NO_WAIT); } else { gCode_free_ready = FALSE; //gMode_code_free = FALSE; // erased 2004.03.25 in SEIN by KTJ } break; case REGION_CODE_NUM_5: SysPrintf("\n[RC] Region code free ready."); if( data.number[0] == 4 && data.number[1] == 1 && data.number[2] == 8 && data.number[3] == 3 && data.number[4] == 5 ) { gCode_free_ready = TRUE; pre_region_code = (UINT)SetupInfoGetMenuRegionCode(); icon_ctrl.num = (UINT)pre_region_code; OSD_SetIconDisplay(ICON_NUMERIC, &icon_ctrl, SYS_NO_WAIT); } else { gCode_free_ready = FALSE; //gMode_code_free = FALSE; // erased 2004.03.25 in SEIN by KTJ } break; case REGION_CODE_NUM_6 : SysPrintf("\n[RC] Region code free ready."); if( data.number[0] == 2 && data.number[1] == 6 && data.number[2] == 4 && data.number[3] == 4 && data.number[4] == 2 ) { gCode_free_ready = TRUE; pre_region_code = (UINT)SetupInfoGetMenuRegionCode(); icon_ctrl.num = (UINT)pre_region_code; OSD_SetIconDisplay(ICON_NUMERIC, &icon_ctrl, SYS_NO_WAIT); } else { gCode_free_ready = FALSE; //gMode_code_free = FALSE; // erased 2004.03.25 in SEIN by KTJ } break; case REGION_CODE_FREE: SysPrintf("\n[RC] Region code already free."); //gMode_code_free = FALSE; // erased 2004.03.25 in SEIN by KTJ break; default: SysPrintf("\n[RC] Unknown region code."); //gMode_code_free = FALSE; // erased 2004.03.25 in SEIN by KTJ
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -