diff options
author | Jef <jef@targetspot.com> | 2024-09-24 08:54:57 -0400 |
---|---|---|
committer | Jef <jef@targetspot.com> | 2024-09-24 08:54:57 -0400 |
commit | 20d28e80a5c861a9d5f449ea911ab75b4f37ad0d (patch) | |
tree | 12f17f78986871dd2cfb0a56e5e93b545c1ae0d0 /Src/id3v2/id3_dll_wrapper.cpp | |
parent | 537bcbc86291b32fc04ae4133ce4d7cac8ebe9a7 (diff) | |
download | winamp-20d28e80a5c861a9d5f449ea911ab75b4f37ad0d.tar.gz |
Initial community commit
Diffstat (limited to 'Src/id3v2/id3_dll_wrapper.cpp')
-rw-r--r-- | Src/id3v2/id3_dll_wrapper.cpp | 481 |
1 files changed, 481 insertions, 0 deletions
diff --git a/Src/id3v2/id3_dll_wrapper.cpp b/Src/id3v2/id3_dll_wrapper.cpp new file mode 100644 index 00000000..e8434410 --- /dev/null +++ b/Src/id3v2/id3_dll_wrapper.cpp @@ -0,0 +1,481 @@ +// 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 + + +#include "id3_tag.h" + + +#ifdef __DLL + + +#include <string.h> + + +struct ID3_VerInfo +{ +char name [ 30 ]; +luint version, + revision; +}; + + + +// misc wrappers + +CDLLEXPORT +void ID3_GetVersion ( ID3_VerInfo *info ) +{ + info->version = ID3LIB_VER; + info->revision = ID3LIB_REV; + strcpy ( info->name, ID3LIB_NAME ); + + return; +} + + +// tag wrappers + +CDLLEXPORT +ID3_Tag *ID3Tag_New ( void ) +{ + return new ID3_Tag; +} + + +CDLLEXPORT +void ID3Tag_Delete ( ID3_Tag *tag ) +{ + if ( tag ) + delete tag; + + return; +} + + +CDLLEXPORT +void ID3Tag_Clear ( ID3_Tag *tag ) +{ + if ( tag ) + tag->Clear(); + + return; +} + + +CDLLEXPORT +bool ID3Tag_HasChanged ( ID3_Tag *tag ) +{ + bool changed = false; + + if ( tag ) + changed = tag->HasChanged(); + + return changed; +} + + +CDLLEXPORT +void ID3Tag_SetUnsync ( ID3_Tag *tag, bool unsync ) +{ + if ( tag ) + tag->SetUnsync ( unsync ); + + return; +} + + +CDLLEXPORT +void ID3Tag_SetExtendedHeader ( ID3_Tag *tag, bool ext ) +{ + if ( tag ) + tag->SetExtendedHeader ( ext ); + + return; +} + + +CDLLEXPORT +void ID3Tag_SetCompression ( ID3_Tag *tag, bool comp ) +{ + if ( tag ) + tag->SetCompression ( comp ); + + return; +} + + +CDLLEXPORT +void ID3Tag_SetPadding ( ID3_Tag *tag, bool pad ) +{ + if ( tag ) + tag->SetPadding ( pad ); + + return; +} + + +CDLLEXPORT +void ID3Tag_AddFrame ( ID3_Tag *tag, ID3_Frame *frame ) +{ + if ( tag ) + tag->AddFrame ( frame ); + + return; +} + + +CDLLEXPORT +void ID3Tag_AddFrames ( ID3_Tag *tag, ID3_Frame *frames, luint num ) +{ + if ( tag ) + tag->AddFrames ( frames, num ); + + return; +} + + +CDLLEXPORT +void ID3Tag_RemoveFrame ( ID3_Tag *tag, ID3_Frame *frame ) +{ + if ( tag ) + tag->RemoveFrame ( frame ); + + return; +} + + +CDLLEXPORT +void ID3Tag_Parse ( ID3_Tag *tag, uchar header[ ID3_TAGHEADERSIZE ], uchar *buffer ) +{ + if ( tag ) + tag->Parse ( header, buffer ); + + return; +} + + +CDLLEXPORT +luint ID3Tag_Link ( ID3_Tag *tag, char *fileName ) +{ + luint offset = 0; + + if ( tag ) + offset = tag->Link ( fileName ); + + return offset; +} + + +CDLLEXPORT +void ID3Tag_Update ( ID3_Tag *tag ) +{ + if ( tag ) + tag->Update(); + + return; +} + + +CDLLEXPORT +void ID3Tag_Strip ( ID3_Tag *tag, bool v1Also ) +{ + if ( tag ) + tag->Strip ( v1Also ); + + return; +} + + +CDLLEXPORT +ID3_Frame *ID3Tag_FindFrameWithID ( ID3_Tag *tag, ID3_FrameID id ) +{ + ID3_Frame *frame = NULL; + + if ( tag ) + frame = tag->Find ( id ); + + return frame; +} + + +CDLLEXPORT +ID3_Frame *ID3Tag_FindFrameWithINT ( ID3_Tag *tag, ID3_FrameID id, ID3_FieldID fld, luint data ) +{ + ID3_Frame *frame = NULL; + + if ( tag ) + frame = tag->Find ( id, fld, data ); + + return frame; +} + + +CDLLEXPORT +ID3_Frame *ID3Tag_FindFrameWithASCII ( ID3_Tag *tag, ID3_FrameID id, ID3_FieldID fld, char *data ) +{ + ID3_Frame *frame = NULL; + + if ( tag ) + frame = tag->Find ( id, fld, data ); + + return frame; +} + + +CDLLEXPORT +ID3_Frame *ID3Tag_FindFrameWithUNICODE ( ID3_Tag *tag, ID3_FrameID id, ID3_FieldID fld, wchar_t *data ) +{ + ID3_Frame *frame = NULL; + + if ( tag ) + frame = tag->Find ( id, fld, data ); + + return frame; +} + + +CDLLEXPORT +luint ID3Tag_NumFrames ( ID3_Tag *tag ) +{ + luint num = 0; + + if ( tag ) + num = tag->NumFrames(); + + return num; +} + + +CDLLEXPORT +ID3_Frame *ID3Tag_GetFrameNum ( ID3_Tag *tag, luint num ) +{ + ID3_Frame *frame = NULL; + + if ( tag ) + frame = tag->GetFrameNum ( num ); + + return frame; +} + + +// frame wrappers + +CDLLEXPORT +void ID3Frame_Clear ( ID3_Frame *frame ) +{ + if ( frame ) + frame->Clear(); + + return; +} + + +CDLLEXPORT +void ID3Frame_SetID ( ID3_Frame *frame, ID3_FrameID id ) +{ + if ( frame ) + frame->SetID ( id ); + + return; +} + + +CDLLEXPORT +ID3_FrameID ID3Frame_GetID ( ID3_Frame *frame ) +{ + ID3_FrameID id = ID3FID_NOFRAME; + + if ( frame ) + id = frame->GetID(); + + return id; +} + + +CDLLEXPORT +ID3_Field *ID3Frame_GetField ( ID3_Frame *frame, ID3_FieldID name ) +{ + ID3_Field *field = NULL; + + if ( frame ) + field = &( frame->Field ( name ) ); + + return field; +} + + +// field wrappers + + +CDLLEXPORT +void ID3Field_Clear ( ID3_Field *field ) +{ + if ( field ) + field->Clear(); + + return; +} + + +CDLLEXPORT +luint ID3Field_Size ( ID3_Field *field ) +{ + luint size = 0; + + if ( field ) + size = field->Size(); + + return size; +} + + +CDLLEXPORT +luint ID3Field_GetNumTextItems ( ID3_Field *field ) +{ + luint items = 0; + + if ( field ) + items = field->GetNumTextItems(); + + return items; +} + + +CDLLEXPORT +void ID3Field_SetINT ( ID3_Field *field, luint data ) +{ + if ( field ) + field->Set ( data ); + + return; +} + + +CDLLEXPORT +luint ID3Field_GetINT ( ID3_Field *field ) +{ + luint value = 0; + + if ( field ) + value = field->Get(); + + return value; +} + + +CDLLEXPORT +void ID3Field_SetUNICODE ( ID3_Field *field, wchar_t *string ) +{ + if ( field ) + field->Set ( string ); + + return; +} + + +CDLLEXPORT +luint ID3Field_GetUNICODE ( ID3_Field *field, wchar_t *buffer, luint maxChars, luint itemNum ) +{ + luint numChars = 0; + + if ( field ) + numChars = field->Get ( buffer, maxChars, itemNum ); + + return numChars; +} + + +CDLLEXPORT +void ID3Field_AddUNICODE ( ID3_Field *field, wchar_t *string ) +{ + if ( field ) + field->Add ( string ); + + return; +} + + +CDLLEXPORT +void ID3Field_SetASCII ( ID3_Field *field, char *string ) +{ + if ( field ) + field->Set ( string ); + + return; +} + + +CDLLEXPORT +luint ID3Field_GetASCII ( ID3_Field *field, char *buffer, luint maxChars, luint itemNum ) +{ + luint numChars = 0; + + if ( field ) + numChars = field->Get ( buffer, maxChars, itemNum ); + + return numChars; +} + + +CDLLEXPORT +void ID3Field_AddASCII ( ID3_Field *field, char *string ) +{ + if ( field ) + field->Add ( string ); + + return; +} + + +CDLLEXPORT +void ID3Field_SetBINARY ( ID3_Field *field, uchar *data, luint size ) +{ + if ( field ) + field->Set ( data, size ); + + return; +} + + +CDLLEXPORT +void ID3Field_GetBINARY ( ID3_Field *field, uchar *buffer, luint buffLength ) +{ + if ( field ) + field->Get ( buffer, buffLength ); + + return; +} + + +CDLLEXPORT +void ID3Field_FromFile ( ID3_Field *field, char *fileName ) +{ + if ( field ) + field->FromFile ( fileName ); + + return; +} + + +CDLLEXPORT +void ID3Field_ToFile ( ID3_Field *field, char *fileName ) +{ + if ( field ) + field->ToFile ( fileName ); + + return; +} + + +#endif + + |