diff options
author | 2009-08-30 22:44:39 +0200 | |
---|---|---|
committer | 2009-08-30 22:44:39 +0200 | |
commit | 19dddccb75541dcb8317f73bfbef31e0a357bea5 (patch) | |
tree | f4c8ffe25a870315031f2246c70df2538a4a4804 /plugins/ape/apewrapper.cpp | |
parent | 7bb028b001df308a1934eaf5566c45c13dca6044 (diff) |
ape support WIP
Diffstat (limited to 'plugins/ape/apewrapper.cpp')
-rw-r--r-- | plugins/ape/apewrapper.cpp | 39 |
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); +} |