⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 key_handler_idle.c

📁 SAMSUNG 5009的源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
/****************************************************************************** *   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 + -