Main Page | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

dkcLZSS.h

Go to the documentation of this file.
00001 
00008 #ifndef dkutil_c_LZSS__h
00009 #define dkutil_c_LZSS__h
00010 
00011 
00012 #include "dkcOSIndependent.h"
00013 
00015 #define LZSS_RING_LENGTH                4096
00016 
00017 #define LZSS_RING_MASK                  (LZSS_RING_LENGTH-1)
00018 
00019 #define LZSS_LONGEST_MATCH              16
00020 
00021 typedef struct dkc_LZSS
00022 {
00024         long Dad[LZSS_RING_LENGTH+1];                                                           
00026         long LSon[LZSS_RING_LENGTH+1];                                                          
00028         long RSon[LZSS_RING_LENGTH+257];                                                                
00029 
00031         long MatchPos;                                                                                          
00033         long MatchLen;                                                                                                  
00035         unsigned char Text[LZSS_RING_LENGTH + LZSS_LONGEST_MATCH - 1];
00036 }DKC_LZSS;
00037 
00038 typedef struct dkc_LZSS_Header{
00039         unsigned long mSignature;
00041         size_t mOriginSize;
00043         size_t mCompressedSize;
00044 
00045 }DKC_LZSS_HEADER;
00046 
00047 
00048 DKC_EXTERN DKC_LZSS *WINAPI dkcAllocLZSS();
00049 
00050 DKC_EXTERN int WINAPI dkcFreeLZSS(DKC_LZSS **);
00062 DKC_EXTERN int WINAPI dkcLZSSDecode(DKC_LZSS *ptr,DKC_LZSS_HEADER *ph,
00063         BYTE *dest,size_t dsize,const BYTE *src,size_t ssize);
00073 DKC_EXTERN int WINAPI dkcLZSSEncode(DKC_LZSS *ptr,DKC_LZSS_HEADER *ph,
00074         BYTE *dest,size_t dsize,const BYTE *src,size_t ssize);
00075 
00076 
00077 DKC_EXTERN BOOL WINAPI dkcLZSSIsLZSS(DKC_LZSS_HEADER *p);
00078 
00079 
00080 
00081 
00082 #endif

Generated on Mon Apr 26 19:36:52 2004 for dkutil_c by doxygen 1.3.6