📄 mp3_include.h
字号:
#ifndef _MP3_NAV_H
#define _MP3_NAV_H
#include "..\..\api\s5h_capability.h"
#include "S5h_types.h"
#define _MP3_300_ 1
#define _MP3_OSD_ENABLE 1
#define _3PAGE_NAV 0
#define _MP3_TRICK_PLAY_ 1
#define _MP3_OSD_DEBUG_ 1
#define _MP3_TEST_ 1
#define MP3_CHGNULL 255
#define MP3_TIMER 1
#define ENTERWAITTIME 400
#define PLAYWAITTIME 240
typedef enum
{
MP3_FOLDER = 0
,MP3_FILE
}Mp3_ControlArea_t;
typedef enum
{
NEW_PAGE
,NEXT_PAGE
,PREV_PAGE
}Mp3_BuildPage_t;
typedef enum
{
MP3_PLAY = 0
,MP3_PAUSE
,MP3_STOP
// ,MP3_FF
// ,MP3_FR
}Mp3_MainState_t;
typedef enum
{
MP3_NORMAL_MODE = 0
,MP3_PROGRAM_MODE
,MP3_RANDOM_MODE
,MP3_INTRO_MODE
// ,MP3_TRICK_MODE
}Mp3_PlayMode_t;
typedef enum
{
MP3_FR_16
,MP3_FR_8
,MP3_FR_4
,MP3_FR_2
,MP3_TRICK_OFF
,MP3_FF_2
,MP3_FF_4
,MP3_FF_8
,MP3_FF_16
}Mp3_TrickSpeed_t;
typedef enum
{
MP3_REPEAT_OFF
,MP3_REPEAT_ONE
,MP3_REPEAT_DIR
,MP3_REPEAT_ALL
,MP3_REPEAT_A
,MP3_REPEAT_AB
}Mp3_Repeat_t;
typedef struct
{
UCHAR mode;
UCHAR main;
UCHAR trick;
UCHAR repeat;
}Mp3_Status_t;
#if _MP3_300_
typedef struct
{
UCHAR name[8];
UCHAR path[8];
ULONG start;
ULONG length;
USHORT file_no;
}Mp3_FileInfo_t;
#endif/* _MP3_300_ */
typedef struct
{
UINT page_index;
USHORT content_num; //if content_index < max_content_in_page, page_index = total_page
USHORT focus_index;
UCHAR path[16];
#if _MP3_300_
USHORT total_num;
USHORT total_page;
#endif/* _mp3_300_ */
}Mp3_PageInfo_t;
typedef struct
{
UCHAR name[16];
// FS_Flag flag;
ULONG start;
ULONG length;
USHORT file_no;
}Mp3_DirInfo_t;
typedef struct
{
UINT page_index;
USHORT content_num; //if content_index < max_content_in_page, page_index = total_page
USHORT focus_index;
#if _MP3_300_
USHORT total_num;
USHORT total_page;
#endif/* _mp3_300_ */
}Mp3_FolderPageInfo_t;
typedef struct
{
UCHAR name[16];
USHORT folder_no;
}Mp3_FolderInfo_t;
typedef struct
{
UINT play_pageindex;
USHORT play_itemindex;
}Mp3_PlayPos_t;
typedef struct
{
ULONG CurSec; //current mp3 song's time
ULONG ExitTrickSec; //time when exit trick mode
ULONG EmergStartSec; //emergency start second
ULONG TotalSec; //one mp3 song's total second
USHORT TrickInterval; //how many seconds to jump
BOOL ExitfromTrickPlay;
BOOL bEmerg;
ULONG RemSec;
}Mp3_Timeinfo_t;
#define MAX_FILE_DIR_NAME 255
#define MP3_FILE_EXTN (".MP3\0")
#define MAX_CONTENT_IN_PAGE 10
#if _MP3_300_
#define MAX_FILE_NUM 500 //300
#define MAX_FOLDER_NUM 200 //500 //200
#endif/* _MP3_300_ */
#define MAXTRINO_STRLEN_FOLDER 8
#define MAXTRINO_STRING 12//10//12 //maymeng 050711
#define FOLDER_WIDTH 3
#define FILE_WIDTH 7
#define MP3_UPDATE_TIME 15
#if _MP3_TEST_
#define MP3_PLAY_PARA 0x16
#define MP3_ENTER_PARA 0x17
#endif/* _MP3_TEST_ */
#define MP3_OSD_PARA 0x18
#define MP3_EMERGENCY 0x19
#if _MP3_TRICK_PLAY_
#define MP3_TRICK_2X 5 //second
#define MP3_TRICK_4X MP3_TRICK_2X*2
#define MP3_TRICK_8X MP3_TRICK_4X*2
#define MP3_TRICK_16X MP3_TRICK_8X*2
#endif /* _MP3_TRICK_PLAY_ */
#if 0
#define Mp3_SetMainState(__X__) (gMp3_mainstate = __X__)
#define Mp3_GetMainState() (gMp3_mainstate)
#define Mp3_SetPlayMode(__X__) (gMp3_playmode = __X__)
#define Mp3_GetPlayMode() (gMp3_playmode)
#else
extern Mp3_Status_t gMp3Status;
#define Mp3_GetMode() (gMp3Status.mode)
#define Mp3_GetMain() (gMp3Status.main)
#define Mp3_GetTrick() (gMp3Status.trick)
#define Mp3_GetRepeat() (gMp3Status.repeat)
#endif
#if _MP3_TRICK_PLAY_
#define Mp3_GetCurrentTime() (gMp3_time.CurSec)
#endif /* _MP3_TRICK_PLAY_ */
#if MAY_POWER_RESUME
#define Mp3_Load_ResumeInfo() SL_readEepromByte( EEPROM_MP3TRK_NOW)
#define Mp3_Save_TotalFile() SL_writeEepromByte( EEPROM_MP3FILE_CNT, (UCHAR)gMp3TotalFile)
#define Mp3_Load_TotalFile() SL_readEepromByte( EEPROM_MP3FILE_CNT)
#define Mp3_Save_NormalStop() SL_writeEepromByte( EEPROM_MP3NORMAL_STOP, (UCHAR)bMp3_normal_end)
#define Mp3_Load_NormalStop() SL_readEepromByte( EEPROM_MP3NORMAL_STOP)
#endif
#if _MP3NAVI_TASK_
void Mp3_InitResource(void);
void Mp3_DeInitResource(void);
void MP3NaviTask(SysArgc_t argc, SysArgv_t *argv );
void MP3_HandleMsgFromRC(Event_t ev);
void Mp3_HandleNotification(S5H_Notification_t type, void * data);
#endif /* _MP3NAVI_TASK_ */
void Mp3_InitParam(void);
void Mp3_Start(void);
void Mp3_HandleLeft(void);
void Mp3_HandleRight(void);
void Mp3_HandleUpDown(BOOL Is_down);
void Mp3_HandlePageUpDown(BOOL Is_down);
void Mp3_HandlePlayPause(void);
void Mp3_HandleEnter(void);
void Mp3_HandleReturn(void);
void Mp3_HandleSkipNextPrev(BOOL Is_next);
void Mp3_HandleLeftRight(void);
void Mp3_HandleEOP(void);
void Mp3_BuildFilePageInfo(Mp3_BuildPage_t type);
void Mp3_BuildFolderPageInfo(Mp3_BuildPage_t type);
#if _MP3_300_
void Mp3_BuildFileInfo(void);
void Mp3_GetFilePageInfo( void );
void Mp3_GetFolderPageInfo(void);
void Mp3_HandleNumeric(USHORT key);
#endif/* _MP3_300_ */
void Mp3_Play(void /*S5H_MSF_t start_msf, S5H_MSF_t end_msf*/);
void Mp3_Pause(void);
void Mp3_Stop(void);
//void Mp3_GotoPlayItemOSD(void);
void Mp3_StartEndTimeCal(void/*S5H_MSF_t *start_msf, S5H_MSF_t *end_msf*/);
BOOL Mp3_IsNextPageEmpty(void);
#if MP3_TIME_ENABLE
VOID CallbackTimeUpdate ( VOID );
#endif /* MP3_TIME_ENABLE */
#if _MP3_TRICK_PLAY_
void Mp3_ExitTrickPlay(void);
void Mp3_CheckTrickTimeInterval(void);
#endif /* _MP3_TRICK_PLAY_ */
void Mp3_Resume2Point( void );
void Mp3_EmergencyPlay( void );
//void Mp3_TimerExpired(UNSIGNED val);
BOOL Mp3_FindNext(void);
BOOL Mp3_FindPrev(void);
#if _MP3_TEST_
void Mp3_SendPlayMsg(void);
#endif
UCHAR * Strupr ( UCHAR *pcString );
UCHAR* StrNoExtn(UCHAR* pcString);
UINT Toupper ( UINT i );
BOOL Check_Extension(char * file_name, char * extension);
UCHAR* Check_String(UCHAR* string);
#if MAY_POWER_RESUME //maymeng 051011
VOID Mp3_Save_ResumeInfo(VOID);
#endif
#if 0
void Mp3_SetPageIndex(UINT val);
#else
#define Mp3_SetPageIndex(__X__) ((gPageinfo->page_index) = (__X__))
#endif
//void Mp3_SetPlayPos(void);
extern unsigned int MPA_GetNumberOfSamples ( void );
extern unsigned long MPA_GetSamplingRate ( void );
extern unsigned long MPA_GetBitRate ( void );
extern void InitNumber(void);
#if 0
typedef enum
{
PREV_PAGE = 0,
CUR_PAGE,
NEXT_PAGE,
PAGE_NO
}PAGE_ID;
#if 0
typedef enum
{
MP3NAV_NO_ERROR = 0
,MP3NAV_READ_ERROR
,MP3NAV_DIRECTORY_END
,MP3NAV_NO_CONTENT
} MP3NAV_Error_t;
typedef enum
{
#if 1
MP3_FIND_IN_PAGE = 0
,MP3_FIND_BEYOND_PAGE
#else
MP3_FIND_NEXT
#endif
,MP3_CHANGE_PAGE
,MP3_FIND_NOTHING
}Mp3_FindMp3_Return;
#endif
Mp3_FindMp3_Return Mp3_FindNextMp3InPage(void);
Mp3_FindMp3_Return Mp3_FindPrevMp3InPage(void);
BOOL Mp3_FindFirstMp3(void);
BOOL Mp3_FindNextMp3(void);
BOOL Mp3_FindPrevMp3(void);
void Mp3_SetState(UCHAR mode, UCHAR main, UCHAR repeat, UCHAR trick);
#endif
#endif /* _MP3_NAV_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -