55 BitIO(uint8_t* bp, uint64_t len,
bool isCompressor)
59 assert(isCompressor || bp);
87 bool write(uint32_t v, uint8_t n)
89 assert(n != 0 && n <= 32);
90 for(int8_t i = (int8_t)(n - 1); i >= 0; i--)
116 assert(n > 0 && n <=
sizeof(T) << 3);
118 for(int8_t i = (int8_t)(n - 1); i >= 0; i--)
123 ct = (uint8_t)(
ct - 1);
124 *bits |= (T)(((
buf >>
ct) & 1) << i);
183 uint8_t temp =
read();
211 if(!
write(0xc | (n - 3), 4))
216 if(!
write(0x1e0 | (n - 6), 9))
221 if(!
write(0xff80 | (n - 37), 16))
249 *numpasses = (uint8_t)(n + 3);
255 *numpasses = (uint8_t)(n + 6);
259 *numpasses = (uint8_t)(n + 37);
287 buf =
static_cast<uint8_t
>(
buf | (b <<
ct));
297 ct = (uint8_t)(
ct - 1);
299 return (
buf >>
ct) & 1;
317 ct =
buf == 0xff ? 7 : 8;
329 uint16_t marker = (uint16_t)(((uint16_t)0xFF << 8) | (uint16_t)
buf);
bool write(uint8_t v)
Writes one bit.
Definition BitIO.h:103
void read(T *bits, uint8_t n)
Reads bits.
Definition BitIO.h:114
bool read0xFF
Definition BitIO.h:280
size_t buf_len
Definition BitIO.h:266
void bytein(void)
Definition BitIO.h:323
bool write8u(void)
Definition BitIO.h:302
BitIO(IStreamWriter *stream, bool isCompressor)
Constructs a t1::BitIO object.
Definition BitIO.h:67
bool putcommacode(uint8_t n)
Writes comma code.
Definition BitIO.h:164
uint8_t buf
Temporary buffer where bytes are read from or written to.
Definition BitIO.h:271
uint8_t ct
Number of bits free to write for encoder or number of bits to read for decoder.
Definition BitIO.h:277
uint8_t * start
Definition BitIO.h:264
bool putbit(uint8_t b)
Definition BitIO.h:282
bool write(uint32_t v, uint8_t n)
Writes bits.
Definition BitIO.h:87
uint8_t read(void)
Reads bit.
Definition BitIO.h:132
void readFinalHeaderByte()
Reads bits at end of packet header.
Definition BitIO.h:152
void getnumpasses(uint8_t *numpasses)
Reads number of passes.
Definition BitIO.h:232
bool flush()
Flushes remaining bits.
Definition BitIO.h:141
uint8_t getcommacode(void)
Reads comma code.
Definition BitIO.h:180
BitIO(uint8_t *bp, uint64_t len, bool isCompressor)
Constructs a t1::BitIO object.
Definition BitIO.h:55
uint8_t getbit(void)
Definition BitIO.h:292
size_t numBytes()
Gets number of bytes written.
Definition BitIO.h:76
size_t offset
Definition BitIO.h:265
bool putnumpasses(uint8_t n)
Writes number of passes.
Definition BitIO.h:197
IStreamWriter * stream
Definition BitIO.h:279
uint16_t marker_
Definition BitIO.h:39
InvalidMarkerException(uint16_t marker)
Definition BitIO.h:37
Definition IStreamWriter.h:9