#ifndef __ardour_plugin_eq_gui_h
#define __ardour_plugin_eq_gui_h
-#include <ardour/buffer_set.h>
-#include <ardour/plugin_insert.h>
-#include <ardour/plugin.h>
+#include "ardour/buffer_set.h"
+#include "ardour/plugin_insert.h"
+#include "ardour/plugin.h"
#include <gtkmm/table.h>
#include <gtkmm/drawingarea.h>
public:
PluginEqGui(boost::shared_ptr<ARDOUR::PluginInsert>);
~PluginEqGui();
-
-
+
+
private:
// Setup
- void set_buffer_size(uint32_t);
+ void set_buffer_size(uint32_t, uint32_t);
void change_dB_scale();
// Analysis
- void run_analysis();
+ void run_impulse_analysis();
+ void signal_collect_callback(ARDOUR::BufferSet *, ARDOUR::BufferSet *);
+ float _signal_analysis_running;
// Drawing
virtual void on_hide();
bool expose_analysis_area(GdkEventExpose *);
void draw_scales_power(Gtk::Widget *, cairo_t *);
- void plot_amplitude(Gtk::Widget *,cairo_t *);
+ void plot_impulse_amplitude(Gtk::Widget *,cairo_t *);
void draw_scales_phase(Gtk::Widget *,cairo_t *);
- void plot_phase(Gtk::Widget *,cairo_t *);
+ void plot_impulse_phase(Gtk::Widget *,cairo_t *);
+
+ void plot_signal_amplitude_difference(Gtk::Widget *,cairo_t *);
// Helpers
bool timeout_callback();
float _log_max;
nframes_t _buffer_size;
+ nframes_t _signal_buffer_size;
- // buffers
+ // buffers
ARDOUR::BufferSet _bufferset;
+ ARDOUR::BufferSet _collect_bufferset;
// dimensions
// My objects
FFT *_impulse_fft;
+ FFT *_signal_input_fft;
+ FFT *_signal_output_fft;
boost::shared_ptr<ARDOUR::Plugin> _plugin;
+ boost::shared_ptr<ARDOUR::PluginInsert> _plugin_insert;
// gui objects
Gtk::DrawingArea *_analysis_area;