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
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)
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)
const int ID3LIB_BINARY_AGE
const int ID3LIB_MAJOR_VERSION
const int ID3LIB_MINOR_VERSION
const int ID3LIB_PATCH_VERSION
const char *const ID3LIB_FULL_NAME
const char *const ID3LIB_NAME
const int ID3LIB_INTERFACE_AGE
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.
@ 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
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 char *const ID3LIB_RELEASE
ID3_FieldType
Enumeration of the types of field types.
ID3_V1Spec
Enumeration of the various id3 specifications.