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

📄 osd_handler_change.c

📁 SAMSUNG 5009的源代码
💻 C
字号:
/******************************************************************************
 *   Filename    : OSD_manager.c
 *   Start       : 2002. 11. 19
 *   By          : Taejin Kwon
 *   Contact     : tj1kwon@samsung.co.kr
 *   Description : 
 ******************************************************************************
 */
/******************************************************
 *       INCLUDES
 *****************************************************/
#include <string.h>
#include <stdio.h>
#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 "MAIN/Global_state.h"
#include "MAIN/Appl_types.h"
#include "MAIN/Uop_msg.h"

#include "DRIVER/FS/Fs_api.h"

#include "CUSTOM/Osd_types.h"
#include "CUSTOM/Osd_if.h"


#include "CUSTOM/Key_handler_setup.h"

#include "MAIN/DVD/Dvd_predef.h"
#include "MAIN/DVD/Dvd_common.h"

#include "MAIN/MMP/Mmp_common.h"

#include "CUSTOM/Key_receive.h"

#include "CUSTOM/FP_handle.h"
#include "CUSTOM/Key_defs.h"

#include "MAIN/SVCD/Svcd_types.h"
#include "MAIN/SVCD/Svcd_ext.h"
#include "MAIN/SVCD/Svcd_show.h"

#include "Osd_util.h"
#include "Osd_draw.h"
#include "Osd_timer.h"
#include "CUSTOM/Strings_ext.h"

#include "Osd_data.h"
#include "Osd_draw_explore.h"
#include "Osd_draw_setup.h"
#include "Osd_draw_program.h"

/******************************************************
 *       Global variables / functions
 *****************************************************/

/******************************************************
 *       Extern variables / functions
 *****************************************************/
extern volatile BOOL		gLoading_on;


extern INLINE OSD_MainType_et GetDisplayMainState( VOID );			//(weilf)20060726
#if _APP_CAP_OSD_EXT_SUB_FILE_SELCTION
extern VOID OwDivxExtSubtitleSelSub( BOOL page_update );
#endif

VOID GfxChangeLoading(VOID);	


