From b7aa98ee0ccfdd098f8e1efb0116f3235d42d6c3 Mon Sep 17 00:00:00 2001 From: Gon Solo Date: Sat, 26 Nov 2022 12:25:26 +0100 Subject: [PATCH] /float*/std::vector/ in fft_result. --- gtk2_ardour/fft_result.cc | 56 +++++++++++++-------------------------- gtk2_ardour/fft_result.h | 21 ++++++++------- 2 files changed, 29 insertions(+), 48 deletions(-) diff --git a/gtk2_ardour/fft_result.cc b/gtk2_ardour/fft_result.cc index 87272b1232..9ac064c5b3 100644 --- a/gtk2_ardour/fft_result.cc +++ b/gtk2_ardour/fft_result.cc @@ -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); -} diff --git a/gtk2_ardour/fft_result.h b/gtk2_ardour/fft_result.h index 44d428854f..cb5d65db48 100644 --- a/gtk2_ardour/fft_result.h +++ b/gtk2_ardour/fft_result.h @@ -26,6 +26,7 @@ #include #include +#include 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 _data_flat_avg; + std::vector _data_flat_max; + std::vector _data_flat_min; + std::vector _data_prop_avg; + std::vector _data_prop_max; + std::vector _data_prop_min; Gdk::Color _color; std::string _trackname;