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 infromation"},
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"},
886ID3_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" );
1079 for (
size_t cur = 0; ID3_FrameDefs[cur].eID !=
ID3FID_NOFRAME; ++cur)
1081 if (ID3_FrameDefs[cur].eID ==
id)
1083 info = &ID3_FrameDefs[cur];
1095 const int slen = strlen(
id);
1097 for (
size_t cur = 0; ID3_FrameDefs[cur].eID !=
ID3FID_NOFRAME; ++cur)
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" );
1145 const ID3_FieldImpl* fld = (
const ID3_FieldImpl*) &rhs;
1181 _text =
convert(_text, _enc, enc);
The representative class of an ID3v2 field.
dami::String GetText() const
bool ParseInteger(ID3_Reader &)
size_t SetText(dami::String)
void RenderInteger(ID3_Writer &) const
void RenderText(ID3_Writer &) const
uint32 GetInteger() const
ID3_FieldType GetType() const
bool ParseBinary(ID3_Reader &)
void Clear()
Clears any data and frees any memory associated with the field.
ID3_TextEnc GetEncoding() const
ID3_Field & operator=(uint32 val)
A shortcut for the Set method.
void Render(ID3_Writer &) const
bool ParseText(ID3_Reader &)
size_t Size() const
Returns the size of a field.
void RenderBinary(ID3_Writer &) const
bool SetEncoding(ID3_TextEnc enc)
size_t SetBinary(dami::BString)
Copies the supplied unicode string to the field.
dami::BString GetBinary() const
size_t FieldSize(ID3_FrameID frameid, int fieldnum)
int NumFields(ID3_FrameID frameid)
char * LongName(ID3_FrameID frameid)
const char * Description(ID3_FrameID frameid)
char * ShortName(ID3_FrameID frameid)
ID3_FieldType FieldType(ID3_FrameID frameid, int fieldnum)
flags_t FieldFlags(ID3_FrameID frameid, int fieldnum)
ID3_FrameDef * ID3_FindFrameDef(ID3_FrameID id)
ID3_FrameID ID3_FindFrameID(const char *id)
@ ID3FN_MIMETYPE
Mimetype field.
@ ID3FN_VOLCHGRIGHT
Volume chage on the right channel.
@ ID3FN_PEAKVOLRIGHT
Peak volume on the right channel.
@ ID3FN_EMAIL
Email field.
@ ID3FN_VOLCHGLEFT
Volume chage on the left channel.
@ ID3FN_DESCRIPTION
Description field.
@ ID3FN_IMAGEFORMAT
Image format field.
@ ID3FN_TIMESTAMPFORMAT
SYLT Timestamp Format.
@ ID3FN_PEAKVOLLEFT
Peak volume on the left channel.
@ ID3FN_RATING
Rating field.
@ ID3FN_NUMBITS
Number of bits field.
@ ID3FN_FILENAME
Filename field.
@ ID3FN_OWNER
Owner field.
@ ID3FN_LANGUAGE
Language field.
@ ID3FN_VOLUMEADJ
Volume adjustment field.
@ ID3FN_ID
Identifier/Symbol field.
@ ID3FN_COUNTER
Counter field.
@ ID3FN_PICTURETYPE
Picture type field.
@ ID3FN_CONTENTTYPE
SYLT content type.
@ ID3FN_TEXTENC
Text encoding (unicode or ASCII)
ID3_TextEnc
Enumeration of the types of text encodings: ascii or unicode.
ID3_FrameID
Enumeration of the different types of frames recognized by id3lib.
@ ID3FID_SYNCEDTEMPO
Synchronized tempo codes.
@ ID3FID_LEADARTIST
Lead performer(s)/Soloist(s)
@ ID3FID_CONTENTTYPE
Content type.
@ ID3FID_BUFFERSIZE
Recommended buffer size.
@ ID3FID_MIXARTIST
Interpreted, remixed, or otherwise modified by.
@ ID3FID_BPM
BPM (beats per minute)
@ ID3FID_GROUPINGREG
Group identification registration.
@ ID3FID_ENCODERSETTINGS
Software/Hardware and settings used for encoding.
@ ID3FID_SUBTITLE
Subtitle/Description refinement.
@ ID3FID_ORIGARTIST
Original artist(s)/performer(s)
@ ID3FID_ISRC
ISRC (international standard recording code)
@ ID3FID_COMPOSER
Composer.
@ ID3FID_MPEGLOOKUP
MPEG location lookup table.
@ ID3FID_PUBLISHER
Publisher.
@ ID3FID_AUDIOCRYPTO
Audio encryption.
@ ID3FID_INVOLVEDPEOPLE
Involved people list.
@ ID3FID_ORIGALBUM
Original album/movie/show title.
@ ID3FID_PLAYLISTDELAY
Playlist delay.
@ ID3FID_LANGUAGE
Language(s)
@ ID3FID_WWWPUBLISHER
Official publisher webpage.
@ ID3FID_WWWARTIST
Official artist/performer webpage.
@ ID3FID_WWWPAYMENT
Payment.
@ ID3FID_LYRICIST
Lyricist/Text writer.
@ ID3FID_FILETYPE
File type.
@ ID3FID_WWWAUDIOSOURCE
Official audio source webpage.
@ ID3FID_METACRYPTO
Encrypted meta frame (id3v2.2.x)
@ ID3FID_WWWAUDIOFILE
Official audio file webpage.
@ ID3FID_METACOMPRESSION
Compressed meta frame (id3v2.2.1)
@ ID3FID_LASTFRAMEID
Last field placeholder.
@ ID3FID_ENCODEDBY
Encoded by.
@ ID3FID_WWWUSER
User defined URL link.
@ ID3FID_POPULARIMETER
Popularimeter.
@ ID3FID_PARTINSET
Part of a set.
@ ID3FID_UNIQUEFILEID
Unique file identifier.
@ ID3FID_GENERALOBJECT
General encapsulated object.
@ ID3FID_USERTEXT
User defined text information.
@ ID3FID_BAND
Band/orchestra/accompaniment.
@ ID3FID_FILEOWNER
File owner/licensee.
@ ID3FID_COMMERCIAL
Commercial frame.
@ ID3FID_INITIALKEY
Initial key.
@ ID3FID_ALBUM
Album/Movie/Show title.
@ ID3FID_COMMENT
Comments.
@ ID3FID_NETRADIOOWNER
Internet radio station owner.
@ ID3FID_ORIGFILENAME
Original filename.
@ ID3FID_EQUALIZATION
Equalization.
@ ID3FID_COPYRIGHT
Copyright message.
@ ID3FID_CRYPTOREG
Encryption method registration.
@ ID3FID_RECORDINGDATES
Recording dates.
@ ID3FID_POSITIONSYNC
Position synchronisation frame.
@ ID3FID_WWWCOPYRIGHT
Copyright/Legal infromation.
@ ID3FID_LINKEDINFO
Linked information.
@ ID3FID_CONDUCTOR
Conductor/performer refinement.
@ ID3FID_NETRADIOSTATION
Internet radio station name.
@ ID3FID_WWWCOMMERCIALINFO
Commercial information.
@ ID3FID_MEDIATYPE
Media type.
@ ID3FID_TERMSOFUSE
Terms of use.
@ ID3FID_EVENTTIMING
Event timing codes.
@ ID3FID_CONTENTGROUP
Content group description.
@ ID3FID_NOFRAME
No known frame.
@ ID3FID_OWNERSHIP
Ownership frame.
@ ID3FID_PICTURE
Attached picture.
@ ID3FID_TRACKNUM
Track number/Position in set.
@ ID3FID_ORIGLYRICIST
Original lyricist(s)/text writer(s)
@ ID3FID_UNSYNCEDLYRICS
Unsynchronized lyric/text transcription.
@ ID3FID_VOLUMEADJ
Relative volume adjustment.
@ ID3FID_ORIGYEAR
Original release year.
@ ID3FID_CDID
Music CD identifier.
@ ID3FID_TITLE
Title/songname/content description.
@ ID3FID_SYNCEDLYRICS
Synchronized lyric/text.
@ ID3FID_PRIVATE
Private frame.
@ ID3FID_WWWRADIOPAGE
Official internet radio station homepage.
@ ID3FID_PLAYCOUNTER
Play counter.
ID3_FieldType
Enumeration of the types of field types.
String ID3_C_EXPORT convert(String data, ID3_TextEnc, ID3_TextEnc)
static const ID3_FieldDef * DEFAULT
const ID3_FieldDef * aeFieldDefs
const char * sDescription