mp3tagparser.h
来自「君正早期ucos系统(只有早期的才不没有打包成库),MPLAYER,文件系统,图」· C头文件 代码 · 共 96 行
H
96 行
#ifndef __MP3_TAG_PARSER_H__
#define __MP3_TAG_PARSER_H__
#include <winbase.h>
#include "TagParserBase.h"
// MP3ID3V1TAG structure
struct MP3ID3V1TAG
{
char ident[3]; // TAG
char title[30];
char artist[30];
char album[30];
char year[4];
char comment[28];
BYTE reserved;
BYTE tracknum;
BYTE genre;
};
#pragma pack(push,1)
struct ID3_FrameDef
{
char sFrameName[5];
};
#pragma pack(pop)
#pragma pack(push,1)
struct ID3_FrameHeader_V22
{
char FrameID[3];
int Size;
};
#pragma pack(pop)
#pragma pack(push,1)
struct ID3_FrameHeader_V23
{
char FrameID[4];
int Size;
char Flags[2];
};
#pragma pack(pop)
class MP3TagParser : public TagParserBase
{
public:
MP3TagParser();
~MP3TagParser();
bool OpenFile(const TCHAR* file_nm);
void CloseFile();
TCHAR* getTitle();
TCHAR* getArtist();
int getRating();
TCHAR* getAlbum();
TCHAR* getGenre();
bool getPicInf(TAG_PIC_TYPE& type, int& rawsiz);
//caller alloc buffer
bool getPicDat(BYTE* pBuf);
private:
void ClearResult();
void ChangeEndian(void* pBuffer, int nBufSize);
bool IsFrameV23(char* pch);
bool IsFrameV22(char* pch);
bool GetFrameV23(HANDLE hFile, ID3_FrameHeader_V23* pFH);
bool GetFrameV22(HANDLE hFile, ID3_FrameHeader_V22* pFH);
bool GetAvail(char *ID3Text,TCHAR m[MAX_TEXT_LEN+1],int len,int m_len);
TCHAR m_Title[MAX_TEXT_LEN+1];
bool m_bTitleAvail;
TCHAR m_Album[MAX_TEXT_LEN+1];
bool m_bAlbumAvail;
TCHAR m_Artist[MAX_TEXT_LEN+1];
bool m_bArtistAvail;
TCHAR m_Genre[MAX_TEXT_LEN+1];
bool m_bGenreAvail;
int m_Rating;
int m_PicDatOffset;
TAG_PIC_TYPE m_PicType;
int m_PicSiz;
HANDLE m_hFile;
};
#endif //__MP3_TAG_PARSER_H__
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?