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

📄 key_receive.c

📁 SAMSUNG 5009的源代码
💻 C
📖 第 1 页 / 共 4 页
字号:
	if(main_state == NO_DISC || main_state == MAIN_OPEN \		|| (!VolumeCtrlAvail()) #if !_APP_CAP_AUD_KARAOKE_IN_DTS//BY QQ 050902			|| (GetCddaDiscLoaded() && GetDtsDiscLoaded()) \		|| ((GetDiscState() == DVDV_DISC) && (GetDvdvAudioCodingMode() == C_MODE_DTS))#endif/*_APP_CAP_AUD_KARAOKE_IN_DTS*/	)	{		OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_NO_WAIT);		return;	}#if _APP_CAP_AUD_KARAOKE	SetupInfoGetMenuKaraoke(&karaoke);	/* if(1):  In case that there are no  RC_KEY_KEY_ADD and RC_KEY_KEY_Reduce, while karaoke mic_setup is toggle_off, 		  jump to VOL_TYPE_KEY, else jump to VOL_TYPE_MIC.	 	 use VOL_TYPE_MAIN. 	    if(0):  In case that there has defined RC_KEY_KEY_ADD and RC_KEY_KEY_Reduce, while karaoke mic_setup is toggle_off, 		  jump to VOL_TYPE_MAIN, else jump to VOL_TYPE_MIC.	    It should change according the custom requirement.	*/	if( 1 )		vol_starttype = (karaoke.mic_setup == TOGGLE_ON)? VOL_TYPE_MIC : VOL_TYPE_KEY;	else		vol_starttype = (karaoke.mic_setup == TOGGLE_ON)? VOL_TYPE_MIC : VOL_TYPE_MAIN;#endif	if(osd_state->etCur_icon == ICON_VOLUME)	{		vol_oldtype = osd_state->etVolume_type;		if( func_type[vol_oldtype]== VOL_TYPE_NULL)		{			vol_newtype =vol_starttype;		}		else		{			vol_newtype =vol_oldtype+1;			while( func_type[vol_newtype]== 0xff)			{				vol_newtype++;			}		}		SetDisplayVolOsdTypeState(vol_newtype);	}	else // First draw the OSD.	{		SetDisplayVolOsdTypeState(vol_starttype);	}	OSD_SetIconDisplay(ICON_VOLUME, NULL, SYS_NO_WAIT);}#else	/*_APP_CAP_AUD_FUNCTION_KEY*//******************************************************************************* Function name	: GuiVolCtrl* Arguments		:  *     IN    		    UCHAR data*			*     OUT       *     I/O       * Return			: VOID  *					* By				: Lu Shuai* Description		: * Revision		: 1.0  *******************************************************************************/  VOID GuiVolCtrl(UCHAR data){	OSD_State_st *osd_state;	SetMainState_t	main_state;			osd_state = OSD_GetState();	main_state = GetMainState();	/*if(osd_state->etCur_icon == ICON_LOADING || main_state == MAIN_LEADIN)		return;*/		if (! VolumeCtrlAvail())	{		OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_NO_WAIT);		return;	}		if(osd_state->etCur_icon == ICON_VOLUME)	{		if(data == RC_KEY_VOLUME_ADD)		{			SH_AUD_SetVolume( TRUE );		}		else if(data == RC_KEY_VOLUME_REDUCE)		{			SH_AUD_SetVolume( FALSE );		}	}		/* (yanglu, 051027) */	OSD_SetIconDisplay(ICON_VOLUME, NULL, SYS_NO_WAIT);		if( SH_AUD_GetMasterMute() )	{		SH_AUD_SetMasterMute(!SH_AUD_GetMasterMute());	}	if(osd_state->etCur_dsp == DISPLAY_EXPLORER)		MmpShowNoticeString(MMP_NOTICE_DEFAULT, NULL);}#endif /*_APP_CAP_AUD_FUNCTION_KEY*/#endif/*_APP_CAP_FUNC_VOLUM_CONTOL*//******************************************************************************* Function name	: SpecialKeyUpdateInSetup* Arguments		:  *     IN    		    UCHAR data*			*     OUT       *     I/O       * Return			: VOID  *					* By				: Lu Shuai* Description		: * Revision		: 1.0  *******************************************************************************/  VOID SpecialKeyUpdateInSetup( UCHAR data ){	MenuDom2State_et d2_state;	OSD_State_st *osd_state;	osd_state = OSD_GetState();		switch( data )	{#ifndef  _MTK_STYLE#if _APP_VALUE_VIDEO_OUT_NUM		case RC_KEY_VIDEOMODE:			d2_state = MENU_D2_DISP_VOUT;			break;#endif		case RC_KEY_VIDEOSCAN:			d2_state = MENU_D2_DISP_SCAN;			break;#endif					case RC_KEY_NTSC_PAL:			d2_state = MENU_D2_DISP_TV;			break;		default:			return;	}	// update setup dom2 or dom 3	if( osd_state->etCur_dsp == DISPLAY_SETUP && osd_state->etSetup_dsp.d2_list == d2_state)	{		if(osd_state->etSetup_dsp.depth == MENU_DOM_DEPTH_2 )			OSD_ChangeSetupSelD2(MENU_D1_SUB_DISP, d2_state, d2_state, SYS_WAIT);		else if( osd_state->etSetup_dsp.depth == MENU_DOM_DEPTH_3)		{ 			osd_state->etSetup_dsp.depth = MENU_DOM_DEPTH_2;			SetMenuState(&osd_state->etSetup_dsp);			OSD_ChangeSetupSelD2(MENU_D1_SUB_DISP, d2_state, d2_state, SYS_WAIT);		}	}	SH_writeEepromFromBuffer();}#if _APP_CAP_FUNC_MASTER_MUTE/******************************************************************************* Function name	: GuiMute* Arguments		:  *     IN    		    VOID*			*     OUT       *     I/O       * Return			: VOID  *					* By				: Liu renliang* Description		: * Revision		: 1.0  *******************************************************************************/  VOID GuiMute(VOID){	OSD_State_st		*osd_state;	SetMainState_t	main_state;	osd_state = OSD_GetState();	main_state = GetMainState();	/*if(osd_state->etCur_icon == ICON_LOADING || main_state == MAIN_LEADIN)		return;*/		if (! VolumeCtrlAvail())	{		OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_NO_WAIT);		return;	}	//play MMN audio file, press mute key repeatly and quickly, 	//sometime the mute OSD keep ,but still come out sound ,or no mute OSD and no sound.	SH_AUD_SetMasterMute(!SH_AUD_GetMasterMute());		if(SH_AUD_GetMasterMute())	{			if(osd_state->etCur_dsp == DISPLAY_EXPLORER)		{			if(osd_state->etExp_state.etInfo2>=EXPLORER_MODE_INFO2MODE && osd_state->etExp_state.etInfo2<=EXPLORER_MODE_INFO2RPT )				MmpReturnInfo2Normal();						if(osd_state->etCur_icon == ICON_VOLUME)				OSD_SetIconDisplay(ICON_CLEAR, NULL, SYS_NO_WAIT);		#if _APP_CAP_OSD_MMP_MUTE_IN_FRONT			MmpShowNoticeString(MMP_NOTICE_MUTE, NULL);#else			MmpShowNoticeString(MMP_NOTICE_DEFAULT, NULL);#endif/* _APP_CAP_OSD_MMP_MUTE_IN_FRONT */		}		else		{			OSD_SetIconDisplay(ICON_KEEP, NULL, SYS_NO_WAIT);		}		}	else	{		if(osd_state->etCur_dsp == DISPLAY_EXPLORER)		{			if(osd_state->etExp_state.etInfo2>=EXPLORER_MODE_INFO2MODE && osd_state->etExp_state.etInfo2<=EXPLORER_MODE_INFO2RPT )				MmpReturnInfo2Normal();#if _APP_CAP_OSD_MMP_MUTE_IN_FRONT			MmpShowNoticeString(MMP_NOTICE_MUTEOFF, NULL);#else			MmpShowNoticeString(MMP_NOTICE_DEFAULT, NULL);#endif/* _APP_CAP_OSD_MMP_MUTE_IN_FRONT */		}		else		{	// Support in loading state 			if( gLoading_on == TRUE )				OSD_SetIconDisplay(ICON_LOADING,NULL, SYS_NO_WAIT);			else#ifdef _MTK_STYLE				OSD_SetIconDisplay(ICON_MUTE_OFF, NULL, SYS_NO_WAIT);#else				OSD_SetIconDisplay(ICON_KEEP, NULL, SYS_NO_WAIT);#endif 		}	}		//SH_AUD_SetMasterMute(!SH_AUD_GetMasterMute());#if 0	//gaoping 20060425 problem 198 play MMN audio file, press mute key repeatly and quickly, sometime the mute OSD keep ,but still come out sound ,or no mute OSD and no sound.	if(osd_state->etCur_dsp == DISPLAY_EXPLORER)		MmpShowNoticeString(MMP_NOTICE_DEFAULT, NULL);#endif			}#endif /* _APP_CAP_FUNC_MASTER_MUTE*//******************************************************************************* Function name	: VolumeCtrlAvail* Arguments		:  *     IN    		    VOID*			*     OUT       *     I/O       * Return			: BOOL  *					* By				: Liu renliang* Description		: * Revision		: 1.0  *******************************************************************************/  BOOL VolumeCtrlAvail(VOID){	OSD_State_st *osd_state;	osd_state = OSD_GetState();	/*if( GetMainState() == MAIN_OPEN )		return FALSE;	if (GetDiscState() == NO_DISC || GetDiscState() == DUMMY_DISC)		return FALSE;*/	if (osd_state->etCur_dsp == DISPLAY_SETUP||osd_state->etCur_dsp == DISPLAY_PROGRAM\		||osd_state->etCur_dsp == DISPLAY_DIGEST_MENU ||osd_state->etCur_dsp == DISPLAY_FAT_DEVICE)	//wanglin 20061017		return FALSE;/* <<< @: 5008CHN-XXX.Wang Jin 051114: When support dts dec,don't block the volume contorl. */	if(!SH_AUD_support_DTSDEC())	{		if(GetDtsDiscLoaded())		return FALSE;	}	/* >>> @: 5008CHN-XXX.Wang Jin 051114: When support dts dec,don't block the volume contorl. */	#if !_APP_CAP_FUNC_CONCURRENT_PLAY			if(S5H_GetAppType() == APP_MMN && GetMmpFileType()==MMP_IMAGE_FILE)	//Lu Shuai 060104 fixed		return FALSE;#endif		return TRUE;}#if _SUPPORT_TVG_FUNCTION_			//(weilf)20060705extern SysSema_t			_gSema_TVG_AD;		#endif/******************************************************************************* Function name	: CheckKeyInput* Arguments		:  *     IN    		    VOID*			*     OUT       *     I/O       * Return			: VOID  *					* By				: Taejin Kwon* Description		: Check a key input, convert to GUI command and then send it* Revision		: 1.0  *******************************************************************************/ VOID CheckKeyInput( VOID ){	UCHAR			data, param, mode;	SysSize_t		rsize;		/* dummy */	Key_t			rx;	SYS_RETURN ret;			/*	 *   Check message queue for key	 */	ret = SysReceiveMsg( &gQ_key, &rx, sizeof( Key_t ), &rsize, SYS_WAIT, 0 );	if(ret == SYS_RETURN_SUCCESS)	{		data = rx.key_data;		mode = rx.key_mode;		param = rx.param;#if _SUPPORT_TVG_FUNCTION_ 		//(weilf)20060705	if((gSetup_info.TVG.activation_flag != 1)&& gSetup_info.TVG.number_ad !=0)		SysReleaseSema(&_gSema_TVG_AD, NULL);		#endif 		#if 1	/* (yanglu, 051109) */		/*************************************				  Preprocess of PLAYPAUSE / RESUME... keys 					***************************************/		if( PreProcessofKeys( &data ) )			return;#endif#if _APP_CAP_FUNC_EMERGENCV_POWER_RESUME		if( data == RC_KEY_SAVE_RESUME )		{			DiscType_t disc;			disc = GetDiscState();			if( disc == DVDV_DISC || disc == DVDA_DISC || disc == SVCD_DISC ||				disc == VCD_DISC || disc == CD_I || disc == CD_DATA || 				disc == DVD_DATA || disc == USB_DATA || disc == FX_DATA || disc == CD_DA)				ApplSaveResumeInfo(TRUE);			return;		}#endif		/*************************************				  Disable if pause/stop/saver timer is on					***************************************/		if(KeyInputCheckTimer(data))						return;		/*************************************				  Handle common keys with higher priority 		  - same to all kinds of discs, and inspite of play status		  - Power / OpenClose /   NtscPal /  VideoMode  /  				VideoScan /  Mute / Func  / Volume					***************************************/			if ( KeyInputCheckHLSpecialKey(data, param) )			return;		/*************************************				  Handle keys in special osd and zoom status		  - same to all kinds of discs		  - SETUP / PROGRAM / REPEAT / MODE_SEL / STEREO / SEARCH					***************************************/		if ( KeyInputCheckDsp(data, param) )			return;		/*************************************				  Confirm the key validity  		  - for each kind of disc		  - Stop status / dvd menu domain / vcd menu		    cd-da / cdg / mmn...						***************************************/			if(KeyInputCheckSpecialState(data, param))			return;				/*************************************		  Handle common keys with lower priority		  - same to all kinds of discs		  - Repeat / RepeatAB / Program / Goto		     Karaoke / 3D / Reveberation					***************************************/		if ( KeyInputCheckLLSpecialKey(data, param) )			return;		/*************************************				  Handle keys on different APP type					***************************************/		switch( GetDiscState() )		{			case DVDV_DISC:				if ( S5H_GetAppType() == APP_DVD )					ChangeKeyToDvdvCommand( data, param );				break;#if _APP_CAP_NAV_DVD_AUDIO			case DVDA_DISC:				if ( S5H_GetAppType() == APP_DVD )					ChangeKeyToDvdaCommand( data, param );				break;#endif			case SVCD_DISC:			case CD_DA:			case VCD_DISC:			case CD_I:			case HQVCD_DISC:		#if _APP_CAP_NAV_GAME_CD				if(gVCDGameDisc == TRUE)				{					ChangeKeyToGameCdCommand(data, param);					break;				}		#endif				if ( S5H_GetAppType() == APP_VCD )					ChangeKeyToXvcdCommand( data, param );				break;			case CD_DATA:			case DVD_DATA:				#if _APP_CAP_NAV_USB_DISC			case USB_DATA:#endif#if _APP_CAP_NAV_FX_DATA			case FX_DATA:#endif				if ( S5H_GetAppType() == APP_MMN )					ChangeKeyToMmpCommand(data,param);					break;								default:				ChangeKeyToCommand( data, param );				break;		}			}	else	{		return;	}		} /* function end of CheckKeyInput *//******************************************************************************* Function name	: ReceiveKey* Arguments		:  *     IN    		    SysArgc_t argc, SysArgv_t *argv*				argc : for task proto typing, argv : for task proto typing	*     OUT       *     I/O       * Return			: VOID  *					* By				: Taejin Kwon* Description		: * Revision		: 1.0  *******************************************************************************/   VOID ReceiveKey( SysArgc_t argc, SysArgv_t *argv ){	while(1)	{		CheckKeyInput();	}}

⌨️ 快捷键说明

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