Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members  

globals.h File Reference

#include <iostream.h>
#include <stdlib.h>
#include "sized_types.h"

Compounds

struct  ID3V1_Tag
 A structure for storing the contents of an id3v1 tag. More...


Defines

#define ID3_C_EXPORT
 This file defines common macros, types, constants, and enums used throughout id3lib. More...

#define ID3_C_VAR   extern
#define ID3_TAGID   "ID3"
#define ID3_TAGIDSIZE   (3)
#define ID3_TAGHEADERSIZE   (10)
#define index_t   size_t
#define NULL_UNICODE   ((unicode_t) '\0')
#define ID3_ENUM(E)   enum E
#define ID3_STRUCT(S)   struct S
#define BS_SIZE   (sizeof(uint32)*8)
#define BS_SET(v, x)   ((v)[(x) / BS_SIZE] |= (1 << ((x) % BS_SIZE)))
#define BS_CLEAR(v, x)   ((v)[(x) / BS_SIZE] &= ~(1 << ((x) % BS_SIZE)))
#define BS_ISSET(v, x)   ((v)[(x) / BS_SIZE] & (1 << ((x) % BS_SIZE)))
#define MASK(bits)   ((1 << (bits)) - 1)
#define MASK1   MASK(1)
#define MASK2   MASK(2)
#define MASK3   MASK(3)
#define MASK4   MASK(4)
#define MASK5   MASK(5)
#define MASK6   MASK(6)
#define MASK7   MASK(7)
#define MASK8   MASK(8)
#define ID3_DIR_SEPARATOR   '/'
#define ID3_DIR_SEPARATOR_S   "/"
#define ID3_SEARCHPATH_SEPARATOR   ':'
#define ID3_SEARCHPATH_SEPARATOR_S   ":"
#define NULL   ((void*) 0)
#define MAX(a, b)   (((a) > (b)) ? (a) : (b))
#define MIN(a, b)   (((a) < (b)) ? (a) : (b))
#define ABS(a)   (((a) < 0) ? -(a) : (a))
#define CLAMP(x, low, high)   (((x) > (high)) ? (high) : (((x) < (low)) ? (low) : (x)))

Typedefs

typedef unsigned char uchar
typedef short signed int ssint
typedef short unsigned int suint
typedef long signed int lsint
typedef long unsigned int luint
typedef long double ldoub
typedef uint32bitset
typedef uint16 unicode_t
typedef uint16 flags_t

Enumerations

enum  ID3_TextEnc { ID3TE_NONE = -1, ID3TE_ASCII = 0, ID3TE_UNICODE, ID3TE_NUMENCODINGS }
 Enumeration of the types of text encodings: ascii or unicode. More...

enum  ID3_V1Spec { ID3V1_0 = 0, ID3V1_1, ID3V1_NUMSPECS }
 Enumeration of the various id3 specifications. More...

enum  ID3_V2Spec {
  ID3V2_UNKNOWN = -1, ID3V2_2_0 = 0, ID3V2_2_1, ID3V2_3_0,
  ID3V2_4_0, ID3V2_EARLIEST = ID3V2_2_0, ID3V2_LATEST = ID3V2_3_0
}
enum  ID3_TagType {
  ID3TT_NONE = 0, ID3TT_ID3V1 = 1 << 0, ID3TT_ID3V2 = 1 << 1, ID3TT_LYRICS3 = 1 << 2,
  ID3TT_LYRICS3V2 = 1 << 3, ID3TT_MUSICMATCH = 1 << 4, ID3TT_LYRICS = ID3TT_LYRICS3, ID3TT_ID3 = ID3TT_ID3V1 | ID3TT_ID3V2,
  ID3TT_ALL = ~ID3TT_NONE, ID3TT_PREPENDED = ID3TT_ID3V2, ID3TT_APPENDED = ID3TT_ALL & ~ID3TT_ID3V2
}
 The various types of tags that id3lib can handle. More...

