id3lib 3.8.3

- Main Page
- Namespaces
- Classes
- Files

- File List
- File Members

globals.h
Go to the documentation of this file.
1 // -*- C++ -*-
2 /* $Id: globals.h,v 1.54 2003/02/21 03:47:41 slackorama Exp $
3
4 * id3lib: a C++ library for creating and manipulating id3v1/v2 tags
5 * Copyright 1999, 2000 Scott Thomas Haug
6 * Copyright 2002 Thijmen Klok (thijmen@id3lib.org)
7
8 * This library is free software; you can redistribute it and/or modify it
9 * under the terms of the GNU Library General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or (at your
11 * option) any later version.
12 *
13 * This library is distributed in the hope that it will be useful, but WITHOUT
14 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
15 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
16 * License for more details.
17 *
18 * You should have received a copy of the GNU Library General Public License
19 * along with this library; if not, write to the Free Software Foundation,
20 * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
21
22 * The id3lib authors encourage improvements and optimisations to be sent to
23 * the id3lib coordinator. Please see the README file for details on where to
24 * send such submissions. See the AUTHORS file for a list of people who have
25 * contributed to id3lib. See the ChangeLog file for a list of changes to
26 * id3lib. These files are distributed with id3lib at
27 * http://download.sourceforge.net/id3lib/
28 */
29
34 #ifndef _ID3LIB_GLOBALS_H_
35 #define _ID3LIB_GLOBALS_H_
36
37 #include <stdlib.h>
38 #include "id3/sized_types.h"
39
40 /* id3lib version.
41 * we prefix variable declarations so they can
42 * properly get exported in windows dlls.
43 */
44 #ifdef WIN32
45 # define LINKOPTION_STATIC 1 //both for use and creation of static lib
46 # define LINKOPTION_CREATE_DYNAMIC 2 //should only be used by prj/id3lib.dsp
47 # define LINKOPTION_USE_DYNAMIC 3 //if your project links id3lib dynamic
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
57 # else
58 # if (ID3LIB_LINKOPTION == LINKOPTION_CREATE_DYNAMIC)
59 //used for creating a dynamic dll
60 # define ID3_C_EXPORT extern _declspec(dllexport)
61 # define ID3_CPP_EXPORT __declspec(dllexport)
62 # define CCONV __stdcall // Added for VB & Delphi Compatibility - By FrogPrince Advised By Lothar
63 # endif
64 # if (ID3LIB_LINKOPTION == LINKOPTION_STATIC)
65 //used for creating a static lib and using a static lib
66 # define ID3_C_EXPORT
67 # define ID3_CPP_EXPORT
68 # define CCONV
69 # endif
70 # if (ID3LIB_LINKOPTION == LINKOPTION_USE_DYNAMIC)
71 //used for those that do not link static and are using the dynamic dll by including a id3lib header
72 # define ID3_C_EXPORT extern _declspec(dllimport)
73 # define ID3_CPP_EXPORT __declspec(dllimport) //functions like these shouldn't be used by vb and delphi,
74 # define CCONV __stdcall // Added for VB & Delphi Compatibility - By FrogPrince Advised By Lothar
75 # endif
76 # endif
77 #else /* !WIN32 */
78 # define ID3_C_EXPORT
79 # define ID3_CPP_EXPORT
80 # define CCONV
81 #endif /* !WIN32 */
82
83 #define ID3_C_VAR extern
84
85 #ifndef __cplusplus
86
87 typedef int bool;
88 # define false (0)
89 # define true (!false)
90
91 #endif /* __cplusplus */
92
93 ID3_C_VAR const char * const ID3LIB_NAME;
94 ID3_C_VAR const char * const ID3LIB_RELEASE;
95 ID3_C_VAR const char * const ID3LIB_FULL_NAME;
96 ID3_C_VAR const int ID3LIB_MAJOR_VERSION;
97 ID3_C_VAR const int ID3LIB_MINOR_VERSION;
98 ID3_C_VAR const int ID3LIB_PATCH_VERSION;
99 ID3_C_VAR const int ID3LIB_INTERFACE_AGE;
100 ID3_C_VAR const int ID3LIB_BINARY_AGE;
101
102 #define ID3_TAGID "ID3"
103 #define ID3_TAGIDSIZE (3)
104 #define ID3_TAGHEADERSIZE (10)
105
111 #define STR_V1_COMMENT_DESC "ID3v1 Comment"
112
113
114 typedef unsigned char uchar;
115 typedef long unsigned int luint;
116
117 typedef uint16 unicode_t;
118 typedef uint16 flags_t;
119
120 #define NULL_UNICODE ((unicode_t) '\0')
121
122 /* These macros are used to make the C and C++ declarations for enums and
123 * structs have the same syntax. Basically, it allows C users to refer to an
124 * enum or a struct without prepending enum/struct.
125 */
126 #ifdef __cplusplus
127 # define ID3_ENUM(E) enum E
128 # define ID3_STRUCT(S) struct S
129 #else
130 # define ID3_ENUM(E) typedef enum _ ## E E; enum _ ## E
131 # define ID3_STRUCT(S) typedef struct _ ## S S; struct _ ## S
132 #endif
133
137 ID3_ENUM(ID3_TextEnc)
138 {
139 ID3TE_NONE = -1,
140 ID3TE_ISO8859_1,
141 ID3TE_UTF16,
142 ID3TE_UTF16BE,
143 ID3TE_UTF8,
144 ID3TE_NUMENCODINGS,
145 ID3TE_ASCII = ID3TE_ISO8859_1, // do not use this -> use ID3TE_IS_SINGLE_BYTE_ENC(enc) instead
146 ID3TE_UNICODE = ID3TE_UTF16 // do not use this -> use ID3TE_IS_DOUBLE_BYTE_ENC(enc) instead
147 };
148
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)
151
154 ID3_ENUM(ID3_V1Spec)
155 {
156 ID3V1_0 = 0,
157 ID3V1_1,
158 ID3V1_NUMSPECS
159 };
160
161 ID3_ENUM(ID3_V2Spec)
162 {
163 ID3V2_UNKNOWN = -1,
164 ID3V2_2_0 = 0,
165 ID3V2_2_1,
166 ID3V2_3_0,
167 ID3V2_4_0,
168 ID3V2_EARLIEST = ID3V2_2_0,
169 ID3V2_LATEST = ID3V2_3_0
170 };
171
174 ID3_ENUM(ID3_TagType)
175 {
176 ID3TT_NONE = 0,
177 ID3TT_ID3V1 = 1 << 0,
178 ID3TT_ID3V2 = 1 << 1,
179 ID3TT_LYRICS3 = 1 << 2,
180 ID3TT_LYRICS3V2 = 1 << 3,
181 ID3TT_MUSICMATCH = 1 << 4,
183 ID3TT_LYRICS = ID3TT_LYRICS3,
185 ID3TT_ID3 = ID3TT_ID3V1 | ID3TT_ID3V2,
187 ID3TT_ALL = ~ID3TT_NONE,
189 ID3TT_PREPENDED = ID3TT_ID3V2,
191 ID3TT_APPENDED = ID3TT_ALL & ~ID3TT_ID3V2
192 };
193
197 ID3_ENUM(ID3_FieldID)
198 {
199 ID3FN_NOFIELD = 0,
200 ID3FN_TEXTENC,
201 ID3FN_TEXT,
202 ID3FN_URL,
203 ID3FN_DATA,
204 ID3FN_DESCRIPTION,
205 ID3FN_OWNER,
206 ID3FN_EMAIL,
207 ID3FN_RATING,
208 ID3FN_FILENAME,
209 ID3FN_LANGUAGE,
210 ID3FN_PICTURETYPE,
211 ID3FN_IMAGEFORMAT,
212 ID3FN_MIMETYPE,
213 ID3FN_COUNTER,
214 ID3FN_ID,
215 ID3FN_VOLUMEADJ,
216 ID3FN_NUMBITS,
217 ID3FN_VOLCHGRIGHT,
218 ID3FN_VOLCHGLEFT,
219 ID3FN_PEAKVOLRIGHT,
220 ID3FN_PEAKVOLLEFT,
221 ID3FN_TIMESTAMPFORMAT,
222 ID3FN_CONTENTTYPE,
223 ID3FN_LASTFIELDID
224 };
225
229 ID3_ENUM(ID3_FrameID)
230 {
231 /* ???? */ ID3FID_NOFRAME = 0,
232 /* AENC */ ID3FID_AUDIOCRYPTO,
233 /* APIC */ ID3FID_PICTURE,
234 /* ASPI */ ID3FID_AUDIOSEEKPOINT,
235 /* COMM */ ID3FID_COMMENT,
236 /* COMR */ ID3FID_COMMERCIAL,
237 /* ENCR */ ID3FID_CRYPTOREG,
238 /* EQU2 */ ID3FID_EQUALIZATION2,
239 /* EQUA */ ID3FID_EQUALIZATION,
240 /* ETCO */ ID3FID_EVENTTIMING,
241 /* GEOB */ ID3FID_GENERALOBJECT,
242 /* GRID */ ID3FID_GROUPINGREG,
243 /* IPLS */ ID3FID_INVOLVEDPEOPLE,
244 /* LINK */ ID3FID_LINKEDINFO,
245 /* MCDI */ ID3FID_CDID,
246 /* MLLT */ ID3FID_MPEGLOOKUP,
247 /* OWNE */ ID3FID_OWNERSHIP,
248 /* PRIV */ ID3FID_PRIVATE,
249 /* PCNT */ ID3FID_PLAYCOUNTER,
250 /* POPM */ ID3FID_POPULARIMETER,
251 /* POSS */ ID3FID_POSITIONSYNC,
252 /* RBUF */ ID3FID_BUFFERSIZE,
253 /* RVA2 */ ID3FID_VOLUMEADJ2,
254 /* RVAD */ ID3FID_VOLUMEADJ,
255 /* RVRB */ ID3FID_REVERB,
256 /* SEEK */ ID3FID_SEEKFRAME,
257 /* SIGN */ ID3FID_SIGNATURE,
258 /* SYLT */ ID3FID_SYNCEDLYRICS,
259 /* SYTC */ ID3FID_SYNCEDTEMPO,
260 /* TALB */ ID3FID_ALBUM,
261 /* TBPM */ ID3FID_BPM,
262 /* TCOM */ ID3FID_COMPOSER,
263 /* TCON */ ID3FID_CONTENTTYPE,
264 /* TCOP */ ID3FID_COPYRIGHT,
265 /* TDAT */ ID3FID_DATE,
266 /* TDEN */ ID3FID_ENCODINGTIME,
267 /* TDLY */ ID3FID_PLAYLISTDELAY,
268 /* TDOR */ ID3FID_ORIGRELEASETIME,
269 /* TDRC */ ID3FID_RECORDINGTIME,
270 /* TDRL */ ID3FID_RELEASETIME,
271 /* TDTG */ ID3FID_TAGGINGTIME,
272 /* TIPL */ ID3FID_INVOLVEDPEOPLE2,
273 /* TENC */ ID3FID_ENCODEDBY,
274 /* TEXT */ ID3FID_LYRICIST,
275 /* TFLT */ ID3FID_FILETYPE,
276 /* TIME */ ID3FID_TIME,
277 /* TIT1 */ ID3FID_CONTENTGROUP,
278 /* TIT2 */ ID3FID_TITLE,
279 /* TIT3 */ ID3FID_SUBTITLE,
280 /* TKEY */ ID3FID_INITIALKEY,
281 /* TLAN */ ID3FID_LANGUAGE,
282 /* TLEN */ ID3FID_SONGLEN,
283 /* TMCL */ ID3FID_MUSICIANCREDITLIST,
284 /* TMED */ ID3FID_MEDIATYPE,
285 /* TMOO */ ID3FID_MOOD,
286 /* TOAL */ ID3FID_ORIGALBUM,
287 /* TOFN */ ID3FID_ORIGFILENAME,
288 /* TOLY */ ID3FID_ORIGLYRICIST,
289 /* TOPE */ ID3FID_ORIGARTIST,
290 /* TORY */ ID3FID_ORIGYEAR,
291 /* TOWN */ ID3FID_FILEOWNER,
292 /* TPE1 */ ID3FID_LEADARTIST,
293 /* TPE2 */ ID3FID_BAND,
294 /* TPE3 */ ID3FID_CONDUCTOR,
295 /* TPE4 */ ID3FID_MIXARTIST,
296 /* TPOS */ ID3FID_PARTINSET,
297 /* TPRO */ ID3FID_PRODUCEDNOTICE,
298 /* TPUB */ ID3FID_PUBLISHER,
299 /* TRCK */ ID3FID_TRACKNUM,
300 /* TRDA */ ID3FID_RECORDINGDATES,
301 /* TRSN */ ID3FID_NETRADIOSTATION,
302 /* TRSO */ ID3FID_NETRADIOOWNER,
303 /* TSIZ */ ID3FID_SIZE,
304 /* TSOA */ ID3FID_ALBUMSORTORDER,
305 /* TSOP */ ID3FID_PERFORMERSORTORDER,
306 /* TSOT */ ID3FID_TITLESORTORDER,
307 /* TSRC */ ID3FID_ISRC,
308 /* TSSE */ ID3FID_ENCODERSETTINGS,
309 /* TSST */ ID3FID_SETSUBTITLE,
310 /* TXXX */ ID3FID_USERTEXT,
311 /* TYER */ ID3FID_YEAR,
312 /* UFID */ ID3FID_UNIQUEFILEID,
313 /* USER */ ID3FID_TERMSOFUSE,
314 /* USLT */ ID3FID_UNSYNCEDLYRICS,
315 /* WCOM */ ID3FID_WWWCOMMERCIALINFO,
316 /* WCOP */ ID3FID_WWWCOPYRIGHT,
317 /* WOAF */ ID3FID_WWWAUDIOFILE,
318 /* WOAR */ ID3FID_WWWARTIST,
319 /* WOAS */ ID3FID_WWWAUDIOSOURCE,
320 /* WORS */ ID3FID_WWWRADIOPAGE,
321 /* WPAY */ ID3FID_WWWPAYMENT,
322 /* WPUB */ ID3FID_WWWPUBLISHER,
323 /* WXXX */ ID3FID_WWWUSER,
324 /* */ ID3FID_METACRYPTO,
325 /* */ ID3FID_METACOMPRESSION,
326 /* >>>> */ ID3FID_LASTFRAMEID
327 };
328
329 ID3_ENUM(ID3_V1Lengths)
330 {
331 ID3_V1_LEN = 128,
332 ID3_V1_LEN_ID = 3,
333 ID3_V1_LEN_TITLE = 30,
334 ID3_V1_LEN_ARTIST = 30,
335 ID3_V1_LEN_ALBUM = 30,
336 ID3_V1_LEN_YEAR = 4,
337 ID3_V1_LEN_COMMENT = 30,
338 ID3_V1_LEN_GENRE = 1
339 };
340
341 ID3_ENUM(ID3_FieldFlags)
342 {
343 ID3FF_NONE = 0,
344 ID3FF_CSTR = 1 << 0,
345 ID3FF_LIST = 1 << 1,
346 ID3FF_ENCODABLE = 1 << 2,
347 ID3FF_TEXTLIST = ID3FF_CSTR | ID3FF_LIST | ID3FF_ENCODABLE
348 };
349
351 ID3_ENUM(ID3_FieldType)
352 {
353 ID3FTY_NONE = -1,
354 ID3FTY_INTEGER = 0,
355 ID3FTY_BINARY,
356 ID3FTY_TEXTSTRING,
357 ID3FTY_NUMTYPES
358 };
359
363 ID3_ENUM(ID3_Err)
364 {
365 ID3E_NoError = 0,
366 ID3E_NoMemory,
367 ID3E_NoData,
368 ID3E_BadData,
369 ID3E_NoBuffer,
370 ID3E_SmallBuffer,
371 ID3E_InvalidFrameID,
372 ID3E_FieldNotFound,
373 ID3E_UnknownFieldType,
374 ID3E_TagAlreadyAttached,
375 ID3E_InvalidTagVersion,
376 ID3E_NoFile,
377 ID3E_ReadOnly,
378 ID3E_zlibError
379 };
380
381 ID3_ENUM(ID3_ContentType)
382 {
383 ID3CT_OTHER = 0,
384 ID3CT_LYRICS,
385 ID3CT_TEXTTRANSCRIPTION,
386 ID3CT_MOVEMENT,
387 ID3CT_EVENTS,
388 ID3CT_CHORD,
389 ID3CT_TRIVIA
390 };
391
392 ID3_ENUM(ID3_PictureType)
393 {
394 ID3PT_OTHER = 0,
395 ID3PT_PNG32ICON = 1, // 32x32 pixels 'file icon' (PNG only)
396 ID3PT_OTHERICON = 2, // Other file icon
397 ID3PT_COVERFRONT = 3, // Cover (front)
398 ID3PT_COVERBACK = 4, // Cover (back)
399 ID3PT_LEAFLETPAGE = 5, // Leaflet page
400 ID3PT_MEDIA = 6, // Media (e.g. lable side of CD)
401 ID3PT_LEADARTIST = 7, // Lead artist/lead performer/soloist
402 ID3PT_ARTIST = 8, // Artist/performer
403 ID3PT_CONDUCTOR = 9, // Conductor
404 ID3PT_BAND = 10, // Band/Orchestra
405 ID3PT_COMPOSER = 11, // Composer
406 ID3PT_LYRICIST = 12, // Lyricist/text writer
407 ID3PT_REC_LOCATION = 13, // Recording Location
408 ID3PT_RECORDING = 14, // During recording
409 ID3PT_PERFORMANCE = 15, // During performance
410 ID3PT_VIDEO = 16, // Movie/video screen capture
411 ID3PT_FISH = 17, // A bright coloured fish
412 ID3PT_ILLUSTRATION = 18, // Illustration
413 ID3PT_ARTISTLOGO = 19, // Band/artist logotype
414 ID3PT_PUBLISHERLOGO = 20 // Publisher/Studio logotype
415 };
416
417 ID3_ENUM(ID3_TimeStampFormat)
418 {
419 ID3TSF_FRAME = 1,
420 ID3TSF_MS
421 };
422
423 ID3_ENUM(MP3_BitRates)
424 {
425 MP3BITRATE_FALSE = -1,
426 MP3BITRATE_NONE = 0,
427 MP3BITRATE_8K = 8000,
428 MP3BITRATE_16K = 16000,
429 MP3BITRATE_24K = 24000,
430 MP3BITRATE_32K = 32000,
431 MP3BITRATE_40K = 40000,
432 MP3BITRATE_48K = 48000,
433 MP3BITRATE_56K = 56000,
434 MP3BITRATE_64K = 64000,
435 MP3BITRATE_80K = 80000,
436 MP3BITRATE_96K = 96000,
437 MP3BITRATE_112K = 112000,
438 MP3BITRATE_128K = 128000,
439 MP3BITRATE_144K = 144000,
440 MP3BITRATE_160K = 160000,
441 MP3BITRATE_176K = 176000,
442 MP3BITRATE_192K = 192000,
443 MP3BITRATE_224K = 224000,
444 MP3BITRATE_256K = 256000,
445 MP3BITRATE_288K = 288000,
446 MP3BITRATE_320K = 320000,
447 MP3BITRATE_352K = 352000,
448 MP3BITRATE_384K = 384000,
449 MP3BITRATE_416K = 416000,
450 MP3BITRATE_448K = 448000
451 };
452
453 ID3_ENUM(Mpeg_Layers)
454 {
455 MPEGLAYER_FALSE = -1,
456 MPEGLAYER_UNDEFINED,
457 MPEGLAYER_III,
458 MPEGLAYER_II,
459 MPEGLAYER_I
460 };
461
462 ID3_ENUM(Mpeg_Version)
463 {
464 MPEGVERSION_FALSE = -1,
465 MPEGVERSION_2_5,
466 MPEGVERSION_Reserved,
467 MPEGVERSION_2,
468 MPEGVERSION_1
469 };
470
471 ID3_ENUM(Mp3_Frequencies)
472 {
473 MP3FREQUENCIES_FALSE = -1,
474 MP3FREQUENCIES_Reserved = 0,
475 MP3FREQUENCIES_8000HZ = 8000,
476 MP3FREQUENCIES_11025HZ = 11025,
477 MP3FREQUENCIES_12000HZ = 12000,
478 MP3FREQUENCIES_16000HZ = 16000,
479 MP3FREQUENCIES_22050HZ = 22050,
480 MP3FREQUENCIES_24000HZ = 24000,
481 MP3FREQUENCIES_32000HZ = 32000,
482 MP3FREQUENCIES_48000HZ = 48000,
483 MP3FREQUENCIES_44100HZ = 44100,
484 };
485
486 ID3_ENUM(Mp3_ChannelMode)
487 {
488 MP3CHANNELMODE_FALSE = -1,
489 MP3CHANNELMODE_STEREO,
490 MP3CHANNELMODE_JOINT_STEREO,
491 MP3CHANNELMODE_DUAL_CHANNEL,
492 MP3CHANNELMODE_SINGLE_CHANNEL
493 };
494
495 ID3_ENUM(Mp3_ModeExt)
496 {
497 MP3MODEEXT_FALSE = -1,
498 MP3MODEEXT_0,
499 MP3MODEEXT_1,
500 MP3MODEEXT_2,
501 MP3MODEEXT_3
502 };
503
504 ID3_ENUM(Mp3_Emphasis)
505 {
506 MP3EMPHASIS_FALSE = -1,
507 MP3EMPHASIS_NONE,
508 MP3EMPHASIS_50_15MS,
509 MP3EMPHASIS_Reserved,
510 MP3EMPHASIS_CCIT_J17
511 };
512
513 ID3_ENUM(Mp3_Crc)
514 {
515 MP3CRC_ERROR_SIZE = -2,
516 MP3CRC_MISMATCH = -1,
517 MP3CRC_NONE = 0,
518 MP3CRC_OK = 1
519 };
520
521 ID3_STRUCT(Mp3_Headerinfo)
522 {
523 Mpeg_Layers layer;
524 Mpeg_Version version;
525 MP3_BitRates bitrate;
526 Mp3_ChannelMode channelmode;
527 Mp3_ModeExt modeext;
528 Mp3_Emphasis emphasis;
529 Mp3_Crc crc;
530 uint32 vbr_bitrate; // avg bitrate from xing header
531 uint32 frequency; // samplerate
532 uint32 framesize;
533 uint32 frames; // nr of frames
534 uint32 time; // nr of seconds in song
535 bool privatebit;
536 bool copyrighted;
537 bool original;
538 };
539
540 #define ID3_NR_OF_V1_GENRES 148
541
542 static const char *ID3_v1_genre_description[ID3_NR_OF_V1_GENRES] =
543 {
544 "Blues", //0
545 "Classic Rock", //1
546 "Country", //2
547 "Dance", //3
548 "Disco", //4
549 "Funk", //5
550 "Grunge", //6
551 "Hip-Hop", //7
552 "Jazz", //8
553 "Metal", //9
554 "New Age", //10
555 "Oldies", //11
556 "Other", //12
557 "Pop", //13
558 "R&B", //14
559 "Rap", //15
560 "Reggae", //16
561 "Rock", //17
562 "Techno", //18
563 "Industrial", //19
564 "Alternative", //20
565 "Ska", //21
566 "Death Metal", //22
567 "Pranks", //23
568 "Soundtrack", //24
569 "Euro-Techno", //25
570 "Ambient", //26
571 "Trip-Hop", //27
572 "Vocal", //28
573 "Jazz+Funk", //29
574 "Fusion", //30
575 "Trance", //31
576 "Classical", //32
577 "Instrumental", //33
578 "Acid", //34
579 "House", //35
580 "Game", //36
581 "Sound Clip", //37
582 "Gospel", //38
583 "Noise", //39
584 "AlternRock", //40
585 "Bass", //41
586 "Soul", //42
587 "Punk", //43
588 "Space", //44
589 "Meditative", //45
590 "Instrumental Pop", //46
591 "Instrumental Rock", //47
592 "Ethnic", //48
593 "Gothic", //49
594 "Darkwave", //50
595 "Techno-Industrial", //51
596 "Electronic", //52
597 "Pop-Folk", //53
598 "Eurodance", //54
599 "Dream", //55
600 "Southern Rock", //56
601 "Comedy", //57
602 "Cult", //58
603 "Gangsta", //59
604 "Top 40", //60
605 "Christian Rap", //61
606 "Pop/Funk", //62
607 "Jungle", //63
608 "Native American", //64
609 "Cabaret", //65
610 "New Wave", //66
611 "Psychadelic", //67
612 "Rave", //68
613 "Showtunes", //69
614 "Trailer", //70
615 "Lo-Fi", //71
616 "Tribal", //72
617 "Acid Punk", //73
618 "Acid Jazz", //74
619 "Polka", //75
620 "Retro", //76
621 "Musical", //77
622 "Rock & Roll", //78
623 "Hard Rock", //79
624 // following are winamp extentions
625 "Folk", //80
626 "Folk-Rock", //81
627 "National Folk", //82
628 "Swing", //83
629 "Fast Fusion", //84
630 "Bebob", //85
631 "Latin", //86
632 "Revival", //87
633 "Celtic", //88
634 "Bluegrass", //89
635 "Avantgarde", //90
636 "Gothic Rock", //91
637 "Progressive Rock", //92
638 "Psychedelic Rock", //93
639 "Symphonic Rock", //94
640 "Slow Rock", //95
641 "Big Band", //96
642 "Chorus", //97
643 "Easy Listening", //98
644 "Acoustic", //99
645 "Humour", //100
646 "Speech", //101
647 "Chanson", //102
648 "Opera", //103
649 "Chamber Music", //104
650 "Sonata", //105
651 "Symphony", //106
652 "Booty Bass", //107
653 "Primus", //108
654 "Porn Groove", //109
655 "Satire", //110
656 "Slow Jam", //111
657 "Club", //112
658 "Tango", //113
659 "Samba", //114
660 "Folklore", //115
661 "Ballad", //116
662 "Power Ballad", //117
663 "Rhythmic Soul", //118
664 "Freestyle", //119
665 "Duet", //120
666 "Punk Rock", //121
667 "Drum Solo", //122
668 "A capella", //123
669 "Euro-House", //124
670 "Dance Hall", //125
671 "Goa", //126
672 "Drum & Bass", //127
673 "Club-House", //128
674 "Hardcore", //129
675 "Terror", //130
676 "Indie", //131
677 "Britpop", //132
678 "Negerpunk", //133
679 "Polsk Punk", //134
680 "Beat", //135
681 "Christian Gangsta Rap", //136
682 "Heavy Metal", //137
683 "Black Metal", //138
684 "Crossover", //139
685 "Contemporary Christian",//140
686 "Christian Rock ", //141
687 "Merengue", //142
688 "Salsa", //143
689 "Trash Metal", //144
690 "Anime", //145
691 "JPop", //146
692 "Synthpop" //147
693 };
694
695 #define ID3_V1GENRE2DESCRIPTION(x) (x < ID3_NR_OF_V1_GENRES && x >= 0) ? ID3_v1_genre_description[x] : NULL
696
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)
706
707 /*
708 * The following is borrowed from glib.h (http://www.gtk.org)
709 */
710 #ifdef WIN32
711
712 /* On native Win32, directory separator is the backslash, and search path
713 * separator is the semicolon.
714 */
715 # define ID3_DIR_SEPARATOR '\\'
716 # define ID3_DIR_SEPARATOR_S "\\"
717 # define ID3_SEARCHPATH_SEPARATOR ';'
718 # define ID3_SEARCHPATH_SEPARATOR_S ";"
719
720 #else /* !WIN32 */
721
722 # ifndef _EMX_
723 /* Unix */
724
725 # define ID3_DIR_SEPARATOR '/'
726 # define ID3_DIR_SEPARATOR_S "/"
727 # define ID3_SEARCHPATH_SEPARATOR ':'
728 # define ID3_SEARCHPATH_SEPARATOR_S ":"
729
730 # else
731 /* EMX/OS2 */
732
733 # define ID3_DIR_SEPARATOR '/'
734 # define ID3_DIR_SEPARATOR_S "/"
735 # define ID3_SEARCHPATH_SEPARATOR ';'
736 # define ID3_SEARCHPATH_SEPARATOR_S ";"
737
738 # endif
739
740 #endif /* !WIN32 */
741
742 #ifndef NULL
743 # define NULL ((void*) 0)
744 #endif
745
746 #endif /* _ID3LIB_GLOBALS_H_ */
747
ID3FID_WWWARTIST
Official artist/performer webpage.
Definition: globals.h:318
ID3FID_AUDIOCRYPTO
Audio encryption.
Definition: globals.h:232
ID3FF_TEXTLIST
Definition: globals.h:347
ID3FN_EMAIL
Email field.
Definition: globals.h:206
ID3V2_UNKNOWN
Definition: globals.h:163
sized_types.h
ID3E_NoMemory
No available memory.
Definition: globals.h:366
ID3E_TagAlreadyAttached
Tag is already attached to a file.
Definition: globals.h:374
ID3TE_NUMENCODINGS
Definition: globals.h:144
ID3FID_SETSUBTITLE
Set subtitle.
Definition: globals.h:309
ID3FN_LASTFIELDID
Last field placeholder.
Definition: globals.h:223
ID3FID_AUDIOSEEKPOINT
Audio seek point index.
Definition: globals.h:234
ID3FID_BUFFERSIZE
Recommended buffer size.
Definition: globals.h:252
ID3FID_WWWCOPYRIGHT
Copyright/Legal infromation.
Definition: globals.h:316
ID3FID_ORIGLYRICIST
Original lyricist(s)/text writer(s)
Definition: globals.h:288
MPEGVERSION_2
Definition: globals.h:467
ID3FID_POSITIONSYNC
Position synchronisation frame.
Definition: globals.h:251
ID3FID_BPM
BPM (beats per minute)
Definition: globals.h:261
MP3CHANNELMODE_FALSE
Definition: globals.h:488
MP3FREQUENCIES_11025HZ
Definition: globals.h:476
ID3V1_0
Definition: globals.h:156
ID3FID_MIXARTIST
Interpreted, remixed, or otherwise modified by.
Definition: globals.h:295
ID3FID_CONDUCTOR
Conductor/performer refinement.
Definition: globals.h:294
ID3_TagType
ID3_TagType
The various types of tags that id3lib can handle.
Definition: globals.h:174
MP3BITRATE_56K
Definition: globals.h:433
MP3BITRATE_NONE
Definition: globals.h:426
ID3FID_ORIGFILENAME
Original filename.
Definition: globals.h:287
MPEGVERSION_1
Definition: globals.h:468
ID3TE_NONE
Definition: globals.h:139
ID3TT_LYRICS3
Represents a Lyrics3 tag.
Definition: globals.h:179
ID3FN_VOLUMEADJ
Volume adjustment field.
Definition: globals.h:215
ID3FID_COMMENT
Comments.
Definition: globals.h:235
ID3FID_INVOLVEDPEOPLE2
Involved people list.
Definition: globals.h:272
MP3BITRATE_256K
Definition: globals.h:444
Mp3_ModeExt
Mp3_ModeExt
Definition: globals.h:495
ID3FN_LANGUAGE
Language field.
Definition: globals.h:209
ID3PT_ARTIST
Definition: globals.h:402
ID3_ContentType
ID3_ContentType
Definition: globals.h:381
ID3TT_ID3
Represents both id3 tags: id3v1 and id3v2.
Definition: globals.h:185
ID3FID_TITLE
Title/songname/content description.
Definition: globals.h:278
ID3FTY_NONE
Definition: globals.h:353
ID3FID_PRIVATE
Private frame.
Definition: globals.h:248
MP3CRC_NONE
Definition: globals.h:517
ID3FID_FILETYPE
File type.
Definition: globals.h:275
ID3FID_WWWPUBLISHER
Official publisher webpage.
Definition: globals.h:322
ID3E_NoError
No error reported.
Definition: globals.h:365
flags_t
uint16 flags_t
Definition: globals.h:118
ID3FTY_NUMTYPES
Definition: globals.h:357
ID3V1_NUMSPECS
Definition: globals.h:158
ID3CT_OTHER
Definition: globals.h:383
ID3FID_SUBTITLE
Subtitle/Description refinement.
Definition: globals.h:279
MP3BITRATE_176K
Definition: globals.h:441
ID3FID_TAGGINGTIME
Tagging time.
Definition: globals.h:271
ID3FID_RECORDINGDATES
Recording dates.
Definition: globals.h:300
ID3FID_UNIQUEFILEID
Unique file identifier.
Definition: globals.h:312
ID3FID_ISRC
ISRC (international standard recording code)
Definition: globals.h:307
MP3BITRATE_416K
Definition: globals.h:449
ID3_V1_LEN_COMMENT
Definition: globals.h:337
ID3E_NoBuffer
No buffer to write to.
Definition: globals.h:369
ID3FID_VOLUMEADJ
Relative volume adjustment.
Definition: globals.h:254
MP3EMPHASIS_NONE
Definition: globals.h:507
Mp3_Headerinfo::copyrighted
bool copyrighted
Definition: globals.h:536
ID3FID_NETRADIOOWNER
Internet radio station owner.
Definition: globals.h:302
MP3FREQUENCIES_48000HZ
Definition: globals.h:482
ID3FID_CONTENTGROUP
Content group description.
Definition: globals.h:277
MP3_BitRates
MP3_BitRates
Definition: globals.h:423
ID3TT_LYRICS3V2
Represents a Lyrics3 v2.00 tag.
Definition: globals.h:180
ID3_V1_LEN_ALBUM
Definition: globals.h:335
MP3BITRATE_192K
Definition: globals.h:442
ID3PT_COMPOSER
Definition: globals.h:405
ID3_V1_LEN_ID
Definition: globals.h:332
ID3FID_TIME
Time.
Definition: globals.h:276
ID3FID_PICTURE
Attached picture.
Definition: globals.h:233
ID3FID_OWNERSHIP
Ownership frame.
Definition: globals.h:247
ID3FN_TIMESTAMPFORMAT
SYLT Timestamp Format.
Definition: globals.h:221
ID3FN_PEAKVOLRIGHT
Peak volume on the right channel.
Definition: globals.h:219
ID3LIB_BINARY_AGE
const int ID3LIB_BINARY_AGE
Definition: globals.cpp:45
MP3CHANNELMODE_STEREO
Definition: globals.h:489
Mp3_Headerinfo::crc
Mp3_Crc crc
Definition: globals.h:529
ID3_V1_LEN_ARTIST
Definition: globals.h:334
ID3FF_ENCODABLE
Definition: globals.h:346
ID3PT_MEDIA
Definition: globals.h:400
ID3CT_CHORD
Definition: globals.h:388
ID3FID_ORIGALBUM
Original album/movie/show title.
Definition: globals.h:286
Mp3_Headerinfo::vbr_bitrate
uint32 vbr_bitrate
Definition: globals.h:530
ID3TE_UNICODE
Definition: globals.h:146
ID3FID_PARTINSET
Part of a set.
Definition: globals.h:296
ID3TE_ASCII
Definition: globals.h:145
ID3FID_RECORDINGTIME
Recording time.
Definition: globals.h:269
ID3LIB_FULL_NAME
const char *const ID3LIB_FULL_NAME
Definition: globals.cpp:40
MP3BITRATE_16K
Definition: globals.h:428
ID3FID_SYNCEDTEMPO
Synchronized tempo codes.
Definition: globals.h:259
ID3FID_EQUALIZATION2
Equalisation (2)
Definition: globals.h:238
MP3MODEEXT_2
Definition: globals.h:500
MP3EMPHASIS_50_15MS
Definition: globals.h:508
MP3FREQUENCIES_Reserved
Definition: globals.h:474
ID3FID_ALBUMSORTORDER
Album sort order.
Definition: globals.h:304
ID3PT_ARTISTLOGO
Definition: globals.h:413
ID3FID_DATE
Date.
Definition: globals.h:265
Mp3_Headerinfo::frames
uint32 frames
Definition: globals.h:533
ID3FID_CONTENTTYPE
Content type.
Definition: globals.h:263
ID3TE_UTF16BE
Definition: globals.h:142
ID3FN_COUNTER
Counter field.
Definition: globals.h:213
MP3BITRATE_FALSE
Definition: globals.h:425
ID3FID_NOFRAME
No known frame.
Definition: globals.h:231
ID3FID_TITLESORTORDER
Title sort order.
Definition: globals.h:306
MPEGVERSION_FALSE
Definition: globals.h:464
ID3FID_MEDIATYPE
Media type.
Definition: globals.h:284
MP3CHANNELMODE_SINGLE_CHANNEL
Definition: globals.h:492
ID3_FrameID
ID3_FrameID
Enumeration of the different types of frames recognized by id3lib.
Definition: globals.h:229
ID3PT_ILLUSTRATION
Definition: globals.h:412
ID3FID_EQUALIZATION
Equalization.
Definition: globals.h:239
MP3BITRATE_352K
Definition: globals.h:447
ID3PT_COVERFRONT
Definition: globals.h:397
ID3LIB_MAJOR_VERSION
const int ID3LIB_MAJOR_VERSION
Definition: globals.cpp:41
MP3BITRATE_144K
Definition: globals.h:439
ID3_FieldFlags
ID3_FieldFlags
Definition: globals.h:341
ID3FTY_TEXTSTRING
Definition: globals.h:356
MP3FREQUENCIES_FALSE
Definition: globals.h:473
ID3FID_LEADARTIST
Lead performer(s)/Soloist(s)
Definition: globals.h:292
uchar
unsigned char uchar
Definition: globals.h:114
ID3TE_UTF16
Definition: globals.h:141
ID3_C_VAR
#define ID3_C_VAR
Definition: globals.h:83
ID3FN_DESCRIPTION
Description field.
Definition: globals.h:204
ID3FID_PUBLISHER
Publisher.
Definition: globals.h:298
ID3TT_ALL
Represents all possible types of tags.
Definition: globals.h:187
ID3FID_PERFORMERSORTORDER
Performer sort order.
Definition: globals.h:305
ID3V2_EARLIEST
Definition: globals.h:168
ID3TSF_MS
Definition: globals.h:420
ID3FN_CONTENTTYPE
SYLT content type.
Definition: globals.h:222
ID3V1_1
Definition: globals.h:157
ID3_FieldType
ID3_FieldType
Enumeration of the types of field types.
Definition: globals.h:351
Mp3_Headerinfo::layer
Mpeg_Layers layer
Definition: globals.h:523
MPEGLAYER_III
Definition: globals.h:457
ID3FID_MUSICIANCREDITLIST
Musician credits list.
Definition: globals.h:283
ID3FN_MIMETYPE
Mimetype field.
Definition: globals.h:212
ID3FID_PRODUCEDNOTICE
Produced notice.
Definition: globals.h:297
ID3V2_4_0
Definition: globals.h:167
ID3_V1_LEN
Definition: globals.h:331
ID3FF_CSTR
Definition: globals.h:344
ID3LIB_PATCH_VERSION
const int ID3LIB_PATCH_VERSION
Definition: globals.cpp:43
MP3BITRATE_8K
Definition: globals.h:427
ID3FN_ID
Identifier/Symbol field.
Definition: globals.h:214
Mp3_Emphasis
Mp3_Emphasis
Definition: globals.h:504
ID3_V1_LEN_GENRE
Definition: globals.h:338
MP3FREQUENCIES_44100HZ
Definition: globals.h:483
ID3_ENUM
#define ID3_ENUM(E)
Definition: globals.h:127
ID3PT_REC_LOCATION
Definition: globals.h:407
ID3FID_TRACKNUM
Track number/Position in set.
Definition: globals.h:299
ID3TT_APPENDED
Represents all tag types that can be appended to a file.
Definition: globals.h:191
MP3BITRATE_32K
Definition: globals.h:430
MP3MODEEXT_0
Definition: globals.h:498
ID3FID_GROUPINGREG
Group identification registration.
Definition: globals.h:242
ID3PT_VIDEO
Definition: globals.h:410
ID3_V1_LEN_TITLE
Definition: globals.h:333
ID3E_zlibError
Error in compression/uncompression.
Definition: globals.h:378
ID3E_NoFile
No file to parse.
Definition: globals.h:376
Mp3_Headerinfo::framesize
uint32 framesize
Definition: globals.h:532
ID3FID_VOLUMEADJ2
Relative volume adjustment (2)
Definition: globals.h:253
MPEGLAYER_II
Definition: globals.h:458
ID3TT_MUSICMATCH
Represents a MusicMatch tag.
Definition: globals.h:181
ID3CT_MOVEMENT
Definition: globals.h:386
Mp3_Headerinfo::bitrate
MP3_BitRates bitrate
Definition: globals.h:525
MP3EMPHASIS_FALSE
Definition: globals.h:506
MP3BITRATE_40K
Definition: globals.h:431
MP3BITRATE_24K
Definition: globals.h:429
ID3FID_SIGNATURE
Signature frame.
Definition: globals.h:257
MP3BITRATE_160K
Definition: globals.h:440
ID3FID_WWWRADIOPAGE
Official internet radio station homepage.
Definition: globals.h:320
MP3FREQUENCIES_16000HZ
Definition: globals.h:478
Mp3_Headerinfo
Definition: globals.h:521
ID3_V2Spec
ID3_V2Spec
Definition: globals.h:161
MP3FREQUENCIES_32000HZ
Definition: globals.h:481
ID3_TextEnc
ID3_TextEnc
Enumeration of the types of text encodings: ascii or unicode.
Definition: globals.h:137
ID3FID_RELEASETIME
Release time.
Definition: globals.h:270
ID3_Err
ID3_Err
Predefined id3lib error types.
Definition: globals.h:363
ID3FN_URL
A URL.
Definition: globals.h:202
ID3FID_ENCODERSETTINGS
Software/Hardware and settings used for encoding.
Definition: globals.h:308
MP3MODEEXT_FALSE
Definition: globals.h:497
MP3CHANNELMODE_DUAL_CHANNEL
Definition: globals.h:491
ID3CT_EVENTS
Definition: globals.h:387
MP3BITRATE_224K
Definition: globals.h:443
ID3TSF_FRAME
Definition: globals.h:419
MPEGLAYER_I
Definition: globals.h:459
ID3TE_UTF8
Definition: globals.h:143
ID3PT_PUBLISHERLOGO
Definition: globals.h:414
ID3_V1Lengths
ID3_V1Lengths
Definition: globals.h:329
ID3PT_COVERBACK
Definition: globals.h:398
ID3FID_EVENTTIMING
Event timing codes.
Definition: globals.h:240
Mp3_Frequencies
Mp3_Frequencies
Definition: globals.h:471
ID3FID_YEAR
Year.
Definition: globals.h:311
ID3V2_3_0
Definition: globals.h:166
MP3MODEEXT_1
Definition: globals.h:499
ID3PT_FISH
Definition: globals.h:411
ID3TE_ISO8859_1
Definition: globals.h:140
ID3FID_SYNCEDLYRICS
Synchronized lyric/text.
Definition: globals.h:258
ID3FID_SIZE
Size.
Definition: globals.h:303
ID3FID_WWWAUDIOFILE
Official audio file webpage.
Definition: globals.h:317
ID3FN_VOLCHGLEFT
Volume chage on the left channel.
Definition: globals.h:218
ID3_V1_LEN_YEAR
Definition: globals.h:336
MP3FREQUENCIES_24000HZ
Definition: globals.h:480
Mp3_Headerinfo::channelmode
Mp3_ChannelMode channelmode
Definition: globals.h:526
MP3EMPHASIS_Reserved
Definition: globals.h:509
ID3FID_WWWCOMMERCIALINFO
Commercial information.
Definition: globals.h:315
ID3FID_REVERB
Reverb.
Definition: globals.h:255
ID3PT_OTHERICON
Definition: globals.h:396
ID3TT_PREPENDED
Represents all tag types that can be prepended to a file.
Definition: globals.h:189
ID3LIB_INTERFACE_AGE
const int ID3LIB_INTERFACE_AGE
Definition: globals.cpp:44
ID3CT_TRIVIA
Definition: globals.h:389
ID3TT_ID3V2
Represents an id3v2 tag.
Definition: globals.h:178
Mp3_Crc
Mp3_Crc
Definition: globals.h:513
ID3LIB_NAME
const char *const ID3LIB_NAME
Definition: globals.cpp:38
Mp3_ChannelMode
Mp3_ChannelMode
Definition: globals.h:486
MP3CRC_ERROR_SIZE
Definition: globals.h:515
ID3FID_ORIGYEAR
Original release year.
Definition: globals.h:290
ID3FID_ENCODEDBY
Encoded by.
Definition: globals.h:273
Mp3_Headerinfo::original
bool original
Definition: globals.h:537
Mp3_Headerinfo::modeext
Mp3_ModeExt modeext
Definition: globals.h:527
ID3FN_TEXTENC
Text encoding (unicode or ASCII)
Definition: globals.h:200
ID3FN_IMAGEFORMAT
Image format field.
Definition: globals.h:211
ID3FID_WWWUSER
User defined URL link.
Definition: globals.h:323
ID3FID_TERMSOFUSE
Terms of use.
Definition: globals.h:313
ID3FID_WWWAUDIOSOURCE
Official audio source webpage.
Definition: globals.h:319
MP3FREQUENCIES_12000HZ
Definition: globals.h:477
ID3FID_SEEKFRAME
Seek frame.
Definition: globals.h:256
MP3BITRATE_320K
Definition: globals.h:446
ID3FID_INITIALKEY
Initial key.
Definition: globals.h:280
MP3CRC_OK
Definition: globals.h:518
MPEGVERSION_Reserved
Definition: globals.h:466
MP3BITRATE_64K
Definition: globals.h:434
ID3FN_PEAKVOLLEFT
Peak volume on the left channel.
Definition: globals.h:220
Mp3_Headerinfo::emphasis
Mp3_Emphasis emphasis
Definition: globals.h:528
ID3FID_LASTFRAMEID
Last field placeholder.
Definition: globals.h:326
MP3EMPHASIS_CCIT_J17
Definition: globals.h:510
ID3FID_ORIGARTIST
Original artist(s)/performer(s)
Definition: globals.h:289
MP3FREQUENCIES_8000HZ
Definition: globals.h:475
ID3CT_LYRICS
Definition: globals.h:384
ID3PT_LEADARTIST
Definition: globals.h:401
ID3FID_CRYPTOREG
Encryption method registration.
Definition: globals.h:237
ID3_TimeStampFormat
ID3_TimeStampFormat
Definition: globals.h:417
ID3FID_GENERALOBJECT
General encapsulated object.
Definition: globals.h:241
ID3E_FieldNotFound
Requested field not found.
Definition: globals.h:372
ID3LIB_RELEASE
const char *const ID3LIB_RELEASE
ID3E_InvalidTagVersion
Invalid tag version.
Definition: globals.h:375
MP3FREQUENCIES_22050HZ
Definition: globals.h:479
ID3FN_OWNER
Owner field.
Definition: globals.h:205
MP3BITRATE_48K
Definition: globals.h:432
ID3FID_USERTEXT
User defined text information.
Definition: globals.h:310
ID3FN_DATA
Data field.
Definition: globals.h:203
MP3BITRATE_128K
Definition: globals.h:438
ID3FN_VOLCHGRIGHT
Volume chage on the right channel.
Definition: globals.h:217
Mp3_Headerinfo::time
uint32 time
Definition: globals.h:534
MP3CHANNELMODE_JOINT_STEREO
Definition: globals.h:490
MP3CRC_MISMATCH
Definition: globals.h:516
MP3BITRATE_288K
Definition: globals.h:445
ID3E_SmallBuffer
Buffer is too small.
Definition: globals.h:370
ID3FID_BAND
Band/orchestra/accompaniment.
Definition: globals.h:293
ID3FN_NUMBITS
Number of bits field.
Definition: globals.h:216
ID3PT_LYRICIST
Definition: globals.h:406
ID3FID_WWWPAYMENT
Payment.
Definition: globals.h:321
ID3LIB_MINOR_VERSION
const int ID3LIB_MINOR_VERSION
Definition: globals.cpp:42
ID3FID_LINKEDINFO
Linked information.
Definition: globals.h:244
MP3BITRATE_80K
Definition: globals.h:435
ID3FN_NOFIELD
No field.
Definition: globals.h:199
ID3_STRUCT
#define ID3_STRUCT(S)
Definition: globals.h:128
ID3FID_ORIGRELEASETIME
Original release time.
Definition: globals.h:268
ID3V2_2_1
Definition: globals.h:165
ID3FF_NONE
Definition: globals.h:343
ID3_NR_OF_V1_GENRES
#define ID3_NR_OF_V1_GENRES
Definition: globals.h:540
ID3V2_2_0
Definition: globals.h:164
ID3FID_METACOMPRESSION
Compressed meta frame (id3v2.2.1)
Definition: globals.h:325
ID3FID_NETRADIOSTATION
Internet radio station name.
Definition: globals.h:301
ID3PT_PERFORMANCE
Definition: globals.h:409
ID3FID_LYRICIST
Lyricist/Text writer.
Definition: globals.h:274
ID3FN_RATING
Rating field.
Definition: globals.h:207
ID3FID_INVOLVEDPEOPLE
Involved people list.
Definition: globals.h:243
ID3TT_LYRICS
Definition: globals.h:183
ID3FID_PLAYLISTDELAY
Playlist delay.
Definition: globals.h:267
ID3FID_COPYRIGHT
Copyright message.
Definition: globals.h:264
Mp3_Headerinfo::frequency
uint32 frequency
Definition: globals.h:531
ID3E_UnknownFieldType
Unknown field type.
Definition: globals.h:373
unicode_t
uint16 unicode_t
Definition: globals.h:117
MP3MODEEXT_3
Definition: globals.h:501
ID3CT_TEXTTRANSCRIPTION
Definition: globals.h:385
ID3PT_BAND
Definition: globals.h:404
ID3PT_PNG32ICON
Definition: globals.h:395
ID3FN_PICTURETYPE
Picture type field.
Definition: globals.h:210
ID3FID_MPEGLOOKUP
MPEG location lookup table.
Definition: globals.h:246
ID3E_NoData
No data to parse.
Definition: globals.h:367
ID3FID_POPULARIMETER
Popularimeter.
Definition: globals.h:250
Mpeg_Version
Mpeg_Version
Definition: globals.h:462
ID3E_BadData
Improperly formatted data.
Definition: globals.h:368
ID3FID_CDID
Music CD identifier.
Definition: globals.h:245
ID3FID_COMMERCIAL
Commercial frame.
Definition: globals.h:236
ID3FID_ALBUM
Album/Movie/Show title.
Definition: globals.h:260
ID3FF_LIST
Definition: globals.h:345
ID3FID_SONGLEN
Length.
Definition: globals.h:282
luint
long unsigned int luint
Definition: globals.h:115
ID3FID_UNSYNCEDLYRICS
Unsynchronized lyric/text transcription.
Definition: globals.h:314
ID3_PictureType
ID3_PictureType
Definition: globals.h:392
ID3FN_FILENAME
Filename field.
Definition: globals.h:208
ID3FID_METACRYPTO
Encrypted meta frame (id3v2.2.x)
Definition: globals.h:324
ID3E_ReadOnly
Attempting to write to a read-only file.
Definition: globals.h:377
ID3E_InvalidFrameID
Invalid frame id.
Definition: globals.h:371
MP3BITRATE_96K
Definition: globals.h:436
ID3PT_LEAFLETPAGE
Definition: globals.h:399
ID3FID_LANGUAGE
Language(s)
Definition: globals.h:281
ID3FID_FILEOWNER
File owner/licensee.
Definition: globals.h:291
ID3FN_TEXT
Text field.
Definition: globals.h:201
MPEGLAYER_FALSE
Definition: globals.h:455
Mp3_Headerinfo::version
Mpeg_Version version
Definition: globals.h:524
ID3TT_NONE
Represents an empty or non-existant tag.
Definition: globals.h:176
MPEGLAYER_UNDEFINED
Definition: globals.h:456
ID3TT_ID3V1
Represents an id3v1 or id3v1.1 tag.
Definition: globals.h:177
ID3FID_PLAYCOUNTER
Play counter.
Definition: globals.h:249
MP3BITRATE_448K
Definition: globals.h:450
ID3FID_ENCODINGTIME
Encoding time.
Definition: globals.h:266
ID3PT_CONDUCTOR
Definition: globals.h:403
ID3PT_OTHER
Definition: globals.h:394
ID3_FieldID
ID3_FieldID
Enumeration of the different types of fields in a frame.
Definition: globals.h:197
ID3FTY_INTEGER
Definition: globals.h:354
MP3BITRATE_112K
Definition: globals.h:437
MPEGVERSION_2_5
Definition: globals.h:465
Mpeg_Layers
Mpeg_Layers
Definition: globals.h:453
ID3PT_RECORDING
Definition: globals.h:408
ID3FID_MOOD
Mood.
Definition: globals.h:285
ID3FTY_BINARY
Definition: globals.h:355
MP3BITRATE_384K
Definition: globals.h:448
ID3FID_COMPOSER
Composer.
Definition: globals.h:262
Mp3_Headerinfo::privatebit
bool privatebit
Definition: globals.h:535
ID3_V1Spec
ID3_V1Spec
Enumeration of the various id3 specifications.
Definition: globals.h:154
ID3V2_LATEST
Definition: globals.h:169