メインページ | アルファベット順一覧 | 構成 | ファイル一覧 | 構成メンバ | ファイルメンバ | 関連ページ

# dkcLZSS.h

説明を見る。

    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 #define dkcdLZSS_SIGNATURE edk_LZSS_SIGNATURE
    00022 //#define dkcdLZSS_SIGNATURE 'LZSS'
    00023
    00024 typedef struct dkc_LZSS
    00025 {
    00027     long Dad[LZSS_RING_LENGTH+1];
    00029     long LSon[LZSS_RING_LENGTH+1];
    00031     long RSon[LZSS_RING_LENGTH+257];
    00032
    00034     long MatchPos;
    00036     long MatchLen;
    00038     unsigned char Text[LZSS_RING_LENGTH + LZSS_LONGEST_MATCH - 1];
    00039 }DKC_LZSS;
    00040
    00041 typedef struct dkc_LZSS_Header{
    00042     unsigned long mSignature;
    00044     size_t mOriginSize;
    00046     size_t mCompressedSize;
    00047
    00048 }DKC_LZSS_HEADER;
    00049
    00050
    00051 DKC_EXTERN DKC_LZSS *WINAPI dkcAllocLZSS();
    00052
    00053 DKC_EXTERN int WINAPI dkcFreeLZSS(DKC_LZSS **);
    00066 DKC_EXTERN int WINAPI dkcLZSSDecode(DKC_LZSS *ptr,DKC_LZSS_HEADER *ph,
    00067     BYTE *dest,size_t dsize,const BYTE *src,size_t ssize,ULONG sig);
    00079 DKC_EXTERN int WINAPI dkcLZSSEncode(DKC_LZSS *ptr,DKC_LZSS_HEADER *ph,
    00080     BYTE *dest,size_t dsize,const BYTE *src,size_t ssize,
    00081     size_t CloseProcessSize,ULONG sig);
    00082
    00083 //headerがLZSSのシグネチャかどうか確認する @return TRUEでLZSSデータだと思う。
    00084 //廃止：シグネチャは自由に設定できるように！！
    00085 //DKC_EXTERN BOOL WINAPI dkcLZSSIsLZSS(DKC_LZSS_HEADER *p);
    00086
    00087 #if !defined(  DKUTIL_C_LZSS_C ) &&  defined(USE_DKC_INDEPENDENT_INCLUDE)
    00088 #   include "dkcLZSS.c"
    00089 #endif
    00090
    00091 #endif