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#ifndef __cplusplus
86
87typedef int bool;
88# define false (0)
89# define true (!false)
90
91#endif /* __cplusplus */
92
93ID3_C_VAR const char * const ID3LIB_NAME;
94ID3_C_VAR const char * const ID3LIB_RELEASE;
95ID3_C_VAR const char * const ID3LIB_FULL_NAME;
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
114typedef unsigned char uchar;
115typedef long unsigned int luint;
116
117typedef uint16 unicode_t;
118typedef 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
160
171
193
225
230{
231 /* ???? */ ID3FID_NOFRAME = 0,
233 /* APIC */ ID3FID_PICTURE,
235 /* COMM */ ID3FID_COMMENT,
236 /* COMR */ ID3FID_COMMERCIAL,
237 /* ENCR */ ID3FID_CRYPTOREG,
244 /* LINK */ ID3FID_LINKEDINFO,
245 /* MCDI */ ID3FID_CDID,
246 /* MLLT */ ID3FID_MPEGLOOKUP,
247 /* OWNE */ ID3FID_OWNERSHIP,
248 /* PRIV */ ID3FID_PRIVATE,
252 /* RBUF */ ID3FID_BUFFERSIZE,
253 /* RVA2 */ ID3FID_VOLUMEADJ2,
254 /* RVAD */ ID3FID_VOLUMEADJ,
255 /* RVRB */ ID3FID_REVERB,
256 /* SEEK */ ID3FID_SEEKFRAME,
257 /* SIGN */ ID3FID_SIGNATURE,
260 /* TALB */ ID3FID_ALBUM,
261 /* TBPM */ ID3FID_BPM,
262 /* TCOM */ ID3FID_COMPOSER,
264 /* TCOP */ ID3FID_COPYRIGHT,
265 /* TDAT */ ID3FID_DATE,
273 /* TENC */ ID3FID_ENCODEDBY,
274 /* TEXT */ ID3FID_LYRICIST,
275 /* TFLT */ ID3FID_FILETYPE,
276 /* TIME */ ID3FID_TIME,
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,
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,
303 /* TSIZ */ ID3FID_SIZE,
307 /* TSRC */ ID3FID_ISRC,
310 /* TXXX */ ID3FID_USERTEXT,
311 /* TYER */ ID3FID_YEAR,
313 /* USER */ ID3FID_TERMSOFUSE,
318 /* WOAR */ ID3FID_WWWARTIST,
321 /* WPAY */ ID3FID_WWWPAYMENT,
323 /* WXXX */ ID3FID_WWWUSER,
327};
328
340
349
359
380
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
422
452
461
470
485
494
503
512
520
539
540#define ID3_NR_OF_V1_GENRES 148
541
542static 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
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: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
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
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
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
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
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
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
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