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

📄 key_handler_dvdv.c

📁 SAMSUNG 5009的源代码
💻 C
📖 第 1 页 / 共 3 页
字号:
			else
				UiSelectAndActive( (UCHAR) temp_3dig );

			// Changlina 060811: bug fix 600
			 OSD_SetIconDisplay(ICON_KEEP, NULL, SYS_NO_WAIT);
		}
		else if(temp_3dig != 0)
		{					
#if _APP_CAP_FUNC_SEARCH_TITLE_BY_NUMBER		
			if(DvdInfo.total_chapter ==1)
				UiTitlePlay(temp_3dig);
			else 
				UiPttSearch((UCHAR) temp_3dig );
#else/*_APP_CAP_FUNC_SEARCH_TITLE_BY_NUMBER*/
			UiPttSearch((UCHAR) temp_3dig );
#endif/*_APP_CAP_FUNC_SEARCH_TITLE_BY_NUMBER*/			
		        OSD_SetIconDisplay(ICON_KEEP, NULL, SYS_NO_WAIT);
		        InitTempValueState();
		}

		else
		{
			OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_NO_WAIT);
			return;
		}

	}
	else if (domain == DVD_DOM_STOP && temp_3dig != 0)
	{
		if ( IsDvdFullStopMode() )
			UiPttPlay(1, (UCHAR) temp_3dig);
		else if (GetDvdResumeStopDomain() == DVD_DOM_VMGM || \
				GetDvdResumeStopDomain() == DVD_DOM_VTSM)
			UiPttPlay(1, (UCHAR) temp_3dig);
		else
#if _APP_CAP_FUNC_SEARCH_TITLE_BY_NUMBER		// Qian liping 061010: fix bug 119
			if(DvdInfo.total_chapter ==1)
				UiTitlePlay(temp_3dig);
			else 
#endif 
				UiPttSearch((UCHAR) temp_3dig );

			
		InitTempValueState();
	}
#if _APP_CAP_NAV_DVD_AUDIO
	else if( (domain == DVD_DOM_AMGM) || (domain == DVD_DOM_TT_GR) )
	{
		/* maybe menu domain */

		if( GetDvdButtonSelectionState() != DVD_BTN_NONE )
		{
			if( temp_3dig == 0 )
				UiCmdGeneral( UOP_DVDV_BTN_ACTIVATE );
			else
				UiSelectAndActive( (UCHAR) temp_3dig );
		}
		else if(temp_3dig != 0)
		{					
#if _APP_CAP_FUNC_SEARCH_TITLE_BY_NUMBER	
			DvdVideoInfo_t DvdInfo;
			GetDvdVideoInfo(&DvdInfo);
			if(DvdInfo.total_chapter ==1)
				UiTitlePlay(temp_3dig);
			else 
				UiPttSearch((UCHAR) temp_3dig );
#else/*_APP_CAP_FUNC_SEARCH_TITLE_BY_NUMBER*/
			UiPttSearch((UCHAR) temp_3dig );
#endif/*_APP_CAP_FUNC_SEARCH_TITLE_BY_NUMBER*/	
		        OSD_SetIconDisplay(ICON_KEEP, NULL, SYS_NO_WAIT);
		        InitTempValueState();
		}
		else
		{
			OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_NO_WAIT);
			return;
		}
	}
#endif
	InitTempValueState();
}
/******************************************************************************
 *  Function name : GuiDvdvEnter
 *  Arguments     : 
 *  Return        : VOID
 *  By            : Taejin Kwon
 *  Description   : 
 *  Revisions     :
 ******************************************************************************
 */
VOID GuiDvdvEnter( UCHAR param )
{
	MediaInfo_t		media;
	OSD_State_st *osd_state;
	Domain_t			domain;

	BYTE2	temp_2dig = GetTempValue(2);
	osd_state = OSD_GetState();

	switch( osd_state->etCur_dsp )
	{
#if _APP_CAP_FUNC_DISPLAY_FIT		
		case DISPLAY_FIT:
			UiCmdGeneral( UOP_DVDV_EZ_VIEW );
			OSD_SetTimer( OSD_TIMER_NORMAL, OSD_TIME_FOR_BANNER );
			break;
#endif			
		case DISPLAY_AUDIO:
		case DISPLAY_SUBTITLE:
		case DISPLAY_ANGLE:
			if(temp_2dig > 0)
				GuiDvdvDefaultEnter();
			else
#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_INFO: // Qian liping 060525
			GetMediaInfoState( &media );
			domain = GetDvdDomain();
			
			if( osd_state->etInfo_sub == INFO_SUB_TITLE || 
				osd_state->etInfo_sub == INFO_SUB_CHAPTER )
			{
				DVDSearch_t	search_value;
				OsdCtrl_st ctrl;

				/* Reset  timer & temp keeper data for later use, since 'Enter' key is pressed for confirmation*/
				OsdSelTimerSet( 1, TIMER_DISABLE );
				InitTempValueState();
				
				GetSearchValue(&search_value);
				
				/* No valid title and chapter case */
				if(search_value.title_search == 0)
				{
					OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_NO_WAIT);
				}
				/* Only title is edited case */
				else if(search_value.chapter_search == 0)
				{
					UiTitlePlay((UCHAR)search_value.title_search);
					// Search the first chapter in current title.
					search_value.chapter_search = 1;
					SetSearchValue( search_value );
				}
				else if( search_value.title_search == media.dvdv.cur_title && \
					(!IsDvdFullStopMode() && GetDvdResumeStopDomain() == DVD_DOM_TT)) 
				{
					UiPttSearch((UCHAR)search_value.chapter_search);
				}
				else 
				{
					UiPttPlay((UCHAR)search_value.title_search, (UCHAR)search_value.chapter_search);
				}

				/* 
					Yanglu 05.06.12 Reset search value with HL moves in Osd code part;  to avoid such case:
					If valid pair of t/c is searched, the HL be removed, but the previous 
					t/c value is re-displayed for a short while.
					Otherwise, If invalid pair of t/c value is searched, the HL be removed, and the current play 
					info is recoverd in dvd nav: DvdShowUopProhibited(), RefreshTtPttSearch()
				*/
				ctrl.p.info.old = osd_state->etInfo_sub; 
				ctrl.p.info.new = INFO_SUB_NONE;
				OSD_ChangeDisplay(OSD_CTRL_ELEM_SELECT, &ctrl, SYS_NO_WAIT);				
			}
			else if( osd_state->etInfo_sub == INFO_SUB_VTIME )
			{
				GuiTimeSearch();
			}
			else
			{
				GuiDvdvDefaultEnter();
			}
			break;

		default:
			GuiDvdvDefaultEnter();
		break;
	} /* switch */
}
/******************************************************************************
 *  Function name : GuiDvdvAudioSubtitleId
 *  Arguments     : 
 *  Return        : VOID
 *  By            : Liu ren liang
 *  Description   : 
 *  Revisions     :
 ******************************************************************************
 */
VOID GuiDvdvAudSubtAngleId( UCHAR param )
{
	OSD_State_st *osd_state;
	Domain_t			domain;
	SetMainState_t	main;
#ifndef _MTK_STYLE
	DvdvAudioInfo_t		ast;
	DvdvSubtitleInfo_t		spst;
	DvdvAngleInfo_t		angle;
#endif

	SysPrintf("\n[GUI] DVDV Audio/Subtitle/Angle/Stereo Stream Selection Key.");

	main = GetMainState();
	if(  main == MAIN_PAUSE || main == MAIN_STEP  || main == MAIN_SF || main == MAIN_SR ||
		main == MAIN_FF || main == MAIN_FR )
	{
		OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_NO_WAIT);
		return;
	}
	
	osd_state = OSD_GetState();

	if( param==RC_KEY_AUDIO && osd_state->etCur_dsp != DISPLAY_AUDIO )
	{
#ifdef _MTK_STYLE
		GuiDvdvUpdateAudio();
#else
		if( GetDvdvAudioAttribute( &ast ) == TRUE )
		{
			OSD_SetMainDisplay(DISPLAY_AUDIO, SYS_NO_WAIT);
		}
		else
		{
			OsdNotAvailOn();
		}
#endif

	}
	else if( param==RC_KEY_SUBTITLE && osd_state->etCur_dsp != DISPLAY_SUBTITLE )
	{
#ifdef _MTK_STYLE
		GuiDvdvUpdateSubtitle();
#else
		if( GetDvdvSubtitleAttribute( &spst ) == TRUE )
		{
			OSD_SetMainDisplay(DISPLAY_SUBTITLE, SYS_NO_WAIT);
		}
		else
		{
			OsdNotAvailOn();
		}
#endif
	}
	else if( param==RC_KEY_ANGLE && osd_state->etCur_dsp != DISPLAY_ANGLE )
	{
		domain = GetDvdDomain();
		if( (domain == DVD_DOM_VTSM || domain == DVD_DOM_VMGM)
			|| ( GetDvdvRepeatState() == REPEAT_SUB_A ||GetDvdvRepeatState() == REPEAT_SUB_B )
			/*BY QQ 060426 zoom->angle->prohibition mark -> error*/
			 //|| (GetZoomFactorState() != ZOOM_NONE) 
		  )
		{
			OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_NO_WAIT);
			return;
		}
#ifdef _MTK_STYLE
		GuiDvdvUpdateAngle();
