summaryrefslogtreecommitdiff
path: root/gtk2_ardour/meterbridge.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2013-07-28 03:31:34 +0200
committerRobin Gareus <robin@gareus.org>2013-07-28 03:31:34 +0200
commit184fd983d013c7c2eb73b0521212b576a6ee1147 (patch)
treee392ff2e987437f44d93c6664970ab31c38364c3 /gtk2_ardour/meterbridge.cc
parent1ce2a1d638c67237ccb4c1fb4e4982e06ec27cbf (diff)
tweak meter-metric red-boxes/stripes
Diffstat (limited to 'gtk2_ardour/meterbridge.cc')
-rw-r--r--gtk2_ardour/meterbridge.cc18
1 files changed, 18 insertions, 0 deletions
diff --git a/gtk2_ardour/meterbridge.cc b/gtk2_ardour/meterbridge.cc
index 3042ba1d0e..f59fbfd693 100644
--- a/gtk2_ardour/meterbridge.cc
+++ b/gtk2_ardour/meterbridge.cc
@@ -600,6 +600,7 @@ Meterbridge::sync_order_keys (RouteSortOrderKey src)
int pos = 0;
int vis = 0;
+ MeterStrip * last = 0;
unsigned int metrics = 0;
MeterType lmt = MeterPeak;
@@ -651,14 +652,24 @@ Meterbridge::sync_order_keys (RouteSortOrderKey src)
vis++;
}
+ (*i).s->set_tick_bar(0);
+
MeterType nmt = (*i).s->meter_type();
if (nmt == MeterKrms) nmt = MeterPeak; // identical metrics
+ if (pos == 0) {
+ (*i).s->set_tick_bar(1);
+ }
if ((*i).visible && nmt != lmt && pos == 0) {
lmt = nmt;
metrics_left.set_metric_mode(1, lmt);
} else if ((*i).visible && nmt != lmt) {
+ if (last) {
+ last->set_tick_bar(last->get_tick_bar() | 2);
+ }
+ (*i).s->set_tick_bar((*i).s->get_tick_bar() | 1);
+
if (_metrics.size() <= metrics) {
_metrics.push_back(new MeterStrip(have_midi ? 2 : 3, lmt));
meterarea.pack_start (*_metrics[metrics], false, false);
@@ -690,6 +701,13 @@ Meterbridge::sync_order_keys (RouteSortOrderKey src)
}
meterarea.reorder_child(*((*i).s), pos++);
+ if ((*i).visible) {
+ last = (*i).s;
+ }
+ }
+
+ if (last) {
+ last->set_tick_bar(last->get_tick_bar() | 2);
}
metrics_right.set_metric_mode(have_midi ? 2 : 3, lmt);