summaryrefslogtreecommitdiff
path: root/plugins/ape/apewrapper.cpp
diff options
context:
space:
mode:
authorGravatar waker <wakeroid@gmail.com>2009-08-30 22:44:39 +0200
committerGravatar waker <wakeroid@gmail.com>2009-08-30 22:44:39 +0200
commit19dddccb75541dcb8317f73bfbef31e0a357bea5 (patch)
treef4c8ffe25a870315031f2246c70df2538a4a4804 /plugins/ape/apewrapper.cpp
parent7bb028b001df308a1934eaf5566c45c13dca6044 (diff)
ape support WIP
Diffstat (limited to 'plugins/ape/apewrapper.cpp')
-rw-r--r--plugins/ape/apewrapper.cpp39
1 files changed, 39 insertions, 0 deletions
diff --git a/plugins/ape/apewrapper.cpp b/plugins/ape/apewrapper.cpp
new file mode 100644
index 00000000..8cb46268
--- /dev/null
+++ b/plugins/ape/apewrapper.cpp
@@ -0,0 +1,39 @@
+#include <mac/All.h>
+#include <mac/GlobalFunctions.h>
+#include <mac/MACLib.h>
+#include <mac/CharacterHelper.h>
+#include <mac/APETag.h>
+#include "apewrapper.h"
+
+void *
+ape_decompress_create (const char *fname) {
+ int ret;
+ CSmartPtr<wchar_t> str;
+ str.Assign (GetUTF16FromUTF8 ((const str_utf8 *)fname), TRUE);
+ IAPEDecompress *dec = CreateIAPEDecompress(str, &ret);
+ return dec;
+}
+
+void
+ape_decompress_destroy (void *d) {
+ IAPEDecompress *dec = (IAPEDecompress *)d;
+ delete dec;
+}
+
+int
+ape_decompress_info (void *d, int id) {
+ IAPEDecompress *dec = (IAPEDecompress *)d;
+ return dec->GetInfo ((APE_DECOMPRESS_FIELDS)id);
+}
+
+int
+ape_decompress_getdata (void *d, char *buffer, int nblocks, int *retr) {
+ IAPEDecompress *dec = (IAPEDecompress *)d;
+ return dec->GetData (buffer, nblocks, retr);
+}
+
+int
+ape_decompress_seek (void *d, int nblockoffs) {
+ IAPEDecompress *dec = (IAPEDecompress *)d;
+ return dec->Seek (nblockoffs);
+}