X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fbitio.c;fp=src%2Fbitio.c;h=0000000000000000000000000000000000000000;hb=c9b3f16f20729e72788ff3351dad975c96f6bba1;hp=029c4b9f9e20ace283883a021519e6ef1b7a91dc;hpb=d24ed5e463e559fd245f16856acc34c28c7aaf09;p=swftools.git diff --git a/src/bitio.c b/src/bitio.c deleted file mode 100644 index 029c4b9..0000000 --- a/src/bitio.c +++ /dev/null @@ -1,195 +0,0 @@ -/* bitio.c - Various routines for reading and writing bit- and bytewise, from and to memory. - - Part of the swftools package. - - Copyright (c) 2001 Matthias Kramm - - This file is distributed under the GPL, see file COPYING for details */ - -#include "bitio.h" - - -void reader_init(struct reader_t*r, uchar*newdata, int newlength) -{ - r->data = newdata; - r->datalength = newlength; - r->datapos = 0; - reader_resetbits(r); -} -void reader_skip(struct reader_t*r, int length) -{ - r->datapos += length; -} -void reader_resetbits(struct reader_t*r) -{ - r->bitpos = 8; -} - -void reader_input1(struct reader_t*r, void*target) -{ - *(uchar*)target = *(uchar*)&r->data[r->datapos]; - r->datapos ++; -} -void reader_input2(struct reader_t*r, void*target) -{ - *(u16*)target = GET16(&r->data[r->datapos]); - r->datapos += 2; -} -void reader_input4(struct reader_t*r, void*target) -{ - *(u32*)target = GET32(&r->data[r->datapos]); - r->datapos += 4; -} -uchar*reader_getinputpos(struct reader_t*r) -{ - return &r->data[r->datapos]; -} -int reader_getinputlength(struct reader_t*r) -{ - return r->datalength; -} -void reader_setinputpos(struct reader_t*r, uchar*pos) -{ - r->datapos = pos-r->data; -} -u32 reader_readbit(struct reader_t*r) -{ - if(r->bitpos==8) - { - r->bitpos=0; - reader_input1(r, &r->mybyte); - } - return (r->mybyte>>(7-r->bitpos++))&1; -} -void reader_readbits(struct reader_t*r, u32*val,int num) -{ - int t; - *val=0; - for(t=0;t>(num-1))&1) - { - x|=(0xffffffff<data = data; - w->maxlength = maxlength; - w->pos = 0; - w->bitpos = 0; - w->mybyte = 0; -} - -void writer_write(struct writer_t*w, void*data, int length) -{ - memcpy(&w->data[w->pos], data, length); - w->pos += length; -} - -void writer_writeu8(struct writer_t*w, u8 value) -{ - writer_resetbits(w); - writer_write(w, &value, 1); -} - -void writer_writeu16(struct writer_t*w, u16 value) -{ - u16 value2 = SWAP16(value); - writer_resetbits(w); - writer_write(w, &value2, 2); -} - -void writer_writeu32(struct writer_t*w, u32 value) -{ - u16 value2 = SWAP32(value); - writer_resetbits(w); - writer_write(w, &value2, 4); -} - -void* writer_getpos(struct writer_t*w) -{ - return &w->data[w->pos]; -} - -void writer_resetbits(struct writer_t*w) -{ - if(w->bitpos) - writer_write(w, &w->mybyte, 1); - w->bitpos = 0; - w->mybyte = 0; -} - -void writer_writebit(struct writer_t*w, int bit) -{ - if(w->bitpos==8) - { - writer_write(w, &w->mybyte, 1); - w->bitpos = 0; - w->mybyte = 0; - } - if(bit&1) - w->mybyte |= 1 << (7 - w->bitpos); - w->bitpos ++; -} - -void writer_writebits(struct writer_t*w, u32 data, int bits) -{ - int t; - for(t=0;t> (bits-t-1))&1); - } -} -