// returns buffer len; caller frees int Tags::ExportID3(char **buffer, bool *endOfFile) { #ifdef USE_ID3LIB ID3_Tag tag; ID3_AddTitle(&tag, (const char *)mTitle); ID3_AddArtist(&tag, (const char *)mArtist); ID3_AddAlbum(&tag, (const char *)mAlbum); if (mTrackNum >=0 && mTrackNum<=255) ID3_AddTrack(&tag, (uchar)mTrackNum); ID3_AddGenre(&tag, mGenre); ID3_AddComment(&tag, (const char *)mComments, STR_V1_COMMENT_DESC); ID3_AddYear(&tag, (const char *)mYear); if (mID3V2) { int tagSize = tag.Size(); *buffer = new char[tagSize]; tag.Render((uchar *)*buffer, ID3TT_ID3V2); *endOfFile = false; return tagSize; } else { *buffer = new char[128]; for(int i=0; i<128; i++) (*buffer)[i] = 0; tag.Render((uchar *)*buffer, ID3TT_ID3V1); *endOfFile = true; return 128; } #else *buffer = new char[0]; *endOfFile = true; return 0; #endif // USE_ID3LIB }
ID3_Frame* ID3_AddComment(ID3_Tag *tag, const char *text, const char *desc, bool replace) { return ID3_AddComment(tag, text, desc, "XXX", replace); }
ID3_Frame* ID3_AddComment(ID3_Tag *tag, const char *text, bool replace) { return ID3_AddComment(tag, text, "", replace); }