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