1 /*
2  * pts_lzw.h -- a compact LZW compressor (not uncompressor) interface
3  * compiled by pts@fazekas.hu at Mon Mar  4 00:31:20 CET 2002
4  */
5 
6 #ifndef PTS_LZW_H
7 #define PTS_LZW_H 1
8 
9 #ifdef __GNUC__
10 #ifndef __clang__
11 #pragma interface
12 #endif
13 #endif
14 
15 #include "config2.h"  /* PTS_const */
16 
17 /**** pts ****/
18 #ifndef ___
19 #if (defined(__STDC__) || defined(__cplusplus)) && !defined(NO_PROTO)
20 # define _(args) args
21 # define OF(args) args
22 # define ___(arg2s,arg1s,argafter) arg2s /* Dat: no direct comma allowed in args :-( */
23 #else
24 # define _(args) ()
25 # define OF(args) ()
26 # define ___(arg2s,arg1s,argafter) arg1s argafter /* Dat: no direct comma allowed in args :-( */
27 #endif
28 #endif
29 typedef char tbool_t;
30 typedef	unsigned char tidataval_t;	/* internal image data value type */
31 typedef	unsigned int tsize_t;		/* i/o size in bytes */
32 typedef int  (*tiwriter_t) OF((char *block, unsigned len, void *zfile));
33 struct pts_lzw_state;
34 struct pts_lzw_state {
35 	/*FILE*/void*	tif_sout;       /**** pts ****/ /* for encode */
36 	tiwriter_t     tif_writer;
37         int (*tif_feeder)(char *readbuf, unsigned readlen, struct pts_lzw_state *tif);
38 #if 0
39 	tbool_t		tif_revbits_p;  /**** pts ****/
40 #endif
41 	tbool_t		tif_reading_p;  /**** pts ****/
42 	char PTS_const*	tif_name;	/* name of open file, used for debugging */
43 /* compression scheme hooks */
44 	tidataval_t*	tif_data;	/* compression scheme private data */
45 /* input/output buffering */
46         tidataval_t*    tif_rawend;     /**** pts ****/
47 	tidataval_t*	tif_rawdata;	/* raw data buffer */
48 	tsize_t		tif_rawdatasize;/* # of bytes in raw data buffer */
49 	tidataval_t*	tif_rawcp;	/* current spot in raw buffer */
50 	tsize_t		tif_rawcc;	/* bytes unread from raw buffer */
51 };
52 
53 extern
54 #ifdef __cplusplus
55 "C"
56 #endif
57 int pts_lzw_init OF((struct pts_lzw_state*));
58 
59 #endif
60