X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fbitio.h;h=ac5f7d4e7ec632f0108d36081ab05d0ae8b60c90;hb=7ddcc6604ef3a6004c8fefb59d2ecdedc440b2bc;hp=c9ec2383f958482fa96ae8d0dfb6a68bc631aebe;hpb=fc554a43712b76d16b41ec77dd311b4a78b1ef6b;p=swftools.git diff --git a/src/bitio.h b/src/bitio.h index c9ec238..ac5f7d4 100644 --- a/src/bitio.h +++ b/src/bitio.h @@ -12,24 +12,13 @@ #include "types.h" -void resetbits(); -void reader_init(uchar*newdata, int newlength); -void skip(int length); -void input1(void*target); -void input2(void*target); -void input4(void*target); - -uchar*getinputpos(); -int getinputlength(); -void setinputpos(uchar*pos); - -u32 readbit(); -void readbits(u32*val,int num); -void readsbits(s32*val,int num); -u32 getbits(int num); -s32 getsbits(int num); -u16 readu8(); -u16 readu16(); +struct reader_t { + u8* data; + int datalength; + int datapos; + u8 bitpos,mybyte; + u8 bitmem; +}; struct writer_t { u8* data; @@ -39,6 +28,24 @@ struct writer_t { u8 mybyte; }; +void reader_resetbits(struct reader_t*); +void reader_init(struct reader_t*,uchar*newdata, int newlength); +void reader_skip(struct reader_t*,int length); +void reader_input1(struct reader_t*, void*target); +void reader_input2(struct reader_t*, void*target); +void reader_input4(struct reader_t*, void*target); +uchar*reader_getinputpos(struct reader_t*); +int reader_getinputlength(struct reader_t*); +void reader_setinputpos(struct reader_t*,uchar*pos); +u32 reader_readbit(struct reader_t*); +void reader_readbits(struct reader_t*,u32*val,int num); +void reader_readsbits(struct reader_t*,s32*val,int num); +u32 reader_getbits(struct reader_t*,int num); +s32 reader_getsbits(struct reader_t*,int num); +u8 reader_readu8(struct reader_t*); +u16 reader_readu16(struct reader_t*); +u32 reader_readu32(struct reader_t*); + void writer_init(struct writer_t*w, u8*data, int maxlength); void writer_write(struct writer_t*w, void*data, int length); void* writer_getpos(struct writer_t*w); @@ -46,6 +53,7 @@ void writer_writebit(struct writer_t*w, int bit); void writer_writebits(struct writer_t*w, u32 data, int bits); void writer_writeu8(struct writer_t*w, u8 value); void writer_writeu16(struct writer_t*w, u16 value); +void writer_writeu32(struct writer_t*w, u32 value); void writer_resetbits(struct writer_t*w); #endif //__bitio_h__