#include "TimeConstDelay.h" #include TimeConstDelay::TimeConstDelay() { this->samples = nullptr; this->offset = 0; this->sampleCount = 0; } TimeConstDelay::~TimeConstDelay() { delete this->samples; } float TimeConstDelay::ProcessSample(float sample) { if (this->samples != nullptr) { float val = this->samples[this->offset]; this->samples[this->offset] = sample; this->offset = (int) modf((float) this->offset + 1, (float *) &this->sampleCount); // TODO: check if this is correct return val; } return 0.0; } void TimeConstDelay::SetParameters(uint32_t samplingRate, float delay) { this->sampleCount = samplingRate * (uint32_t) ceil(delay); delete this->samples; this->samples = new float[this->sampleCount](); this->offset = 0; }