diff options
author | Robin Gareus <robin@gareus.org> | 2013-07-07 13:34:36 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2013-07-10 15:27:13 +0200 |
commit | 58b325de319ab1d807511783f55a7fe3748e8614 (patch) | |
tree | 29c90d2a0242ebfd51b46093ec88890cb668db4e /gtk2_ardour | |
parent | 2277da6e6c83c2933f4452239a78910967ecba4e (diff) |
prepare meter type unification
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/level_meter.cc | 14 | ||||
-rw-r--r-- | gtk2_ardour/level_meter.h | 3 |
2 files changed, 13 insertions, 4 deletions
diff --git a/gtk2_ardour/level_meter.cc b/gtk2_ardour/level_meter.cc index 36a469f35c..3d91b75878 100644 --- a/gtk2_ardour/level_meter.cc +++ b/gtk2_ardour/level_meter.cc @@ -44,10 +44,6 @@ using namespace Gtkmm2ext; using namespace Gtk; using namespace std; -//sigc::signal<void> LevelMeter::ResetAllPeakDisplays; -//sigc::signal<void,RouteGroup*> LevelMeter::ResetGroupPeakDisplays; - - LevelMeter::LevelMeter (Session* s) : _meter (0) , meter_length (0) @@ -79,10 +75,13 @@ void LevelMeter::set_meter (PeakMeter* meter) { _configuration_connection.disconnect(); + _meter_type_connection.disconnect(); + _meter = meter; if (_meter) { _meter->ConfigurationChanged.connect (_configuration_connection, invalidator (*this), boost::bind (&LevelMeter::configuration_changed, this, _1, _2), gui_context()); + _meter->TypeChanged.connect (_meter_type_connection, invalidator (*this), boost::bind (&LevelMeter::meter_type_changed, this, _1), gui_context()); } } @@ -156,6 +155,13 @@ LevelMeter::configuration_changed (ChanCount /*in*/, ChanCount /*out*/) } void +LevelMeter::meter_type_changed (MeterType t) +{ + meter_type = t; + MeterTypeChanged(t); +} + +void LevelMeter::hide_all_meters () { for (vector<MeterInfo>::iterator i = meters.begin(); i != meters.end(); ++i) { diff --git a/gtk2_ardour/level_meter.h b/gtk2_ardour/level_meter.h index 0da8ed2a8b..ead63aa50b 100644 --- a/gtk2_ardour/level_meter.h +++ b/gtk2_ardour/level_meter.h @@ -72,6 +72,7 @@ class LevelMeter : public Gtk::HBox, public ARDOUR::SessionHandlePtr /** Emitted in the GUI thread when a button is pressed over the meter */ PBD::Signal1<bool, GdkEventButton *> ButtonPress; + PBD::Signal1<void, ARDOUR::MeterType> MeterTypeChanged; private: ARDOUR::PeakMeter* _meter; @@ -102,6 +103,7 @@ class LevelMeter : public Gtk::HBox, public ARDOUR::SessionHandlePtr ARDOUR::MeterType meter_type; PBD::ScopedConnection _configuration_connection; + PBD::ScopedConnection _meter_type_connection; PBD::ScopedConnection _parameter_connection; void hide_all_meters (); @@ -110,6 +112,7 @@ class LevelMeter : public Gtk::HBox, public ARDOUR::SessionHandlePtr void parameter_changed (std::string); void configuration_changed (ARDOUR::ChanCount in, ARDOUR::ChanCount out); + void meter_type_changed (ARDOUR::MeterType); void on_theme_changed (); bool style_changed; |