String id3::v2::getV1Comment(const ID3_TagImpl& tag) { ID3_Frame* frame; (frame = tag.Find(ID3FID_COMMENT, ID3FN_DESCRIPTION, STR_V1_COMMENT_DESC)) || (frame = tag.Find(ID3FID_COMMENT, ID3FN_DESCRIPTION, "" )) || (frame = tag.Find(ID3FID_COMMENT)); return getString(frame, ID3FN_TEXT); }
BString id3::v2::getSyncLyrics(const ID3_TagImpl& tag, String lang, String desc) { // check if a SYLT frame of this language or descriptor exists ID3_Frame* frame = NULL; (frame = tag.Find(ID3FID_SYNCEDLYRICS, ID3FN_LANGUAGE, lang.c_str())) || (frame = tag.Find(ID3FID_SYNCEDLYRICS, ID3FN_DESCRIPTION, desc.c_str())) || (frame = tag.Find(ID3FID_SYNCEDLYRICS)); // get the lyrics size ID3_Field* fld = frame->GetField(ID3FN_DATA); return BString(reinterpret_cast<const BString::value_type *>(fld->GetRawBinary()), fld->Size()); }
size_t id3::v2::removeFrames(ID3_TagImpl& tag, ID3_FrameID id) { size_t numRemoved = 0; ID3_Frame* frame = NULL; while ((frame = tag.Find(id)) != NULL) { frame = tag.RemoveFrame(frame); delete frame; numRemoved++; } return numRemoved; }
String id3::v2::getFrameText(const ID3_TagImpl& tag, ID3_FrameID id) { ID3_Frame* frame = tag.Find(id); return getString(frame, ID3FN_TEXT); }
String id3::v2::getComment(const ID3_TagImpl& tag, String desc) { ID3_Frame* frame = tag.Find(ID3FID_COMMENT, ID3FN_DESCRIPTION, desc.c_str()); return getString(frame, ID3FN_TEXT); }