1 #pragma once 2 3 #include "../UnBitArrayBase.h" 4 5 namespace APE 6 { 7 8 class IAPEDecompress; 9 10 // decodes 0000 up to and including 3890 11 class CUnBitArrayOld : public CUnBitArrayBase 12 { 13 public: 14 // construction/destruction 15 CUnBitArrayOld(IAPEDecompress * pAPEDecompress, intn nVersion, intn nFurthestReadByte); 16 ~CUnBitArrayOld(); 17 18 // functions 19 void GenerateArray(int * pOutputArray, int nElements, intn nBytesRequired = -1); 20 unsigned int DecodeValue(DECODE_VALUE_METHOD DecodeMethod, int nParam1 = 0, int nParam2 = 0); 21 22 private: 23 // helpers 24 void GenerateArrayOld(int * pOutputArray, uint32 NumberOfElements, int MinimumBitArrayBytes); 25 void GenerateArrayRice(int * pOutputArray, uint32 NumberOfElements, int MinimumBitArrayBytes); 26 uint32 DecodeValueRiceUnsigned(uint32 k); 27 28 // data 29 uint32 k; 30 uint32 K_Sum; 31 uint32 m_nRefillBitThreshold; 32 33 // functions 34 __forceinline int DecodeValueNew(bool bCapOverflow); 35 uint32 GetBitsRemaining(); 36 __forceinline uint32 Get_K(uint32 x); 37 }; 38 39 }