25 #include "bititerator.hpp" 
   30 BitIterator::BitIterator(
const uint8_t * 
const p, 
size_t size)
 
   39 void BitIterator::addByte(uint8_t 
byte)
 
   41     m_bitBuffer = (m_bitBuffer << 8) | 
byte;
 
   45 void BitIterator::load(
size_t numBits)
 
   47     size_t numBytes = (numBits + 7) / 8;
 
   50     m_bitBuffer >>= (32 - m_bitsOnBuffer);
 
   54     for (; i < numBytes && m_size > 0; ++i) {
 
   59     for (; i < numBytes; ++i) {
 
   64     m_bitBuffer = m_bitBuffer << (32 - m_bitsOnBuffer);
 
   67 uint32_t BitIterator::get(
size_t n)
 
   69     uint32_t ret = peek(n);
 
   76 uint32_t BitIterator::peek(
size_t n)
 
   84     if (n > m_bitsOnBuffer) {
 
   85         load(n - m_bitsOnBuffer);
 
   88     assert(n <= m_bitsOnBuffer);
 
   90     return m_bitBuffer >> (32 - n);
 
   93 void BitIterator::skip(
size_t n)
 
   95     size_t num_bits = std::min(n, m_bitsOnBuffer);
 
   96     m_bitsOnBuffer -= num_bits;
 
   97     m_bitBuffer <<= num_bits;
 
Global namespace for libopenraw.