public static void __hx_ctor_decode_bit_reader_BrotliBitReader(global::decode.bit_reader.BrotliBitReader __hx_this) { unchecked { __hx_this.buf_off = 0; { uint[] this1 = null; this1 = new uint[8320]; __hx_this.buf_ = ((uint[])(this1)); } } }
public static bool BrotliReadMoreInput(global::decode.bit_reader.BrotliBitReader br) { unchecked { if (((bool)((br.bit_end_pos_ > 256)))) { return(true); } else if ((br.eos_ > 0)) { return((bool)((br.bit_pos_ <= br.bit_end_pos_))); } else { uint[] dst = br.buf_ptr_; int dst_off = br.buf_ptr_off; int bytes_read = global::decode.Streams.BrotliRead(br.input_, dst, (dst_off + br.tmp_bytes_read_), (4096 - br.tmp_bytes_read_)); if ((bytes_read < 0)) { return(false); } bytes_read += br.tmp_bytes_read_; br.tmp_bytes_read_ = 0; if ((bytes_read < 4096)) { if ((br.finish_ <= 0)) { br.tmp_bytes_read_ = bytes_read; return(false); } br.eos_ = 1; global::DefaultFunctions.memset_UInt(dst, (dst_off + bytes_read), ((uint)(0)), 32); } if ((dst_off == br.buf_off)) { global::DefaultFunctions.memcpy_UInt(br.buf_, (br.buf_off + 8192), br.buf_, br.buf_off, 32); br.buf_ptr_ = br.buf_; br.buf_ptr_off = (br.buf_off + 4096); } else { br.buf_ptr_ = br.buf_; br.buf_ptr_off = br.buf_off; } br.bit_end_pos_ = ((uint)((br.bit_end_pos_ + ((bytes_read << 3))))); return(true); } } }
public static void ShiftBytes32(global::decode.bit_reader.BrotliBitReader br) { unchecked { while (((bool)((br.bit_pos_ >= 8)))) { br.val_ = ((uint)(((uint)((((uint)(br.val_)) >> 8))))); br.val_ = ((uint)((br.val_ | ((uint)((((uint[])(br.buf_))[((int)(((uint)((br.pos_ & 8191)))))] * ((int)(global::System.Math.Pow(((double)(2)), ((double)(24))))))))))); ++br.pos_; br.bit_pos_ = ((uint)((br.bit_pos_ - 8))); br.bit_end_pos_ = ((uint)((br.bit_end_pos_ - 8))); } } }
public static void BrotliInitBitReader(global::decode.bit_reader.BrotliBitReader br, global::decode.streams.BrotliInput input, int finish) { br.finish_ = finish; br.tmp_bytes_read_ = 0; br.buf_ptr_ = br.buf_; br.buf_ptr_off = br.buf_off; br.input_ = input; br.val_ = ((uint)(0)); br.pos_ = ((uint)(0)); br.bit_pos_ = ((uint)(0)); br.bit_end_pos_ = ((uint)(0)); br.eos_ = 0; }
public static uint BrotliReadBits(global::decode.bit_reader.BrotliBitReader br, int n_bits) { unchecked { uint val = default(uint); if (((bool)((((uint)((32 - br.bit_pos_))) < n_bits)))) { global::decode.BitReader.BrotliFillBitWindow(br); } val = ((uint)((((uint)(((uint)((((uint)(br.val_)) >> ((int)(br.bit_pos_))))))) & global::decode.BitReader.BitMask(n_bits)))); br.bit_pos_ = ((uint)((br.bit_pos_ + n_bits))); return(val); } }
public static bool BrotliWarmupBitReader(global::decode.bit_reader.BrotliBitReader br) { unchecked { if (!(global::decode.BitReader.BrotliReadMoreInput(br))) { return(false); } { int _g = 0; while ((_g < 4)) { br.val_ = ((uint)((br.val_ | ((uint)((((uint[])(br.buf_))[((int)(br.pos_))] << (8 * _g++))))))); ++br.pos_; } } return((bool)((br.bit_end_pos_ > 0))); } }
public static void BrotliFillBitWindow(global::decode.bit_reader.BrotliBitReader br) { global::decode.BitReader.ShiftBytes32(br); }