#else
		if( GetDvdvAngleAttribute( &angle ) == TRUE )
		{
			OSD_SetMainDisplay(DISPLAY_ANGLE, SYS_WAIT);
		}
		else
		{
			OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_NO_WAIT);
		}
#endif
	}
}

/******************************************************************************
 *  Function name : GuiDvdvDisplay
 *  Arguments     : 
 *  Return        : VOID
 *  By            : Taejin Kwon
 *  Description   : 
 *  Revisions     :
 ******************************************************************************
 */
VOID GuiDvdvDisplay( UCHAR param )
{
	OSD_State_st *osd_state;

	osd_state = OSD_GetState();
#if _APP_CAP_OSD_AFTER_SEARCH_GOTO_INFO
	if(osd_state->etInfo_sub <= INFO_SUB_VTIME)
		GuiDvdvInfoGoto(param);
	else
#endif/*_APP_CAP_OSD_AFTER_SEARCH_GOTO_INFO*/	
	OSD_SetMainDisplay(DISPLAY_INFO, SYS_NO_WAIT);	

}

/******************************************************************************
 *  Function name : GuiDvdvStep
 *  Arguments     : 
 *  Return        : VOID
 *  By            : Taejin Kwon
 *  Description   : 
 ******************************************************************************
 */
VOID GuiDvdvStep( UCHAR param )
{
	
	if( GetDvdvRepeatState() == REPEAT_SUB_A )	/* (051019) yanglu simplify */
	{
		OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_NO_WAIT);
		return;
	}
	
	UiCmdGeneral( UOP_STEP ); 
}

#if _APP_CAP_FUNC_SLOW_REV
/******************************************************************************
 *  Function name : GuiDvdvSlowReverse
 *  Arguments     : 
 *  Return        : void
 *  By            : WangLin
 *  Description   : 
 ******************************************************************************
 */
void GuiDvdvReverseStep( UCHAR param )
{

	UiCmdGeneral( UOP_REVERSE_STEP ); 
}
#endif
/******************************************************************************
 *  Function name : GuiDvdvReturn
 *  Arguments     : 
 *  Return        : VOID
 *  By            : Taejin Kwon
 *  Description   : 
 *  Revisions     :
 ******************************************************************************
 */
VOID GuiDvdvReturn( UCHAR param )
{
	OSD_State_st *osd_state;

	osd_state = OSD_GetState();

#if _APP_CAP_NAV_DVD_AUDIO      /*Jiangshanbin for DVDA*/
	if(GetDiscState() == DVDA_DISC)
	{
		UiCmdGeneral( UOP_DVDA_MENU);
	}
	else
#endif
	if(GetDvdDomain() != DVD_DOM_TT)
	{
		if( osd_state->etCur_dsp!= DISPLAY_OFF )
			OSD_SetMainDisplay(DISPLAY_OFF, SYS_WAIT);
		else
			UiCmdGeneral( UOP_DVDV_MENU_RETURN );
	}
	else
	{
		UiCmdGeneral( UOP_DVDV_MENU_RETURN );
	}
}
/******************************************************************************
 *  Function name : GuiDvdvPlay
 *  Arguments     : 
 *  Return        : void
 *  By            : Taejin Kwon
 *  Description   : 
 *  Revisions     : (yanglu, 051203) 
 ******************************************************************************
 */
VOID GuiDvdvPlay( UCHAR param )
{
	if( gOSD_state.etCur_icon == ICON_NUMERIC )
	{
		GuiDvdvDefaultEnter();
		
	} else {
		UiCmdGeneral( UOP_PLAY );
	}
}

#if _APP_CAP_FUNC_INSTANT_PLAY
/******************************************************************************
 *  Function name : GuiDvdvInstantReplay
 *  Arguments     : 
 *  Return        : VOID
 *  By            : Taejin Kwon
 *  Description   : 
 *  Revisions     :
 ******************************************************************************
 */
VOID GuiDvdvInstantReplay( UCHAR param )
{
	if( GetMainState() != MAIN_PLAY )
	{
		OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_NO_WAIT);
		return;
	}

	UiInstantReplay();
}

/******************************************************************************
 *  Function name : GuiDvdvInstantSkip
 *  Arguments     : 
 *  Return        : VOID
 *  By            : Taejin Kwon
 *  Description   : 
 *  Revisions     :
 ******************************************************************************
 */
VOID GuiDvdvInstantSkip( UCHAR param )
{
	if( GetMainState() != MAIN_PLAY )
	{
		OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_NO_WAIT);
		return;
	}
	
	UiInstantSkip();
}
#endif


