diff options
Diffstat (limited to 'libqpdf/BitWriter.cc')
-rw-r--r-- | libqpdf/BitWriter.cc | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/libqpdf/BitWriter.cc b/libqpdf/BitWriter.cc new file mode 100644 index 00000000..f682aac5 --- /dev/null +++ b/libqpdf/BitWriter.cc @@ -0,0 +1,30 @@ + + +#include <qpdf/BitWriter.hh> + +// See comments in bits.cc +#define BITS_WRITE 1 +#include "bits.icc" + +BitWriter::BitWriter(Pipeline* pl) : + pl(pl), + ch(0), + bit_offset(7) +{ +} + +void +BitWriter::writeBits(unsigned long val, int bits) +{ + write_bits(this->ch, this->bit_offset, val, bits, this->pl); +} + +void +BitWriter::flush() +{ + if (bit_offset < 7) + { + int bits_to_write = bit_offset + 1; + write_bits(this->ch, this->bit_offset, 0, bits_to_write, this->pl); + } +} |