メインページ | 構成 | ファイル一覧 | 構成メンバ | ファイルメンバ | 関連ページ

dkcLZSS.h

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

dkutil_cに対してTue Oct 19 03:34:55 2004に生成されました。 doxygen 1.3.6