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