📄 key_handler_idle.c
字号:
/****************************************************************************** * Filename : Change_key_normal.c * Start : 2002. 11. 8. * By : Taejin Kwon * Contact : tj1kwon@samsung.co.kr * Description : Key to UI command for normal condition. * Whole key commands in this file are acceptable in any * condition. ****************************************************************************** *//****************************************************** * INCLUDES *****************************************************/#include "Basic_typedefs.h"#include "CUSTOM/Custom_option.h"#include "OS/OS_abstract.h"#include "API/SH_types.h"#include "API/SH_api.h"#include "API/LAPI/MCARD/Mcard_api.h"#include "COMMON/Common.h"#include "MAIN/Appl_types.h"#include "MAIN/Global_state.h"#include "MAIN/Uop_msg.h"#include "CUSTOM/Osd_types.h"#include "CUSTOM/Osd_if.h"#include "CUSTOM/Strings_ext.h"#include "CUSTOM/Key_handler_setup.h"#include "CUSTOM/Key_receive.h"#include "CUSTOM/Key_defs.h"#include "CUSTOM/Key_2_uop.h"#include "CUSTOM/FP_handle.h"#include "CUSTOM/Adac_api.h"#include "DRIVER/FS/Fs_api.h"#include "DRIVER/I2C/I2c_api.h"#include "DRIVER/EEPROM/Eeprom_drv.h"#include "MAIN/DVD/Dvd_predef.h"#include "MAIN/DVD/Dvd_common.h"#include "MAIN/DVD/Dvdv_show.h"#include "MAIN/MMP/Mmp_predef.h"#include "MAIN/MMP/Mmp_common.h"#include "MAIN/MMP/Mmp_global.h"#include "MAIN/MMP/Mmp_show.h"#include "MAIN/SVCD/Svcd_types.h"#include "MAIN/SVCD/Svcd_ext.h"#include "MAIN/SVCD/Svcd_show.h"#if _APP_CAP_NAV_GAME_CD#include "InfoNESMain.h"#endif/****************************************************** * Global variables / functions *****************************************************/#if _APP_CAP_FUNC_RC_CODE_FREEBOOL gMode_code_free = FALSE;BOOL gCode_free_ready = FALSE; VOID RcCodeFree(VOID);#endifUCHAR gPlay_key_cnt; extern BOOL gRedraw_flag;extern volatile BOOL gScreen_saver_on;extern volatile BOOL gbMain_loop;extern MenuLang_et gSetupOSDLangOrderMap[];//SSCR xuhui 061020#if _APP_CAP_JPG_ASVextern S5H_ASVMode_t gASV_SetupMode;#endifextern VOID SH_AUD_DeInitAtPowerOff(VOID);VOID SH_AUD_SetMuteWhenOpen(S5H_App_t type_app, BOOL mute );extern VOID myKeyMsgSender(unsigned char ucdata,unsigned short usparam );extern INLINE VOID SetMenuState( OSD_MenuCtrl_st *menu );extern INLINE IconState_et GetDisplayIconState( VOID );extern VOID GetDvdvInfoInAppLayer(DvdVideoInfo_t* dvdv);extern VOID OsdNumericTimerSet( SysTimeTick_t time, SysEnable_t set );extern VOID OsdSelTimerSet( SysTimeTick_t time, SysEnable_t set );extern INLINE void SetDisplayVolOsdTypeState( VolOsdType_et type );extern VOID OsdCheck( VOID );extern INLINE OSD_MainType_et GetDisplayMainState( VOID );extern void MmpGuiVideoEnter(UCHAR param);extern VOID OsdTimerSet( SysTimeTick_t time, SysEnable_t set );#if _APP_CAP_NAV_USB_DISCextern VOID USBDetectTimerDisable(VOID);extern VOID ohciTerminate(VOID);#endif#if _APP_CAP_NAV_FX_DATAextern SH_RETURN iFx_SetDevice(Fx_Device_et device);extern VOID CardDetectTimerDisable(VOID);#endifextern INLINE VOID SetDisplayDigestState( BYTE1 digest );extern INLINE BYTE1 GetDisplayDigestState( VOID );STATIC UCHAR (*GetPlayMode[])(VOID) = { /* (yanglu, 051109) */ NULL, GetDvdvPlayMode, GetVcdPlayMode, GetMmpPlayMode,}; #if _APP_CAP_FUNC_BOOKMARKBOOL (*GetBookmarkAttribute[])( BookmarkInfo_t *, UCHAR ) = { NULL, GetDvdvBookmarkAttribute, GetSvcdBookmarkAttribute,#ifdef _MMP_BOOKMARK // cydrain 20060210 GetMmpBookmarkAttribute,#else NULL,#endif};#endifVOID (*GuiDefaultEnter[])(VOID) = { /* (yanglu, 060304) */ NULL, GuiDvdvDefaultEnter, GuiXvcdDefaultEnter, NULL,/* Need the interface of APP_MMN */};RepeatSub_et (*GetRepeatABMode[])( VOID ) = { NULL, GetDvdvRepeatABState, GetSvcdRepeatABState};/****************************************************** * Extern variables *****************************************************/ #if _APP_CAP_FUNC_COLDSTARTextern volatile BOOL gCold_start_mode; #endifextern volatile BOOL gPower_off_start;extern ONOFF gPower_state;extern BOOL gServo_init;extern SysTask_t gTask_appl; extern SysTask_t gTask_nav; extern BOOL gServo_init;extern SysTimer_t gTimer_state;extern SysTimer_t gTimer_saver;#if _APP_CAP_KEY_INPUT_DELAYextern SysTimer_t gTimer_key_delay; #endif /* _APP_CAP_KEY_INPUT_DELAY */extern volatile BOOL gTray_open;extern volatile BOOL gLoading_on;extern volatile UCHAR gRegion_code;#if _APP_CAP_FUNC_ZOOM_CLEAR_BY_SKIPextern BOOL gZoom_clear;#endif /*_APP_CAP_FUNC_ZOOM_CLEAR_BY_SKIP*/extern volatile BOOL gCd_firm_upgrading;#if _APP_CAP_FUNC_SCORING extern SysTimer_t gTimer_score_osd;#endifextern SysTask_t gAVL_Task; #if _APP_CAP_FUNC_EMERGENCV_POWER_RESUMEextern SysTimer_t gTimer_emerge_saver;#endif#if _APP_CAP_FUNC_TRAY_AUTO_CLOSEextern SysTimer_t gTimer_auto_close;#endifextern volatile BOOL gResumeSet;/****************************************************** * functions *****************************************************/#if (_USE_5008 || _USE_5010 ) //||_USE_5005)#ifdef _BOARD_EVAVOID Tray_CLOSE(VOID);#elseVOID Initial_Tray_CLOSE(VOID);#endif#elif (_USE_5005 || _USE_5009 || _USE_5015)VOID Initial_Tray_CLOSE(VOID);#elseVOID Tray_CLOSE(VOID);#endifVOID ApplSaveResumeInfo( BOOL save );/****************************************************************************** * Function name : ChangeKeyToCommand * Arguments : * IN UCHAR data, UCHAR param * * OUT * I/O * Return : VOID * * By : Taejin Kwon * Description : Send Power control to GUI queue * Revision : ****************************************************************************** */VOID ChangeKeyToCommand( UCHAR data, UCHAR param ){ SH_FEState_et state; switch( data ) {#if _APP_CAP_KEY_SUPPORT_EXT_AV case RC_KEY_EXTERNAV: SysPrintf("\nGet External AV Key."); GuiExternAV(0); break; #endif case RC_KEY_POWER: SysPrintf("\nGet POWER Key."); GuiPower(0); break; case RC_KEY_OPENCLOSE: SysPrintf("\nGet Open/Close Key."); if( gServo_init == FALSE ) { SysPrintf("\n [Before Servo Init -> Ignore"); } else { GuiOpenClose(0); } break; case RC_KEY_SETUP: {#if _APP_CAP_FUNC_RC_CODE_FREE gMode_code_free = FALSE; gCode_free_ready = FALSE; InitTempValueState();#endif OSD_SetMainDisplay(DISPLAY_SETUP, SYS_WAIT); } break; case RC_KEY_PLAY: if( GetDiscState() == NO_DISC ) { GuiPlayPause(0); } /* [ !Caution: No break here !] */ case RC_KEY_ENTER: state = SH_FE_GetState(); if( (state == SH_FE_STATE_OPEN) || (state == SH_FE_STATE_OPENING) || (state == SH_FE_STATE_OPENED) ) { GuiOpenClose(0); } #if _APP_CAP_FUNC_RC_CODE_FREE gMode_code_free = FALSE; gCode_free_ready = FALSE; InitTempValueState(); #endif break; case RC_KEY_TITLE_MENU: case RC_KEY_ROOT_MENU: OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_NO_WAIT); break;#if _APP_CAP_FUNC_RC_CODE_FREE case RC_KEY_REPEAT: /* Code free is only available in the no disc and that is not support for code 1 */ if( GetDiscState() == NO_DISC && ((SetupInfoGetMenuRegionCode() != REGION_CODE_NUM_1) && (SetupInfoGetMenuRegionCode() != REGION_CODE_FREE)) ) { gMode_code_free = TRUE; gCode_free_ready = FALSE; InitTempValueState(); } break; case RC_KEY_NUM0: case RC_KEY_NUM1: case RC_KEY_NUM2: case RC_KEY_NUM3: case RC_KEY_NUM4: case RC_KEY_NUM5: case RC_KEY_NUM6: case RC_KEY_NUM7: case RC_KEY_NUM8: case RC_KEY_NUM9: NumberKeyControl(data); break;#endif /*_APP_CAP_FUNC_RC_CODE_FREE */ case RC_KEY_DISPLAY: OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_NO_WAIT); break; case RC_KEY_NEXT: case RC_KEY_PREV: if( GetDiscState() == NO_DISC ) { OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_NO_WAIT); } break;#if _APP_CAP_KEY_USE_VIDEO_SCAN_CHANGE case RC_KEY_VIDEOSCAN: { OSD_SetIconDisplay(ICON_VIDEOSCAN, NULL, SYS_NO_WAIT); } break; #endif /* _APP_CAP_KEY_USE_VIDEO_SCAN_CHANGE */#if _APP_CAP_KEY_TIME_KEY case RC_KEY_TIME: OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_NO_WAIT); break;#endif default: #if _APP_CAP_FUNC_RC_CODE_FREE gMode_code_free = FALSE; gCode_free_ready = FALSE; InitTempValueState(); #else OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_NO_WAIT);#endif break; } /* end of switch for key value selection */}#if _APP_CAP_NAV_GAME_CDextern gameCdTransition_t gameEndFlag;/****************************************************************************** * Function name : ChangeKeyToGameCdCommand * Arguments : * IN UCHAR data, UCHAR param * OUT * I/O * Return : VOID * * By : Vijay Kumar S * Description : Send Keys to GUI queue for Game CD * Revision : *****************************************************************************/VOID ChangeKeyToGameCdCommand( UCHAR data, UCHAR param ){ Uop_t tx; if(gameEndFlag == GAME_MENU) { switch(data) { case RC_KEY_NEXT: UiCmdGeneral(UOP_SVCD_NEXT); break; case RC_KEY_PREV: UiCmdGeneral(UOP_SVCD_PREV); break; case RC_KEY_NUM0: case RC_KEY_NUM1: case RC_KEY_NUM2: case RC_KEY_NUM3: case RC_KEY_NUM4: case RC_KEY_NUM5: case RC_KEY_NUM6: case RC_KEY_NUM7: case RC_KEY_NUM8: case RC_KEY_NUM9: NumberKeyControl(data); break; case RC_KEY_ENTER: { BYTE2 temp2_dig = 0; temp2_dig = GetTempValue(2); if(temp2_dig > 0) { UiCmdNumeric(UOP_SVCD_BTN_SEL_ACT, temp2_dig); OSD_SetIconDisplay(ICON_KEEP, NULL, SYS_NO_WAIT);//clina 061012 InitTempValueState(); } else OsdNotAvailOn(); } break; default: OsdNotAvailOn(); InitTempValueState(); break; } } else if(gameEndFlag == GAME_RUNNING) { switch(data) { case RC_KEY_STOP: case RC_KEY_RETURN: UiCmdGeneral(UOP_SVCD_RETURN); break; default: break; } } else if(gameEndFlag == GAME_TRANSIT) { switch(data) { case RC_KEY_STOP: case RC_KEY_RETURN: break; default: break; } }}#endif/****************************************************************************** * Function name : GuiPower * Arguments : * IN UCHAR param * * OUT * I/O * Return : VOID * * By : Taejin Kwon * Description : Send Power control to GUI queue * Revisions : ****************************************************************************** */VOID GuiPower( UCHAR param ){ DiscType_t disc; S5H_App_t app_type; /* Liu 0908: During process of the function the value of app_type maybe changed So get the value at the beginning. */ disc = GetDiscState(); app_type = S5H_GetAppType(); SysPrintf("\nPower key."); gPower_off_start = TRUE; #if 0 //_APP_CAP_FUNC_SCART -- zb 060429 SetScartVol(0xFF,0); /* Return to standby status (yanglu, 051206) */#endif //TurnOffTestTone(); /* (yanglu, 060303) */ SetVfdMainState( MAIN_POWER_OFF ); if( ( GetMainState() != MAIN_STOP )||( GetMainState() != MAIN_OPEN )) { SH_PM_Stop(PM_STOP_OPT_FULL); /* (Fix the bug) The button remains if power off at DVD menu */ /* Turn off the highlight (20050727,ishan) */ if ( app_type == APP_DVD ) SH_PM_StopSpd(); }#if !_APP_CAP_OSD_NOT_DSP_LOGO_AFTER_POWEROFF OSD_LogoOn(LOGO_IDLE, TRUE);#endif SH_AUD_DeInitAtPowerOff(); SysKillTimer( &gTimer_state, 0 ); SysKillTimer( &gTimer_saver, 0 );#if _APP_CAP_KEY_INPUT_DELAY SysKillTimer( &gTimer_key_delay, 0 );#endif /* _APP_CAP_KEY_INPUT_DELAY */ #if _APP_CAP_FUNC_TRAY_AUTO_CLOSE SysKillTimer( &gTimer_auto_close, 0 );#endif /* _APP_CAP_FUNC_TRAY_AUTO_CLOSE */#if _APP_CAP_FUNC_SCORING SysKillTimer( &gTimer_score_osd, 0 );#endif SH_GfxShowCanvas(SH_CANV1, FALSE); OSD_SetIconDisplay(ICON_CLEAR, NULL, SYS_WAIT); OSD_Deinit();#if _COP_UI_FUNC_POWER_RESUME#if _APP_CAP_FUNC_EMERGENCV_POWER_RESUME /* before save resume info. stop the timer. This is not enough to clear this problem. TODO : TJ */ SysResetTimer(&gTimer_emerge_saver, NULL, 0, 0, TIMER_DISABLE, 0);#endif if( gResumeSet ) ApplSaveResumeInfo(TRUE);#endif /* _USER_SUPPORT_POWER_OFF_RESUME */ /* Resource clear(all tasks, Qs, and etc.) */ if(disc != FIRM_CD )
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -