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

📄 mp3_include.h

📁 三星ic 9980的源代码. 718版.
💻 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 + -