MCPcopy Create free account
hub / github.com/Tracktion/choc / encodeVariableLengthInt

Function encodeVariableLengthInt

choc/memory/choc_VariableLengthEncoding.h:83–102  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

81
82template <typename IntegerType>
83size_t encodeVariableLengthInt (void* destBuffer, IntegerType valueToEncode)
84{
85 size_t size = 0;
86 auto n = static_cast<typename std::make_unsigned<IntegerType>::type> (valueToEncode);
87 auto dest = static_cast<uint8_t*> (destBuffer);
88
89 for (;;)
90 {
91 auto byte = static_cast<uint8_t> (n & static_cast<IntegerType> (127));
92 n >>= 7;
93
94 if (n == 0)
95 {
96 dest[size] = byte;
97 return size + 1;
98 }
99
100 dest[size++] = static_cast<uint8_t> (byte | 0x80u);
101 }
102}
103
104template <typename IntegerType>
105IntegerType decodeVariableLengthInt (const void* encodedData, size_t availableSize, size_t& bytesUsed)

Callers 1

testPlatformFunction · 0.85

Calls

no outgoing calls

Tested by 1

testPlatformFunction · 0.68