NO-OP; clean up script spacing and remove goto
[ardour.git] / gtk2_ardour / plugin_eq_gui.h
index e38bc8e8f71d9195b1a6c5beb382bd72b9855738..384359b4395fabdee1bd5cbbe5809fe2af1b927f 100644 (file)
 #ifndef __ardour_plugin_eq_gui_h
 #define __ardour_plugin_eq_gui_h
 
+#include "pbd/signals.h"
+
 #include "ardour/buffer_set.h"
-#include "ardour/plugin_insert.h"
-#include "ardour/plugin.h"
 
 #include <gtkmm/table.h>
 #include <gtkmm/drawingarea.h>
 #include <gtkmm/combobox.h>
 #include <gtkmm/liststore.h>
 
+namespace ARDOUR {
+       class Plugin;
+       class PluginInsert;
+}
+
 namespace GTKArdour {
         class FFT;
 }
@@ -40,6 +45,9 @@ public:
        PluginEqGui (boost::shared_ptr<ARDOUR::PluginInsert>);
        ~PluginEqGui ();
 
+       void start_listening ();
+       void stop_listening ();
+
 private:
        // Setup
        void set_buffer_size (uint32_t, uint32_t);
@@ -71,70 +79,76 @@ private:
 
        void plot_signal_amplitude_difference (Gtk::Widget *,cairo_t *);
 
+       void update_pointer_info(float, float);
+       bool analysis_area_mouseover(GdkEventMotion *);
+       bool analysis_area_mouseexit(GdkEventCrossing *);
+       bool analysis_area_mousedown(GdkEventButton *);
+
        // Helpers
        bool timeout_callback ();
        void redraw_scales ();
 
        // Fields:
-       
+
        // analysis parameters
        float _samplerate;
-       
+
        float _min_dB;
        float _max_dB;
        float _step_dB;
-       
+
        float _log_coeff;
        float _log_max;
-       
+
        ARDOUR::framecnt_t _buffer_size;
        ARDOUR::framecnt_t _signal_buffer_size;
-       
+
        // buffers
        ARDOUR::BufferSet _bufferset;
        ARDOUR::BufferSet _collect_bufferset;
-       
-       
+
+
        // dimensions
        float _analysis_width;
        float _analysis_height;
-       
+
        // My objects
         GTKArdour::FFT *_impulse_fft;
         GTKArdour::FFT *_signal_input_fft;
         GTKArdour::FFT *_signal_output_fft;
        boost::shared_ptr<ARDOUR::Plugin> _plugin;
        boost::shared_ptr<ARDOUR::PluginInsert> _plugin_insert;
-       
+
        // gui objects
        Gtk::DrawingArea *_analysis_area;
        cairo_surface_t *_analysis_scale_surface;
-       
+       Gtk::Label *_pointer_info;
+
        // dB scale selection:
        class dBSelectionColumns : public Gtk::TreeModel::ColumnRecord
        {
        public:
                dBSelectionColumns()
                { add(dBMin); add(dBMax); add(dBStep); add(name); }
-               
+
                Gtk::TreeModelColumn<float> dBMin;
                Gtk::TreeModelColumn<float> dBMax;
                Gtk::TreeModelColumn<float> dBStep;
                Gtk::TreeModelColumn<std::string> name;
        };
-       
+
        dBSelectionColumns dBColumns;
-       
+
        Gtk::ComboBox *dBScaleCombo;
        Glib::RefPtr<Gtk::ListStore> dBScaleModel;
-       
+
        Gtk::CheckButton *_phase_button;
-       
+
        // signals and connections
        sigc::connection _update_connection;
        sigc::connection _window_unmap_connection;
        sigc::connection _window_map_connection;
-       
+
        PBD::ScopedConnection analysis_connection;
 };