42 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
/* LzmaLib.c -- LZMA library wrapper
 | 
						|
2008-08-05
 | 
						|
Igor Pavlov
 | 
						|
Public domain */
 | 
						|
 | 
						|
#include "LzmaEnc.h"
 | 
						|
#include "LzmaDec.h"
 | 
						|
#include "LzmaLib.h"
 | 
						|
 | 
						|
MY_STDAPI
 | 
						|
LzmaCompress(unsigned char *dest, size_t *destLen, const unsigned char *src, size_t srcLen,
 | 
						|
			 unsigned char *outProps, size_t *outPropsSize,
 | 
						|
			 int level,		 /* 0 <= level <= 9, default = 5 */
 | 
						|
			 unsigned dictSize, /* use (1 << N) or (3 << N). 4 KB < dictSize <= 128 MB */
 | 
						|
			 int lc,			/* 0 <= lc <= 8, default = 3  */
 | 
						|
			 int lp,			/* 0 <= lp <= 4, default = 0  */
 | 
						|
			 int pb,			/* 0 <= pb <= 4, default = 2  */
 | 
						|
			 int fb,			/* 5 <= fb <= 273, default = 32 */
 | 
						|
			 int numThreads	 /* 1 or 2, default = 2 */
 | 
						|
			 )
 | 
						|
{
 | 
						|
	CLzmaEncProps props;
 | 
						|
	LzmaEncProps_Init(&props);
 | 
						|
	props.level = level;
 | 
						|
	props.dictSize = dictSize;
 | 
						|
	props.lc = lc;
 | 
						|
	props.lp = lp;
 | 
						|
	props.pb = pb;
 | 
						|
	props.fb = fb;
 | 
						|
	props.numThreads = numThreads;
 | 
						|
 | 
						|
	return LzmaEncode(dest, destLen, src, srcLen, &props, outProps, outPropsSize, 0, NULL);
 | 
						|
}
 | 
						|
 | 
						|
MY_STDAPI LzmaUncompress(unsigned char *dest, size_t *destLen, const unsigned char *src,
 | 
						|
						 size_t *srcLen, const unsigned char *props, size_t propsSize)
 | 
						|
{
 | 
						|
	ELzmaStatus status;
 | 
						|
	return LzmaDecode(dest, destLen, src, srcLen, props, (unsigned)propsSize, LZMA_FINISH_ANY,
 | 
						|
					  &status);
 | 
						|
}
 |