#include <id3/field.h>
Public Member Functions | |
ID3_FrameInfo () | |
~ID3_FrameInfo () | |
char * | ShortName (ID3_FrameID frameid) |
char * | LongName (ID3_FrameID frameid) |
const char * | Description (ID3_FrameID frameid) |
int | MaxFrameID () |
int | NumFields (ID3_FrameID frameid) |
ID3_FieldType | FieldType (ID3_FrameID frameid, int fieldnum) |
size_t | FieldSize (ID3_FrameID frameid, int fieldnum) |
flags_t | FieldFlags (ID3_FrameID frameid, int fieldnum) |
You normally only need (at most) one instance of the ID3_FrameInfo. It has no member data -- only methods which provide information about the frame types (and their component fields) supported by id3lib as defined in field.cpp .
Usage is straightforward. The following function uses ID3_FrameInfo to display a summary of all the frames known to id3lib:
void ShowKnownFrameInfo { ID3_FrameInfo myFrameInfo; for (int cur = ID3FID_NOFRAME+1; cur <= myFrameInfo.MaxFrameID(); cur ++) { cout << "Short ID: " << myFrameInfo.ShortName(ID3_FrameID(cur)) << " Long ID: " << myFrameInfo.LongName(ID3_FrameID(cur)) << " Desription: " << myFrameInfo.Description(ID3_FrameID(cur)) << endl; } }
Functions are also provided to glean more information about the individual fields which make up any given frame type. The following for() loop, embedded into the previous for() loop would provide a raw look at such information. Realize, of course, that the field type is meaningless when printed. Only when it is taken in the context of the ID3_FieldType enum does it take on any meaningful significance.
for (int cur = ID3FID_NOFRAME+1; cur <= fi.MaxFrameID(); cur ++) { int numfields = fi.NumFields(ID3_FrameID(cur)); cout << "ID: " << fi.LongName(ID3_FrameID(cur)) << " FIELDS: " << numfields << endl; for(int i=0;i<numfields;i++) { cout << "TYPE: " << fi.FieldType(ID3_FrameID(cur),i) << " SIZE: " << fi.FieldSize(ID3_FrameID(cur),i) << " FLAGS: " << fi.FieldFlags(ID3_FrameID(cur),i) << endl; } cout << endl; }
Definition at line 96 of file field.h.
char * ID3_FrameInfo::ShortName | ( | ID3_FrameID | frameid | ) |
Definition at line 1242 of file field.cpp.
References ID3_FindFrameDef(), NULL, and ID3_FrameDef::sShortTextID.
char * ID3_FrameInfo::LongName | ( | ID3_FrameID | frameid | ) |
Definition at line 1251 of file field.cpp.
References ID3_FindFrameDef(), NULL, and ID3_FrameDef::sLongTextID.
const char * ID3_FrameInfo::Description | ( | ID3_FrameID | frameid | ) |
Definition at line 1260 of file field.cpp.
References ID3_FindFrameDef(), NULL, and ID3_FrameDef::sDescription.
int ID3_FrameInfo::MaxFrameID | ( | ) |
int ID3_FrameInfo::NumFields | ( | ID3_FrameID | frameid | ) |
Definition at line 1274 of file field.cpp.
References ID3_FieldDef::_id, ID3_FrameDef::aeFieldDefs, ID3_FindFrameDef(), ID3FN_NOFIELD, and NULL.
ID3_FieldType ID3_FrameInfo::FieldType | ( | ID3_FrameID | frameid, | |
int | fieldnum | |||
) |
Definition at line 1288 of file field.cpp.
References ID3_FieldDef::_type, ID3_FrameDef::aeFieldDefs, ID3_FindFrameDef(), ID3FTY_NONE, and NULL.
size_t ID3_FrameInfo::FieldSize | ( | ID3_FrameID | frameid, | |
int | fieldnum | |||
) |
Definition at line 1297 of file field.cpp.
References ID3_FieldDef::_fixed_size, ID3_FrameDef::aeFieldDefs, ID3_FindFrameDef(), and NULL.
flags_t ID3_FrameInfo::FieldFlags | ( | ID3_FrameID | frameid, | |
int | fieldnum | |||
) |
Definition at line 1306 of file field.cpp.
References ID3_FieldDef::_flags, ID3_FrameDef::aeFieldDefs, ID3_FindFrameDef(), and NULL.