📄 mmp_global.h
字号:
/******************************************************************************
* 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 + -