#ifndef _EYD_BITUNCOMPRESSOR_HH #define _EYD_BITUNCOMPRESSOR_HH #include #include #include #include #include #include "eyd_bitgroup.hh" #include "eyd_global.hh" #include "eyd_iface.hh" namespace EydLib { typedef enum {UNCOMPRESSOR_STATUS_NORMAL, UNCOMPRESSOR_STATUS_GOTLEN, UNCOMPRESSOR_STATUS_GOTRLE} uncompressor_status_t; class BitUncompressor { private: BitGroup _rle; int _last_count; int _group_size; std::list _uncompressed; uncompressor_status_t _status; public: BitUncompressor::BitUncompressor(int size); void clear(); void append(BitGroup bg); std::list flush(); bool hasContent(); void flushRleData(); void flushRawData(); }; } #endif