Lhaz
読み取り中…
検索中…
一致する文字列を見つけられません
chuf.h
[詳解]
1/****************************************************************************/
2/* ハフマン符号クラス */
3/****************************************************************************/
4#ifndef _HUF_H
5#define _HUF_H
6
7#include <windows.h>
8#include <stdio.h>
9#include <limits.h>
10#include "lhazdef.h"
11#include "lha_macro.h"
12
13class MYFILE;
14
15class HUFFMAN {
16
17public:
18 enum HUF_ERROR {
20 };
35 //
36 struct DECODE {
37 ushort (HUFFMAN::*C)(void);
38 ushort (HUFFMAN::*P)(void);
39 void (HUFFMAN::*Start)(void);
40 };
41 struct ENCODE {
42 void (HUFFMAN::*Output)(int, uint);
43 void (HUFFMAN::*Start)(void);
44 void (HUFFMAN::*End)(void);
45 };
46 //
47 HUFFMAN(METHOD method, uchar* t, MYFILE& infile, MYFILE& outfile, int dicbit, LONGLONG origsize, LONGLONG compsize, bool* unpackable);
50 LONGLONG GetCompsize(void) { return Compsize; };
51
52private:
53 static const int N1;
54 static const int LENFIELD;
55 static const int BUFBITS;
56 static const int EXTRABITS;
57 //
58 static DECODE Decodes[9];
59 static ENCODE Encodes[2];
60 //
62 MYFILE& Infile;
63 MYFILE& Outfile;
64 int Dicbit;
65 LONGLONG Origsize;
66 LONGLONG Compsize;
68 //
70 //
71 ushort decode_c_dyn(void);
72 ushort decode_c_st0(void);
73 ushort decode_c_st1(void);
74 ushort decode_c_lzs(void);
75 ushort decode_c_lz5(void);
76 ushort decode_p_dyn(void);
77 ushort decode_p_st0(void);
78 ushort decode_p_st1(void);
79 ushort decode_p_lzs(void);
80 ushort decode_p_lz5(void);
81 void decode_start_fix(void);
82 void decode_start_dyn(void);
83 void decode_start_st0(void);
84 void decode_start_st1(void);
85 void decode_start_lzs(void);
86 void decode_start_lz5(void);
87 void fillbuf(uchar);
89 void init_getbits(void);
90 void read_pt_len(short nn, short nbit, short i_special);
91 void read_c_len(void);
92 void read_tree_c(void);
93 void read_tree_p(void);
94 void putcode(uchar n, ushort x);
95 void putbits(uchar n, ushort x);
96 void encode_c_dyn(int c);
97 void output_dyn(int code, unsigned int pos);
98 void encode_end_dyn(void);
99 void write_pt_len(short n, short nbit, short i_special);
100 void write_c_len(void);
101 void send_block(void);
102 void output_st1(int c, uint p);
103 void encode_end_st1(void);
104 void encode_c(short c);
105 void encode_p(ushort p);
106 void encode_p_st0(ushort j);
107 void encode_start_fix(void);
108 void ready_made(int method);
109 void encode_start_st1(void);
110 void start_p_dyn(void);
111
112};
113
114#endif
Definition chuf.h:15
void write_pt_len(short n, short nbit, short i_special)
Definition huf.cpp:72
LONGLONG GetCompsize(void)
Definition chuf.h:50
ushort decode_p_st1(void)
Definition huf.cpp:394
void init_getbits(void)
Definition crcio.cpp:163
ushort decode_p_dyn(void)
Definition dhuf.cpp:278
void send_block(void)
Definition huf.cpp:156
void encode_p_st0(ushort j)
Definition shuf.cpp:47
void encode_start_fix(void)
Definition shuf.cpp:78
MYFILE & Infile
Definition chuf.h:62
ENCODE Encode
Definition chuf.h:49
uchar * Text
Definition chuf.h:61
ushort getbits(uchar)
Definition crcio.cpp:113
void fillbuf(uchar)
Definition crcio.cpp:95
static const int N1
Definition chuf.h:53
static ENCODE Encodes[2]
Definition chuf.h:15
MYFILE & Outfile
Definition chuf.h:63
void encode_end_dyn(void)
Definition dhuf.cpp:313
void read_pt_len(short nn, short nbit, short i_special)
Definition huf.cpp:280
LONGLONG Compsize
Definition chuf.h:66
void read_tree_p(void)
Definition shuf.cpp:109
void encode_start_st1(void)
Definition huf.cpp:250
void start_p_dyn(void)
Definition dhuf.cpp:73
void encode_c(short c)
Definition huf.cpp:135
void decode_start_dyn(void)
Definition dhuf.cpp:86
void output_st1(int c, uint p)
Definition huf.cpp:206
static const int EXTRABITS
Definition chuf.h:56
void encode_c_dyn(int c)
Definition dhuf.cpp:232
static const int BUFBITS
Definition chuf.h:55
void encode_end_st1(void)
Definition huf.cpp:269
METHOD
Definition chuf.h:21
@ LZHUFF1_METHOD_NUM
Definition chuf.h:23
@ LZHUFF6_METHOD_NUM
Definition chuf.h:28
@ LZHUFF7_METHOD_NUM
Definition chuf.h:29
@ LZHUFF2_METHOD_NUM
Definition chuf.h:24
@ LARC_METHOD_NUM
Definition chuf.h:30
@ LARC4_METHOD_NUM
Definition chuf.h:32
@ LZHUFF4_METHOD_NUM
Definition chuf.h:26
@ LZHDIRS_METHOD_NUM
Definition chuf.h:33
@ LZHUFF3_METHOD_NUM
Definition chuf.h:25
@ LZHUFF0_METHOD_NUM
Definition chuf.h:22
@ LZHUFF5_METHOD_NUM
Definition chuf.h:27
@ LARC5_METHOD_NUM
Definition chuf.h:31
void decode_start_st0(void)
Definition shuf.cpp:38
void ready_made(int method)
Definition shuf.cpp:56
void decode_start_st1(void)
Definition huf.cpp:422
void write_c_len(void)
Definition huf.cpp:96
void putbits(uchar n, ushort x)
Definition crcio.cpp:142
ushort decode_p_st0(void)
Definition shuf.cpp:167
HUFFMAN & operator=(const HUFFMAN &)
LONGLONG Origsize
Definition chuf.h:65
void encode_p(ushort p)
Definition huf.cpp:141
void read_c_len(void)
Definition huf.cpp:322
void decode_start_fix(void)
Definition shuf.cpp:124
ushort decode_c_st1(void)
Definition huf.cpp:363
int Dicbit
Definition chuf.h:64
void read_tree_c(void)
Definition shuf.cpp:89
ushort decode_p_lz5(void)
Definition larc.cpp:69
ushort decode_p_lzs(void)
Definition larc.cpp:32
ushort decode_c_lz5(void)
Definition larc.cpp:44
ushort decode_c_dyn(void)
Definition dhuf.cpp:254
ushort decode_c_st0(void)
Definition shuf.cpp:136
static DECODE Decodes[9]
Definition chuf.h:3
void decode_start_lz5(void)
Definition larc.cpp:75
void decode_start_lzs(void)
Definition larc.cpp:38
DECODE Decode
Definition chuf.h:48
void output_dyn(int code, unsigned int pos)
Definition dhuf.cpp:306
void putcode(uchar n, ushort x)
Definition crcio.cpp:122
static const int LENFIELD
Definition chuf.h:54
HUF_ERROR
Definition chuf.h:18
@ ERR_HUF_BROKEN
Definition chuf.h:19
bool * UnPackable
Definition chuf.h:67
ushort decode_c_lzs(void)
Definition larc.cpp:21
unsigned char uchar
Definition lhazdef.h:4
unsigned int uint
Definition lhazdef.h:6
unsigned short ushort
Definition lhazdef.h:5
Definition chuf.h:36
ushort(HUFFMAN::* P)(void)
Definition chuf.h:38
ushort(HUFFMAN::* C)(void)
Definition chuf.h:37
void(HUFFMAN::* Start)(void)
Definition chuf.h:39
Definition chuf.h:41
void(HUFFMAN::* Output)(int, uint)
Definition chuf.h:42
void(HUFFMAN::* Start)(void)
Definition chuf.h:43
void(HUFFMAN::* End)(void)
Definition chuf.h:44