1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180
|
// The authors have released ID3Lib as Public Domain (PD) and claim no copyright,
// patent or other intellectual property protection in this work. This means that
// it may be modified, redistributed and used in commercial and non-commercial
// software and hardware without restrictions. ID3Lib is distributed on an "AS IS"
// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.
//
// The ID3Lib authors encourage improvements and optimisations to be sent to the
// ID3Lib coordinator, currently Dirk Mahoney (dirk@id3.org). Approved
// submissions may be altered, and will be included and released under these terms.
//
// Mon Nov 23 18:34:01 1998
#ifndef ID3LIB_DLLHEADERS_H
#define ID3LIB_DLLHEADERS_H
typedef unsigned char uchar;
typedef short signed int ssint;
typedef short unsigned int suint;
typedef long signed int lsint;
typedef long unsigned int luint;
typedef long double ldoub;
typedef long unsigned int * bitset;
struct ID3_VerInfo
{
char name [ 30 ];
luint version,
revision;
};
enum ID3_TextEnc
{
ID3TE_ASCII = 0,
ID3TE_UNICODE
};
enum ID3_FieldID
{
ID3FN_NOFIELD = 0,
ID3FN_TEXTENC,
ID3FN_TEXT,
ID3FN_URL,
ID3FN_DATA,
ID3FN_DESCRIPTION,
ID3FN_OWNER,
ID3FN_EMAIL,
ID3FN_RATING,
ID3FN_FILENAME,
ID3FN_LANGUAGE,
ID3FN_PICTURETYPE,
ID3FN_IMAGEFORMAT,
ID3FN_MIMETYPE,
ID3FN_COUNTER,
ID3FN_SYMBOL,
ID3FN_VOLUMEADJ,
ID3FN_NUMBITS,
ID3FN_VOLCHGRIGHT,
ID3FN_VOLCHGLEFT,
ID3FN_PEAKVOLRIGHT,
ID3FN_PEAKVOLLEFT,
ID3FN_LASTFIELDID
};
enum ID3_FrameID
{
ID3FID_NOFRAME = 0,
ID3FID_ORIGALBUM,
ID3FID_PUBLISHER,
ID3FID_ENCODEDBY,
ID3FID_ENCODERSETTINGS,
ID3FID_ORIGFILENAME,
ID3FID_LANGUAGE,
ID3FID_PARTINSET,
ID3FID_DATE,
ID3FID_TIME,
ID3FID_RECORDINGDATES,
ID3FID_MEDIATYPE,
ID3FID_FILETYPE,
ID3FID_NETRADIOSTATION,
ID3FID_NETRADIOOWNER,
ID3FID_LYRICIST,
ID3FID_ORIGARTIST,
ID3FID_ORIGLYRICIST,
ID3FID_SUBTITLE,
ID3FID_MIXARTIST,
ID3FID_USERTEXT,
ID3FID_CONTENTGROUP,
ID3FID_TITLE,
ID3FID_LEADARTIST,
ID3FID_BAND,
ID3FID_ALBUM,
ID3FID_YEAR,
ID3FID_CONDUCTOR,
ID3FID_COMPOSER,
ID3FID_COPYRIGHT,
ID3FID_CONTENTTYPE,
ID3FID_TRACKNUM,
ID3FID_COMMENT,
ID3FID_WWWAUDIOFILE,
ID3FID_WWWARTIST,
ID3FID_WWWAUDIOSOURCE,
ID3FID_WWWCOMMERCIALINFO,
ID3FID_WWWCOPYRIGHT,
ID3FID_WWWPUBLISHER,
ID3FID_WWWPAYMENT,
ID3FID_WWWRADIOPAGE,
ID3FID_WWWUSER,
ID3FID_INVOLVEDPEOPLE,
ID3FID_UNSYNCEDLYRICS,
ID3FID_PICTURE,
ID3FID_GENERALOBJECT,
ID3FID_UNIQUEFILEID,
ID3FID_PLAYCOUNTER,
ID3FID_POPULARIMETER,
ID3FID_GROUPINGREG,
ID3FID_CRYPTOREG
};
class ID3_Field;
class ID3_Frame;
class ID3_Tag;
void ID3_GetVersion ( ID3_VerInfo *info );
// tag wrappers
ID3_Tag *ID3Tag_New ( void );
void ID3Tag_Delete ( ID3_Tag *tag );
void ID3Tag_Clear ( ID3_Tag *tag );
bool ID3Tag_HasChanged ( ID3_Tag *tag );
void ID3Tag_SetUnsync ( ID3_Tag *tag, bool unsync );
void ID3Tag_SetExtendedHeader ( ID3_Tag *tag, bool ext );
void ID3Tag_SetCompression ( ID3_Tag *tag, bool comp );
void ID3Tag_SetPadding ( ID3_Tag *tag, bool pad );
void ID3Tag_AddFrame ( ID3_Tag *tag, ID3_Frame *frame );
void ID3Tag_AddFrames ( ID3_Tag *tag, ID3_Frame *frames, luint num );
void ID3Tag_RemoveFrame ( ID3_Tag *tag, ID3_Frame *frame );
void ID3Tag_Parse ( ID3_Tag *tag, uchar header[ ID3_TAGHEADERSIZE ], uchar *buffer );
luint ID3Tag_Link ( ID3_Tag *tag, char *fileName );
void ID3Tag_Update ( ID3_Tag *tag );
void ID3Tag_Strip ( ID3_Tag *tag, bool v1Also );
ID3_Frame *ID3Tag_FindFrameWithID ( ID3_Tag *tag, ID3_FrameID id );
ID3_Frame *ID3Tag_FindFrameWithINT ( ID3_Tag *tag, ID3_FrameID id, ID3_FieldID fld, luint data );
ID3_Frame *ID3Tag_FindFrameWithASCII ( ID3_Tag *tag, ID3_FrameID id, ID3_FieldID fld, char *data );
ID3_Frame *ID3Tag_FindFrameWithUNICODE ( ID3_Tag *tag, ID3_FrameID id, ID3_FieldID fld, wchar_t *data );
ID3_Frame *ID3Tag_GetFrameNum ( ID3_Tag *tag, luint num );
luint ID3Tag_NumFrames ( ID3_Tag *tag );
// frame wrappers
void ID3Frame_Clear ( ID3_Frame *frame );
void ID3Frame_SetID ( ID3_Frame *frame, ID3_FrameID id );
ID3_FrameID ID3Frame_GetID ( ID3_Frame *frame );
ID3_Field *ID3Frame_GetField ( ID3_Frame *frame, ID3_FieldID name );
// field wrappers
void ID3Field_Clear ( ID3_Field *field );
luint ID3Field_Size ( ID3_Field *field );
luint ID3Field_GetNumTextItems ( ID3_Field *field );
void ID3Field_SetINT ( ID3_Field *field, luint data );
luint ID3Field_GetINT ( ID3_Field *field );
void ID3Field_SetUNICODE ( ID3_Field *field, wchar_t *string );
luint ID3Field_GetUNICODE ( ID3_Field *field, wchar_t *buffer, luint maxChars, luint itemNum );
void ID3Field_AddUNICODE ( ID3_Field *field, wchar_t *string );
void ID3Field_SetASCII ( ID3_Field *field, char *string );
luint ID3Field_GetASCII ( ID3_Field *field, char *buffer, luint maxChars, luint itemNum );
void ID3Field_AddASCII ( ID3_Field *field, char *string );
void ID3Field_SetBINARY ( ID3_Field *field, uchar *data, luint size );
void ID3Field_GetBINARY ( ID3_Field *field, uchar *buffer, luint buffLength );
void ID3Field_FromFile ( ID3_Field *field, char *fileName );
void ID3Field_ToFile ( ID3_Field *field, char *fileName );
#endif
|