#pragma once #include #include class FIR { public: FIR(); void FilterSamples(float *samples, uint32_t size); void FilterSamplesInterleaved(float *samples, uint32_t size, uint32_t channels); uint32_t GetBlockLength(); int LoadCoefficients(const float *coeffs, uint32_t coeffsSize, uint32_t blockLength); void Reset(); private: std::vector offsetBlock; std::vector coeffs; std::vector block; uint32_t coeffsSize; uint32_t blockLength; bool hasCoefficients; };