summaryrefslogtreecommitdiff
path: root/gtk2_ardour/meterbridge.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour/meterbridge.cc')
-rw-r--r--gtk2_ardour/meterbridge.cc20
1 files changed, 20 insertions, 0 deletions
diff --git a/gtk2_ardour/meterbridge.cc b/gtk2_ardour/meterbridge.cc
index 00ba3d43ec..57a7a77bf1 100644
--- a/gtk2_ardour/meterbridge.cc
+++ b/gtk2_ardour/meterbridge.cc
@@ -147,6 +147,7 @@ Meterbridge::Meterbridge ()
MeterStrip::CatchDeletion.connect (*this, invalidator (*this), boost::bind (&Meterbridge::remove_strip, this, _1), gui_context());
MeterStrip::ResetAllPeakDisplays.connect_same_thread (*this, boost::bind(&Meterbridge::reset_all_peaks, this));
MeterStrip::ResetGroupPeakDisplays.connect_same_thread (*this, boost::bind (&Meterbridge::reset_group_peaks, this, _1));
+ MeterStrip::MetricChanged.connect_same_thread (*this, boost::bind(&Meterbridge::update_metrics, this));
global_hpacker.set_spacing(0);
scroller.add (global_hpacker);
@@ -426,6 +427,7 @@ Meterbridge::add_strips (RouteList& routes)
}
sync_order_keys(MixerSort);
+ update_metrics();
}
void
@@ -439,6 +441,24 @@ Meterbridge::remove_strip (MeterStrip* strip)
if ((i = find (strips.begin(), strips.end(), strip)) != strips.end()) {
strips.erase (i);
}
+ update_metrics();
+}
+
+void
+Meterbridge::update_metrics ()
+{
+ bool have_midi = false;
+ for (list<MeterStrip *>::iterator i = strips.begin(); i != strips.end(); ++i) {
+ if ( (*i)->has_midi ()) {
+ have_midi = true;
+ break;
+ }
+ }
+ if (have_midi) {
+ metrics_right->set_metric_mode(3);
+ } else {
+ metrics_right->set_metric_mode(4);
+ }
}
void