enum  ID3_FieldID {
  ID3FN_NOFIELD = 0, ID3FN_TEXTENC, ID3FN_TEXT, ID3FN_URL,
  ID3FN_DATA, ID3FN_DESCRIPTION, ID3FN_OWNER, ID3FN_EMAIL,
  ID3FN_RATING, ID3FN_FILENAME, ID3FN_LANGUAGE, ID3FN_PICTURETYPE,
  ID3FN_IMAGEFORMAT, ID3FN_MIMETYPE, ID3FN_COUNTER, ID3FN_ID,
  ID3FN_VOLUMEADJ, ID3FN_NUMBITS, ID3FN_VOLCHGRIGHT, ID3FN_VOLCHGLEFT,
  ID3FN_PEAKVOLRIGHT, ID3FN_PEAKVOLLEFT, ID3FN_TIMESTAMPFORMAT, ID3FN_CONTENTTYPE,
  ID3FN_LASTFIELDID
}
 Enumeration of the different types of fields in a frame. More...

enum  ID3_FrameID {
  ID3FID_NOFRAME = 0, ID3FID_AUDIOCRYPTO, ID3FID_PICTURE, ID3FID_COMMENT,
  ID3FID_COMMERCIAL, ID3FID_CRYPTOREG, ID3FID_EQUALIZATION, ID3FID_EVENTTIMING,
  ID3FID_GENERALOBJECT, ID3FID_GROUPINGREG, ID3FID_INVOLVEDPEOPLE, ID3FID_LINKEDINFO,
  ID3FID_CDID, ID3FID_MPEGLOOKUP, ID3FID_OWNERSHIP, ID3FID_PRIVATE,
  ID3FID_PLAYCOUNTER, ID3FID_POPULARIMETER, ID3FID_POSITIONSYNC, ID3FID_BUFFERSIZE,
  ID3FID_VOLUMEADJ, ID3FID_REVERB, ID3FID_SYNCEDLYRICS, ID3FID_SYNCEDTEMPO,
  ID3FID_ALBUM, ID3FID_BPM, ID3FID_COMPOSER, ID3FID_CONTENTTYPE,
  ID3FID_COPYRIGHT, ID3FID_DATE, ID3FID_PLAYLISTDELAY, ID3FID_ENCODEDBY,
  ID3FID_LYRICIST, ID3FID_FILETYPE, ID3FID_TIME, ID3FID_CONTENTGROUP,
  ID3FID_TITLE, ID3FID_SUBTITLE, ID3FID_INITIALKEY, ID3FID_LANGUAGE,
  ID3FID_SONGLEN, ID3FID_MEDIATYPE, ID3FID_ORIGALBUM, ID3FID_ORIGFILENAME,
  ID3FID_ORIGLYRICIST, ID3FID_ORIGARTIST, ID3FID_ORIGYEAR, ID3FID_FILEOWNER,
  ID3FID_LEADARTIST, ID3FID_BAND, ID3FID_CONDUCTOR, ID3FID_MIXARTIST,
  ID3FID_PARTINSET, ID3FID_PUBLISHER, ID3FID_TRACKNUM, ID3FID_RECORDINGDATES,
  ID3FID_NETRADIOSTATION, ID3FID_NETRADIOOWNER, ID3FID_SIZE, ID3FID_ISRC,
  ID3FID_ENCODERSETTINGS, ID3FID_USERTEXT, ID3FID_YEAR, ID3FID_UNIQUEFILEID,
  ID3FID_TERMSOFUSE, ID3FID_UNSYNCEDLYRICS, ID3FID_WWWCOMMERCIALINFO, ID3FID_WWWCOPYRIGHT,
  ID3FID_WWWAUDIOFILE, ID3FID_WWWARTIST, ID3FID_WWWAUDIOSOURCE, ID3FID_WWWRADIOPAGE,
  ID3FID_WWWPAYMENT, ID3FID_WWWPUBLISHER, ID3FID_WWWUSER, ID3FID_METACRYPTO,
  ID3FID_METACOMPRESSION
}
 Enumeration of the different types of frames recognized by id3lib. More...

