49 int bytes_per_sample = bitsPerSample / 8;
50 switch (bitsPerSample) {
52 convertFrames<int16_t>((int16_t *)data,
56 convertFrames<int24_t>((
int24_t *)data,
60 convertFrames<int32_t>((int32_t *)data,
64 LOGE(
"%s",
"Unsupported bitsPerSample");
80 float delta = 1.0 / frames;
83 fadeIn<T>(data, frames,
channels, delta);
86 fadeOut<T>(data, frames,
channels, delta);
95 for (
int j = 0; j < frames; j++) {
96 for (
int ch = 0; ch <
channels; ch++) {
107 LOGI(
"faded out %d frames to volume %f",frames,
volume);
110 template <
typename T>
112 LOGI(
"fade in %d frames from volume %f",frames,
volume);
113 for (
int j = 0; j < frames; j++) {
114 for (
int ch = 0; ch <
channels; ch++) {
137 size_t write(uint8_t *src,
size_t size) {
142 int frames = size /
sizeof(T) /
channels;
151 for (
int j = 0; j < steps; j++) {
152 for (
int ch = 0; ch <
channels; ch++) {
154 static_cast<float>(steps - j) /
static_cast<float>(steps);
155 out[ch] =
last[ch] * factor;
167 for (
int ch = 0; ch <
channels; ch++) {
194 size_t write(uint8_t *src,
size_t size) {
199 return f24.write(src, size);
203 LOGE(
"bits_per_sample is 0");
216 f24.end(print, steps);
286 size_t write(
const uint8_t *data,
size_t len)
override {
287 if (
p_out==
nullptr)
return 0;
350 virtual size_t convert(uint8_t *src,
size_t size) {
351 int frames = size /
sizeof(T) /
channels;
#define LOGI(...)
Definition AudioLoggerIDF.h:28
#define LOGE(...)
Definition AudioLoggerIDF.h:30
virtual int availableForWrite()
Definition Arduino.h:128
virtual size_t write(const uint8_t *data, size_t len)
Definition Arduino.h:120
virtual size_t readBytes(uint8_t *data, size_t len)
Definition Arduino.h:140
virtual int available()
Definition Arduino.h:139