12 virtual void end() = 0;
13 virtual size_t write(
const uint8_t *src,
size_t size_bytes) {
return 0;}
14 virtual size_t readBytes(uint8_t *dest,
size_t size_bytes) = 0;
22 static void scaleTo16Bits(uint8_t *data,
size_t size_bytes,
int adc_bits,
24 if (adc_bits <= 0 || adc_bits >= 16)
return;
25 const int32_t factor = 1 << (16 - adc_bits);
26 const int32_t offset = is_centered ? 0 : 1 << (adc_bits - 1);
27 int16_t *samples =
reinterpret_cast<int16_t *
>(data);
28 size_t sample_count = size_bytes /
sizeof(int16_t);
29 for (
size_t i = 0; i < sample_count; i++) {
30 int32_t value = (
static_cast<int32_t
>(samples[i]) - offset) * factor;
31 if (value > 32767) value = 32767;
32 if (value < -32768) value = -32768;
33 samples[i] =
static_cast<int16_t
>(value);
#define DEFAULT_BUFFER_SIZE
Definition avr.h:20