X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fgain_meter.h;h=2513e4d2678618716bb9a3af7ddf6d14200afe6f;hb=8dd31447be22c20a51f019c8ea77c27ba975815c;hp=b1a6ba557d26cc1ce211cb7c70c011235938efda;hpb=38510cb19e217c62a8e1e1664bed13f44c42ef08;p=ardour.git diff --git a/gtk2_ardour/gain_meter.h b/gtk2_ardour/gain_meter.h index b1a6ba557d..2513e4d267 100644 --- a/gtk2_ardour/gain_meter.h +++ b/gtk2_ardour/gain_meter.h @@ -32,11 +32,15 @@ #include #include +#include "pbd/signals.h" + +#include "ardour/chan_count.h" #include "ardour/types.h" +#include "ardour/session_handle.h" -#include -#include -#include +#include "gtkmm2ext/click_box.h" +#include "gtkmm2ext/focus_entry.h" +#include "gtkmm2ext/slider_controller.h" #include "enums.h" #include "level_meter.h" @@ -58,11 +62,11 @@ namespace Gtk { class Menu; } -class GainMeterBase : virtual public sigc::trackable +class GainMeterBase : virtual public sigc::trackable, ARDOUR::SessionHandlePtr { public: - GainMeterBase (ARDOUR::Session&, const Glib::RefPtr& pix, - bool horizontal); + GainMeterBase (ARDOUR::Session*, const Glib::RefPtr& pix, + bool horizontal, int); virtual ~GainMeterBase (); virtual void set_controls (boost::shared_ptr route, @@ -90,8 +94,8 @@ class GainMeterBase : virtual public sigc::trackable boost::shared_ptr _route; boost::shared_ptr _meter; boost::shared_ptr _amp; - ARDOUR::Session& _session; std::vector connections; + PBD::ScopedConnectionList model_connections; bool ignore_toggle; bool next_release_selects; @@ -134,20 +138,20 @@ class GainMeterBase : virtual public sigc::trackable bool gain_focused (GdkEventFocus*); float max_peak; - + void gain_adjusted (); void gain_changed (); - + void meter_point_clicked (); void gain_unit_changed (); - + virtual void hide_all_meters (); gint meter_button_press (GdkEventButton*, uint32_t); bool peak_button_release (GdkEventButton*); bool gain_key_press (GdkEventKey*); - + Gtk::Menu* meter_menu; void popup_meter_menu (GdkEventButton*); @@ -180,7 +184,7 @@ class GainMeterBase : virtual public sigc::trackable class GainMeter : public GainMeterBase, public Gtk::VBox { public: - GainMeter (ARDOUR::Session&); + GainMeter (ARDOUR::Session*, int); ~GainMeter () {} virtual void set_controls (boost::shared_ptr route,