25 lines
596 B
C++
25 lines
596 B
C++
#pragma once
|
|
|
|
#include <mutex>
|
|
#include <fftw3.h>
|
|
#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;
|
|
};
|