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