1 // =================================
 2 // Copyright (c) 2021 Seppo Laakko
 3 // Distributed under the MIT license
 4 // =================================
 5 
 6 #ifndef CMAJOR_RT_COMPRESSION_INCLUDED
 7 #define CMAJOR_RT_COMPRESSION_INCLUDED
 8 #include <cmajor/rt/RtApi.hpp>
 9 #include <stdint.h>
10 
11 //  ZLIB:
12 
13 extern "C" int32_t RtInitZlib(int32_t  mode, int32_t  level, void** handle);
14 extern "C" void RtDoneZlib(int32_t  mode, void* handle);
15 extern "C" void RtSetInputZlib(void* inChunk, uint32_t inAvail, void* handle);
16 extern "C" int32_t RtDeflateZlib(void* outChunk, uint32_t outChunkSize, uint32_t* have, uint32_t* outAvail, void* handle, int32_t flush);
17 extern "C" int32_t RtInflateZlib(void* outChunk, uint32_t outChunkSize, uint32_t* have, uint32_t* outAvail, uint32_t* inAvail, void* handle);
18 extern "C" const char* RtRetvalStrZlib(int32_t retVal);
19 
20 // BZIP2:
21 
22 extern "C" int32_t RtInitBZip2(int32_t mode, int32_t compressionLevel, int32_t compressionWorkFactor, void** handle);
23 extern "C" void RtDoneBZip2(int32_t mode, void* handle);
24 extern "C" void RtSetInputBZip2(void* inChunk, uint32_t inAvail, void* handle);
25 extern "C" int32_t RtCompressBZip2(void* outChunk, uint32_t outChunkSize, uint32_t* have, uint32_t* outAvail, void* handle, int32_t action);
26 extern "C" int32_t RtDecompressBZip2(void* outChunk, uint32_t outChunkSize, uint32_t* have, uint32_t* outAvail, uint32_t* inAvail, void* handle);
27 extern "C" const char* RtRetvalStrBZip2(int32_t retVal);
28 
29 
30 #endif // CMAJOR_RT_COMPRESSION_INCLUDED