#if _APP_CAP_FUNC_DISPLAY_FIT
/******************************************************************************
 *  Function name : GuiDvdvDisplayFit
 *  Arguments     : 
 *  Return        : VOID
 *  By            : Taejin Kwon
 *  Description   : 
 ******************************************************************************
 */
VOID GuiDvdvDisplayFit( UCHAR param )
{
	BOOL				ezview;
	S5H_ZoomFactor_t	zoom;
	OSD_State_st *osd_state;

	osd_state = OSD_GetState();
	
	zoom = GetZoomFactorState();
	if( zoom != ZOOM_NONE )
	{
		OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_NO_WAIT);
		return;
	}

	ezview = IsEzViewAllowed();
	if( ezview == FALSE )
	{
		OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_NO_WAIT);
		return;
	}

	/* Check previous main state */
	SysPrintf("\n[GUI] Display fit key.");

	if( osd_state->etCur_dsp == DISPLAY_FIT )
	{
		UiDisplayFit();
		OSD_SetTimer( OSD_TIMER_NORMAL, OSD_TIME_FOR_BANNER );
	} else {
		OSD_SetMainDisplay(DISPLAY_FIT, SYS_WAIT);
	}
}
#endif

BOOL GuiDvdvUpdateSubtitle( VOID )
{
	DvdvSubtitleInfo_t spst;

	if( GetDvdvSubtitleAttribute( &spst ) == TRUE )
	{
#if !_APP_CAP_OSD_TOGGLE_BY_HOTKEY// Qian liping 060814: bug fix 629	
		OsdTimerSet(OSD_TIME_FOR_MESSAGE, TIMER_ENABLE );
#endif	/* _APP_CAP_OSD_TOGGLE_BY_HOTKEY	 */
		if( spst.onoff == TOGGLE_OFF )
		{
			spst.onoff = TOGGLE_ON;
			spst.cur_id = 0;
		} else 
		{
			/* check dummy stream or not */
			if( spst.cur_id == 63 )
			{
				spst.cur_id = 0;
			} 
			else 
			{
				spst.cur_id++;
				if( spst.cur_id == spst.total_num )
				{
					spst.onoff = TOGGLE_OFF;
					spst.cur_id = 0;
				} 
			}
		}
		UiSubtitle( spst.cur_id, spst.onoff );
		SysSleep(100,NULL);

		if(GetDisplayMainState()!= DISPLAY_SUBTITLE)
			OSD_SetMainDisplay(DISPLAY_SUBTITLE, SYS_NO_WAIT);
		return TRUE;
	}
	else
	{
		OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_NO_WAIT);
		return FALSE;
	}
}

BOOL GuiDvdvUpdateAudio( VOID )
{
	DvdvAudioInfo_t ast;
	if( GetDvdvAudioAttribute( &ast ) == TRUE )
	{
#if !_APP_CAP_OSD_TOGGLE_BY_HOTKEY// Qian liping 060814: bug fix 629	
		OsdTimerSet(OSD_TIME_FOR_MESSAGE, TIMER_ENABLE );
#endif	/* _APP_CAP_OSD_TOGGLE_BY_HOTKEY	 */

		UiAudio((ast.cur_id < ast.total_num-1)? ++ast.cur_id:0);
		SysSleep(100,NULL);

		if(GetDisplayMainState() != DISPLAY_AUDIO)
			OSD_SetMainDisplay(DISPLAY_AUDIO, SYS_NO_WAIT);
		return TRUE;
	}
	else
	{
		OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_NO_WAIT);
		return FALSE;
	}
}

BOOL GuiDvdvUpdateAngle( VOID )
{
	DvdvAngleInfo_t		angle;
	if( GetDvdvAngleAttribute( &angle ) == TRUE )
	{
		/* check boundary */
		if( angle.total_num == 1 )
		{
			return FALSE;
		}
#if !_APP_CAP_OSD_TOGGLE_BY_HOTKEY// Qian liping 060814: bug fix 629	
		OsdTimerSet(OSD_TIME_FOR_MESSAGE, TIMER_ENABLE );
#endif	/* _APP_CAP_OSD_TOGGLE_BY_HOTKEY	 */
		
		angle.cur_num = GuiSelFuc[1](angle.cur_num, 1, angle.total_num);
		UiAngle( angle.cur_num );
		SysSleep(100,NULL);

		if(GetDisplayMainState() != DISPLAY_ANGLE)
			OSD_SetMainDisplay(DISPLAY_ANGLE, SYS_NO_WAIT);

		return TRUE;
	}
	else
	{	
		/*Show icon warning when the key is invalid. Jiang Shanbin*/
		OSD_SetIconDisplay(ICON_WARNING, NULL, SYS_NO_WAIT);
		return FALSE;
	}
}
#endif /* _APP_CAP_NAV_DVD_VIDEO */

⌨️ 快捷键说明

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