enum  ID3_V1Lengths {
  ID3_V1_LEN = 128, ID3_V1_LEN_ID = 3, ID3_V1_LEN_TITLE = 30, ID3_V1_LEN_ARTIST = 30,
  ID3_V1_LEN_ALBUM = 30, ID3_V1_LEN_YEAR = 4, ID3_V1_LEN_COMMENT = 30, ID3_V1_LEN_GENRE = 1
}
enum  ID3_FieldFlags {
  ID3FF_NONE = 0, ID3FF_CSTR = 1 << 0, ID3FF_LIST = 1 << 1, ID3FF_ENCODABLE = 1 << 2,
  ID3FF_TEXTLIST = ID3FF_CSTR | ID3FF_LIST | ID3FF_ENCODABLE
}
enum  ID3_FieldType {
  ID3FTY_NONE = -1, ID3FTY_INTEGER = 0, ID3FTY_BINARY, ID3FTY_TEXTSTRING,
  ID3FTY_NUMTYPES
}
 Enumeration of the types of field types. More...

enum  ID3_Err {
  ID3E_NoError = 0, ID3E_NoMemory, ID3E_NoData, ID3E_BadData,
  ID3E_NoBuffer, ID3E_SmallBuffer, ID3E_InvalidFrameID, ID3E_FieldNotFound,
  ID3E_UnknownFieldType, ID3E_TagAlreadyAttached, ID3E_InvalidTagVersion, ID3E_NoFile,
  ID3E_ReadOnly, ID3E_zlibError
}
 Predefined id3lib error types. More...

enum  ID3_ContentType {
  ID3CT_OTHER = 0, ID3CT_LYRICS, ID3CT_TEXTTRANSCRIPTION, ID3CT_MOVEMENT,
  ID3CT_EVENTS, ID3CT_CHORD, ID3CT_TRIVIA
}
enum  ID3_TimeStampFormat { ID3TSF_FRAME = 1, ID3TSF_MS }

Variables

const char *const ID3LIB_NAME
const char *const ID3LIB_RELEASE
const char *const ID3LIB_FULL_NAME
const int ID3LIB_MAJOR_VERSION
const int ID3LIB_MINOR_VERSION
const int ID3LIB_PATCH_VERSION
const int ID3LIB_INTERFACE_AGE
const int ID3LIB_BINARY_AGE

Define Documentation

#define ABS a    (((a) < 0) ? -(a) : (a))
 

#define BS_CLEAR v, x    ((v)[(x) / BS_SIZE] &= ~(1 << ((x) % BS_SIZE)))
 

#define BS_ISSET v, x    ((v)[(x) / BS_SIZE] & (1 << ((x) % BS_SIZE)))
 

#define BS_SET v, x    ((v)[(x) / BS_SIZE] |= (1 << ((x) % BS_SIZE)))
 

#define BS_SIZE   (sizeof(uint32)*8)
 

#define CLAMP x, low, high    (((x) > (high)) ? (high) : (((x) < (low)) ? (low) : (x)))
 

#define ID3_C_EXPORT
 

This file defines common macros, types, constants, and enums used throughout id3lib.

#define ID3_C_VAR   extern
 

#define ID3_DIR_SEPARATOR   '/'
 

#define ID3_DIR_SEPARATOR_S   "/"
 

#define ID3_ENUM E    enum E
 

#define ID3_SEARCHPATH_SEPARATOR   ':'
 

#define ID3_SEARCHPATH_SEPARATOR_S   ":"
 

#define ID3_STRUCT S    struct S
 

#define ID3_TAGHEADERSIZE   (10)
 

#define ID3_TAGID   "ID3"
 

