Athena IO Library
Compression.hpp
1 #ifndef COMPRESSION_HPP
2 #define COMPRESSION_HPP
3 
4 #include "athena/Global.hpp"
5 
6 namespace athena
7 {
8 namespace io
9 {
10 namespace Compression
11 {
12 // Zlib compression
13 atInt32 decompressZlib(const atUint8* src, atUint32 srcLen, atUint8* dst, atUint32 dstLen);
14 atInt32 compressZlib(const atUint8* src, atUint32 srcLen, atUint8* dst, atUint32 dstLen);
15 
16 // lzo compression
17 atInt32 decompressLZO(const atUint8* source, atInt32 sourceSize, atUint8* dst, atInt32& dstSize);
18 
19 // Yaz0 encoding
20 atUint32 yaz0Decode(const atUint8* src, atUint8* dst, atUint32 uncompressedSize);
21 atUint32 yaz0Encode(const atUint8* src, atUint32 srcSize, atUint8* data);
22 
23 atUint32 decompressLZ77(const atUint8* src, atUint32 srcLen, atUint8** dst);
24 atUint32 compressLZ77(const atUint8* src, atUint32 srcLen, atUint8** dst, bool extended = false);
25 }
26 }
27 }
28 #endif // COMPRESSION_HPP