30 #include "id3/utils.h" 606 #if defined _UNDEFINED_ 750 {
ID3FID_AUDIOCRYPTO,
"CRA",
"AENC",
false,
false, ID3FD_Unimplemented,
"Audio encryption"},
751 {
ID3FID_PICTURE,
"PIC",
"APIC",
false,
false, ID3FD_Picture,
"Attached picture"},
752 {
ID3FID_COMMENT,
"COM",
"COMM",
false,
false, ID3FD_GeneralText,
"Comments"},
753 {
ID3FID_COMMERCIAL,
"" ,
"COMR",
false,
false, ID3FD_Unimplemented,
"Commercial"},
754 {
ID3FID_CRYPTOREG,
"" ,
"ENCR",
false,
false, ID3FD_Registration,
"Encryption method registration"},
756 {
ID3FID_EVENTTIMING,
"ETC",
"ETCO",
false,
true, ID3FD_Unimplemented,
"Event timing codes"},
758 {
ID3FID_GROUPINGREG,
"" ,
"GRID",
false,
false, ID3FD_Registration,
"Group identification registration"},
760 {
ID3FID_LINKEDINFO,
"LNK",
"LINK",
false,
false, ID3FD_LinkedInfo,
"Linked information"},
761 {
ID3FID_CDID,
"MCI",
"MCDI",
false,
false, ID3FD_Unimplemented,
"Music CD identifier"},
762 {
ID3FID_MPEGLOOKUP,
"MLL",
"MLLT",
false,
true, ID3FD_Unimplemented,
"MPEG location lookup table"},
763 {
ID3FID_OWNERSHIP,
"" ,
"OWNE",
false,
false, ID3FD_Unimplemented,
"Ownership frame"},
764 {
ID3FID_PRIVATE,
"" ,
"PRIV",
false,
false, ID3FD_Private,
"Private frame"},
767 {
ID3FID_POSITIONSYNC,
"" ,
"POSS",
false,
true, ID3FD_Unimplemented,
"Position synchronisation frame"},
768 {
ID3FID_BUFFERSIZE,
"BUF",
"RBUF",
false,
false, ID3FD_Unimplemented,
"Recommended buffer size"},
769 {
ID3FID_VOLUMEADJ,
"RVA",
"RVAD",
false,
true, ID3FD_Unimplemented,
"Relative volume adjustment"},
770 {
ID3FID_REVERB,
"REV",
"RVRB",
false,
false, ID3FD_Unimplemented,
"Reverb"},
771 {
ID3FID_SYNCEDLYRICS,
"SLT",
"SYLT",
false,
false, ID3FD_SyncLyrics,
"Synchronized lyric/text"},
772 {
ID3FID_SYNCEDTEMPO,
"STC",
"SYTC",
false,
true, ID3FD_Unimplemented,
"Synchronized tempo codes"},
773 {
ID3FID_ALBUM,
"TAL",
"TALB",
false,
false, ID3FD_Text,
"Album/Movie/Show title"},
774 {
ID3FID_BPM,
"TBP",
"TBPM",
false,
false, ID3FD_Text,
"BPM (beats per minute)"},
775 {
ID3FID_COMPOSER,
"TCM",
"TCOM",
false,
false, ID3FD_Text,
"Composer"},
777 {
ID3FID_COPYRIGHT,
"TCR",
"TCOP",
false,
false, ID3FD_Text,
"Copyright message"},
778 {
ID3FID_DATE,
"TDA",
"TDAT",
false,
false, ID3FD_Text,
"Date"},
781 {
ID3FID_LYRICIST,
"TXT",
"TEXT",
false,
false, ID3FD_Text,
"Lyricist/Text writer"},
782 {
ID3FID_FILETYPE,
"TFT",
"TFLT",
false,
false, ID3FD_Text,
"File type"},
783 {
ID3FID_TIME,
"TIM",
"TIME",
false,
false, ID3FD_Text,
"Time"},
784 {
ID3FID_CONTENTGROUP,
"TT1",
"TIT1",
false,
false, ID3FD_Text,
"Content group description"},
785 {
ID3FID_TITLE,
"TT2",
"TIT2",
false,
false, ID3FD_Text,
"Title/songname/content description"},
786 {
ID3FID_SUBTITLE,
"TT3",
"TIT3",
false,
false, ID3FD_Text,
"Subtitle/Description refinement"},
788 {
ID3FID_LANGUAGE,
"TLA",
"TLAN",
false,
false, ID3FD_Text,
"Language(s)"},
789 {
ID3FID_SONGLEN,
"TLE",
"TLEN",
false,
true, ID3FD_Text,
"Length"},
791 {
ID3FID_ORIGALBUM,
"TOT",
"TOAL",
false,
false, ID3FD_Text,
"Original album/movie/show title"},
793 {
ID3FID_ORIGLYRICIST,
"TOL",
"TOLY",
false,
false, ID3FD_Text,
"Original lyricist(s)/text writer(s)"},
794 {
ID3FID_ORIGARTIST,
"TOA",
"TOPE",
false,
false, ID3FD_Text,
"Original artist(s)/performer(s)"},
795 {
ID3FID_ORIGYEAR,
"TOR",
"TORY",
false,
false, ID3FD_Text,
"Original release year"},
796 {
ID3FID_FILEOWNER,
"" ,
"TOWN",
false,
false, ID3FD_Text,
"File owner/licensee"},
797 {
ID3FID_LEADARTIST,
"TP1",
"TPE1",
false,
false, ID3FD_Text,
"Lead performer(s)/Soloist(s)"},
798 {
ID3FID_BAND,
"TP2",
"TPE2",
false,
false, ID3FD_Text,
"Band/orchestra/accompaniment"},
799 {
ID3FID_CONDUCTOR,
"TP3",
"TPE3",
false,
false, ID3FD_Text,
"Conductor/performer refinement"},
800 {
ID3FID_MIXARTIST,
"TP4",
"TPE4",
false,
false, ID3FD_Text,
"Interpreted, remixed, or otherwise modified by"},
801 {
ID3FID_PARTINSET,
"TPA",
"TPOS",
false,
false, ID3FD_Text,
"Part of a set"},
803 {
ID3FID_TRACKNUM,
"TRK",
"TRCK",
false,
false, ID3FD_Text,
"Track number/Position in set"},
806 {
ID3FID_NETRADIOOWNER,
"TRO",
"TRSO",
false,
false, ID3FD_Text,
"Internet radio station owner"},
807 {
ID3FID_SIZE,
"TSI",
"TSIZ",
false,
true, ID3FD_Text,
"Size"},
808 {
ID3FID_ISRC,
"TRC",
"TSRC",
false,
false, ID3FD_Text,
"ISRC (international standard recording code)"},
809 {
ID3FID_ENCODERSETTINGS,
"TSS",
"TSSE",
false,
false, ID3FD_Text,
"Software/Hardware and settings used for encoding"},
810 {
ID3FID_USERTEXT,
"TXX",
"TXXX",
false,
false, ID3FD_UserText,
"User defined text information"},
811 {
ID3FID_YEAR,
"TYE",
"TYER",
false,
false, ID3FD_Text,
"Year"},
813 {
ID3FID_TERMSOFUSE,
"" ,
"USER",
false,
false, ID3FD_TermsOfUse,
"Terms of use"},
814 {
ID3FID_UNSYNCEDLYRICS,
"ULT",
"USLT",
false,
false, ID3FD_GeneralText,
"Unsynchronized lyric/text transcription"},
816 {
ID3FID_WWWCOPYRIGHT,
"WCP",
"WCOP",
false,
false, ID3FD_URL,
"Copyright/Legal information"},
817 {
ID3FID_WWWAUDIOFILE,
"WAF",
"WOAF",
false,
false, ID3FD_URL,
"Official audio file webpage"},
818 {
ID3FID_WWWARTIST,
"WAR",
"WOAR",
false,
false, ID3FD_URL,
"Official artist/performer webpage"},
820 {
ID3FID_WWWRADIOPAGE,
"WRA",
"WORS",
false,
false, ID3FD_URL,
"Official internet radio station homepage"},
822 {
ID3FID_WWWPUBLISHER,
"WPB",
"WPUB",
false,
false, ID3FD_URL,
"Official publisher webpage"},
823 {
ID3FID_WWWUSER,
"WXX",
"WXXX",
false,
false, ID3FD_UserURL,
"User defined URL link"},
824 {
ID3FID_METACRYPTO,
"CRM",
"" ,
false,
false, ID3FD_Unimplemented,
"Encrypted meta frame"},
886 ID3_FieldImpl::ID3_FieldImpl()
903 _spec_begin(def._spec_begin),
904 _spec_end(def._spec_end),
907 _fixed_size(def._fixed_size),
937 _binary.assign(_fixed_size,
'\0');
948 _text.assign(_fixed_size * 2,
'\0');
952 _text.assign(_fixed_size,
'\0');
998 size_t size = this->
Size();
1023 if (_fixed_size > 0)
1029 size =
sizeof(uint32);
1033 size = _text.size();
1037 size = _binary.size();
1045 bool success =
false;
1068 ID3D_WARNING(
"ID3_FieldImpl::Parse(): unknown field type" );
1081 if (ID3_FrameDefs[cur].eID ==
id)
1083 info = &ID3_FrameDefs[cur];
1095 const int slen = strlen(
id);
1099 if (((strcmp(ID3_FrameDefs[cur].sShortTextID,
id) == 0) &&
1101 ((strcmp(ID3_FrameDefs[cur].sLongTextID,
id) == 0) &&
1104 fid = ID3_FrameDefs[cur].
eID;
1136 ID3D_WARNING (
"ID3D_FieldImpl::Render(): unknown field type" );
1181 _text = convert(_text, _enc, enc);
Official artist/performer webpage.
Copyright/Legal information.
Original lyricist(s)/text writer(s)
Position synchronisation frame.
size_t FieldSize(ID3_FrameID frameid, int fieldnum)
ID3_FrameDef * ID3_FindFrameDef(ID3_FrameID id)
Interpreted, remixed, or otherwise modified by.
Conductor/performer refinement.
const ID3_FieldDef * aeFieldDefs
Title/songname/content description.
Official publisher webpage.
Subtitle/Description refinement.
bool ParseText(ID3_Reader &)
ISRC (international standard recording code)
Relative volume adjustment.
Internet radio station owner.
Content group description.
ID3_FieldType GetType() const
Peak volume on the right channel.
bool SetEncoding(ID3_TextEnc enc)
Original album/movie/show title.
void RenderInteger(ID3_Writer &) const
Synchronized tempo codes.
dami::BString GetBinary() const
void Clear()
Clears any data and frees any memory associated with the field.
ID3_FrameID
Enumeration of the different types of frames recognized by id3lib.
Lead performer(s)/Soloist(s)
char * LongName(ID3_FrameID frameid)
ID3_FieldType
Enumeration of the types of field types.
dami::String GetText() const
Track number/Position in set.
flags_t FieldFlags(ID3_FrameID frameid, int fieldnum)
bool ParseBinary(ID3_Reader &)
Group identification registration.
size_t Size() const
Returns the size of a field.
Official internet radio station homepage.
static const ID3_FieldDef * DEFAULT
ID3_TextEnc
Enumeration of the types of text encodings: ascii or unicode.
ID3_FrameID ID3_FindFrameID(const char *id)
Software/Hardware and settings used for encoding.
size_t SetBinary(dami::BString)
Copies the supplied unicode string to the field.
void Render(ID3_Writer &) const
size_t SetText(dami::String)
Official audio file webpage.
Volume chage on the left channel.
Text encoding (unicode or ASCII)
Official audio source webpage.
Peak volume on the left channel.
ID3_Field & operator=(uint32 val)
A shortcut for the Set method.
ID3_FieldType FieldType(ID3_FrameID frameid, int fieldnum)
Original artist(s)/performer(s)
Encryption method registration.
General encapsulated object.
const char * sDescription
int NumFields(ID3_FrameID frameid)
void RenderBinary(ID3_Writer &) const
User defined text information.
Volume chage on the right channel.
Band/orchestra/accompaniment.
Compressed meta frame (id3v2.2.1)
Internet radio station name.
uint32 GetInteger() const
The representative class of an ID3v2 field.
const char * Description(ID3_FrameID frameid)
char * ShortName(ID3_FrameID frameid)
MPEG location lookup table.
bool ParseInteger(ID3_Reader &)
Unsynchronized lyric/text transcription.
Encrypted meta frame (id3v2.2.x)
void RenderText(ID3_Writer &) const
ID3_TextEnc GetEncoding() const