87 lines
2.0 KiB
C
87 lines
2.0 KiB
C
/*
|
|
LzmaDecode.h
|
|
LZMA Decoder interface
|
|
LZMA SDK 4.01 Copyright (c) 1999-2004 Igor Pavlov (2004-02-15)
|
|
*/
|
|
|
|
#ifndef __LZMADECODE_H
|
|
#define __LZMADECODE_H
|
|
|
|
//#define _LZMA_IN_CB
|
|
/* Use callback for input data */
|
|
|
|
/*#define _LZMA_OUT_READ*/
|
|
/* Use read function for output data */
|
|
|
|
#define _LZMA_PROB32
|
|
/* It can increase speed on some 32-bit CPUs,
|
|
but memory usage will be doubled in that case */
|
|
|
|
#define _LZMA_LOC_OPT
|
|
/* Enable local speed optimizations inside code */
|
|
|
|
#ifndef UInt32
|
|
#ifdef _LZMA_UINT32_IS_ULONG
|
|
#define UInt32 unsigned long
|
|
#else
|
|
#define UInt32 unsigned int
|
|
#endif
|
|
#endif
|
|
|
|
#ifdef _LZMA_PROB32
|
|
#define CProb UInt32
|
|
#else
|
|
#define CProb unsigned short
|
|
#endif
|
|
|
|
#define LZMA_RESULT_OK 0
|
|
#define LZMA_RESULT_DATA_ERROR 1
|
|
#define LZMA_RESULT_NOT_ENOUGH_MEM 2
|
|
|
|
#define LZMA_BASE_SIZE 1846
|
|
#define LZMA_LIT_SIZE 768
|
|
#define DECOMPRESS_LENGTH 0xA00000
|
|
|
|
/*
|
|
bufferSize = (LZMA_BASE_SIZE + (LZMA_LIT_SIZE << (lc + lp)))* sizeof(CProb)
|
|
bufferSize += 100 in case of _LZMA_OUT_READ
|
|
by default CProb is unsigned short,
|
|
but if specify _LZMA_PROB_32, CProb will be UInt32(unsigned int)
|
|
*/
|
|
|
|
#ifdef _LZMA_OUT_READ
|
|
int LzmaDecoderInit(
|
|
unsigned char *buffer, UInt32 bufferSize,
|
|
int lc, int lp, int pb,
|
|
unsigned char *dictionary, UInt32 dictionarySize,
|
|
#ifdef _LZMA_IN_CB
|
|
ILzmaInCallback *inCallback
|
|
#else
|
|
unsigned char *inStream, UInt32 inSize
|
|
#endif
|
|
);
|
|
#endif
|
|
|
|
#ifdef _LZMA_IN_CB
|
|
int LzmaReadCompressed(void *object, unsigned char **buffer, unsigned int *size);
|
|
#endif
|
|
|
|
int LzmaDecode(
|
|
unsigned char *buffer,
|
|
#ifndef _LZMA_OUT_READ
|
|
UInt32 bufferSize,
|
|
int lc, int lp, int pb,
|
|
#ifdef _LZMA_IN_CB
|
|
ILzmaInCallback *inCallback,
|
|
#else
|
|
unsigned char *inStream, UInt32 inSize,
|
|
#endif
|
|
#endif
|
|
unsigned char *outStream, UInt32 outSize,
|
|
UInt32 *outSizeProcessed);
|
|
|
|
|
|
unsigned long LZMA_Decompress( void *pDst, unsigned long *pulDstLen, void *pSrc, unsigned long ulSrcLen );
|
|
|
|
#endif
|