📄 mp3_play.h
字号:
#ifndef __MP3_MAIN_H__
#define __MP3_MAIN_H__
#include <system/armsys270.h>
#include <demo/mem_alloc.h>
#include <util/mem_fs.h>
#include <util/file_name_gen.h>
#include <fileio/fileio.h>
#define MP3_FS_FILE
#define MP3_DECODE 0x0510
#ifdef MP3_FS_FILE
#include <demo/dm270_demo.h>
#include <appl/mp3_filelist.h>
#endif
#define MP3_BLK_DECODE_SIZE (16*KB)
#define MP3_MAX_FILES 256
#define MP3_DEFAULT_DIR_NAME "MP3"
#define MP3_DEFAULT_DEV_NAME DRV_A /* "A:" */
#define MP3_EXT "MP3" /* MP3 file extension */
typedef struct MP3_CTRL {
Uint32 BufferAddr;
Uint32 BufferSize;
Uint32 CurBuff;
Uint32 NumBlksDecoded;
BOOL Stop;
BOOL Pause;
BOOL FF;
#ifdef MP3_FS_FILE
FILE_ID *File;
char Mp3DevName[8];
char Mp3DirName[10];
int Mp3FileIndex;
char Mp3FileList[MP3_MAX_FILES][256];
int Mp3MaxFileIndex;
#else
MEM_FILE File;
#endif
Uint32 DecDataSize;
Uint32 DecTime;
} MP3_CTRL;
extern MP3_CTRL Mp3Ctrl;
typedef enum MP3_ACTION_ID {
MP3_CMD_NONE,
MP3_CMD_PLAY,
MP3_CMD_STOP,
MP3_CMD_RESUME,
MP3_CMD_FF,
MP3_CMD_PAUSE
} MP3_ACTION_ID;
#define MP3_CMD_INT_NONE 0xFFFF // Update interval - no update
#define MP3_CMD_INT_FRAME 0x00 // Update interval - every frame
#define MP3_CMD_INT_512 0x01 // Update interval - every 512 bytes read
#define MP3_CMD_INT_16K 0x02 // Update interval - every 16K
#define ARM_CMD_MP3 0x0200
#define MP3_STATUS_ERROR 0x8000
#define MP3_STATUS_DEC_DONE 0x0000
#define MP3_STATUS_RUNNING 0x0001
typedef struct MP3_CMD {
Uint16 ActionId;
Uint16 reserved;
Uint16 DataBuffAddrHigh;
Uint16 DataBuffAddrLow;
Uint16 DataBuffSizeHigh;
Uint16 DataBuffSizeLow;
Uint16 FeedTime;
Uint16 Volume;
Uint16 DataSizeHigh;
Uint16 DataSizeLow;
Uint16 DataBuffOffsetHigh;
Uint16 DataBuffOffsetLow;
Uint16 UpdateInterval;
Uint16 reserved1;
} MP3_CMD;
typedef struct MP3_STATUS {
Uint16 Status;
Uint16 LevelDataLeft;
Uint16 LevelDataRight;
Uint16 DecTime;
Uint16 DecSizeHigh;
Uint16 DecSizeLow;
} MP3_STATUS;
STATUS MP3_init() ;
STATUS MP3_deviceNameSet(char *dev_name) ;
void MP3_PLAY_MAIN_MENU_run() ;
STATUS MP3_PLAY_START_run() ;
void MP3_PLAY_run() ;
void MP3_PLAY_IN_PROGRESS_run() ;
BOOL MP3_PLAY_isDataBuffEmpty() ;
STATUS MP3_PLAY_STOP_run() ;
void MP3_togglePause() ;
void MP3_toggleFF() ;
void MP3_PLAY_isr() ;
STATUS MP3_readBuff( Uint16 nBuff ) ;
STATUS MP3_initMp3Ctrl() ;
STATUS MP3_sendCmd( MP3_ACTION_ID mp3_action ) ;
void MP3_AIC23_init();
void MP3_AIC23_stop();
#endif /* __MP3_MAIN_H__ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -