id3lib  3.8.3
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;
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 
138 {
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 
155 {
156  ID3V1_0 = 0,
159 };
160 
162 {
170 };
171 
175 {
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,
192 };
193 
198 {
224 };
225 
230 {
231  /* ???? */ ID3FID_NOFRAME = 0,
232  /* AENC */ ID3FID_AUDIOCRYPTO,
233  /* APIC */ ID3FID_PICTURE,
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,
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,
269  /* TDRC */ ID3FID_RECORDINGTIME,
270  /* TDRL */ ID3FID_RELEASETIME,
271  /* TDTG */ ID3FID_TAGGINGTIME,
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,
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,
298  /* TPUB */ ID3FID_PUBLISHER,
299  /* TRCK */ ID3FID_TRACKNUM,
302  /* TRSO */ ID3FID_NETRADIOOWNER,
303  /* TSIZ */ ID3FID_SIZE,
307  /* TSRC */ ID3FID_ISRC,
309  /* TSST */ ID3FID_SETSUBTITLE,
310  /* TXXX */ ID3FID_USERTEXT,
311  /* TYER */ ID3FID_YEAR,
312  /* UFID */ ID3FID_UNIQUEFILEID,
313  /* USER */ ID3FID_TERMSOFUSE,
316  /* WCOP */ ID3FID_WWWCOPYRIGHT,
317  /* WOAF */ ID3FID_WWWAUDIOFILE,
318  /* WOAR */ ID3FID_WWWARTIST,
320  /* WORS */ ID3FID_WWWRADIOPAGE,
321  /* WPAY */ ID3FID_WWWPAYMENT,
322  /* WPUB */ ID3FID_WWWPUBLISHER,
323  /* WXXX */ ID3FID_WWWUSER,
326  /* >>>> */ ID3FID_LASTFRAMEID
327 };
328 
330 {
331  ID3_V1_LEN = 128,
338  ID3_V1_LEN_GENRE = 1
339 };
340 
342 {
344  ID3FF_CSTR = 1 << 0,
345  ID3FF_LIST = 1 << 1,
346  ID3FF_ENCODABLE = 1 << 2,
348 };
349 
352 {
358 };
359 
364 {
379 };
380 
382 {
390 };
391 
393 {
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 
418 {
420  ID3TSF_MS
421 };
422 
424 {
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 
454 {
460 };
461 
463 {
469 };
470 
472 {
484 };
485 
487 {
493 };
494 
496 {
502 };
503 
505 {
511 };
512 
514 {
518  MP3CRC_OK = 1
519 };
520 
522 {
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
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 
#define ID3_C_VAR
Definition: globals.h:83
ID3_Err
Predefined id3lib error types.
Definition: globals.h:364
@ ID3E_NoBuffer
No buffer to write to.
Definition: globals.h:369
@ ID3E_FieldNotFound
Requested field not found.
Definition: globals.h:372
@ ID3E_InvalidTagVersion
Invalid tag version.
Definition: globals.h:375
@ ID3E_NoData
No data to parse.
Definition: globals.h:367
@ ID3E_zlibError
Error in compression/uncompression.
Definition: globals.h:378
@ ID3E_TagAlreadyAttached
Tag is already attached to a file.
Definition: globals.h:374
@ ID3E_ReadOnly
Attempting to write to a read-only file.
Definition: globals.h:377
@ ID3E_NoError
No error reported.
Definition: globals.h:365
@ ID3E_BadData
Improperly formatted data.
Definition: globals.h:368
@ ID3E_NoMemory
No available memory.
Definition: globals.h:366
@ ID3E_SmallBuffer
Buffer is too small.
Definition: globals.h:370
@ ID3E_InvalidFrameID
Invalid frame id.
Definition: globals.h:371
@ ID3E_UnknownFieldType
Unknown field type.
Definition: globals.h:373
@ ID3E_NoFile
No file to parse.
Definition: globals.h:376
Mp3_ModeExt
Definition: globals.h:496
@ MP3MODEEXT_3
Definition: globals.h:501
@ MP3MODEEXT_0
Definition: globals.h:498
@ MP3MODEEXT_2
Definition: globals.h:500
@ MP3MODEEXT_1
Definition: globals.h:499
@ MP3MODEEXT_FALSE
Definition: globals.h:497
const int ID3LIB_BINARY_AGE
Definition: globals.cpp:45
Mp3_Frequencies
Definition: globals.h:472
@ MP3FREQUENCIES_48000HZ
Definition: globals.h:482
@ MP3FREQUENCIES_24000HZ
Definition: globals.h:480
@ MP3FREQUENCIES_44100HZ
Definition: globals.h:483
@ MP3FREQUENCIES_11025HZ
Definition: globals.h:476
@ MP3FREQUENCIES_32000HZ
Definition: globals.h:481
@ MP3FREQUENCIES_FALSE
Definition: globals.h:473
@ MP3FREQUENCIES_22050HZ
Definition: globals.h:479
@ MP3FREQUENCIES_16000HZ
Definition: globals.h:478
@ MP3FREQUENCIES_8000HZ
Definition: globals.h:475
@ MP3FREQUENCIES_12000HZ
Definition: globals.h:477
@ MP3FREQUENCIES_Reserved
Definition: globals.h:474
Mp3_Emphasis
Definition: globals.h:505
@ MP3EMPHASIS_50_15MS
Definition: globals.h:508
@ MP3EMPHASIS_CCIT_J17
Definition: globals.h:510
@ MP3EMPHASIS_FALSE
Definition: globals.h:506
@ MP3EMPHASIS_NONE
Definition: globals.h:507
@ MP3EMPHASIS_Reserved
Definition: globals.h:509
ID3_FieldID
Enumeration of the different types of fields in a frame.
Definition: globals.h:198
@ ID3FN_MIMETYPE
Mimetype field.
Definition: globals.h:212
@ ID3FN_NOFIELD
No field.
Definition: globals.h:199
@ ID3FN_VOLCHGRIGHT
Volume chage on the right channel.
Definition: globals.h:217
@ ID3FN_PEAKVOLRIGHT
Peak volume on the right channel.
Definition: globals.h:219
@ ID3FN_LASTFIELDID
Last field placeholder.
Definition: globals.h:223
@ ID3FN_EMAIL
Email field.
Definition: globals.h:206
@ ID3FN_VOLCHGLEFT
Volume chage on the left channel.
Definition: globals.h:218
@ ID3FN_DESCRIPTION
Description field.
Definition: globals.h:204
@ ID3FN_IMAGEFORMAT
Image format field.
Definition: globals.h:211
@ ID3FN_TIMESTAMPFORMAT
SYLT Timestamp Format.
Definition: globals.h:221
@ ID3FN_PEAKVOLLEFT
Peak volume on the left channel.
Definition: globals.h:220
@ ID3FN_RATING
Rating field.
Definition: globals.h:207
@ ID3FN_NUMBITS
Number of bits field.
Definition: globals.h:216
@ ID3FN_FILENAME
Filename field.
Definition: globals.h:208
@ ID3FN_OWNER
Owner field.
Definition: globals.h:205
@ ID3FN_LANGUAGE
Language field.
Definition: globals.h:209
@ ID3FN_TEXT
Text field.
Definition: globals.h:201
@ ID3FN_VOLUMEADJ
Volume adjustment field.
Definition: globals.h:215
@ ID3FN_URL
A URL.
Definition: globals.h:202
@ ID3FN_DATA
Data field.
Definition: globals.h:203
@ ID3FN_ID
Identifier/Symbol field.
Definition: globals.h:214
@ ID3FN_COUNTER
Counter field.
Definition: globals.h:213
@ ID3FN_PICTURETYPE
Picture type field.
Definition: globals.h:210
@ ID3FN_CONTENTTYPE
SYLT content type.
Definition: globals.h:222
@ ID3FN_TEXTENC
Text encoding (unicode or ASCII)
Definition: globals.h:200
ID3_TextEnc
Enumeration of the types of text encodings: ascii or unicode.
Definition: globals.h:138
@ ID3TE_UTF16BE
Definition: globals.h:142
@ ID3TE_NONE
Definition: globals.h:139
@ ID3TE_UTF16
Definition: globals.h:141
@ ID3TE_ISO8859_1
Definition: globals.h:140
@ ID3TE_NUMENCODINGS
Definition: globals.h:144
@ ID3TE_ASCII
Definition: globals.h:145
@ ID3TE_UNICODE
Definition: globals.h:146
@ ID3TE_UTF8
Definition: globals.h:143
ID3_TagType
The various types of tags that id3lib can handle.
Definition: globals.h:175
@ ID3TT_ID3
Represents both id3 tags: id3v1 and id3v2.
Definition: globals.h:185
@ ID3TT_APPENDED
Represents all tag types that can be appended to a file.
Definition: globals.h:191
@ ID3TT_LYRICS3
Represents a Lyrics3 tag.
Definition: globals.h:179
@ ID3TT_ID3V2
Represents an id3v2 tag.
Definition: globals.h:178
@ ID3TT_LYRICS3V2
Represents a Lyrics3 v2.00 tag.
Definition: globals.h:180
@ ID3TT_MUSICMATCH
Represents a MusicMatch tag.
Definition: globals.h:181
@ ID3TT_LYRICS
Definition: globals.h:183
@ ID3TT_PREPENDED
Represents all tag types that can be prepended to a file.
Definition: globals.h:189
@ ID3TT_ID3V1
Represents an id3v1 or id3v1.1 tag.
Definition: globals.h:177
@ ID3TT_ALL
Represents all possible types of tags.
Definition: globals.h:187
@ ID3TT_NONE
Represents an empty or non-existant tag.
Definition: globals.h:176
ID3_ContentType
Definition: globals.h:382
@ ID3CT_EVENTS
Definition: globals.h:387
@ ID3CT_CHORD
Definition: globals.h:388
@ ID3CT_TRIVIA
Definition: globals.h:389
@ ID3CT_LYRICS
Definition: globals.h:384
@ ID3CT_TEXTTRANSCRIPTION
Definition: globals.h:385
@ ID3CT_MOVEMENT
Definition: globals.h:386
@ ID3CT_OTHER
Definition: globals.h:383
long unsigned int luint
Definition: globals.h:115
#define ID3_NR_OF_V1_GENRES
Definition: globals.h:540
ID3_V2Spec
Definition: globals.h:162
@ ID3V2_LATEST
Definition: globals.h:169
@ ID3V2_4_0
Definition: globals.h:167
@ ID3V2_2_1
Definition: globals.h:165
@ ID3V2_UNKNOWN
Definition: globals.h:163
@ ID3V2_EARLIEST
Definition: globals.h:168
@ ID3V2_2_0
Definition: globals.h:164
@ ID3V2_3_0
Definition: globals.h:166
Mpeg_Layers
Definition: globals.h:454
@ MPEGLAYER_I
Definition: globals.h:459
@ MPEGLAYER_II
Definition: globals.h:458
@ MPEGLAYER_FALSE
Definition: globals.h:455
@ MPEGLAYER_UNDEFINED
Definition: globals.h:456
@ MPEGLAYER_III
Definition: globals.h:457
Mp3_ChannelMode
Definition: globals.h:487
@ MP3CHANNELMODE_DUAL_CHANNEL
Definition: globals.h:491
@ MP3CHANNELMODE_STEREO
Definition: globals.h:489
@ MP3CHANNELMODE_SINGLE_CHANNEL
Definition: globals.h:492
@ MP3CHANNELMODE_FALSE
Definition: globals.h:488
@ MP3CHANNELMODE_JOINT_STEREO
Definition: globals.h:490
unsigned char uchar
Definition: globals.h:114
const int ID3LIB_MAJOR_VERSION
Definition: globals.cpp:41
uint16 unicode_t
Definition: globals.h:117
ID3_FrameID
Enumeration of the different types of frames recognized by id3lib.
Definition: globals.h:230
@ ID3FID_SYNCEDTEMPO
Synchronized tempo codes.
Definition: globals.h:259
@ ID3FID_LEADARTIST
Lead performer(s)/Soloist(s)
Definition: globals.h:292
@ ID3FID_CONTENTTYPE
Content type.
Definition: globals.h:263
@ ID3FID_BUFFERSIZE
Recommended buffer size.
Definition: globals.h:252
@ ID3FID_MIXARTIST
Interpreted, remixed, or otherwise modified by.
Definition: globals.h:295
@ ID3FID_BPM
BPM (beats per minute)
Definition: globals.h:261
@ ID3FID_GROUPINGREG
Group identification registration.
Definition: globals.h:242
@ ID3FID_ENCODERSETTINGS
Software/Hardware and settings used for encoding.
Definition: globals.h:308
@ ID3FID_SUBTITLE
Subtitle/Description refinement.
Definition: globals.h:279
@ ID3FID_MUSICIANCREDITLIST
Musician credits list.
Definition: globals.h:283
@ ID3FID_ORIGARTIST
Original artist(s)/performer(s)
Definition: globals.h:289
@ ID3FID_ISRC
ISRC (international standard recording code)
Definition: globals.h:307
@ ID3FID_AUDIOSEEKPOINT
Audio seek point index.
Definition: globals.h:234
@ ID3FID_COMPOSER
Composer.
Definition: globals.h:262
@ ID3FID_MPEGLOOKUP
MPEG location lookup table.
Definition: globals.h:246
@ ID3FID_PUBLISHER
Publisher.
Definition: globals.h:298
@ ID3FID_AUDIOCRYPTO
Audio encryption.
Definition: globals.h:232
@ ID3FID_EQUALIZATION2
Equalisation (2)
Definition: globals.h:238
@ ID3FID_ORIGRELEASETIME
Original release time.
Definition: globals.h:268
@ ID3FID_INVOLVEDPEOPLE
Involved people list.
Definition: globals.h:243
@ ID3FID_ORIGALBUM
Original album/movie/show title.
Definition: globals.h:286
@ ID3FID_PLAYLISTDELAY
Playlist delay.
Definition: globals.h:267
@ ID3FID_LANGUAGE
Language(s)
Definition: globals.h:281
@ ID3FID_WWWPUBLISHER
Official publisher webpage.
Definition: globals.h:322
@ ID3FID_ALBUMSORTORDER
Album sort order.
Definition: globals.h:304
@ ID3FID_MOOD
Mood.
Definition: globals.h:285
@ ID3FID_WWWARTIST
Official artist/performer webpage.
Definition: globals.h:318
@ ID3FID_WWWPAYMENT
Payment.
Definition: globals.h:321
@ ID3FID_LYRICIST
Lyricist/Text writer.
Definition: globals.h:274
@ ID3FID_FILETYPE
File type.
Definition: globals.h:275
@ ID3FID_WWWAUDIOSOURCE
Official audio source webpage.
Definition: globals.h:319
@ ID3FID_METACRYPTO
Encrypted meta frame (id3v2.2.x)
Definition: globals.h:324
@ ID3FID_WWWAUDIOFILE
Official audio file webpage.
Definition: globals.h:317
@ ID3FID_TIME
Time.
Definition: globals.h:276
@ ID3FID_METACOMPRESSION
Compressed meta frame (id3v2.2.1)
Definition: globals.h:325
@ ID3FID_LASTFRAMEID
Last field placeholder.
Definition: globals.h:326
@ ID3FID_ENCODEDBY
Encoded by.
Definition: globals.h:273
@ ID3FID_WWWUSER
User defined URL link.
Definition: globals.h:323
@ ID3FID_POPULARIMETER
Popularimeter.
Definition: globals.h:250
@ ID3FID_PARTINSET
Part of a set.
Definition: globals.h:296
@ ID3FID_PERFORMERSORTORDER
Performer sort order.
Definition: globals.h:305
@ ID3FID_UNIQUEFILEID
Unique file identifier.
Definition: globals.h:312
@ ID3FID_GENERALOBJECT
General encapsulated object.
Definition: globals.h:241
@ ID3FID_REVERB
Reverb.
Definition: globals.h:255
@ ID3FID_USERTEXT
User defined text information.
Definition: globals.h:310
@ ID3FID_BAND
Band/orchestra/accompaniment.
Definition: globals.h:293
@ ID3FID_SIGNATURE
Signature frame.
Definition: globals.h:257
@ ID3FID_FILEOWNER
File owner/licensee.
Definition: globals.h:291
@ ID3FID_COMMERCIAL
Commercial frame.
Definition: globals.h:236
@ ID3FID_INITIALKEY
Initial key.
Definition: globals.h:280
@ ID3FID_ALBUM
Album/Movie/Show title.
Definition: globals.h:260
@ ID3FID_COMMENT
Comments.
Definition: globals.h:235
@ ID3FID_NETRADIOOWNER
Internet radio station owner.
Definition: globals.h:302
@ ID3FID_SETSUBTITLE
Set subtitle.
Definition: globals.h:309
@ ID3FID_ORIGFILENAME
Original filename.
Definition: globals.h:287
@ ID3FID_EQUALIZATION
Equalization.
Definition: globals.h:239
@ ID3FID_COPYRIGHT
Copyright message.
Definition: globals.h:264
@ ID3FID_CRYPTOREG
Encryption method registration.
Definition: globals.h:237
@ ID3FID_RECORDINGDATES
Recording dates.
Definition: globals.h:300
@ ID3FID_SONGLEN
Length.
Definition: globals.h:282
@ ID3FID_POSITIONSYNC
Position synchronisation frame.
Definition: globals.h:251
@ ID3FID_WWWCOPYRIGHT
Copyright/Legal infromation.
Definition: globals.h:316
@ ID3FID_LINKEDINFO
Linked information.
Definition: globals.h:244
@ ID3FID_SIZE
Size.
Definition: globals.h:303
@ ID3FID_CONDUCTOR
Conductor/performer refinement.
Definition: globals.h:294
@ ID3FID_DATE
Date.
Definition: globals.h:265
@ ID3FID_YEAR
Year.
Definition: globals.h:311
@ ID3FID_NETRADIOSTATION
Internet radio station name.
Definition: globals.h:301
@ ID3FID_WWWCOMMERCIALINFO
Commercial information.
Definition: globals.h:315
@ ID3FID_TAGGINGTIME
Tagging time.
Definition: globals.h:271
@ ID3FID_MEDIATYPE
Media type.
Definition: globals.h:284
@ ID3FID_TERMSOFUSE
Terms of use.
Definition: globals.h:313
@ ID3FID_EVENTTIMING
Event timing codes.
Definition: globals.h:240
@ ID3FID_CONTENTGROUP
Content group description.
Definition: globals.h:277
@ ID3FID_NOFRAME
No known frame.
Definition: globals.h:231
@ ID3FID_OWNERSHIP
Ownership frame.
Definition: globals.h:247
@ ID3FID_PICTURE
Attached picture.
Definition: globals.h:233
@ ID3FID_TRACKNUM
Track number/Position in set.
Definition: globals.h:299
@ ID3FID_ORIGLYRICIST
Original lyricist(s)/text writer(s)
Definition: globals.h:288
@ ID3FID_VOLUMEADJ2
Relative volume adjustment (2)
Definition: globals.h:253
@ ID3FID_UNSYNCEDLYRICS
Unsynchronized lyric/text transcription.
Definition: globals.h:314
@ ID3FID_VOLUMEADJ
Relative volume adjustment.
Definition: globals.h:254
@ ID3FID_TITLESORTORDER
Title sort order.
Definition: globals.h:306
@ ID3FID_PRODUCEDNOTICE
Produced notice.
Definition: globals.h:297
@ ID3FID_ORIGYEAR
Original release year.
Definition: globals.h:290
@ ID3FID_RELEASETIME
Release time.
Definition: globals.h:270
@ ID3FID_INVOLVEDPEOPLE2
Involved people list.
Definition: globals.h:272
@ ID3FID_CDID
Music CD identifier.
Definition: globals.h:245
@ ID3FID_ENCODINGTIME
Encoding time.
Definition: globals.h:266
@ ID3FID_TITLE
Title/songname/content description.
Definition: globals.h:278
@ ID3FID_SYNCEDLYRICS
Synchronized lyric/text.
Definition: globals.h:258
@ ID3FID_SEEKFRAME
Seek frame.
Definition: globals.h:256
@ ID3FID_PRIVATE
Private frame.
Definition: globals.h:248
@ ID3FID_WWWRADIOPAGE
Official internet radio station homepage.
Definition: globals.h:320
@ ID3FID_PLAYCOUNTER
Play counter.
Definition: globals.h:249
@ ID3FID_RECORDINGTIME
Recording time.
Definition: globals.h:269
const int ID3LIB_MINOR_VERSION
Definition: globals.cpp:42
Mp3_Crc
Definition: globals.h:514
@ MP3CRC_MISMATCH
Definition: globals.h:516
@ MP3CRC_ERROR_SIZE
Definition: globals.h:515
@ MP3CRC_OK
Definition: globals.h:518
@ MP3CRC_NONE
Definition: globals.h:517
MP3_BitRates
Definition: globals.h:424
@ MP3BITRATE_NONE
Definition: globals.h:426
@ MP3BITRATE_80K
Definition: globals.h:435
@ MP3BITRATE_448K
Definition: globals.h:450
@ MP3BITRATE_416K
Definition: globals.h:449
@ MP3BITRATE_160K
Definition: globals.h:440
@ MP3BITRATE_288K
Definition: globals.h:445
@ MP3BITRATE_128K
Definition: globals.h:438
@ MP3BITRATE_176K
Definition: globals.h:441
@ MP3BITRATE_224K
Definition: globals.h:443
@ MP3BITRATE_8K
Definition: globals.h:427
@ MP3BITRATE_96K
Definition: globals.h:436
@ MP3BITRATE_48K
Definition: globals.h:432
@ MP3BITRATE_16K
Definition: globals.h:428
@ MP3BITRATE_352K
Definition: globals.h:447
@ MP3BITRATE_40K
Definition: globals.h:431
@ MP3BITRATE_192K
Definition: globals.h:442
@ MP3BITRATE_112K
Definition: globals.h:437
@ MP3BITRATE_24K
Definition: globals.h:429
@ MP3BITRATE_56K
Definition: globals.h:433
@ MP3BITRATE_FALSE
Definition: globals.h:425
@ MP3BITRATE_256K
Definition: globals.h:444
@ MP3BITRATE_32K
Definition: globals.h:430
@ MP3BITRATE_384K
Definition: globals.h:448
@ MP3BITRATE_64K
Definition: globals.h:434
@ MP3BITRATE_144K
Definition: globals.h:439
@ MP3BITRATE_320K
Definition: globals.h:446
ID3_FieldFlags
Definition: globals.h:342
@ ID3FF_ENCODABLE
Definition: globals.h:346
@ ID3FF_NONE
Definition: globals.h:343
@ ID3FF_CSTR
Definition: globals.h:344
@ ID3FF_TEXTLIST
Definition: globals.h:347
@ ID3FF_LIST
Definition: globals.h:345
#define ID3_ENUM(E)
Definition: globals.h:127
uint16 flags_t
Definition: globals.h:118
const char *const ID3LIB_RELEASE
#define ID3_STRUCT(S)
Definition: globals.h:128
const int ID3LIB_PATCH_VERSION
Definition: globals.cpp:43
Mpeg_Version
Definition: globals.h:463
@ MPEGVERSION_2_5
Definition: globals.h:465
@ MPEGVERSION_Reserved
Definition: globals.h:466
@ MPEGVERSION_FALSE
Definition: globals.h:464
@ MPEGVERSION_2
Definition: globals.h:467
@ MPEGVERSION_1
Definition: globals.h:468
const char *const ID3LIB_FULL_NAME
Definition: globals.cpp:40
const char *const ID3LIB_NAME
Definition: globals.cpp:38
ID3_FieldType
Enumeration of the types of field types.
Definition: globals.h:352
@ ID3FTY_INTEGER
Definition: globals.h:354
@ ID3FTY_TEXTSTRING
Definition: globals.h:356
@ ID3FTY_NUMTYPES
Definition: globals.h:357
@ ID3FTY_NONE
Definition: globals.h:353
@ ID3FTY_BINARY
Definition: globals.h:355
const int ID3LIB_INTERFACE_AGE
Definition: globals.cpp:44
ID3_PictureType
Definition: globals.h:393
@ ID3PT_COVERBACK
Definition: globals.h:398
@ ID3PT_BAND
Definition: globals.h:404
@ ID3PT_LYRICIST
Definition: globals.h:406
@ ID3PT_ARTIST
Definition: globals.h:402
@ ID3PT_REC_LOCATION
Definition: globals.h:407
@ ID3PT_PERFORMANCE
Definition: globals.h:409
@ ID3PT_OTHER
Definition: globals.h:394
@ ID3PT_COMPOSER
Definition: globals.h:405
@ ID3PT_OTHERICON
Definition: globals.h:396
@ ID3PT_CONDUCTOR
Definition: globals.h:403
@ ID3PT_MEDIA
Definition: globals.h:400
@ ID3PT_PUBLISHERLOGO
Definition: globals.h:414
@ ID3PT_ILLUSTRATION
Definition: globals.h:412
@ ID3PT_COVERFRONT
Definition: globals.h:397
@ ID3PT_VIDEO
Definition: globals.h:410
@ ID3PT_FISH
Definition: globals.h:411
@ ID3PT_ARTISTLOGO
Definition: globals.h:413
@ ID3PT_LEADARTIST
Definition: globals.h:401
@ ID3PT_LEAFLETPAGE
Definition: globals.h:399
@ ID3PT_RECORDING
Definition: globals.h:408
@ ID3PT_PNG32ICON
Definition: globals.h:395
ID3_V1Lengths
Definition: globals.h:330
@ ID3_V1_LEN_YEAR
Definition: globals.h:336
@ ID3_V1_LEN_ARTIST
Definition: globals.h:334
@ ID3_V1_LEN_ALBUM
Definition: globals.h:335
@ ID3_V1_LEN
Definition: globals.h:331
@ ID3_V1_LEN_ID
Definition: globals.h:332
@ ID3_V1_LEN_GENRE
Definition: globals.h:338
@ ID3_V1_LEN_TITLE
Definition: globals.h:333
@ ID3_V1_LEN_COMMENT
Definition: globals.h:337
ID3_V1Spec
Enumeration of the various id3 specifications.
Definition: globals.h:155
@ ID3V1_0
Definition: globals.h:156
@ ID3V1_NUMSPECS
Definition: globals.h:158
@ ID3V1_1
Definition: globals.h:157
ID3_TimeStampFormat
Definition: globals.h:418
@ ID3TSF_MS
Definition: globals.h:420
@ ID3TSF_FRAME
Definition: globals.h:419
MP3_BitRates bitrate
Definition: globals.h:525
Mpeg_Layers layer
Definition: globals.h:523
Mp3_ChannelMode channelmode
Definition: globals.h:526
bool original
Definition: globals.h:537
uint32 time
Definition: globals.h:534
Mp3_Emphasis emphasis
Definition: globals.h:528
bool copyrighted
Definition: globals.h:536
uint32 frames
Definition: globals.h:533
Mp3_Crc crc
Definition: globals.h:529
uint32 vbr_bitrate
Definition: globals.h:530
uint32 framesize
Definition: globals.h:532
Mpeg_Version version
Definition: globals.h:524
bool privatebit
Definition: globals.h:535
Mp3_ModeExt modeext
Definition: globals.h:527
uint32 frequency
Definition: globals.h:531