34 #ifndef _ID3LIB_GLOBALS_H_
35 #define _ID3LIB_GLOBALS_H_
45 # define LINKOPTION_STATIC 1
46 # define LINKOPTION_CREATE_DYNAMIC 2
47 # define LINKOPTION_USE_DYNAMIC 3
48 # ifndef ID3LIB_LINKOPTION
49 # pragma message("*** NOTICE *** (not a real error)")
50 # pragma message("* You should include a define in your project which reflect how you link the library")
51 # pragma message("* If you use id3lib.lib or libprj/id3lib.dsp (you link static) you should add")
52 # pragma message("* ID3LIB_LINKOPTION=1 to your preprocessor definitions of your project.")
53 # pragma message("* If you use id3lib.dll (you link dynamic) you should add ID3LIB_LINKOPTION=3")
54 # pragma message("* to your preprocessor definitions of your project.")
55 # pragma message("***")
56 # error read message above or win32.readme.first.txt
58 # if (ID3LIB_LINKOPTION == LINKOPTION_CREATE_DYNAMIC)
60 # define ID3_C_EXPORT extern _declspec(dllexport)
61 # define ID3_CPP_EXPORT __declspec(dllexport)
62 # define CCONV __stdcall
64 # if (ID3LIB_LINKOPTION == LINKOPTION_STATIC)
67 # define ID3_CPP_EXPORT
70 # if (ID3LIB_LINKOPTION == LINKOPTION_USE_DYNAMIC)
72 # define ID3_C_EXPORT extern _declspec(dllimport)
73 # define ID3_CPP_EXPORT __declspec(dllimport)
74 # define CCONV __stdcall
79 # define ID3_CPP_EXPORT
83 #define ID3_C_VAR extern
89 # define true (!false)
102 #define ID3_TAGID "ID3"
103 #define ID3_TAGIDSIZE (3)
104 #define ID3_TAGHEADERSIZE (10)
111 #define STR_V1_COMMENT_DESC "ID3v1 Comment"
120 #define NULL_UNICODE ((unicode_t) '\0')
127 # define ID3_ENUM(E) enum E
128 # define ID3_STRUCT(S) struct S
130 # define ID3_ENUM(E) typedef enum _ ## E E; enum _ ## E
131 # define ID3_STRUCT(S) typedef struct _ ## S S; struct _ ## S
149 #define ID3TE_IS_SINGLE_BYTE_ENC(enc) ((enc) == ID3TE_ISO8859_1 || (enc) == ID3TE_UTF8)
150 #define ID3TE_IS_DOUBLE_BYTE_ENC(enc) ((enc) == ID3TE_UTF16 || (enc) == ID3TE_UTF16BE)
540 #define ID3_NR_OF_V1_GENRES 148
681 "Christian Gangsta Rap",
685 "Contemporary Christian",
695 #define ID3_V1GENRE2DESCRIPTION(x) (x < ID3_NR_OF_V1_GENRES && x >= 0) ? ID3_v1_genre_description[x] : NULL
697 #define MASK(bits) ((1 << (bits)) - 1)
698 #define MASK1 MASK(1)
699 #define MASK2 MASK(2)
700 #define MASK3 MASK(3)
701 #define MASK4 MASK(4)
702 #define MASK5 MASK(5)
703 #define MASK6 MASK(6)
704 #define MASK7 MASK(7)
705 #define MASK8 MASK(8)
715 # define ID3_DIR_SEPARATOR '\\'
716 # define ID3_DIR_SEPARATOR_S "\\"
717 # define ID3_SEARCHPATH_SEPARATOR ';'
718 # define ID3_SEARCHPATH_SEPARATOR_S ";"
725 # define ID3_DIR_SEPARATOR '/'
726 # define ID3_DIR_SEPARATOR_S "/"
727 # define ID3_SEARCHPATH_SEPARATOR ':'
728 # define ID3_SEARCHPATH_SEPARATOR_S ":"
733 # define ID3_DIR_SEPARATOR '/'
734 # define ID3_DIR_SEPARATOR_S "/"
735 # define ID3_SEARCHPATH_SEPARATOR ';'
736 # define ID3_SEARCHPATH_SEPARATOR_S ";"
743 # define NULL ((void*) 0)
ID3_Err
Predefined id3lib error types.
@ ID3E_NoBuffer
No buffer to write to.
@ ID3E_FieldNotFound
Requested field not found.
@ ID3E_InvalidTagVersion
Invalid tag version.
@ ID3E_NoData
No data to parse.
@ ID3E_zlibError
Error in compression/uncompression.
@ ID3E_TagAlreadyAttached
Tag is already attached to a file.
@ ID3E_ReadOnly
Attempting to write to a read-only file.
@ ID3E_NoError
No error reported.
@ ID3E_BadData
Improperly formatted data.
@ ID3E_NoMemory
No available memory.
@ ID3E_SmallBuffer
Buffer is too small.
@ ID3E_InvalidFrameID
Invalid frame id.
@ ID3E_UnknownFieldType
Unknown field type.
@ ID3E_NoFile
No file to parse.
const int ID3LIB_BINARY_AGE
@ MP3FREQUENCIES_Reserved
ID3_FieldID
Enumeration of the different types of fields in a frame.
@ ID3FN_MIMETYPE
Mimetype field.
@ ID3FN_VOLCHGRIGHT
Volume chage on the right channel.
@ ID3FN_PEAKVOLRIGHT
Peak volume on the right channel.
@ ID3FN_LASTFIELDID
Last field placeholder.
@ 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_TagType
The various types of tags that id3lib can handle.
@ ID3TT_ID3
Represents both id3 tags: id3v1 and id3v2.
@ ID3TT_APPENDED
Represents all tag types that can be appended to a file.
@ ID3TT_LYRICS3
Represents a Lyrics3 tag.
@ ID3TT_ID3V2
Represents an id3v2 tag.
@ ID3TT_LYRICS3V2
Represents a Lyrics3 v2.00 tag.
@ ID3TT_MUSICMATCH
Represents a MusicMatch tag.
@ ID3TT_PREPENDED
Represents all tag types that can be prepended to a file.
@ ID3TT_ID3V1
Represents an id3v1 or id3v1.1 tag.
@ ID3TT_ALL
Represents all possible types of tags.
@ ID3TT_NONE
Represents an empty or non-existant tag.
@ ID3CT_TEXTTRANSCRIPTION
#define ID3_NR_OF_V1_GENRES
@ MP3CHANNELMODE_DUAL_CHANNEL
@ MP3CHANNELMODE_SINGLE_CHANNEL
@ MP3CHANNELMODE_JOINT_STEREO
const int ID3LIB_MAJOR_VERSION
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_MUSICIANCREDITLIST
Musician credits list.
@ ID3FID_ORIGARTIST
Original artist(s)/performer(s)
@ ID3FID_ISRC
ISRC (international standard recording code)
@ ID3FID_AUDIOSEEKPOINT
Audio seek point index.
@ ID3FID_COMPOSER
Composer.
@ ID3FID_MPEGLOOKUP
MPEG location lookup table.
@ ID3FID_PUBLISHER
Publisher.
@ ID3FID_AUDIOCRYPTO
Audio encryption.
@ ID3FID_EQUALIZATION2
Equalisation (2)
@ ID3FID_ORIGRELEASETIME
Original release time.
@ 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_ALBUMSORTORDER
Album sort order.
@ 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_PERFORMERSORTORDER
Performer sort order.
@ ID3FID_UNIQUEFILEID
Unique file identifier.
@ ID3FID_GENERALOBJECT
General encapsulated object.
@ ID3FID_USERTEXT
User defined text information.
@ ID3FID_BAND
Band/orchestra/accompaniment.
@ ID3FID_SIGNATURE
Signature frame.
@ 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_SETSUBTITLE
Set subtitle.
@ 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_TAGGINGTIME
Tagging time.
@ 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_VOLUMEADJ2
Relative volume adjustment (2)
@ ID3FID_UNSYNCEDLYRICS
Unsynchronized lyric/text transcription.
@ ID3FID_VOLUMEADJ
Relative volume adjustment.
@ ID3FID_TITLESORTORDER
Title sort order.
@ ID3FID_PRODUCEDNOTICE
Produced notice.
@ ID3FID_ORIGYEAR
Original release year.
@ ID3FID_RELEASETIME
Release time.
@ ID3FID_INVOLVEDPEOPLE2
Involved people list.
@ ID3FID_CDID
Music CD identifier.
@ ID3FID_ENCODINGTIME
Encoding time.
@ ID3FID_TITLE
Title/songname/content description.
@ ID3FID_SYNCEDLYRICS
Synchronized lyric/text.
@ ID3FID_SEEKFRAME
Seek frame.
@ ID3FID_PRIVATE
Private frame.
@ ID3FID_WWWRADIOPAGE
Official internet radio station homepage.
@ ID3FID_PLAYCOUNTER
Play counter.
@ ID3FID_RECORDINGTIME
Recording time.
const int ID3LIB_MINOR_VERSION
const char *const ID3LIB_RELEASE
const int ID3LIB_PATCH_VERSION
const char *const ID3LIB_FULL_NAME
const char *const ID3LIB_NAME
ID3_FieldType
Enumeration of the types of field types.
const int ID3LIB_INTERFACE_AGE
ID3_V1Spec
Enumeration of the various id3 specifications.