23 bool begin(
int len)
override {
24 if (p_fft_object==
nullptr) p_fft_object = kiss_fft_alloc(len,0,
nullptr,
nullptr);
25 if (p_data==
nullptr) p_data =
new kiss_fft_cpx[len];
26 assert(p_fft_object!=
nullptr);
27 assert(p_data!=
nullptr);
28 return p_fft_object!=
nullptr && p_data!=
nullptr;
32 if (p_fft_object!=
nullptr) kiss_fft_free(p_fft_object);
33 if (p_data!=
nullptr)
delete[] p_data;
34 p_fft_object =
nullptr;
37 void setValue(
int idx,
int value)
override {
38 p_data[idx].r = value;
42 kiss_fft (p_fft_object, p_data, p_data);
45 float magnitude(
int idx)
override {
46 return sqrt(p_data[idx].r * p_data[idx].r + p_data[idx].i * p_data[idx].i);
51 return (p_data[idx].r * p_data[idx].r + p_data[idx].i * p_data[idx].i);
54 virtual bool isValid()
override{
return p_fft_object!=
nullptr; }
56 kiss_fft_cfg p_fft_object=
nullptr;
57 kiss_fft_cpx *p_data =
nullptr;
72 return driverEx()->p_data;