From b89cdb28e751ded1c1b4b1096f602e1a8011d9a1 Mon Sep 17 00:00:00 2001 From: kramm Date: Wed, 5 Jun 2002 07:23:03 +0000 Subject: [PATCH] Header File for bitio.c. --- lib/bitio.h | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 lib/bitio.h diff --git a/lib/bitio.h b/lib/bitio.h new file mode 100644 index 0000000..beced62 --- /dev/null +++ b/lib/bitio.h @@ -0,0 +1,61 @@ +/* bitio.h + Generic object-oriented reading/writing. + + Part of the swftools package. + + Copyright (c) 2001 Matthias Kramm + + This file is distributed under the GPL, see file COPYING for details */#include + +#ifndef __rfxswf_bitio_h__ +#define __rfxswf_bitio_h__ + +#define READER_TYPE_FILE 0 +#define READER_TYPE_MEM 1 +#define READER_TYPE_ZLIB 2 +#define WRITER_TYPE_FILE 0 +#define WRITER_TYPE_MEM 1 +#define WRITER_TYPE_ZLIB 2 + +struct reader_t +{ + int (*read)(struct reader_t*, void*data, int len); + + void *internal; + int type; + unsigned char mybyte; + unsigned char bitpos; + int pos; +}; + +struct writer_t +{ + int (*write)(struct writer_t*, void*data, int len); + void (*finish)(struct writer_t*); + + void *internal; + int type; + unsigned char mybyte; + unsigned char bitpos; + int pos; +}; + +void reader_resetbits(struct reader_t*r); +unsigned int reader_readbit(struct reader_t*r); +unsigned int reader_readbits(struct reader_t*r, int num); + +void writer_resetbits(struct writer_t*w); +void writer_writebit(struct writer_t*w, int bit); +void writer_writebits(struct writer_t*w, unsigned int data, int bits); + +/* standard readers / writers */ + +void reader_init_filereader(struct reader_t*r, int handle); +void reader_init_zlibinflate(struct reader_t*r, struct reader_t*input); +void reader_init_memreader(struct reader_t*r, void*data, int length); + +void writer_init_filewriter(struct writer_t*w, int handle); +void writer_init_zlibdeflate(struct writer_t*w, struct writer_t*output); +void writer_init_memwriter(struct writer_t*r, void*data, int length); + +#endif //__rfxswf_bitio_h__ -- 1.7.10.4