00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00034 #ifndef _ID3LIB_GLOBALS_H_
00035 #define _ID3LIB_GLOBALS_H_
00036
00037 #include <stdlib.h>
00038 #include "id3/sized_types.h"
00039
00040
00041
00042
00043
00044 #ifdef WIN32
00045 # define LINKOPTION_STATIC 1 //both for use and creation of static lib
00046 # define LINKOPTION_CREATE_DYNAMIC 2 //should only be used by prj/id3lib.dsp
00047 # define LINKOPTION_USE_DYNAMIC 3 //if your project links id3lib dynamic
00048 # ifndef ID3LIB_LINKOPTION
00049 # pragma message("*** NOTICE *** (not a real error)")
00050 # pragma message("* You should include a define in your project which reflect how you link the library")
00051 # pragma message("* If you use id3lib.lib or libprj/id3lib.dsp (you link static) you should add")
00052 # pragma message("* ID3LIB_LINKOPTION=1 to your preprocessor definitions of your project.")
00053 # pragma message("* If you use id3lib.dll (you link dynamic) you should add ID3LIB_LINKOPTION=3")
00054 # pragma message("* to your preprocessor definitions of your project.")
00055 # pragma message("***")
00056 # error read message above or win32.readme.first.txt
00057 # else
00058 # if (ID3LIB_LINKOPTION == LINKOPTION_CREATE_DYNAMIC)
00059
00060 # define ID3_C_EXPORT extern _declspec(dllexport)
00061 # define ID3_CPP_EXPORT __declspec(dllexport)
00062 # define CCONV __stdcall // Added for VB & Delphi Compatibility - By FrogPrince Advised By Lothar
00063 # endif
00064 # if (ID3LIB_LINKOPTION == LINKOPTION_STATIC)
00065
00066 # define ID3_C_EXPORT
00067 # define ID3_CPP_EXPORT
00068 # define CCONV
00069 # endif
00070 # if (ID3LIB_LINKOPTION == LINKOPTION_USE_DYNAMIC)
00071
00072 # define ID3_C_EXPORT extern _declspec(dllimport)
00073 # define ID3_CPP_EXPORT __declspec(dllimport) //functions like these shouldn't be used by vb and delphi,
00074 # define CCONV __stdcall // Added for VB & Delphi Compatibility - By FrogPrince Advised By Lothar
00075 # endif
00076 # endif
00077 #else
00078 # define ID3_C_EXPORT
00079 # define ID3_CPP_EXPORT
00080 # define CCONV
00081 #endif
00082
00083 #define ID3_C_VAR extern
00084
00085 #ifndef __cplusplus
00086
00087 typedef int bool;
00088 # define false (0)
00089 # define true (!false)
00090
00091 #endif
00092
00093 ID3_C_VAR const char * const ID3LIB_NAME;
00094 ID3_C_VAR const char * const ID3LIB_RELEASE;
00095 ID3_C_VAR const char * const ID3LIB_FULL_NAME;
00096 ID3_C_VAR const int ID3LIB_MAJOR_VERSION;
00097 ID3_C_VAR const int ID3LIB_MINOR_VERSION;
00098 ID3_C_VAR const int ID3LIB_PATCH_VERSION;
00099 ID3_C_VAR const int ID3LIB_INTERFACE_AGE;
00100 ID3_C_VAR const int ID3LIB_BINARY_AGE;
00101
00102 #define ID3_TAGID "ID3"
00103 #define ID3_TAGIDSIZE (3)
00104 #define ID3_TAGHEADERSIZE (10)
00105
00111 #define STR_V1_COMMENT_DESC "ID3v1 Comment"
00112
00113
00114 typedef unsigned char uchar;
00115 typedef long unsigned int luint;
00116
00117 typedef uint16 unicode_t;
00118 typedef uint16 flags_t;
00119
00120 #define NULL_UNICODE ((unicode_t) '\0')
00121
00122
00123
00124
00125
00126 #ifdef __cplusplus
00127 # define ID3_ENUM(E) enum E
00128 # define ID3_STRUCT(S) struct S
00129 #else
00130 # define ID3_ENUM(E) typedef enum _ ## E E; enum _ ## E
00131 # define ID3_STRUCT(S) typedef struct _ ## S S; struct _ ## S
00132 #endif
00133
00137 ID3_ENUM(ID3_TextEnc)
00138 {
00139 ID3TE_NONE = -1,
00140 ID3TE_ISO8859_1,
00141 ID3TE_UTF16,
00142 ID3TE_UTF16BE,
00143 ID3TE_UTF8,
00144 ID3TE_NUMENCODINGS,
00145 ID3TE_ASCII = ID3TE_ISO8859_1,
00146 ID3TE_UNICODE = ID3TE_UTF16
00147 };
00148
00149 #define ID3TE_IS_SINGLE_BYTE_ENC(enc) ((enc) == ID3TE_ISO8859_1 || (enc) == ID3TE_UTF8)
00150 #define ID3TE_IS_DOUBLE_BYTE_ENC(enc) ((enc) == ID3TE_UTF16 || (enc) == ID3TE_UTF16BE)
00151
00154 ID3_ENUM(ID3_V1Spec)
00155 {
00156 ID3V1_0 = 0,
00157 ID3V1_1,
00158 ID3V1_NUMSPECS
00159 };
00160
00161 ID3_ENUM(ID3_V2Spec)
00162 {
00163 ID3V2_UNKNOWN = -1,
00164 ID3V2_2_0 = 0,
00165 ID3V2_2_1,
00166 ID3V2_3_0,
00167 ID3V2_4_0,
00168 ID3V2_EARLIEST = ID3V2_2_0,
00169 ID3V2_LATEST = ID3V2_3_0
00170 };
00171
00174 ID3_ENUM(ID3_TagType)
00175 {
00176 ID3TT_NONE = 0,
00177 ID3TT_ID3V1 = 1 << 0,
00178 ID3TT_ID3V2 = 1 << 1,
00179 ID3TT_LYRICS3 = 1 << 2,
00180 ID3TT_LYRICS3V2 = 1 << 3,
00181 ID3TT_MUSICMATCH = 1 << 4,
00183 ID3TT_LYRICS = ID3TT_LYRICS3,
00185 ID3TT_ID3 = ID3TT_ID3V1 | ID3TT_ID3V2,
00187 ID3TT_ALL = ~ID3TT_NONE,
00189 ID3TT_PREPENDED = ID3TT_ID3V2,
00191 ID3TT_APPENDED = ID3TT_ALL & ~ID3TT_ID3V2
00192 };
00193
00197 ID3_ENUM(ID3_FieldID)
00198 {
00199 ID3FN_NOFIELD = 0,
00200 ID3FN_TEXTENC,
00201 ID3FN_TEXT,
00202 ID3FN_URL,
00203 ID3FN_DATA,
00204 ID3FN_DESCRIPTION,
00205 ID3FN_OWNER,
00206 ID3FN_EMAIL,
00207 ID3FN_RATING,
00208 ID3FN_FILENAME,
00209 ID3FN_LANGUAGE,
00210 ID3FN_PICTURETYPE,
00211 ID3FN_IMAGEFORMAT,
00212 ID3FN_MIMETYPE,
00213 ID3FN_COUNTER,
00214 ID3FN_ID,
00215 ID3FN_VOLUMEADJ,
00216 ID3FN_NUMBITS,
00217 ID3FN_VOLCHGRIGHT,
00218 ID3FN_VOLCHGLEFT,
00219 ID3FN_PEAKVOLRIGHT,
00220 ID3FN_PEAKVOLLEFT,
00221 ID3FN_TIMESTAMPFORMAT,
00222 ID3FN_CONTENTTYPE,
00223 ID3FN_LASTFIELDID
00224 };
00225
00229 ID3_ENUM(ID3_FrameID)
00230 {
00231 ID3FID_NOFRAME = 0,
00232 ID3FID_AUDIOCRYPTO,
00233 ID3FID_PICTURE,
00234 ID3FID_AUDIOSEEKPOINT,
00235 ID3FID_COMMENT,
00236 ID3FID_COMMERCIAL,
00237 ID3FID_CRYPTOREG,
00238 ID3FID_EQUALIZATION2,
00239 ID3FID_EQUALIZATION,
00240 ID3FID_EVENTTIMING,
00241 ID3FID_GENERALOBJECT,
00242 ID3FID_GROUPINGREG,
00243 ID3FID_INVOLVEDPEOPLE,
00244 ID3FID_LINKEDINFO,
00245 ID3FID_CDID,
00246 ID3FID_MPEGLOOKUP,
00247 ID3FID_OWNERSHIP,
00248 ID3FID_PRIVATE,
00249 ID3FID_PLAYCOUNTER,
00250 ID3FID_POPULARIMETER,
00251 ID3FID_POSITIONSYNC,
00252 ID3FID_BUFFERSIZE,
00253 ID3FID_VOLUMEADJ2,
00254 ID3FID_VOLUMEADJ,
00255 ID3FID_REVERB,
00256 ID3FID_SEEKFRAME,
00257 ID3FID_SIGNATURE,
00258 ID3FID_SYNCEDLYRICS,
00259 ID3FID_SYNCEDTEMPO,
00260 ID3FID_ALBUM,
00261 ID3FID_BPM,
00262 ID3FID_COMPOSER,
00263 ID3FID_CONTENTTYPE,
00264 ID3FID_COPYRIGHT,
00265 ID3FID_DATE,
00266 ID3FID_ENCODINGTIME,
00267 ID3FID_PLAYLISTDELAY,
00268 ID3FID_ORIGRELEASETIME,
00269 ID3FID_RECORDINGTIME,
00270 ID3FID_RELEASETIME,
00271 ID3FID_TAGGINGTIME,
00272 ID3FID_INVOLVEDPEOPLE2,
00273 ID3FID_ENCODEDBY,
00274 ID3FID_LYRICIST,
00275 ID3FID_FILETYPE,
00276 ID3FID_TIME,
00277 ID3FID_CONTENTGROUP,
00278 ID3FID_TITLE,
00279 ID3FID_SUBTITLE,
00280 ID3FID_INITIALKEY,
00281 ID3FID_LANGUAGE,
00282 ID3FID_SONGLEN,
00283 ID3FID_MUSICIANCREDITLIST,
00284 ID3FID_MEDIATYPE,
00285 ID3FID_MOOD,
00286 ID3FID_ORIGALBUM,
00287 ID3FID_ORIGFILENAME,
00288 ID3FID_ORIGLYRICIST,
00289 ID3FID_ORIGARTIST,
00290 ID3FID_ORIGYEAR,
00291 ID3FID_FILEOWNER,
00292 ID3FID_LEADARTIST,
00293 ID3FID_BAND,
00294 ID3FID_CONDUCTOR,
00295 ID3FID_MIXARTIST,
00296 ID3FID_PARTINSET,
00297 ID3FID_PRODUCEDNOTICE,
00298 ID3FID_PUBLISHER,
00299 ID3FID_TRACKNUM,
00300 ID3FID_RECORDINGDATES,
00301 ID3FID_NETRADIOSTATION,
00302 ID3FID_NETRADIOOWNER,
00303 ID3FID_SIZE,
00304 ID3FID_ALBUMSORTORDER,
00305 ID3FID_PERFORMERSORTORDER,
00306 ID3FID_TITLESORTORDER,
00307 ID3FID_ISRC,
00308 ID3FID_ENCODERSETTINGS,
00309 ID3FID_SETSUBTITLE,
00310 ID3FID_USERTEXT,
00311 ID3FID_YEAR,
00312 ID3FID_UNIQUEFILEID,
00313 ID3FID_TERMSOFUSE,
00314 ID3FID_UNSYNCEDLYRICS,
00315 ID3FID_WWWCOMMERCIALINFO,
00316 ID3FID_WWWCOPYRIGHT,
00317 ID3FID_WWWAUDIOFILE,
00318 ID3FID_WWWARTIST,
00319 ID3FID_WWWAUDIOSOURCE,
00320 ID3FID_WWWRADIOPAGE,
00321 ID3FID_WWWPAYMENT,
00322 ID3FID_WWWPUBLISHER,
00323 ID3FID_WWWUSER,
00324 ID3FID_METACRYPTO,
00325 ID3FID_METACOMPRESSION,
00326 ID3FID_LASTFRAMEID
00327 };
00328
00329 ID3_ENUM(ID3_V1Lengths)
00330 {
00331 ID3_V1_LEN = 128,
00332 ID3_V1_LEN_ID = 3,
00333 ID3_V1_LEN_TITLE = 30,
00334 ID3_V1_LEN_ARTIST = 30,
00335 ID3_V1_LEN_ALBUM = 30,
00336 ID3_V1_LEN_YEAR = 4,
00337 ID3_V1_LEN_COMMENT = 30,
00338 ID3_V1_LEN_GENRE = 1
00339 };
00340
00341 ID3_ENUM(ID3_FieldFlags)
00342 {
00343 ID3FF_NONE = 0,
00344 ID3FF_CSTR = 1 << 0,
00345 ID3FF_LIST = 1 << 1,
00346 ID3FF_ENCODABLE = 1 << 2,
00347 ID3FF_TEXTLIST = ID3FF_CSTR | ID3FF_LIST | ID3FF_ENCODABLE
00348 };
00349
00351 ID3_ENUM(ID3_FieldType)
00352 {
00353 ID3FTY_NONE = -1,
00354 ID3FTY_INTEGER = 0,
00355 ID3FTY_BINARY,
00356 ID3FTY_TEXTSTRING,
00357 ID3FTY_NUMTYPES
00358 };
00359
00363 ID3_ENUM(ID3_Err)
00364 {
00365 ID3E_NoError = 0,
00366 ID3E_NoMemory,
00367 ID3E_NoData,
00368 ID3E_BadData,
00369 ID3E_NoBuffer,
00370 ID3E_SmallBuffer,
00371 ID3E_InvalidFrameID,
00372 ID3E_FieldNotFound,
00373 ID3E_UnknownFieldType,
00374 ID3E_TagAlreadyAttached,
00375 ID3E_InvalidTagVersion,
00376 ID3E_NoFile,
00377 ID3E_ReadOnly,
00378 ID3E_zlibError
00379 };
00380
00381 ID3_ENUM(ID3_ContentType)
00382 {
00383 ID3CT_OTHER = 0,
00384 ID3CT_LYRICS,
00385 ID3CT_TEXTTRANSCRIPTION,
00386 ID3CT_MOVEMENT,
00387 ID3CT_EVENTS,
00388 ID3CT_CHORD,
00389 ID3CT_TRIVIA
00390 };
00391
00392 ID3_ENUM(ID3_PictureType)
00393 {
00394 ID3PT_OTHER = 0,
00395 ID3PT_PNG32ICON = 1,
00396 ID3PT_OTHERICON = 2,
00397 ID3PT_COVERFRONT = 3,
00398 ID3PT_COVERBACK = 4,
00399 ID3PT_LEAFLETPAGE = 5,
00400 ID3PT_MEDIA = 6,
00401 ID3PT_LEADARTIST = 7,
00402 ID3PT_ARTIST = 8,
00403 ID3PT_CONDUCTOR = 9,
00404 ID3PT_BAND = 10,
00405 ID3PT_COMPOSER = 11,
00406 ID3PT_LYRICIST = 12,
00407 ID3PT_REC_LOCATION = 13,
00408 ID3PT_RECORDING = 14,
00409 ID3PT_PERFORMANCE = 15,
00410 ID3PT_VIDEO = 16,
00411 ID3PT_FISH = 17,
00412 ID3PT_ILLUSTRATION = 18,
00413 ID3PT_ARTISTLOGO = 19,
00414 ID3PT_PUBLISHERLOGO = 20
00415 };
00416
00417 ID3_ENUM(ID3_TimeStampFormat)
00418 {
00419 ID3TSF_FRAME = 1,
00420 ID3TSF_MS
00421 };
00422
00423 ID3_ENUM(MP3_BitRates)
00424 {
00425 MP3BITRATE_FALSE = -1,
00426 MP3BITRATE_NONE = 0,
00427 MP3BITRATE_8K = 8000,
00428 MP3BITRATE_16K = 16000,
00429 MP3BITRATE_24K = 24000,
00430 MP3BITRATE_32K = 32000,
00431 MP3BITRATE_40K = 40000,
00432 MP3BITRATE_48K = 48000,
00433 MP3BITRATE_56K = 56000,
00434 MP3BITRATE_64K = 64000,
00435 MP3BITRATE_80K = 80000,
00436 MP3BITRATE_96K = 96000,
00437 MP3BITRATE_112K = 112000,
00438 MP3BITRATE_128K = 128000,
00439 MP3BITRATE_144K = 144000,
00440 MP3BITRATE_160K = 160000,
00441 MP3BITRATE_176K = 176000,
00442 MP3BITRATE_192K = 192000,
00443 MP3BITRATE_224K = 224000,
00444 MP3BITRATE_256K = 256000,
00445 MP3BITRATE_288K = 288000,
00446 MP3BITRATE_320K = 320000,
00447 MP3BITRATE_352K = 352000,
00448 MP3BITRATE_384K = 384000,
00449 MP3BITRATE_416K = 416000,
00450 MP3BITRATE_448K = 448000
00451 };
00452
00453 ID3_ENUM(Mpeg_Layers)
00454 {
00455 MPEGLAYER_FALSE = -1,
00456 MPEGLAYER_UNDEFINED,
00457 MPEGLAYER_III,
00458 MPEGLAYER_II,
00459 MPEGLAYER_I
00460 };
00461
00462 ID3_ENUM(Mpeg_Version)
00463 {
00464 MPEGVERSION_FALSE = -1,
00465 MPEGVERSION_2_5,
00466 MPEGVERSION_Reserved,
00467 MPEGVERSION_2,
00468 MPEGVERSION_1
00469 };
00470
00471 ID3_ENUM(Mp3_Frequencies)
00472 {
00473 MP3FREQUENCIES_FALSE = -1,
00474 MP3FREQUENCIES_Reserved = 0,
00475 MP3FREQUENCIES_8000HZ = 8000,
00476 MP3FREQUENCIES_11025HZ = 11025,
00477 MP3FREQUENCIES_12000HZ = 12000,
00478 MP3FREQUENCIES_16000HZ = 16000,
00479 MP3FREQUENCIES_22050HZ = 22050,
00480 MP3FREQUENCIES_24000HZ = 24000,
00481 MP3FREQUENCIES_32000HZ = 32000,
00482 MP3FREQUENCIES_48000HZ = 48000,
00483 MP3FREQUENCIES_44100HZ = 44100,
00484 };
00485
00486 ID3_ENUM(Mp3_ChannelMode)
00487 {
00488 MP3CHANNELMODE_FALSE = -1,
00489 MP3CHANNELMODE_STEREO,
00490 MP3CHANNELMODE_JOINT_STEREO,
00491 MP3CHANNELMODE_DUAL_CHANNEL,
00492 MP3CHANNELMODE_SINGLE_CHANNEL
00493 };
00494
00495 ID3_ENUM(Mp3_ModeExt)
00496 {
00497 MP3MODEEXT_FALSE = -1,
00498 MP3MODEEXT_0,
00499 MP3MODEEXT_1,
00500 MP3MODEEXT_2,
00501 MP3MODEEXT_3
00502 };
00503
00504 ID3_ENUM(Mp3_Emphasis)
00505 {
00506 MP3EMPHASIS_FALSE = -1,
00507 MP3EMPHASIS_NONE,
00508 MP3EMPHASIS_50_15MS,
00509 MP3EMPHASIS_Reserved,
00510 MP3EMPHASIS_CCIT_J17
00511 };
00512
00513 ID3_ENUM(Mp3_Crc)
00514 {
00515 MP3CRC_ERROR_SIZE = -2,
00516 MP3CRC_MISMATCH = -1,
00517 MP3CRC_NONE = 0,
00518 MP3CRC_OK = 1
00519 };
00520
00521 ID3_STRUCT(Mp3_Headerinfo)
00522 {
00523 Mpeg_Layers layer;
00524 Mpeg_Version version;
00525 MP3_BitRates bitrate;
00526 Mp3_ChannelMode channelmode;
00527 Mp3_ModeExt modeext;
00528 Mp3_Emphasis emphasis;
00529 Mp3_Crc crc;
00530 uint32 vbr_bitrate;
00531 uint32 frequency;
00532 uint32 framesize;
00533 uint32 frames;
00534 uint32 time;
00535 bool privatebit;
00536 bool copyrighted;
00537 bool original;
00538 };
00539
00540 #define ID3_NR_OF_V1_GENRES 148
00541
00542 static const char *ID3_v1_genre_description[ID3_NR_OF_V1_GENRES] =
00543 {
00544 "Blues",
00545 "Classic Rock",
00546 "Country",
00547 "Dance",
00548 "Disco",
00549 "Funk",
00550 "Grunge",
00551 "Hip-Hop",
00552 "Jazz",
00553 "Metal",
00554 "New Age",
00555 "Oldies",
00556 "Other",
00557 "Pop",
00558 "R&B",
00559 "Rap",
00560 "Reggae",
00561 "Rock",
00562 "Techno",
00563 "Industrial",
00564 "Alternative",
00565 "Ska",
00566 "Death Metal",
00567 "Pranks",
00568 "Soundtrack",
00569 "Euro-Techno",
00570 "Ambient",
00571 "Trip-Hop",
00572 "Vocal",
00573 "Jazz+Funk",
00574 "Fusion",
00575 "Trance",
00576 "Classical",
00577 "Instrumental",
00578 "Acid",
00579 "House",
00580 "Game",
00581 "Sound Clip",
00582 "Gospel",
00583 "Noise",
00584 "AlternRock",
00585 "Bass",
00586 "Soul",
00587 "Punk",
00588 "Space",
00589 "Meditative",
00590 "Instrumental Pop",
00591 "Instrumental Rock",
00592 "Ethnic",
00593 "Gothic",
00594 "Darkwave",
00595 "Techno-Industrial",
00596 "Electronic",
00597 "Pop-Folk",
00598 "Eurodance",
00599 "Dream",
00600 "Southern Rock",
00601 "Comedy",
00602 "Cult",
00603 "Gangsta",
00604 "Top 40",
00605 "Christian Rap",
00606 "Pop/Funk",
00607 "Jungle",
00608 "Native American",
00609 "Cabaret",
00610 "New Wave",
00611 "Psychadelic",
00612 "Rave",
00613 "Showtunes",
00614 "Trailer",
00615 "Lo-Fi",
00616 "Tribal",
00617 "Acid Punk",
00618 "Acid Jazz",
00619 "Polka",
00620 "Retro",
00621 "Musical",
00622 "Rock & Roll",
00623 "Hard Rock",
00624
00625 "Folk",
00626 "Folk-Rock",
00627 "National Folk",
00628 "Swing",
00629 "Fast Fusion",
00630 "Bebob",
00631 "Latin",
00632 "Revival",
00633 "Celtic",
00634 "Bluegrass",
00635 "Avantgarde",
00636 "Gothic Rock",
00637 "Progressive Rock",
00638 "Psychedelic Rock",
00639 "Symphonic Rock",
00640 "Slow Rock",
00641 "Big Band",
00642 "Chorus",
00643 "Easy Listening",
00644 "Acoustic",
00645 "Humour",
00646 "Speech",
00647 "Chanson",
00648 "Opera",
00649 "Chamber Music",
00650 "Sonata",
00651 "Symphony",
00652 "Booty Bass",
00653 "Primus",
00654 "Porn Groove",
00655 "Satire",
00656 "Slow Jam",
00657 "Club",
00658 "Tango",
00659 "Samba",
00660 "Folklore",
00661 "Ballad",
00662 "Power Ballad",
00663 "Rhythmic Soul",
00664 "Freestyle",
00665 "Duet",
00666 "Punk Rock",
00667 "Drum Solo",
00668 "A capella",
00669 "Euro-House",
00670 "Dance Hall",
00671 "Goa",
00672 "Drum & Bass",
00673 "Club-House",
00674 "Hardcore",
00675 "Terror",
00676 "Indie",
00677 "Britpop",
00678 "Negerpunk",
00679 "Polsk Punk",
00680 "Beat",
00681 "Christian Gangsta Rap",
00682 "Heavy Metal",
00683 "Black Metal",
00684 "Crossover",
00685 "Contemporary Christian",
00686 "Christian Rock ",
00687 "Merengue",
00688 "Salsa",
00689 "Trash Metal",
00690 "Anime",
00691 "JPop",
00692 "Synthpop"
00693 };
00694
00695 #define ID3_V1GENRE2DESCRIPTION(x) (x < ID3_NR_OF_V1_GENRES && x >= 0) ? ID3_v1_genre_description[x] : NULL
00696
00697 #define MASK(bits) ((1 << (bits)) - 1)
00698 #define MASK1 MASK(1)
00699 #define MASK2 MASK(2)
00700 #define MASK3 MASK(3)
00701 #define MASK4 MASK(4)
00702 #define MASK5 MASK(5)
00703 #define MASK6 MASK(6)
00704 #define MASK7 MASK(7)
00705 #define MASK8 MASK(8)
00706
00707
00708
00709
00710 #ifdef WIN32
00711
00712
00713
00714
00715 # define ID3_DIR_SEPARATOR '\\'
00716 # define ID3_DIR_SEPARATOR_S "\\"
00717 # define ID3_SEARCHPATH_SEPARATOR ';'
00718 # define ID3_SEARCHPATH_SEPARATOR_S ";"
00719
00720 #else
00721
00722 # ifndef _EMX_
00723
00724
00725 # define ID3_DIR_SEPARATOR '/'
00726 # define ID3_DIR_SEPARATOR_S "/"
00727 # define ID3_SEARCHPATH_SEPARATOR ':'
00728 # define ID3_SEARCHPATH_SEPARATOR_S ":"
00729
00730 # else
00731
00732
00733 # define ID3_DIR_SEPARATOR '/'
00734 # define ID3_DIR_SEPARATOR_S "/"
00735 # define ID3_SEARCHPATH_SEPARATOR ';'
00736 # define ID3_SEARCHPATH_SEPARATOR_S ";"
00737
00738 # endif
00739
00740 #endif
00741
00742 #ifndef NULL
00743 # define NULL ((void*) 0)
00744 #endif
00745
00746 #endif
00747