| /* Lzma2Dec.h -- LZMA2 Decoder | |
| 2013-01-18 : Igor Pavlov : Public domain */ | |
| #ifndef __LZMA2_DEC_H | |
| #define __LZMA2_DEC_H | |
| #include "LzmaDec.h" | |
| EXTERN_C_BEGIN | |
| /* ---------- State Interface ---------- */ | |
| typedef struct | |
| { | |
| CLzmaDec decoder; | |
| UInt32 packSize; | |
| UInt32 unpackSize; | |
| int state; | |
| Byte control; | |
| Bool needInitDic; | |
| Bool needInitState; | |
| Bool needInitProp; | |
| } CLzma2Dec; | |
| #define Lzma2Dec_Construct(p) LzmaDec_Construct(&(p)->decoder) | |
| #define Lzma2Dec_FreeProbs(p, alloc) LzmaDec_FreeProbs(&(p)->decoder, alloc); | |
| #define Lzma2Dec_Free(p, alloc) LzmaDec_Free(&(p)->decoder, alloc); | |
| SRes Lzma2Dec_AllocateProbs(CLzma2Dec *p, Byte prop, ISzAlloc *alloc); | |
| SRes Lzma2Dec_Allocate(CLzma2Dec *p, Byte prop, ISzAlloc *alloc); | |
| void Lzma2Dec_Init(CLzma2Dec *p); | |
| /* | |
| finishMode: | |
| It has meaning only if the decoding reaches output limit (*destLen or dicLimit). | |
| LZMA_FINISH_ANY - use smallest number of input bytes | |
| LZMA_FINISH_END - read EndOfStream marker after decoding | |
| Returns: | |
| SZ_OK | |
| status: | |
| LZMA_STATUS_FINISHED_WITH_MARK | |
| LZMA_STATUS_NOT_FINISHED | |
| LZMA_STATUS_NEEDS_MORE_INPUT | |
| SZ_ERROR_DATA - Data error | |
| */ | |
| SRes Lzma2Dec_DecodeToDic(CLzma2Dec *p, SizeT dicLimit, | |
| const Byte *src, SizeT *srcLen, ELzmaFinishMode finishMode, ELzmaStatus *status); | |
| SRes Lzma2Dec_DecodeToBuf(CLzma2Dec *p, Byte *dest, SizeT *destLen, | |
| const Byte *src, SizeT *srcLen, ELzmaFinishMode finishMode, ELzmaStatus *status); | |
| /* ---------- One Call Interface ---------- */ | |
| /* | |
| finishMode: | |
| It has meaning only if the decoding reaches output limit (*destLen). | |
| LZMA_FINISH_ANY - use smallest number of input bytes | |
| LZMA_FINISH_END - read EndOfStream marker after decoding | |
| Returns: | |
| SZ_OK | |
| status: | |
| LZMA_STATUS_FINISHED_WITH_MARK | |
| LZMA_STATUS_NOT_FINISHED | |
| SZ_ERROR_DATA - Data error | |
| SZ_ERROR_MEM - Memory allocation error | |
| SZ_ERROR_UNSUPPORTED - Unsupported properties | |
| SZ_ERROR_INPUT_EOF - It needs more bytes in input buffer (src). | |
| */ | |
| SRes Lzma2Decode(Byte *dest, SizeT *destLen, const Byte *src, SizeT *srcLen, | |
| Byte prop, ELzmaFinishMode finishMode, ELzmaStatus *status, ISzAlloc *alloc); | |
| EXTERN_C_END | |
| #endif |