75template <
typename T =
int16_t,
typename SampleType = MDFFloat>
91 canceller(filterLength, fftDriver, alloc) {}
108 canceller(filterLength, nbMic, nbSpeakers, fftDriver, alloc) {}
118 size_t write(
const uint8_t* buf,
size_t len)
override {
120 size_t samples = len /
sizeof(T);
121 size_t frames = samples / (size_t)frame_size;
122 const T* data = (
const T*)buf;
123 for (
size_t f = 0; f < frames; f++) {
124 canceller.playback(data + f * frame_size);
126 return frames * (size_t)frame_size *
sizeof(T);
139 size_t samples = read /
sizeof(T);
141 size_t frames = samples / (size_t)frame_size;
143 for (
size_t f = 0; f < frames; f++) {
144 canceller.capture(data + f * frame_size, data + f * frame_size);
146 return frames * (size_t)frame_size *
sizeof(T);
virtual size_t readBytes(uint8_t *data, size_t len)
Definition Arduino.h:140