VOID OsdHandlerCtrlMsg( OsdCtrl_st ctrl )
{
	switch( ctrl.control )
	{
	
		case OSD_CTRL_LRSTERO_SEL:
			if( GetDisplayMainState() == DISPLAY_STEREO )
			{
				gOSD_state.etLrstereo_pos = ctrl.p.lrstereo;
				OwSelectLrsteroSub();
#if !_APP_CAP_OSD_TOGGLE_BY_HOTKEY
				OsdTimerSet(OSD_TIME_FOR_MODE_SEL, TIMER_ENABLE );
#endif	
			}
			break;

		case OSD_CTRL_REPEAT_SEL:
			if( GetDisplayMainState() == DISPLAY_REPEAT )
			{
				gOSD_state.etRepeat_pos = ctrl.p.repeat.new;	
				OwSelectRepeatSub();
#if !_APP_CAP_OSD_TOGGLE_BY_HOTKEY
				OsdTimerSet(OSD_TIME_FOR_MODE_SEL, TIMER_ENABLE );
#endif	
			}
			break;

#if _APP_CAP_FUNC_RANDOM_PLAY
		case OSD_CTRL_MODE_SEL:
			if( GetDisplayMainState() == DISPLAY_MODE_SEL )
			{
				gOSD_state.ecPlaymode_pos = ctrl.p.play_mode;				
				OwSelModeSet( ctrl.p.toggle );
#if !_APP_CAP_OSD_TOGGLE_BY_HOTKEY
				OsdTimerSet(OSD_TIME_FOR_MODE_SEL, TIMER_ENABLE );
#endif	
			}
			break;
#endif	/* _APP_CAP_FUNC_RANDOM_PLAY */

		case OSD_CTRL_UPDATE_TIME:	
#if _APP_CAP_FUNC_REMAIN_TIME
			switch( GetDiscState() )
			{
				case DVDV_DISC:	
				case DVDA_DISC:  
#if _APP_CAP_NAV_MMP_PLAY_VIDEO_FILE	
				case CD_DATA:
				case DVD_DATA:
				case USB_DATA:
				case FX_DATA:
#endif
#if _APP_CAP_KEY_TIME_KEY		
					if(GetDisplayMainState() == DISPLAY_TIME)
						OwTimeInfoDisplay(TRUE);
					else if(GetDisplayMainState()==DISPLAY_INFO)
						OwGraphicChangedPlaytime(ctrl.p.time.hour, ctrl.p.time.min, ctrl.p.time.sec);
					else
						return;
#else/*_APP_CAP_KEY_TIME_KEY*/
					if(GetDisplayMainState()==DISPLAY_INFO && gOSD_state.etInfo_dsp > INFO_SECOND)
						OwTimeInfoDisplay(TRUE);
					else if(GetDisplayMainState()==DISPLAY_INFO)
						OwGraphicChangedPlaytime(ctrl.p.time.hour, ctrl.p.time.min, ctrl.p.time.sec);
#if _APP_CAP_FUNC_DVD_DIGEST
					else if(GetDisplayMainState()==DISPLAY_DIGEST_MENU)	
						OwUpdateDigestTime(ctrl.p.time.hour, ctrl.p.time.min, ctrl.p.time.sec);//clina 060728
#endif					
					else
						return;
#endif/*_APP_CAP_KEY_TIME_KEY*/
					break;
					
				case SVCD_DISC:
				case VCD_DISC:
				case CD_I:
				case CD_DA:
				case HQVCD_DISC:
#if _APP_CAP_KEY_TIME_KEY		
					if(GetDisplayMainState()==DISPLAY_TIME)
						OwTimeInfoDisplay(TRUE);
					else if(GetDisplayMainState()==DISPLAY_INFO)
						OwGraphicChangedPlaytime(ctrl.p.time.hour, ctrl.p.time.min, ctrl.p.time.sec);
					else
						return;
#else/*_APP_CAP_KEY_TIME_KEY*/
					if(GetDisplayMainState()==DISPLAY_INFO && gOSD_state.etInfo_dsp > INFO_FIRST )
						OwTimeInfoDisplay(TRUE);
					else if(GetDisplayMainState() == DISPLAY_INFO)
						OwGraphicChangedPlaytime(ctrl.p.time.hour, ctrl.p.time.min, ctrl.p.time.sec);
#endif/*_APP_CAP_KEY_TIME_KEY*/
#if _APP_CAP_OSD_VCD_DIGEST//clina 060810
					else if(GetDisplayMainState()==DISPLAY_DIGEST_MENU)	
						OwUpdateDigestTime(ctrl.p.time.hour, ctrl.p.time.min, ctrl.p.time.sec);//clina 060728
#endif			
					else
						return;
					break;
			}
#else/*_APP_CAP_FUNC_REMAIN_TIME */
			OwGraphicChangedPlaytime(ctrl.p.time.hour, 
				ctrl.p.time.min, ctrl.p.time.sec);
#endif/*_APP_CAP_FUNC_REMAIN_TIME */
			break;
              case OSD_CTRL_UPDATE_DIGEST_PIC:
#if _APP_CAP_FUNC_DVD_DIGEST
                     if(GetDisplayMainState()==DISPLAY_DIGEST_MENU)	
				OwEraseDigestSubPic(ctrl.p.rect);//clina 061027
#endif
			break;
		case OSD_CTRL_INIT_DIGEST_PIC:
#if _APP_CAP_FUNC_DVD_DIGEST
                     if(GetDisplayMainState()==DISPLAY_DIGEST_MENU)	
				OwInitDigestPic();//clina 061027
#endif
			break;
		case OSD_CTRL_ELEM_SELECT:
			if( GetDisplayMainState()!=DISPLAY_INFO &&
				GetDisplayMainState()!=DISPLAY_CD_UPGRADE)
				break;
			
			switch( GetDiscState() )
			{
				case DVDV_DISC:
#if _APP_CAP_NAV_MMP_PLAY_VIDEO_FILE	
				case CD_DATA:
				case DVD_DATA:
				case USB_DATA:
				case FX_DATA:
#endif
                     
					OwGraphicSelectDisplayDvdvSub( ctrl.p.info.old, 
						ctrl.p.info.new );
					//first to delete other osd timer,such as repeat,RL stereo  061023 clina
					OsdTimerSet( 1, TIMER_DISABLE );//clina 061023bug153
#if _APP_CAP_OSD_INFO_OSD_TIMEOUT
					OsdTimerSet(OSD_TIME_FOR_INFO, TIMER_ENABLE );
#endif
#if _APP_CAP_OSD_INFO_SEL_TIME_ENABLE
					if( ctrl.p.info.new != INFO_SUB_NONE )		
						OsdSelTimerSet(OSD_TIME_FOR_SELECTION, TIMER_ENABLE );
			
#endif	/*_APP_CAP_OSD_INFO_SEL_TIME_ENABLE*/	
					break;

				case SVCD_DISC:
				case VCD_DISC:
				case CD_I:
				case CD_DA:
				case HQVCD_DISC:
					OwGraphicSelectDisplayXvcdSub(  ctrl.p.info.old, 
						ctrl.p.info.new );	
					//first to delete other osd timer,such as repeat,RL stereo  061023 clina
					OsdTimerSet( 1, TIMER_DISABLE );//clina 061023bug153
#if _APP_CAP_OSD_INFO_OSD_TIMEOUT
					OsdTimerSet(OSD_TIME_FOR_INFO, TIMER_ENABLE );
#endif
#if _APP_CAP_OSD_INFO_SEL_TIME_ENABLE
					if( ctrl.p.info.new != INFO_SUB_NONE )
						OsdSelTimerSet(OSD_TIME_FOR_SELECTION, TIMER_ENABLE );
#endif	/*_APP_CAP_OSD_INFO_SEL_TIME_ENABLE*/	
					break;

				case FIRM_CD:
#if _APP_CAP_FUNC_FIRMUP_BY_USB
				case FIRM_USB:
#endif					
					OwFlashUpdateMenuSelection(ctrl.p.toggle);
					gOSD_state.ebFirmup_sel = ctrl.p.toggle;	
					break;
			}	
			
			break;

		case OSD_CTRL_UPDATE_INFO:
			switch( GetDiscState() )
			{
				case DVDV_DISC:
				case DVDA_DISC:   
#if _APP_CAP_NAV_MMP_PLAY_VIDEO_FILE	
				case CD_DATA:
				case DVD_DATA:
				case USB_DATA:
				case FX_DATA:
#endif
					SysPrintf("\n[OSD] Title or Chapter information changed");
					SysPrintf("\n[OSD] Redraw title, chapter area");
					OwGraphicChangeValueLineDvdv();
					break;
				case SVCD_DISC:
				case VCD_DISC:
				case CD_DA:
				case CD_I:
				case HQVCD_DISC:
					SysPrintf("\n[OSD] Redraw track area");
					OwGraphicChangeValueLineXvcd();	
					break;
			}
			break;
			
		case OSD_CTRL_LOADING:
			GfxChangeLoading();	
			break;
			
#if _APP_CAP_OSD_ZOOM_ICON
		case OSD_CTRL_ICON_MOVE:
			GraphicMoveImage( ctrl.p.pos.x_pos, ctrl.p.pos.y_pos );
			OsdIconTimerSet(OSD_TIME_FOR_ZOOM_ICON, TIMER_ENABLE );
			break;
#endif /*_APP_CAP_OSD_ZOOM_ICON*/

	
			break;
#if _APP_CAP_FUNC_BOOKMARK			
		case OSD_CTRL_BOOKMARK_SEL:
			if( GetDisplayMainState() == DISPLAY_BOOKMARK )
			{
				OwSetBookmark( ctrl.p.bm.new_bm, ctrl.p.bm.old_bm );
				gOSD_state.eiBookmark_pos = ctrl.p.bm.new_bm;
			}
			break;		
#endif		

#if _APP_CAP_FUNC_DISPLAY_FIT
		case OSD_CTRL_UPDATE_EZ:
			OwEzViewBanner();
			break;		
#endif			
		case OSD_CTRL_ADULT_SET:
			OwGfxSelectRatingLimit(ctrl.p.toggle);
			break;
		case OSD_CTRL_PSWD_UPDATE:
			OwGfxCheckRLimitPW( (UCHAR)ctrl.p.value );
			break;

		case OSD_CTRL_CD_UP_START:
			OwFlashUpdateLoadingOn();
			break;

		case DISPLAY_RC_MSG:	//clina 060424
			OwRegionCodeMsg(); 			 
			OsdTimerSet( OSD_TIME_FOR_RC_SEL, TIMER_ENABLE );
			break;

		case OSD_CTRL_UPDATE_SMI_SCRIPT:   
			if( GetDisplayMainState()==DISPLAY_SETUP ||
				GetDisplayMainState()==DISPLAY_PROGRAM ||
				GetDisplayMainState()==DISPLAY_FAT_DEVICE)
				return;
			OwMmp_ExploreDrawSmiInfo();
			break;	


#if _APP_CAP_FUNC_SCORING
		case OSD_CTRL_CHANGE_SCORE_CLT:
			if( GetDisplayMainState() == DISPLAY_SCORE )
			{
				OwChangeScoreWindowCLT();
			}
			break;
#endif/*_SUPPORT_SCORING_FUNCTION_APPL*/

		case OSD_CTRL_CHANGE_SCREENSVACER_CLT:
			if( GetDisplayMainState() == DISPLAY_SCREENSAVER )
			{
				OwChangeScreenSaverCLT();
			}
			break;

#if _APP_CAP_FUNC_DIVX_DRM		//(weilf)20060422
		case OSD_CTRL_UPDATE_DRM_CONFIRM_HL:
			OwUpdateDrmConfirmHL();
			break;
#endif	//_APP_CAP_FUNC_DIVX_DRM

#if _APP_CAP_OSD_DIGEST		//(weilf)20060429
		case OSD_CTRL_DIGEST_SET:
			if( GetDisplayMainState() == DISPLAY_DIGEST )
			{
				OwDigestBanner(TRUE);
#if !_APP_CAP_OSD_TOGGLE_BY_HOTKEY
				OsdTimerSet(OSD_TIME_FOR_MODE_SEL, TIMER_ENABLE );		
#endif
			}
			break;

#endif

#if (_APP_CAP_NAV_USB_DISC||_APP_CAP_NAV_FX_DATA)
		case OSD_CTRL_FAT_DEVICE_SEL:
			if( GetDisplayMainState() == DISPLAY_FAT_DEVICE)
			{
				OwDeviceSelMenuUpdate(ctrl.p.fat_osd_type);
				gOSD_state.fat_dev_type = ctrl.p.fat_osd_type;
			}
			break;
#endif

#if _APP_CAP_OSD_EXT_SUB_FILE_SELCTION
		case OSD_CTRL_EXT_SUB_FILE_SEL:
			if( GetDisplayMainState() == DISPLAY_EXT_SUBTITLE )
			{
				OwDivxExtSubtitleSelSub(ctrl.p.toggle);
			}
			break;
#endif

	}

}

⌨️ 快捷键说明

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