Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/kornelski/7z.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '7zip/Compress/Rar29/Original/getbits.hpp')
-rwxr-xr-x7zip/Compress/Rar29/Original/getbits.hpp37
1 files changed, 37 insertions, 0 deletions
diff --git a/7zip/Compress/Rar29/Original/getbits.hpp b/7zip/Compress/Rar29/Original/getbits.hpp
new file mode 100755
index 00000000..8819f53a
--- /dev/null
+++ b/7zip/Compress/Rar29/Original/getbits.hpp
@@ -0,0 +1,37 @@
+#ifndef _RAR_GETBITS_
+#define _RAR_GETBITS_
+
+class BitInput
+{
+ public:
+ enum BufferSize {MAX_SIZE=0x8000};
+ protected:
+ int InAddr,InBit;
+ public:
+ BitInput();
+ ~BitInput();
+
+ byte *InBuf;
+
+ void InitBitInput()
+ {
+ InAddr=InBit=0;
+ }
+ void addbits(int Bits)
+ {
+ Bits+=InBit;
+ InAddr+=Bits>>3;
+ InBit=Bits&7;
+ }
+ unsigned int getbits()
+ {
+ unsigned int BitField=(uint)InBuf[InAddr] << 16;
+ BitField|=(uint)InBuf[InAddr+1] << 8;
+ BitField|=(uint)InBuf[InAddr+2];
+ BitField >>= (8-InBit);
+ return(BitField & 0xffff);
+ }
+ void faddbits(int Bits);
+ unsigned int fgetbits();
+};
+#endif