mirror of
https://github.com/WinampDesktop/winamp.git
synced 2024-11-28 14:10:48 +01:00
181 lines
5.2 KiB
C++
181 lines
5.2 KiB
C++
// 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
|
|
|
|
|