OpenMoHAA 0.82.0
Loading...
Searching...
No Matches
lz77.h
1/*
2===========================================================================
3Copyright (C) 2015 the OpenMoHAA team
4
5This file is part of OpenMoHAA source code.
6
7OpenMoHAA source code is free software; you can redistribute it
8and/or modify it under the terms of the GNU General Public License as
9published by the Free Software Foundation; either version 2 of the License,
10or (at your option) any later version.
11
12OpenMoHAA source code is distributed in the hope that it will be
13useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License
18along with OpenMoHAA source code; if not, write to the Free Software
19Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
20===========================================================================
21*/
22
23// lz77.h: LZ77 Compression Algorithm
24
25#pragma once
26
27#include <cstddef>
28
29class cLZ77 {
30 static unsigned int m_pDictionary[];
31
32 unsigned char *ip;
33 unsigned char *op;
34 unsigned char *in_end;
35 unsigned char *ip_end;
36 unsigned char *ii;
37 unsigned char *m_pos;
38 unsigned int m_off;
39 unsigned int m_len;
40 unsigned int dindex;
41
42public:
43 cLZ77();
44
45 int Compress( unsigned char *in, size_t in_len, unsigned char *out, size_t *out_len );
46 int Decompress( unsigned char *in, size_t in_len, unsigned char *out, size_t *out_len );
47
48private:
49 unsigned int CompressData( unsigned char *in, size_t in_len, unsigned char *out, size_t *out_len );
50};
51
52extern cLZ77 g_lz77;
Definition lz77.h:29