mirror of https://github.com/AxioDL/lzokay.git
Add a C wrapper for decompression
This commit is contained in:
parent
671e2b9864
commit
8ecaec4c70
|
@ -52,3 +52,5 @@ install(
|
|||
FILES "${config_file}" "${version_config_file}"
|
||||
DESTINATION ${config_install_dir}
|
||||
)
|
||||
|
||||
add_subdirectory("lzokay-c")
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
project(lzokay-c VERSION 0.1 LANGUAGES C CXX)
|
||||
|
||||
add_library(lzokay-c lzokay-c.cpp lzokay-c.h)
|
||||
target_link_libraries(lzokay-c PRIVATE lzokay)
|
||||
set_target_properties(lzokay-c PROPERTIES CXX_STANDARD 14)
|
|
@ -0,0 +1,20 @@
|
|||
#include "lzokay-c.h"
|
||||
#include "../lzokay.hpp"
|
||||
|
||||
static_assert(EResult_LookbehindOverrun == lzokay_EResult(lzokay::EResult::LookbehindOverrun), "LookbehindOverrun mismatch");
|
||||
static_assert(EResult_OutputOverrun == lzokay_EResult(lzokay::EResult::OutputOverrun), "OutputOverrun mismatch");
|
||||
static_assert(EResult_InputOverrun == lzokay_EResult(lzokay::EResult::InputOverrun), "InputOverrun mismatch");
|
||||
static_assert(EResult_Error == lzokay_EResult(lzokay::EResult::Error), "Error mismatch");
|
||||
static_assert(EResult_Success == lzokay_EResult(lzokay::EResult::Success), "Success mismatch");
|
||||
static_assert(EResult_InputNotConsumed == lzokay_EResult(lzokay::EResult::InputNotConsumed), "InputNotConsumed mismatch");
|
||||
|
||||
extern "C"
|
||||
lzokay_EResult lzokay_decompress(const uint8_t * src, size_t src_size,
|
||||
uint8_t *output, size_t *output_len)
|
||||
{
|
||||
size_t needed_size = 0;
|
||||
lzokay::EResult error =
|
||||
lzokay::decompress(src, src_size, output, *output_len, needed_size);
|
||||
*output_len = needed_size;
|
||||
return lzokay_EResult(error);
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
#ifndef LZOKAY_C_INCLUDED
|
||||
#define LZOKAY_C_INCLUDED
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stddef.h>
|
||||
|
||||
typedef enum {
|
||||
EResult_LookbehindOverrun = -4,
|
||||
EResult_OutputOverrun = -3,
|
||||
EResult_InputOverrun = -2,
|
||||
EResult_Error = -1,
|
||||
EResult_Success = 0,
|
||||
EResult_InputNotConsumed = 1,
|
||||
} lzokay_EResult;
|
||||
|
||||
lzokay_EResult lzokay_decompress(const uint8_t * src, size_t src_size,
|
||||
uint8_t *output, size_t *output_len);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // LZOKAY_C_INCLUDED
|
Loading…
Reference in New Issue