#define ID3_TAGIDSIZE   (3)
 

#define MASK bits    ((1 << (bits)) - 1)
 

#define MASK1   MASK(1)
 

#define MASK2   MASK(2)
 

#define MASK3   MASK(3)
 

#define MASK4   MASK(4)
 

#define MASK5   MASK(5)
 

#define MASK6   MASK(6)
 

#define MASK7   MASK(7)
 

#define MASK8   MASK(8)
 

#define MAX a, b    (((a) > (b)) ? (a) : (b))
 

#define MIN a, b    (((a) < (b)) ? (a) : (b))
 

#define NULL   ((void*) 0)
 

#define NULL_UNICODE   ((unicode_t) '\0')
 

#define index_t   size_t
 


Typedef Documentation

typedef uint32* bitset
 

typedef uint16 flags_t
 

typedef long double ldoub
 

typedef long signed int lsint
 

typedef long unsigned int luint
 

typedef short signed int ssint
 

typedef short unsigned int suint
 

typedef unsigned char uchar
 

typedef uint16 unicode_t
 


Enumeration Type Documentation

enum ID3_ContentType
 

Enumeration values:
ID3CT_OTHER  
ID3CT_LYRICS  
ID3CT_TEXTTRANSCRIPTION  
ID3CT_MOVEMENT  
ID3CT_EVENTS  
ID3CT_CHORD  
ID3CT_TRIVIA  

enum ID3_Err
 

Predefined id3lib error types.

Enumeration values:
ID3E_NoError   No error reported.
ID3E_NoMemory   No available memory.
ID3E_NoData   No data to parse.
ID3E_BadData   Improperly formatted data.
ID3E_NoBuffer   No buffer to write to.
ID3E_SmallBuffer   Buffer is too small.
ID3E_InvalidFrameID   Invalid frame id.
ID3E_FieldNotFound   Requested field not found.
ID3E_UnknownFieldType   Unknown field type.
ID3E_TagAlreadyAttached   Tag is already attached to a file.
ID3E_InvalidTagVersion   Invalid tag version.
ID3E_NoFile   No file to parse.
ID3E_ReadOnly   Attempting to write to a read-only file.
ID3E_zlibError   Error in compression/uncompression.

enum ID3_FieldFlags
 

Enumeration values:
ID3FF_NONE  
ID3FF_CSTR  
ID3FF_LIST  
ID3FF_ENCODABLE  
ID3FF_TEXTLIST  

enum ID3_FieldID
 

Enumeration of the different types of fields in a frame.

Enumeration values:
ID3FN_NOFIELD   No field.
ID3FN_TEXTENC   Text encoding (unicode or ASCII).
ID3FN_TEXT   Text field.
ID3FN_URL   A URL.
ID3FN_DATA   Data field.
ID3FN_DESCRIPTION   Description field.
ID3FN_OWNER   Owner field.
ID3FN_EMAIL   Email field.
ID3FN_RATING   Rating field.
ID3FN_FILENAME   Filename field.
ID3FN_LANGUAGE   Language field.
ID3FN_PICTURETYPE   Picture type field.
ID3FN_IMAGEFORMAT   Image format field.
ID3FN_MIMETYPE   Mimetype field.
ID3FN_COUNTER   Counter field.
ID3FN_ID   Identifier/Symbol field.
ID3FN_VOLUMEADJ   Volume adjustment field.
ID3FN_NUMBITS   Number of bits field.
ID3FN_VOLCHGRIGHT   Volume chage on the right channel.
ID3FN_VOLCHGLEFT   Volume chage on the left channel.
ID3FN_PEAKVOLRIGHT   Peak volume on the right channel.
ID3FN_PEAKVOLLEFT   Peak volume on the left channel.
ID3FN_TIMESTAMPFORMAT   SYLT Timestamp Format.
ID3FN_CONTENTTYPE   SYLT content type.
ID3FN_LASTFIELDID   Last field placeholder.

