#pragma once #include #include #include "Types.h" class FFT { public: FFT(); ~FFT(); void process(pcm_stereo_sample *pFrame); outputSample *getData(); bool prepareInput(pcm_stereo_sample *buffer, uint32_t sample_size); protected: double *m_fftw_input_left{}; double *m_fftw_input_right{}; fftw_complex *m_fftw_output_left{}; fftw_complex *m_fftw_output_right{}; outputSample *m_sample = new outputSample(FFT_SIZE); fftw_plan m_fftw_plan_left{}; fftw_plan m_fftw_plan_right{}; std::mutex m_mtx; size_t m_fftw_results; };