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

📄 mmp_global.h

📁 SAMSUNG 5009的源代码
💻 H
📖 第 1 页 / 共 2 页
字号:
/******************************************************************************
 *   Filename    : Mmp_global.h
 *   Start       : 2004. 11. 15
 *   By          : Taejin Kwon
 *   Contact     : eric.kwon@samsung.com
 *   Description : 
 ******************************************************************************
 */
#ifndef _MMP_GLOBAL_H_
#define _MMP_GLOBAL_H_

#ifdef	__cplusplus
extern	"C" {
#endif

/* the structure for storing the  total number of  media type folders*/
typedef struct{
	BYTE2 audio;
	BYTE2 image;
	BYTE2 video;
	BYTE2 text;
}MmpFolderListTotal_st;

typedef struct{
	UINT audio;
	UINT image;
	UINT video;
	UINT text;
}MmpFileListTotal_st;



typedef struct{
	MmpFileType_et		file_type_old;
	MmpFileType_et		file_type_new;	
}MmpOsdDspInfo_t;

typedef struct{
	FS_Entry_st		list_node;
	BYTE2			file_index;	
	BYTE2			folder_level;
	BYTE2			folder_index;	
//	CHAR			folder_name[MMP_PATH_FILE_LENGTH];	
}MmpPgmNode_st;


typedef enum
{
	MMP_AV_END_NONE = 0 ,
	MMP_AV_END_AUDIO,
	MMP_AV_END_VIDEO,
	MMP_AV_END_ALL
}MmpAvEndCallback_et;

/******************************************************************************
 *  Global Data Structure 
 *****************************************************************************/  
 
 /* Data structure for UI */
typedef struct{
	MmpModeSub_et			mmp_mode;				/*the play mode: normal, random, program*/
	RepeatSub_et			mmp_repeat;			/*repeat status:OFF, ALL, FOLDER, FILE*/
#if _APP_CAP_FUNC_AUDIO_LR_IN_MMP
	S5H_Lrstereo_et			mmp_audio;//By QQ 050904 /*S5H_AdmChnCont_t*/	
#endif /* _APP_CAP_FUNC_AUDIO_LR_IN_MMP */	
	MmpImgInfoSub_et		image_info;				/*Image Info Bar*/
	MmpOsdDspInfo_t			mmp_osd_info;			/*related osd info*/
	MmpNoticeType_et		notice_type;				/*about the notice Icon*/
	BYTE2					album_select;			/*Image Album that will display 6 pic on screen*/
	CHAR					notice_string[20];		/*about the notice string*/		
#if _APP_CAP_NAV_MMP_PLAY_VIDEO_FILE
	MmpAvEndCallback_et		av_callback;
#endif
} MmpUi_st;
	
/* MMP Program List */
typedef struct {
	BYTE2 	folder[MMP_MAX_PROGRAM];
	BYTE2 	file[MMP_MAX_PROGRAM];
	BYTE2	cur_index;	
	BYTE2	num_program;	/* number of program */	

#if (_CUSTOM_ID_==_CUSTOM_ID_BENIX_)
    BYTE2   pgm_page;
    BYTE1   pgm_cursor;
#endif 
} MmpProgram_st;

typedef struct {
	USHORT x_pos;
	USHORT y_pos;
	USHORT width;
	USHORT height;
	SH_RotateAngle_et angle;
} MmpImage_st;

#define MMP_STATE_STATIONARY_MASK	0x10000
#define MMP_STATE_READ_MASK			0x01000	

typedef enum {
	MMP_STATE_MOUNT			=	0x01001,
	MMP_STATE_FIRST_LIST		=	0x01002,
	MMP_STATE_CHANGE_DIR	=	0x01003,
	MMP_STATE_PLAY_FILE		=	0x01004,	
	MMP_STATE_PLAY_NEXT_FG	=	0x01005,
	MMP_STATE_PLAY_PREV_FG	=	0x01006,
	MMP_STATE_REPLAY			=	0x01007,
	MMP_STATE_KODAK_LIST		=	0x01008,
	MMP_STATE_MEDIA_CHANGE	=	0x01009,
	MMP_STATE_PLAY_NEXT_BG	=	0x0100A,
	MMP_STATE_PLAY_PREV_BG	=	0x0100B,
	MMP_STATE_PGM_PLAY		=	0x0100C,
	MMP_STATE_DRM_CONFIRM	=	0x0100D,
	MMP_STATE_WAIT			=	0x10001,
	MMP_STATE_STOP			=	0x10002,
	MMP_STATE_ERROR			=	0x10003,
	MMP_STATE_EXIT			=	0x10004
} MmpState_et;

typedef enum {
	MMP_PLAY_STATUS_STOP,
	MMP_PLAY_STATUS_PLAY,
	MMP_PLAY_STATUS_DRM,
	MMP_PLAY_STATUS_LOADING,
	MMP_PLAY_STATUS_UNKNOWN
} MmpPlayStatus_et;

#define IS_MMP_STATIONARY_STATE(x)	((x) & MMP_STATE_STATIONARY_MASK)
#define IS_MMP_READ_STATE(x)			((x) & MMP_STATE_READ_MASK)

/*
 *  File display selection
 */
#if _API_CAP_GLB_MPVD_FRAME_MODE
#define MMP_SET_DISPLAY_ALL_TYPE 			0	 /* 1: display all type, 0: display selected type */
#else
#define MMP_SET_DISPLAY_ALL_TYPE 			0	 /* 1: display all type, 0: display selected type */
#endif

/*
 *	File capability
 */
#if _APP_CAP_FUNC_AC3_CERTIFICAION_READY 
#define MMP_FILES_BG_PLAY		(FS_CAP_LIST_FILE|FS_CAP_FILE_AC3)
#else
#if MMP_SET_DISPLAY_ALL_TYPE
#define MMP_FILES_BG_PLAY		(FS_CAP_LIST_FILE|FS_CAP_FILE_MP3|FS_CAP_FILE_MP2|\
									FS_CAP_FILE_WMA|FS_CAP_FILE_AVI|FS_CAP_FILE_ASF|\
									FS_CAP_FILE_MPG|FS_CAP_FILE_MPE|FS_CAP_FILE_WMV|FS_CAP_FILE_DIVX)
#else
#define MMP_FILES_BG_PLAY		(FS_CAP_LIST_FILE|FS_CAP_FILE_MP3|FS_CAP_FILE_MP2|FS_CAP_FILE_WMA)
#endif
#endif
#define MMP_FILES_FG_PLAY		(FS_CAP_LIST_FILE|FS_CAP_FILE_JPG)
#if _APP_CAP_NAV_MMP_PLAY_VIDEO_FILE
#if FS_SUPPORT_FILE_VIDEO_DAT
#define MMP_FILES_VID_PLAY		(FS_CAP_LIST_FILE|FS_CAP_FILE_AVI|FS_CAP_FILE_MPG |FS_CAP_FILE_MPE |FS_CAP_FILE_WMV|FS_CAP_FILE_ASF|FS_CAP_FILE_DIVX|FS_CAP_FILE_DAT)//gaoping 0524
#else
#define MMP_FILES_VID_PLAY		(FS_CAP_LIST_FILE|FS_CAP_FILE_AVI|FS_CAP_FILE_MPG |FS_CAP_FILE_MPE |FS_CAP_FILE_WMV|FS_CAP_FILE_ASF|FS_CAP_FILE_DIVX)//gaoping 0524
#endif
			
#if 1//_APP_CAP_MMP_SUPPORT_VOBSUB_SUBTITLE		// cydrain 20060705
#define MMP_FILES_SMI_PLAY		(FS_CAP_LIST_FILE|FS_CAP_FILE_SMI|FS_CAP_FILE_SMIL|FS_CAP_FILE_SUB|FS_CAP_FILE_TXT|FS_CAP_FILE_PSB|FS_CAP_FILE_SRT|FS_CAP_FILE_SSA|FS_CAP_FILE_ASS|FS_CAP_FILE_IDX)
#else
#define MMP_FILES_SMI_PLAY		(FS_CAP_LIST_FILE|FS_CAP_FILE_SMI|FS_CAP_FILE_SMIL|FS_CAP_FILE_SUB|FS_CAP_FILE_TXT|FS_CAP_FILE_PSB|FS_CAP_FILE_SRT|FS_CAP_FILE_SSA|FS_CAP_FILE_ASS) //azureming@060106
#endif
//#define MMP_FILES_SMI_PLAY		(FS_CAP_LIST_FILE|FS_CAP_FILE_PSB) //for single external subtitle test
#endif								

typedef struct {
	BYTE2        			*epConv_table_vid;
} MmpVidPlayCtrl_st;

struct _MmpRef_st{
	FS_Dir_st	 node;
	BYTE2 node_level;
	BYTE2 open_folder;
	BYTE2 node_folder_idx;	//@dh060108
	BYTE2 file_index;
	MmpReqMode_et req_mode;

	struct _MmpRef_st *prev;
	struct _MmpRef_st *next;
};

typedef struct _MmpRef_st MmpRef_st;


#if _APP_CAP_OSD_FLATTEN_EXPLORER

typedef struct {
	BYTE2	ewFolder_pg;						/* the folder page number */
	BYTE2 	ewFile_pg;							/* the file page number */		
	BYTE2	ewFolder_level;			/* the folder level */	
	BYTE2 	ewFolder_idx;						/* Opened folder index: ui side index */	
	BYTE2 	ewFolder_idx_tmp;					/* Temporary Opened folder index: ui side index */	
	BYTE2 	ewFile_idx;							/* file selection index */
	BYTE2 	ewFile_idx_tmp;						/* Temporary file index: ui side index */		
	BYTE2	ewTotal_files;						/* in ewFolder_idx folder */
#if _APP_CAP_JPG_ASV//gaoping 20060429
	BYTE2     ewFile_asv;
	BYTE2     ewFile_total_asv;
#endif

} MmpSelectInfo_st;

typedef struct {
	UINT				eiRepeat_a;				/* byte position */
	UINT				eiRepeat_b;
	UINT				eiRepeat_a_pts;			/* pts in msec */
	UINT				eiRepeat_b_pts;		/* pts in msec */


	UINT				eiResume;				// cydrain 20051221
	UINT				eiResume_pts;			// cydrain 20051221

	UINT				eiCur_time;
	UINT				eiTotal_time;

	BYTE4				eiPlay_history[MMP_HISTORY_ARRY_NUM];/* For storing the play history */	
	BYTE4				eiPlay_count;

	BYTE2 				ecConv_total;	
	BYTE2				*epConv_table;			/* Audio folder conversion table from folder list*/	
	FS_Entry_st			*epEntry_list;	
	FS_File_t				etPlay_fid;	
#if	_APP_CAP_MMP_SUPPORT_EXT_SUBTITLE	// cydrain 20060630
	FS_Entry_st			*epSmiEntry_list;		/* in order to hide smi file in explore window*/
	FS_File_t				etSmi_fid;
	FS_Entry_st			*epSmiEntry_cur;		// cydrain 20060418, current SMI entry
#if 1//_APP_CAP_MMP_SUPPORT_VOBSUB_SUBTITLE		// cydrain 20060705
	FS_Entry_st			*epVobsub_idx;		// vobsub subtitle, .idx.
	FS_File_t				etVobsub_idx_fid;
	FS_Entry_st			*epVobsub_sub;		// vobsub subtitle, .sub.
	FS_File_t				etVobsub_sub_fid;
#endif
#endif

	RepeatSub_et			ecRepeat_state;		// cydrain 20060410
	RepeatSub_et			ecRepeat_ab;
	BYTE1				ecPlay_speed;
	BYTE1				ecPlay_mode;
#if 1 //new emergency handleing method, need test more azureming@060429
	UINT				eiEmergencyCnt;		/* dealing with adaptable emergency handling */
	UINT				eiEmergencyPts;
#endif

	MmpSelectInfo_st	estSel;
} MmpAvPlayCtrl_st;

typedef struct {
	FS_Entry_st *			epEntry_list;
	MmpSelectInfo_st		estSel;
	BOOL				ebThumb_view;
	BOOL				ebProgressive;
	UINT				eiWidth;
	UINT				eiHeight;	
	UINT				eiSlide_time;			/* if 0, slide show off */
	USHORT				eiOrg_width;
	USHORT				eiOrg_height;	


	BYTE2 				ecConv_total;	
	BYTE2				*epConv_table;			/* image folder conversion table from folder list*/
	FS_File_t				etPlay_fid;
	
	BYTE2				ewAlbum_init_index;
	BYTE2				ewAlbum_count;

	BYTE1				ecScan_count;			/* if ebProgressive == TRUE */
	BYTE1				ecPlay_mode;

	MmpImage_st			estImage;
	
#if _APP_CAP_FUNC_JPG_PLAY_MODE
	BYTE1				ecPlay_status;
	RepeatSub_et			ecRepeat_state;		// cydrain 20060412
#endif
} MmpImgPlayCtrl_st;


/* For Chinese Solution */
typedef struct {
	MmpAvPlayCtrl_st		*epstBg_play;
	MmpImgPlayCtrl_st		*epstImg_play;
#if _APP_CAP_NAV_MMP_PLAY_VIDEO_FILE
	MmpVidPlayCtrl_st		*epstVid_play;
#endif

	BOOL				ebBg_played;			/* TRUE: background play running */
	BOOL  				ebRead_reverse;		/* TRUE: play the last one after reading folder */
	BOOL				ebEOF;					/* EOD can be handled after this flag TRUE */

	MmpState_et			etMmp_state;
	MmpDspSync_et		etDsp_sync;				/* which information displayed */	

	MmpStopMode_et		etStop_mode;
	BYTE4				eiFile_page_type;		/* refer Fs_api.h */

	FS_Entry_st			*epFlatten_list;
	FS_Entry_st			*epFolder_list;	
	FS_Entry_st			*epEntry_list;
#if	_API_CAP_GLB_MPVD_FRAME_MODE	// cydrain 20060418
	FS_Entry_st			*epSmiEntry_list;		/* in order to hide smi file in explore window*/
	//FS_File_t				etSmi_fid;	
#endif
	MmpProgram_st		*epstPgm_data;
#if _APP_CAP_FUNC_JPG_PLAY_MODE
 	MmpProgram_st		*epstPgm_image;
#endif

	BYTE2 				ecConv_total;	
	BYTE2				*epConv_table; 
	MmpFolderListTotal_st	estTotal_folders;
//<<<temp
	MmpFileListTotal_st		estTotal_files;	/*rm.jung @ 060106*/
/*rm.jung @ 051014 : for playlist (program)*/
	MmpPgmNode_st			ewPgm_list[MMP_MAX_PROGRAM];
	BYTE1					ecPgm_pos;
	BYTE2					ewPgm_sel_pos;
	BYTE2 					ewPgm_sel_pg;
	BYTE2 					ewPgm_sel_old_pos;		//@dh051018

⌨️ 快捷键说明

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