enum ID3_FieldType
 

Enumeration of the types of field types.

Enumeration values:
ID3FTY_NONE  
ID3FTY_INTEGER  
ID3FTY_BINARY  
ID3FTY_TEXTSTRING  
ID3FTY_NUMTYPES  

enum ID3_FrameID
 

Enumeration of the different types of frames recognized by id3lib.

Enumeration values:
ID3FID_NOFRAME   No known frame.
ID3FID_AUDIOCRYPTO   Audio encryption.
ID3FID_PICTURE   Attached picture.
ID3FID_COMMENT   Comments.
ID3FID_COMMERCIAL   Commercial frame.
ID3FID_CRYPTOREG   Encryption method registration.
ID3FID_EQUALIZATION   Equalization.
ID3FID_EVENTTIMING   Event timing codes.
ID3FID_GENERALOBJECT   General encapsulated object.
ID3FID_GROUPINGREG   Group identification registration.
ID3FID_INVOLVEDPEOPLE   Involved people list.
ID3FID_LINKEDINFO   Linked information.
ID3FID_CDID   Music CD identifier.
ID3FID_MPEGLOOKUP   MPEG location lookup table.
ID3FID_OWNERSHIP   Ownership frame.
ID3FID_PRIVATE   Private frame.
ID3FID_PLAYCOUNTER   Play counter.
ID3FID_POPULARIMETER   Popularimeter.
ID3FID_POSITIONSYNC   Position synchronisation frame.
ID3FID_BUFFERSIZE   Recommended buffer size.
ID3FID_VOLUMEADJ   Relative volume adjustment.
ID3FID_REVERB   Reverb.
ID3FID_SYNCEDLYRICS   Synchronized lyric/text.
ID3FID_SYNCEDTEMPO   Synchronized tempo codes.
ID3FID_ALBUM   Album/Movie/Show title.
ID3FID_BPM   BPM (beats per minute).
ID3FID_COMPOSER   Composer.
ID3FID_CONTENTTYPE   Content type.
ID3FID_COPYRIGHT   Copyright message.
ID3FID_DATE   Date.
ID3FID_PLAYLISTDELAY   Playlist delay.
ID3FID_ENCODEDBY   Encoded by.
ID3FID_LYRICIST   Lyricist/Text writer.
ID3FID_FILETYPE   File type.
ID3FID_TIME   Time.
ID3FID_CONTENTGROUP   Content group description.
ID3FID_TITLE   Title/songname/content description.
ID3FID_SUBTITLE   Subtitle/Description refinement.
ID3FID_INITIALKEY   Initial key.
ID3FID_LANGUAGE   Language(s).
ID3FID_SONGLEN   Length.
ID3FID_MEDIATYPE   Media type.
ID3FID_ORIGALBUM   Original album/movie/show title.
ID3FID_ORIGFILENAME   Original filename.
ID3FID_ORIGLYRICIST   Original lyricist(s)/text writer(s).
ID3FID_ORIGARTIST   Original artist(s)/performer(s).
ID3FID_ORIGYEAR   Original release year.
ID3FID_FILEOWNER   File owner/licensee.
ID3FID_LEADARTIST   Lead performer(s)/Soloist(s).
ID3FID_BAND   Band/orchestra/accompaniment.
ID3FID_CONDUCTOR   Conductor/performer refinement.
ID3FID_MIXARTIST   Interpreted, remixed, or otherwise modified by.
ID3FID_PARTINSET   Part of a set.
ID3FID_PUBLISHER   Publisher.
ID3FID_TRACKNUM   Track number/Position in set.
ID3FID_RECORDINGDATES   Recording dates.
ID3FID_NETRADIOSTATION   Internet radio station name.
ID3FID_NETRADIOOWNER   Internet radio station owner.
ID3FID_SIZE   Size.
ID3FID_ISRC   ISRC (international standard recording code).
ID3FID_ENCODERSETTINGS   Software/Hardware and settings used for encoding.
ID3FID_USERTEXT   User defined text information.
ID3FID_YEAR   Year.
ID3FID_UNIQUEFILEID   Unique file identifier.
ID3FID_TERMSOFUSE   Terms of use.
ID3FID_UNSYNCEDLYRICS   Unsynchronized lyric/text transcription.
ID3FID_WWWCOMMERCIALINFO   Commercial information.
ID3FID_WWWCOPYRIGHT   Copyright/Legal infromation.
ID3FID_WWWAUDIOFILE   Official audio file webpage.
ID3FID_WWWARTIST   Official artist/performer webpage.
ID3FID_WWWAUDIOSOURCE   Official audio source webpage.
ID3FID_WWWRADIOPAGE   Official internet radio station homepage.
ID3FID_WWWPAYMENT   Payment.
ID3FID_WWWPUBLISHER   Official publisher webpage.
ID3FID_WWWUSER   User defined URL link.
ID3FID_METACRYPTO   Encrypted meta frame (id3v2.2.x).
ID3FID_METACOMPRESSION   Compressed meta frame (id3v2.2.1).

