X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Flevel_meter.h;h=6b3c33cac514ff113c6889e25801824a527f0195;hb=d0227fe5b7c30271cd2950a71d429cf03b0db2db;hp=a2bbd5f4a1089873d7ecbb625216e593c504889d;hpb=7deb14773baf3ebf191c973665fc0c3069cc39fb;p=ardour.git diff --git a/gtk2_ardour/level_meter.h b/gtk2_ardour/level_meter.h index a2bbd5f4a1..6b3c33cac5 100644 --- a/gtk2_ardour/level_meter.h +++ b/gtk2_ardour/level_meter.h @@ -31,6 +31,8 @@ #include #include "ardour/types.h" +#include "ardour/chan_count.h" +#include "ardour/session_handle.h" #include #include @@ -49,10 +51,10 @@ namespace Gtk { class Menu; } -class LevelMeter : public Gtk::HBox +class LevelMeter : public Gtk::HBox, public ARDOUR::SessionHandlePtr { public: - LevelMeter (ARDOUR::Session&); + LevelMeter (ARDOUR::Session*); ~LevelMeter (); virtual void set_meter (ARDOUR::PeakMeter* meter); @@ -66,21 +68,20 @@ class LevelMeter : public Gtk::HBox void setup_meters (int len=0, int width=3); private: - ARDOUR::Session& _session; ARDOUR::PeakMeter* _meter; - + Width _width; struct MeterInfo { Gtkmm2ext::FastMeter *meter; gint16 width; - int length; + int length; bool packed; - - MeterInfo() { + + MeterInfo() { meter = 0; width = 0; - length = 0; + length = 0; packed = false; } }; @@ -91,8 +92,9 @@ class LevelMeter : public Gtk::HBox std::vector meters; float max_peak; - sigc::connection _configuration_connection; - + PBD::ScopedConnection _configuration_connection; + PBD::ScopedConnection _parameter_connection; + void hide_all_meters (); gint meter_button_release (GdkEventButton*, uint32_t);