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

📄 key_handler_idle.c

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