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

📄 osd_handler_explore.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_predef.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 INLINE OSD_MainType_et GetDisplayMainState( VOID );			//(weilf)20060726

/******************************************************************************
* Function name	: OsdHandlerExpCtrlMsg
* Arguments		:  
*     IN    		    OsdCtrl_st ctrl
*				
*     OUT       
*     I/O       
* Return			: VOID  
*					
* By				: Taejin Kwon
* Description		: Handle the explore OSDs
* Revision		: 1.0  Qian liping 060405
******************************************************************************
*/   
VOID OsdHandlerExpCtrlMsg( OsdCtrl_st ctrl )
{
	// Common control. gaoping 20060406
	switch( ctrl.control )
	{
		case OSD_CTRL_EXPLORE_UPDATE_NOTICE:
			OwUpdateMmpNotice();
			break;
			
		case OSD_CTRL_UPDATE_TIME:		
			OwUpdateExploreTimeInfo();	
			break;

		case OSD_CTRL_UPDATE_FOLDER_NUM:
			OwUpdateExpFolderInfo(ctrl.p.sub.value1, ctrl.p.sub.value2);
#if _APP_CAP_KEY_SELECTION_TIMEOUT
			if( gOSD_state.etInfo_sub != INFO_SUB_NONE )
				OsdSelTimerSet( OSD_TIME_FOR_SELECTION, TIMER_ENABLE );
#endif /* _APP_CAP_KEY_SELECTION_TIMEOUT */		
			break;
			
		case OSD_CTRL_UPDATE_FILE_NUM:
			OwUpdateExpFileInfo(ctrl.p.sub.value1, ctrl.p.sub.value2);
#if _APP_CAP_KEY_SELECTION_TIMEOUT
			if( gOSD_state.etInfo_sub != INFO_SUB_NONE )
				OsdSelTimerSet( OSD_TIME_FOR_SELECTION, TIMER_ENABLE );
#endif /* _APP_CAP_KEY_SELECTION_TIMEOUT */		

			break;		
			
		case OSD_CTRL_UPDATE_REPEAT_ICON:
			if (gOSD_state.etExp_state.etInfo1>=EXPLORER_MODE_INFO1HIDE)
				return;//gaoping 20060429 problem 233
			OwMmpSetRepeatIcon();
			break;
			
		case OSD_CTRL_UPDATE_MODE_ICON:
			if (gOSD_state.etExp_state.etInfo1>=EXPLORER_MODE_INFO1HIDE)
				return;//gaoping 20060429 problem 233
			OwMmpSetModeIcon();
			break;

		case OSD_CTRL_IMG_INFO_SEL:
			OwMmpImageInfoSelect();
			break;

		case OSD_CTRL_UPDATE_ALBUM_SEL:
			OwUpdateAlbumSelect(ctrl.p.sub.value1, ctrl.p.sub.value2);
			break;

#if _APP_CAP_OSD_FLATTEN_EXPLORER
#if _APP_CAP_OSD_SHOW_CURRENT_ITEM_NUM	
		case OSD_CTRL_UPDATE_IMG_FILE_INFO:			
			OwUpdateNumDisp(ctrl.p.sub.value1, ctrl.p.sub.value2);
			break;	
#endif	/*_APP_CAP_OSD_SHOW_CURRENT_ITEM_NUM*/			

		case OSD_CTRL_SET_PLAY_OSD:
			OwMmpSetPlayOSD(ctrl.p.toggle);
			break;

		case OSD_CTRL_SET_RPT_AB_OSD:
			OwMmpSetRepeatAbOsd(ctrl.p.toggle);
			break;				
			
#if _APP_CAP_FUNC_RANDOM_PLAY	
		case OSD_CTRL_EXPLORE_MODE_SEL:
			OwMmpModeInfoSel(ctrl.p.play_mode);
#if !_APP_CAP_OSD_TOGGLE_BY_HOTKEY		
			OsdSelTimerSet( MMP_DEF_INFO2_DURATION, TIMER_ENABLE );
#endif				
			break;
#endif/*_APP_CAP_FUNC_RANDOM_PLAY*/

#if _APP_CAP_FUNC_AUDIO_LR_IN_MMP
		case OSD_CTRL_EXPLORE_LRSTERO_SEL:
			OwMmpAudioInfoSel(ctrl.p.lrstereo);
#if !_APP_CAP_OSD_TOGGLE_BY_HOTKEY		
			OsdSelTimerSet( MMP_DEF_INFO2_DURATION, TIMER_ENABLE );
#endif					
			break;
#endif /* _APP_CAP_FUNC_AUDIO_LR_IN_MMP */	

		case OSD_CTRL_EXPLORE_REPEAT_SEL:
			OwMmpRepeatInfoSel(ctrl.p.repeat.new);
#if !_APP_CAP_OSD_TOGGLE_BY_HOTKEY		
			OsdSelTimerSet( MMP_DEF_INFO2_DURATION, TIMER_ENABLE );
#endif					
			break;

		case OSD_CTRL_EXPLORE_UPDATE_INFO1:
			OwUpdateMmpInfo1();
#if _APP_CAP_KEY_SELECTION_TIMEOUT // Qian liping 060531 
			if( gOSD_state.etInfo_sub != INFO_SUB_NONE )
				OsdSelTimerSet( OSD_TIME_FOR_SELECTION, TIMER_ENABLE );
#endif /* _APP_CAP_KEY_SELECTION_TIMEOUT */	

			break;
	}

	/*
	 *	This control will ONLY change control focus from one to another
	 */
	switch(ctrl.control)
	{
		case OSD_CTRL_EXPLORE_TO_INFO1:
			gOSD_state.etExp_state.etCtrl_focus = EXPLORER_SUB_INFO1;
			gOSD_state.etExp_state.etInfo1 = EXPLORER_MODE_INFO1NORMAL;
			break;

		case OSD_CTRL_EXPLORE_TO_INFO1_SEARCH:
			gOSD_state.etExp_state.etCtrl_focus = EXPLORER_SUB_INFO1;
			gOSD_state.etExp_state.etInfo1 = EXPLORER_MODE_INFO1SEARCH;
			gOSD_state.etInfo_sub = INFO1_MMN_SUB_FOLDER;
			break;
			
		case OSD_CTRL_EXPLORE_TO_INFO2:
			gOSD_state.etExp_state.etCtrl_focus = EXPLORER_SUB_INFO2;
			gOSD_state.etExp_state.etInfo2 = EXPLORER_MODE_INFO2NORMAL;
			break;
			
		case OSD_CTRL_EXPLORE_TO_FILE:
			gOSD_state.etExp_state.etCtrl_focus = EXPLORER_SUB_FILE;
			break;
			
		case OSD_CTRL_EXPLORE_TO_FOLDER:
			gOSD_state.etExp_state.etCtrl_focus = EXPLORER_SUB_FOLDER;
			break;
			
		case OSD_CTRL_EXPLORE_TO_TYPE_SEL:
			gOSD_state.etExp_state.etCtrl_focus = EXPLORER_SUB_TYPE_SELECT;
			break;
			
		case OSD_CTRL_EXPLORE_TO_INFO1_FOLDER:
			gOSD_state.etInfo_sub=INFO1_MMN_SUB_FOLDER;
			break;
		case OSD_CTRL_EXPLORE_TO_INFO1_FILE:
			gOSD_state.etInfo_sub=INFO1_MMN_SUB_FILE;
			break;	
			
	}

	/*
	 *	This control must in DISPLAY_EXPLORER state.
	 */
	if(GetDisplayMainState()!=DISPLAY_EXPLORER)
		return;
	
	switch( ctrl.control )
	{
		case OSD_CTRL_EXPLORE_UPDATE_FILE_PATH:
			if (gOSD_state.etExp_state.etInfo2!=EXPLORER_MODE_INFO2NORMAL)
				return;//gaoping 20060430 problem 265
			OwDisplayPathInfo(ctrl.p.sub.value1, ctrl.p.sub.value2);	
			break;		
			
		case OSD_CTRL_DRAW_FOLDER_PAGE:
			OwDrawFolderPage(ctrl.p.value);
			break;

		case OSD_CTRL_UPDATE_FOLDER_SEL:
			OwUpdateFolderSel(ctrl.p.sub.value1, ctrl.p.sub.value2);
			break;

		case OSD_CTRL_UPDATE_FOLDER_CURSOR:
			OwUpdateFolderCursor(ctrl.p.sub.value1, ctrl.p.sub.value2);
			break;			

		case OSD_CTRL_DRAW_FILE_PAGE:
			OwDrawFilePage(ctrl.p.value);
			break;
#if _APP_CAP_OSD_FLATTEN_EXPLORER
		case OSD_CTRL_UPDATE_FILE_SEL:
			OwUpdateFileSel(ctrl.p.sub.value1, ctrl.p.sub.value2);
			break;
#endif // _APP_CAP_OSD_FLATTEN_EXPLORER

		case OSD_CTRL_UPDATE_FILE_CURSOR:
			OwUpdateFileCursor(ctrl.p.sub.value1, ctrl.p.sub.value2);
			break;
#if _APP_CAP_OSD_FLATTEN_EXPLORER
		case OSD_CTRL_UPDATE_TYPE_SEL:
			OwUpdateTypeSelect(ctrl.p.sub.value1, ctrl.p.sub.value2);
			break;
#endif // _APP_CAP_OSD_FLATTEN_EXPLORER
			
#if !_APP_CAP_NAV_MMP_PLAY_VIDEO_FILE	
		case OSD_CTRL_SET_ARROW:
			OwSetUpDnArrow(ctrl.p.arrow.up, ctrl.p.arrow.dn);
			break;
#endif
#endif // _APP_CAP_OSD_FLATTEN_EXPLORER
			
		case OSD_CTRL_EXPLORE_INFO1NORMAL:
			gOSD_state.etExp_state.etInfo1 = EXPLORER_MODE_INFO1NORMAL;
			gOSD_state.etInfo_sub = INFO_SUB_NONE;
			OwMmpDrawInfo1(EXPLORER_MODE_INFO1NORMAL);
			break;

		case OSD_CTRL_EXPLORE_INFO1HIDE:
			gOSD_state.etExp_state.etInfo1 = EXPLORER_MODE_INFO1HIDE;		
			OwMmpDrawInfo1(EXPLORER_MODE_INFO1HIDE);
			break;
			
#if (_APP_CAP_FUNC_REMAIN_TIME && !_APP_CAP_KEY_TIME_KEY)
		case OSD_CTRL_EXPLORE_INFO1REMAIN:
			gOSD_state.etExp_state.etInfo1 = EXPLORER_MODE_INFO1REMAIN;
			OwMmpDrawInfo1(EXPLORER_MODE_INFO1REMAIN);
			break;			
			
#endif /* _APP_CAP_FUNC_REMAIN_TIME && !_APP_CAP_KEY_TIME_KEY */			

		case OSD_CTRL_EXPLORE_INFO2NORMAL:
			gOSD_state.etExp_state.etInfo2 = EXPLORER_MODE_INFO2NORMAL;		
			OwMmpDrawPlayInfo();
			break;
			
#if _APP_CAP_FUNC_RANDOM_PLAY
		case OSD_CTRL_EXPLORE_INFO2MODE:	
			gOSD_state.etExp_state.etInfo2 = EXPLORER_MODE_INFO2MODE;
			OwMmpDrawModeInfo();
#if _APP_CAP_KEY_SELECTION_TIMEOUT 
			OsdSelTimerSet( OSD_TIME_FOR_BANNER,TIMER_ENABLE );
#endif /* _APP_CAP_KEY_SELECTION_TIMEOUT */				
			break;
#endif/*_APP_CAP_FUNC_RANDOM_PLAY*/
			
		case OSD_CTRL_EXPLORE_INFO2RPT:			
			gOSD_state.etExp_state.etInfo2 = EXPLORER_MODE_INFO2RPT;	
			OwMmpDrawRepeatInfo();
#if _APP_CAP_KEY_SELECTION_TIMEOUT 
			OsdSelTimerSet( OSD_TIME_FOR_BANNER,TIMER_ENABLE );
#endif	
			break;	

#if _APP_CAP_FUNC_AUDIO_LR_IN_MMP
		case OSD_CTRL_EXPLORE_INFO2AUDIO:			
			gOSD_state.etExp_state.etInfo2 = EXPLORER_MODE_INFO2AUDIO;	
			OwMmpDrawAudioInfo();
#if _APP_CAP_KEY_SELECTION_TIMEOUT 
			OsdSelTimerSet( OSD_TIME_FOR_BANNER,TIMER_ENABLE );
#endif 
			break;	
#endif /* _APP_CAP_FUNC_AUDIO_LR_IN_MMP */			
	}
}

⌨️ 快捷键说明

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