/float*/std::vector/ in fft_result.

This commit is contained in:
Gon Solo 2022-11-26 12:25:26 +01:00
parent a63e1add6d
commit b7aa98ee0c
2 changed files with 29 additions and 48 deletions

View File

@ -26,35 +26,24 @@
using namespace std;
FFTResult::FFTResult(FFTGraph *graph, Gdk::Color color, string trackname)
{
_graph = graph;
_windowSize = _graph->windowSize();
_dataSize = _windowSize / 2;
_averages = 0;
_min_flat = _max_flat = 0.0;
_min_prop = _max_prop = 0.0;
_data_flat_avg = (float *) malloc (sizeof(float) * _dataSize);
_data_flat_min = (float *) malloc (sizeof(float) * _dataSize);
_data_flat_max = (float *) malloc (sizeof(float) * _dataSize);
_data_prop_avg = (float *) malloc (sizeof(float) * _dataSize);
_data_prop_min = (float *) malloc (sizeof(float) * _dataSize);
_data_prop_max = (float *) malloc (sizeof(float) * _dataSize);
for (unsigned int i = 0; i < _dataSize; i++) {
_data_flat_min[i] = FLT_MAX;
_data_flat_max[i] = FLT_MIN;
_data_flat_avg[i] = 0;
_data_prop_min[i] = FLT_MAX;
_data_prop_max[i] = FLT_MIN;
_data_prop_avg[i] = 0;
}
_color = color;
_trackname = trackname;
}
FFTResult::FFTResult(FFTGraph *graph, Gdk::Color color, string trackname) :
_graph(graph),
_windowSize(_graph->windowSize()),
_dataSize(_windowSize / 2),
_averages(0),
_min_flat(0.0),
_max_flat(0.0),
_min_prop(0.0),
_max_prop(0.0),
_data_flat_avg(_dataSize, 0),
_data_flat_max(_dataSize, FLT_MIN),
_data_flat_min(_dataSize, FLT_MAX),
_data_prop_avg(_dataSize, 0),
_data_prop_max(_dataSize, FLT_MIN),
_data_prop_min(_dataSize, FLT_MAX),
_color(color),
_trackname(trackname)
{}
void
FFTResult::analyzeWindow(float *window)
@ -133,12 +122,3 @@ FFTResult::finalize()
_averages = 0;
}
FFTResult::~FFTResult()
{
free(_data_flat_avg);
free(_data_flat_min);
free(_data_flat_max);
free(_data_prop_avg);
free(_data_prop_min);
free(_data_prop_max);
}

View File

@ -26,6 +26,7 @@
#include <gdkmm/color.h>
#include <string>
#include <vector>
class FFTGraph;
@ -33,7 +34,7 @@ class FFTResult
{
public:
~FFTResult ();
~FFTResult () = default;
void analyzeWindow (float *window);
void finalize ();
@ -58,24 +59,24 @@ private:
FFTResult (FFTGraph *graph, Gdk::Color color, std::string trackname);
friend class FFTGraph;
int _averages;
float* _data_flat_avg;
float* _data_flat_max;
float* _data_flat_min;
float* _data_prop_avg;
float* _data_prop_max;
float* _data_prop_min;
FFTGraph *_graph;
unsigned int _windowSize;
unsigned int _dataSize;
int _averages;
float _min_flat;
float _max_flat;
float _min_prop;
float _max_prop;
FFTGraph *_graph;
std::vector<float> _data_flat_avg;
std::vector<float> _data_flat_max;
std::vector<float> _data_flat_min;
std::vector<float> _data_prop_avg;
std::vector<float> _data_prop_max;
std::vector<float> _data_prop_min;
Gdk::Color _color;
std::string _trackname;