//----------------------------------------------------------------------------- // // Musepack Demuxer // // Author : Igor Janos // //----------------------------------------------------------------------------- #pragma once //----------------------------------------------------------------------------- // // APE_Tag_Item class // //----------------------------------------------------------------------------- class APE_Tag_Item { public: CString name; CString value; // in case of binary value BYTE *buf; int len; enum { TYPE_STRING = 0, TYPE_BINARY = 1, TYPE_LOCATOR = 2 }; int type; public: APE_Tag_Item(); virtual ~APE_Tag_Item(); // load int Load(BYTE *buf, BYTE *end); }; //----------------------------------------------------------------------------- // // APE_Tag class // //----------------------------------------------------------------------------- class APE_Tag { public: vector items; public: APE_Tag(); virtual ~APE_Tag(); void Clear(); // tag reading int ReadFooter(BYTE *buf, int len, int *tagsize); int ReadTag(BYTE *buf, int len, bool skip_preamble = false); // find by name APE_Tag_Item *Find(CString name); CString FindName(CString name); };