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

📄 key_receive.c

📁 SAMSUNG 5009的源代码
💻 C
📖 第 1 页 / 共 4 页
字号:
/****************************************************************************** *   Filename    : Key_receive.c *   Start       : 2002. 11. 6. *   By          : Taejin Kwon *   Contact     : tj1kwon@samsung.co.kr *   Description : Process key input from front micom ****************************************************************************** *//****************************************************** *       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 "COMMON/Common.h"#include "DRIVER/FS/Fs_api.h"#include "MAIN/Global_state.h"#include "MAIN/Appl_types.h"#include "CUSTOM/Osd_types.h"#include "CUSTOM/Osd_if.h"#include "CUSTOM/Key_handler_setup.h"#include "CUSTOM/Key_receive.h"#include "CUSTOM/Key_defs.h"#include "MAIN/DVD/Dvd_predef.h"#include "MAIN/DVD/Dvd_common.h"#include "MAIN/SVCD/Svcd_types.h"#include "MAIN/SVCD/Svcd_ext.h"#include "MAIN/SVCD/Svcd_common.h"#include "MAIN/MMP/MMN/Mmn_core.h"#include "MAIN/MMP/Mmp_predef.h"#include "MAIN/Uop_msg.h"#include "MAIN/MMP/Mmp_common.h"#include "MAIN/MMP/Mmp_global.h"#include "MAIN/MMP/Mmp_util.h"#include "CUSTOM/Key_2_uop.h"#if _COP_CAPTURE_LOGO_USED#include "API/SH_BM_api.h"#include "API/LAPI/IFO/IFO.h"#include "API/LAPI/IFO/Capture_Logo.h"#endif/****************************************************** *       Global variables / functions *****************************************************/#if _APP_CAP_FUNC_ZOOM_CLEAR_BY_SKIPBOOL	gZoom_clear = FALSE;#endif /*_APP_CAP_FUNC_ZOOM_CLEAR_BY_SKIP*/BYTE1			gNew_disc_id; /****************************************************** *       Extern variables  *****************************************************/extern SysQueue_t		gQ_key;extern SysTimer_t		gTimer_saver;extern volatile BOOL	gScreen_saver_on;extern volatile BOOL 	gState_timer_on;#if _APP_CAP_FUNC_TRAY_AUTO_CLOSEextern SysTimer_t		gTimer_auto_close;extern volatile BOOL	gAuto_close_timer_on;extern volatile BOOL	gbMain_loop;extern volatile BOOL 	gTray_auto_close;extern BOOL  			gclose_at_saver;#endifextern volatile UCHAR   main_mode;extern volatile BOOL	gLoading_on;#if _APP_CAP_NAV_FIRM_CDextern SysQueue_t		*gQ_firm;#endif /* _SUPPORT_CD_UPGRADE */extern VOID OsdTimerSet( SysTimeTick_t time, SysEnable_t	set );extern VOID SH_writeEepromFromBuffer( VOID );extern VOID CloseTrayAndPlayDisc(VOID);extern VOID StateTimerSet( SysEnable_t	set );extern BOOL IsMenuDomainKeyForbidden( UCHAR data );		extern BOOL IsXvcdPBCMenuKeyForbidden( UCHAR data );extern VOID MmpShowNoticeString(MmpNoticeType_et notice_type, char *string);extern VOID OSD_ChangeSetupSelD2(MenuDom1State_et d1, MenuDom2State_et old_t, MenuDom2State_et new_t, SysWait_t wait );extern INLINE IconState_et GetDisplayIconState( VOID );extern INLINE OSD_MainType_et GetDisplayMainState( VOID );extern INLINE VolOsdType_et GetDisplayVolOsdTypeState( VOID );extern INLINE OSD_MainType_et GetDisplayMainState( VOID );extern INLINE IconState_et GetDisplayIconState( VOID );extern INLINE void SetDisplayVolOsdTypeState( VolOsdType_et  type );extern INLINE VOID SetMenuState( OSD_MenuCtrl_st *menu );/****************************************************** *       functions *****************************************************/#if _APP_CAP_FUNC_RANDOM_PLAY/****************************************************************************** * Function name	: GuiSetMode * Arguments		:   *     IN				VOID *			 *     OUT        *     I/O        * Return			:  VOID *				 * By			: Kim Do Yeon * Description		: Set the mode * Revision		: 1.0  ****************************************************************************** */ VOID GuiSetMode(VOID){	OSD_State_st *osd_state;	osd_state = OSD_GetState();		OSD_SetIconDisplay(ICON_CLEAR, NULL, SYS_NO_WAIT);			switch(osd_state->ecPlaymode_pos) 	{		case 0:			UiPlayModeChange(PARAM_PB_NORMAL);			OSD_BannerOff();			break;					case 1:			UiPlayModeChange(PARAM_PB_RANDOM);			OSD_BannerOff();			break;					case 2:											GuiProgramEnter(); 						break;					default:			break;	}			}	#endif /* _APP_CAP_FUNC_RANDOM_PLAY */ /****************************************************************************** * Function name	: GuiSetAudioCh() * Arguments		:   *     IN				UCHAR data *			 *     OUT        *     I/O        * Return			:  VOID *				 * By			: Kim Do Yeon * Description		: Set the audio ch  * Revision		: 1.0  ****************************************************************************** */  VOID GuiSetAudioCh(VOID){	S5H_Lrstereo_et lrstereo_state;		OSD_SetIconDisplay(ICON_CLEAR, NULL, SYS_NO_WAIT);		OSD_BannerOff();	GetLrstereoState(&lrstereo_state);	SetLrstereoState(lrstereo_state);		if (GetDiscState() == CD_DA #if _APP_CAP_FUNC_MIXED_VCD_CDDA						&& GetMixedCdState() == FALSE#endif /* _APP_CAP_FUNC_MIXED_VCD_CDDA */						)	{		// Qian liping 060427		OsdTimerSet(1, TIMER_DISABLE );		OSD_SetMainDisplay(DISPLAY_INFO, SYS_NO_WAIT);	} }#if _APP_CAP_FUNC_COLDSTART/******************************************************************************* Function name	: GuiColdStart* Arguments		:  *     IN    		    VOID*			*     OUT       *     I/O       * Return			: VOID  *					* By				: Kim Do Yeon* Description		: Handle the cold start hot key* Revision		: 1.0  *******************************************************************************/  VOID GuiColdStart(VOID){	OSD_State_st *osd_state;	osd_state = OSD_GetState();		if(osd_state->etCur_dsp != DISPLAY_COLDSTART)	{		OSD_SetMainDisplay(DISPLAY_COLDSTART, SYS_NO_WAIT);	}	}#endif /* _APP_CAP_FUNC_COLDSTART *//******************************************************************************* Function name	: GuiHandleCdUpgrade* Arguments		:  *     IN    		    UCHAR data, UCHAR param*			*     OUT       *     I/O       * Return			: VOID  *					* By				: Kim Do Yeon* Description		: Handle the CD Upgrade OSD* Revision		: 1.0  *******************************************************************************/  VOID GuiHandleCdUpgrade(UCHAR data, UCHAR param){	Key_t tx;		tx.key_data = data;	tx.key_mode = 0;	tx.param = param;	SysSendMsg(gQ_firm, &tx, sizeof(Key_t), SYS_NO_WAIT, 0);}	/******************************************************************************* Function name	: KeyInputCheckTimer* Arguments		:  *     IN    		    UCHAR data*				*     OUT       *     I/O       * Return			: BOOL  *					* By				: Yang Lu* Description		: * Revision		: 1.0  *******************************************************************************/   BOOL KeyInputCheckTimer(UCHAR data){	SetMainState_t	main;		if( gState_timer_on == TRUE )	{		/* restart state timer */		main = GetMainState();		SetMainState( main );		return FALSE;	}	#if _APP_CAP_FUNC_TRAY_AUTO_CLOSE	if( gScreen_saver_on && (data != RC_KEY_OPENCLOSE) && (data != RC_KEY_POWER) && gTray_auto_close == TRUE  )	{		gbMain_loop = FALSE;		EndScreenSaver(RC_KEY_AUTOCLOSE);		CloseTrayAndPlayDisc();		StateTimerSet( TIMER_DISABLE );		OSD_LogoOn(LOGO_IDLE, TRUE);		OSD_SetIconDisplay(ICON_LOADING, NULL, SYS_NO_WAIT);		gTray_auto_close = FALSE;		return TRUE;	}#endif/*_APP_CAP_FUNC_TRAY_AUTO_CLOSE*/	if( (gScreen_saver_on == TRUE) 		&& (data != RC_KEY_POWER)#if _APP_CAP_FUNC_TRAY_AUTO_CLOSE		&& (gclose_at_saver != TRUE)#endif	)	{		main = GetMainState();				SetMainState(main);		if( EndScreenSaver(data) )			return FALSE;#if _APP_CAP_FUNC_MMP_FIXED_SUB_SCHEME		if( ( GetDisplayMainState() == DISPLAY_EXT_SUBTITLE ))			return;	#endif#if _APP_CAP_FUNC_KEYHANDLE_AFTER_SAVER		if(  data != RC_KEY_PLAY#if (_APP_CAP_NAV_USB_DISC||_APP_CAP_NAV_FX_DATA) // Qian liping 060906: bug fix 642			&&!( GetDisplayMainState()== DISPLAY_FAT_DEVICE &&  data == RC_KEY_ENTER )#endif			)			OSD_SetIconDisplay(ICON_KEEP,NULL,SYS_NO_WAIT);				SysSleep(1000,NULL);		return FALSE;#else/*_APP_CAP_FUNC_KEYHANDLE_AFTER_SAVER*/		OSD_SetIconDisplay(ICON_KEEP,NULL,SYS_NO_WAIT);		return TRUE;#endif/*_APP_CAP_FUNC_KEYHANDLE_AFTER_SAVER*/	}		return FALSE;}/******************************************************************************* Function name	: KeyInputCheckHLSpecialKey* Arguments		:  *     IN        			UCHAR data, UCHAR param*			*     OUT       *     I/O       * Return			: BOOL  *					* By				: Yang Lu* Description		: Handle Hot keys * Revision		: 1.0 *******************************************************************************/BOOL KeyInputCheckHLSpecialKey(UCHAR data, UCHAR param){	SH_FEState_et	state;		state = SH_FE_GetState();	#if 0//_APP_CAP_FUNC_COLDSTART	if( SetupInfoReadColdStart()==TRUE )		return FALSE;#endif /* _SUPPORT_COLD_START */	if (data == RC_KEY_POWER)	{		GuiPower(param);		return TRUE;	}	if( data == RC_KEY_OPENCLOSE )	{		GuiOpenClose( param);		return TRUE;		}	if( data == RC_KEY_FAT_DEVICE_SELECT)	{	#if (_APP_CAP_NAV_USB_DISC||_APP_CAP_NAV_FX_DATA)			if(GetDisplayMainState() == DISPLAY_FAT_DEVICE)			return FALSE;		if(GetDisplayMainState() == DISPLAY_DIGEST_MENU)		{			OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_WAIT);			return TRUE;		}				if( GetMainState() == MAIN_LEADIN ||			(GetMainState() == MAIN_OPEN && main_mode != 0x0b) ||			SH_FE_GetState() == SH_FE_STATE_CLOSING)		{			OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_NO_WAIT);		}		else if(GetDiscState() == DUMMY_DISC || GetDiscState() == NO_USB|| GetDiscState() == NO_FX \			||GetDiscState() == NO_DISC)		{			OSD_SetMainDisplay(DISPLAY_FAT_DEVICE, SYS_WAIT);		}			else		{			// Qian liping 060721: bug fix.			if( S5H_GetAppType()==APP_MMN )			{				MmpClearRepeatAB();				if(GetMmpFileType() == MMP_IMAGE_FILE)	//wanglin 20061017					UiCmdGeneral(UOP_MMP_CLEAR_PREVIEW);			}						OSD_SetIconDisplay(ICON_CLEAR, NULL, SYS_NO_WAIT);			UiBigOsd(TRUE, BIG_OSD_FAT_SELECT);		}		return TRUE;#else		OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_WAIT);		return TRUE;#endif			}	#if _APP_CAP_NAV_USB_DISC	if(data == RC_KEY_USB_ATTACH)	{		GuiHandleUSBAttach(param);		return TRUE;	}	if(data == RC_KEY_USB_REMOVE)	{		GuiHandleUSBRemove(param);		return TRUE;	}#endif#if _APP_CAP_NAV_FX_DATA	if(data == RC_KEY_MCARD_INSERT)	{		GuiHandleMcardInsert(param);		return TRUE;	}	if(data == RC_KEY_MCARD_REMOVE)	{		GuiHandleMcardRemove(param);		return TRUE;	}#endif#if _APP_CAP_KEY_USE_NTPAL_CHANGE	if( data == RC_KEY_NTSC_PAL )	{			GuiTvChange(0);		return TRUE;			}#endif /* _SUPPORT_NTPAL_CHANGE */	#if _APP_CAP_KEY_USE_VIDEO_OUT_CHANGE	if ( data == RC_KEY_VIDEOMODE )	{		GuiVideoMode();		return TRUE;	}#endif /*  (_SUPPORT_VIDEO_MODE_CHANGE)  */#if _APP_CAP_KEY_USE_VIDEO_SCAN_CHANGE	if ( data == RC_KEY_VIDEOSCAN )	{		GuiVideoScan();		return TRUE;	}#endif /* _SUPPORT_VIDEO_SCAN_CHANGE */#if _APP_CAP_FUNC_VOLUM_CONTOL	if ( (data == RC_KEY_VOLUME_ADD) || (data == RC_KEY_VOLUME_REDUCE) 		|| (data == RC_KEY_KEY_ADD) || (data == RC_KEY_KEY_REDUCE) || (data == RC_KEY_KEY_DEFAULT) )	{		if (GetDisplayMainState() == DISPLAY_BOOKMARK)			SysSleep(100, NULL);#if _APP_CAP_AUD_FUNCTION_KEY				GuiFuncCtrl(data);#else 		GuiVolCtrl(data);#endif 		return TRUE;	}#endif /* _SUPPORT_VOLUME_CONTROL_APPL */#if _APP_CAP_FUNC_MASTER_MUTE	if(data == RC_KEY_MUTE )	{		GuiMute();		return TRUE;	}#endif /* _SUPPORT_MASTER_MUTE_APPL */ 	if(GetDisplayIconState() == ICON_LOADING || 		GetMainState() == MAIN_LEADIN ||		GetMainState() == MAIN_CLOSE )// Qian liping 060622 : bug fix 486, not support in MAIN_CLOSE state.		return TRUE;#if _APP_CAP_AUD_FUNCTION_KEY			if(data == RC_KEY_FUNC)	{		GuiFuncKey(data);		return TRUE;	}#endif /* _SUPPORT_FUNC_KEY */	if ((state == SH_FE_STATE_OPEN) ||(state == SH_FE_STATE_OPENING) ||(state == SH_FE_STATE_OPENED) )	{		if (data == RC_KEY_PLAY || data == RC_KEY_SETUP || GetDisplayMainState() == DISPLAY_SETUP#if _APP_CAP_OSD_COPYRIGHT_WIN				||data == RC_KEY_DISPLAY#endif			#if _APP_CAP_FUNC_COLDSTART			|| GetDisplayMainState() == DISPLAY_COLDSTART#endif /* _SUPPORT_COLD_START */			|| GetDisplayMainState() == DISPLAY_FAT_DEVICE#if _COP_SYS_REGION_CODE			||IS_NUM_KEY(data)			|| data ==RC_KEY_DISPLAY			|| data ==RC_KEY_ENTER			|| data ==RC_KEY_RETURN#endif /* _COP_SYS_REGION_CODE */			)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -