aboutsummaryrefslogtreecommitdiff
path: root/Src/id3v2/id3_dll_wrapper.cpp
diff options
context:
space:
mode:
authorJef <jef@targetspot.com>2024-09-24 08:54:57 -0400
committerJef <jef@targetspot.com>2024-09-24 08:54:57 -0400
commit20d28e80a5c861a9d5f449ea911ab75b4f37ad0d (patch)
tree12f17f78986871dd2cfb0a56e5e93b545c1ae0d0 /Src/id3v2/id3_dll_wrapper.cpp
parent537bcbc86291b32fc04ae4133ce4d7cac8ebe9a7 (diff)
downloadwinamp-20d28e80a5c861a9d5f449ea911ab75b4f37ad0d.tar.gz
Initial community commit
Diffstat (limited to 'Src/id3v2/id3_dll_wrapper.cpp')
-rw-r--r--Src/id3v2/id3_dll_wrapper.cpp481
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
+
+