]> wimlib.net Git - wimlib/blobdiff - src/compress_chunk.c
Add new files for chunk compression
[wimlib] / src / compress_chunk.c
diff --git a/src/compress_chunk.c b/src/compress_chunk.c
new file mode 100644 (file)
index 0000000..0f8b6c4
--- /dev/null
@@ -0,0 +1,36 @@
+#ifdef HAVE_CONFIG_H
+#  include "config.h"
+#endif
+
+#include "wimlib.h"
+#include "wimlib/compress_chunks.h"
+#include "wimlib/error.h"
+#include "wimlib/assert.h"
+
+unsigned
+compress_chunk(const void * uncompressed_data,
+              unsigned uncompressed_len,
+              void *compressed_data,
+              int out_ctype,
+              struct wimlib_lzx_context *comp_ctx)
+{
+       switch (out_ctype) {
+       case WIMLIB_COMPRESSION_TYPE_XPRESS:
+               return wimlib_xpress_compress(uncompressed_data,
+                                             uncompressed_len,
+                                             compressed_data);
+       case WIMLIB_COMPRESSION_TYPE_LZX:
+               return wimlib_lzx_compress2(uncompressed_data,
+                                           uncompressed_len,
+                                           compressed_data,
+                                           comp_ctx);
+       case WIMLIB_COMPRESSION_TYPE_LZMS:
+               WARNING("LZMS compression not implemented!  Writing uncompressed data.");
+               return 0;
+
+       default:
+               wimlib_assert(0);
+               WARNING("Unknown compression type!");
+               return 0;
+       }
+}