enum ID3_TagType
 

The various types of tags that id3lib can handle.

Enumeration values:
ID3TT_NONE   Represents an empty or non-existant tag.
ID3TT_ID3V1   Represents an id3v1 or id3v1.1 tag.
ID3TT_ID3V2   Represents an id3v2 tag.
ID3TT_LYRICS3   Represents a Lyrics3 tag.
ID3TT_LYRICS3V2   Represents a Lyrics3 v2.00 tag.
ID3TT_MUSICMATCH   Represents a Lyrics3 tag (for backwards compatibility).
ID3TT_LYRICS  
ID3TT_ID3   Represents both id3 tags: id3v1 and id3v2.
ID3TT_ALL   Represents all possible types of tags.
ID3TT_PREPENDED   Represents all tag types that can be prepended to a file.
ID3TT_APPENDED   Represents all tag types that can be appended to a file.

enum ID3_TextEnc
 

Enumeration of the types of text encodings: ascii or unicode.

Enumeration values:
ID3TE_NONE  
ID3TE_ASCII  
ID3TE_UNICODE  
ID3TE_NUMENCODINGS  

enum ID3_TimeStampFormat
 

Enumeration values:
ID3TSF_FRAME  
ID3TSF_MS  

enum ID3_V1Lengths
 

Enumeration values:
ID3_V1_LEN  
ID3_V1_LEN_ID  
ID3_V1_LEN_TITLE  
ID3_V1_LEN_ARTIST  
ID3_V1_LEN_ALBUM  
ID3_V1_LEN_YEAR  
ID3_V1_LEN_COMMENT  
ID3_V1_LEN_GENRE  

enum ID3_V1Spec
 

Enumeration of the various id3 specifications.

Enumeration values:
ID3V1_0  
ID3V1_1  
ID3V1_NUMSPECS  

enum ID3_V2Spec
 

Enumeration values:
ID3V2_UNKNOWN  
ID3V2_2_0  
ID3V2_2_1  
ID3V2_3_0  
ID3V2_4_0  
ID3V2_EARLIEST  
ID3V2_LATEST  


Variable Documentation

const int ID3LIB_BINARY_AGE
 

const char* const ID3LIB_FULL_NAME
 

const int ID3LIB_INTERFACE_AGE
 

const int ID3LIB_MAJOR_VERSION
 

const int ID3LIB_MINOR_VERSION
 

const char* const ID3LIB_NAME
 

const int ID3LIB_PATCH_VERSION
 

const char* const ID3LIB_RELEASE
 


Generated at Wed Sep 5 16:53:38 2001 for id3lib by doxygen1.2.9.1 written by Dimitri van Heesch, © 1997-2001