Esempio n. 1
0
// 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
}
Esempio n. 2
0
ID3_Frame* ID3_AddComment(ID3_Tag *tag, const char *text,
                          const char *desc, bool replace)
{
  return ID3_AddComment(tag, text, desc, "XXX", replace);
}
Esempio n. 3
0
ID3_Frame* ID3_AddComment(ID3_Tag *tag, const char *text, bool replace)
{
  return ID3_AddComment(tag, text, "", replace);
}