summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2013-07-06 16:32:36 +0200
committerRobin Gareus <robin@gareus.org>2013-07-10 15:27:12 +0200
commit413b996a2c4a94e3b4d685f5433d31d386ec6ff8 (patch)
tree83aafc84612621aa0366ef1d03f34e58f5424505
parent03a510c3d7ed21eaca8b36d017c0f1eb94019efc (diff)
highlight meter-background of a port that has peaked (experiment)
-rw-r--r--gtk2_ardour/level_meter.cc18
-rw-r--r--gtk2_ardour/level_meter.h2
2 files changed, 13 insertions, 7 deletions
diff --git a/gtk2_ardour/level_meter.cc b/gtk2_ardour/level_meter.cc
index cf16107147..d0f46f0597 100644
--- a/gtk2_ardour/level_meter.cc
+++ b/gtk2_ardour/level_meter.cc
@@ -100,19 +100,21 @@ LevelMeter::update_meters ()
for (n = 0, i = meters.begin(); i != meters.end(); ++i, ++n) {
if ((*i).packed) {
+ mpeak = _meter->max_peak_power(n);
+ if (mpeak > (*i).max_peak) {
+ (*i).max_peak = mpeak;
+ (*i).meter->set_highlight(mpeak > Config->get_meter_peak());
+ }
+ if (mpeak > max_peak) {
+ max_peak = mpeak;
+ }
+
peak = _meter->peak_power (n);
if (n < nmidi) {
(*i).meter->set (peak);
} else {
(*i).meter->set (log_meter (peak));
}
- mpeak = _meter->max_peak_power(n);
- if (mpeak > max_peak) {
- max_peak = mpeak;
- }
- if (mpeak > max_peak) {
- max_peak = mpeak;
- }
}
}
return max_peak;
@@ -293,6 +295,8 @@ void LevelMeter::clear_meters ()
{
for (vector<MeterInfo>::iterator i = meters.begin(); i < meters.end(); i++) {
(*i).meter->clear();
+ (*i).max_peak = minus_infinity();
+ (*i).meter->set_highlight(false);
}
max_peak = minus_infinity();
}
diff --git a/gtk2_ardour/level_meter.h b/gtk2_ardour/level_meter.h
index bf9f42a528..0792872755 100644
--- a/gtk2_ardour/level_meter.h
+++ b/gtk2_ardour/level_meter.h
@@ -80,12 +80,14 @@ class LevelMeter : public Gtk::HBox, public ARDOUR::SessionHandlePtr
gint16 width;
int length;
bool packed;
+ float max_peak;
MeterInfo() {
meter = 0;
width = 0;
length = 0;
packed = false;
+ max_peak = -INFINITY;
}
};