Initial revision
[swftools.git] / src / bitio.h
1 /* bitio.h 
2    Header file for bitio.c.
3
4    Part of the swftools package.
5    
6    Copyright (c) 2001 Matthias Kramm <kramm@quiss.org> 
7
8    This file is distributed under the GPL, see file COPYING for details */
9
10 #ifndef __bitio_h__
11 #define __bitio_h__
12
13 #include "types.h"
14
15 void resetbits();
16 void reader_init(uchar*newdata, int newlength);
17 void skip(int length);
18 void input1(void*target);
19 void input2(void*target);
20 void input4(void*target);
21
22 uchar*getinputpos();
23 int getinputlength();
24 void setinputpos(uchar*pos);
25
26 u32 readbit();
27 void readbits(u32*val,int num);
28 void readsbits(s32*val,int num);
29 u32 getbits(int num);
30 s32 getsbits(int num);
31 u16 readu8();
32 u16 readu16();
33
34 struct writer_t {
35     u8* data;
36     int maxlength;
37     int pos;
38     int bitpos;
39     u8 mybyte;
40 };
41
42 void writer_init(struct writer_t*w, u8*data, int maxlength);
43 void writer_write(struct writer_t*w, void*data, int length);
44 void* writer_getpos(struct writer_t*w);
45 void writer_writebit(struct writer_t*w, int bit);
46 void writer_writebits(struct writer_t*w, u32 data, int bits);
47 void writer_writeu8(struct writer_t*w, u8 value);
48 void writer_writeu16(struct writer_t*w, u16 value);
49 void writer_resetbits(struct writer_t*w);
50
51 #endif //__bitio_h__