]> wimlib.net Git - wimlib/blobdiff - src/compat.c
Add deprecated compression/decompression functions
[wimlib] / src / compat.c
diff --git a/src/compat.c b/src/compat.c
new file mode 100644 (file)
index 0000000..2de1c35
--- /dev/null
@@ -0,0 +1,91 @@
+/* TODO: Deprecated stuff to delete when shared library version is bumped up  */
+
+#include "wimlib.h"
+#include "wimlib/compiler.h"
+
+WIMLIBAPI int
+wimlib_lzx_set_default_params(const struct wimlib_lzx_params_old *params)
+{
+       return wimlib_set_default_compressor_params(WIMLIB_COMPRESSION_TYPE_LZX,
+                                                   (const struct wimlib_compressor_params_header*)params);
+}
+
+WIMLIBAPI int
+wimlib_lzx_alloc_context(const struct wimlib_lzx_params_old *params,
+                        struct wimlib_lzx_context_old **ctx_pp)
+{
+       wimlib_lzx_free_context(*ctx_pp);
+       *ctx_pp = NULL;
+       return wimlib_create_compressor(WIMLIB_COMPRESSION_TYPE_LZX,
+                                       32768,
+                                       (const struct wimlib_compressor_params_header*)params,
+                                       (struct wimlib_compressor**)ctx_pp);
+}
+
+WIMLIBAPI void
+wimlib_lzx_free_context(struct wimlib_lzx_context_old *ctx)
+{
+       wimlib_free_compressor((struct wimlib_compressor*)ctx);
+}
+
+WIMLIBAPI unsigned
+wimlib_lzx_compress2(const void *udata, unsigned ulen, void *cdata,
+                    struct wimlib_lzx_context_old *ctx)
+{
+       return wimlib_compress(udata, ulen, cdata, ulen - 1,
+                              (struct wimlib_compressor*)ctx);
+}
+
+static unsigned
+do_compress(const void *udata, unsigned ulen, void *cdata, int ctype)
+{
+       struct wimlib_compressor *c;
+       unsigned clen;
+
+       if (wimlib_create_compressor(ctype, 32768, NULL, &c))
+               return -1;
+       clen = wimlib_compress(udata, ulen, cdata, ulen - 1, c);
+       wimlib_free_compressor(c);
+       return clen;
+}
+
+WIMLIBAPI unsigned
+wimlib_lzx_compress(const void *udata, unsigned ulen, void *cdata)
+{
+       return do_compress(udata, ulen, cdata, WIMLIB_COMPRESSION_TYPE_LZX);
+}
+
+WIMLIBAPI unsigned
+wimlib_xpress_compress(const void *udata, unsigned ulen, void *cdata)
+{
+       return do_compress(udata, ulen, cdata, WIMLIB_COMPRESSION_TYPE_XPRESS);
+}
+
+static int
+do_decompress(const void *cdata, unsigned clen,
+             void *udata, unsigned ulen, int ctype)
+{
+       int ret;
+       struct wimlib_decompressor *dec;
+
+       if (wimlib_create_decompressor(ctype, 32768, NULL, &dec))
+               return -1;
+       ret = wimlib_decompress(cdata, clen, udata, ulen, dec);
+       wimlib_free_decompressor(dec);
+       return ret;
+}
+
+WIMLIBAPI int
+wimlib_lzx_decompress(const void *cdata, unsigned clen,
+                     void *udata, unsigned ulen)
+{
+       return do_decompress(cdata, clen, udata, ulen, WIMLIB_COMPRESSION_TYPE_LZX);
+}
+
+
+WIMLIBAPI int
+wimlib_xpress_decompress(const void *cdata, unsigned clen,
+                        void *udata, unsigned ulen)
+{
+       return do_decompress(cdata, clen, udata, ulen, WIMLIB_COMPRESSION_TYPE_XPRESS);
+}