diff options
Diffstat (limited to 'lib/UnrarXLib/coder.hpp')
-rw-r--r-- | lib/UnrarXLib/coder.hpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/lib/UnrarXLib/coder.hpp b/lib/UnrarXLib/coder.hpp new file mode 100644 index 0000000000..f09f911c09 --- /dev/null +++ b/lib/UnrarXLib/coder.hpp @@ -0,0 +1,24 @@ +/**************************************************************************** + * Contents: 'Carryless rangecoder' by Dmitry Subbotin * + ****************************************************************************/ + +const uint TOP=1 << 24, BOT=1 << 15; + +class RangeCoder +{ + public: + void InitDecoder(Unpack *UnpackRead); + inline int GetCurrentCount(); + inline uint GetCurrentShiftCount(uint SHIFT); + inline void Decode(); + inline void PutChar(unsigned int c); + inline unsigned int GetChar(); + + uint low, code, range; + struct SUBRANGE + { + uint LowCount, HighCount, scale; + } SubRange; + + Unpack *UnpackRead; +}; |