MCPcopy Create free account
hub / github.com/DescentDevelopers/Descent3 / BitsEncoder

Class BitsEncoder

AudioEncode/aencode.cpp:27–62  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

25#include "aencode.h"
26
27struct BitsEncoder {
28 FILE *m_outFile; // var50 | offset 0x10
29 uint32_t m_bitData; // var4C | offset 0x14
30 uint32_t m_bitCount; // var48 | offset 0x18
31
32 void WriteBits(int32_t val, uint32_t numBits) {
33 assert((numBits + m_bitCount) <= 32);
34 m_bitData |= static_cast<uint32_t>(val << m_bitCount);
35 m_bitCount += numBits;
36
37 while (m_bitCount >= 8) {
38 uint8_t v = m_bitData & 0xFF;
39 putc(v, m_outFile);
40
41 m_bitData >>= 8;
42 m_bitCount -= 8;
43 }
44 }
45
46 void Flush() {
47 while (m_bitCount >= 8) {
48 uint8_t v = m_bitData & 0xFF;
49 putc(v, m_outFile);
50
51 m_bitData >>= 8;
52 m_bitCount -= 8;
53 }
54
55 if (m_bitCount > 0) {
56 uint8_t v = m_bitData & 0xFF;
57 putc(v, m_outFile);
58 m_bitCount = 0;
59 m_bitData = 0;
60 }
61 }
62};
63
64struct Encoder {
65 ReadSampleFunction *m_reader; // var60 | offset 0x00

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected