summaryrefslogtreecommitdiff
path: root/gtk2_ardour/level_meter.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2013-07-07 02:00:43 +0200
committerRobin Gareus <robin@gareus.org>2013-07-10 15:27:12 +0200
commit6e1781e5e33d6d97233a2e46aa98fd570d09e31f (patch)
tree92d236a8a82c9ba33687e2abc3988f2d7f5c7720 /gtk2_ardour/level_meter.cc
parenta181009caefd5fe9efb73fff7c0c663dc8415e0a (diff)
experimental RMS-meter and peak-signal (vs peak-power) query
Diffstat (limited to 'gtk2_ardour/level_meter.cc')
-rw-r--r--gtk2_ardour/level_meter.cc12
1 files changed, 10 insertions, 2 deletions
diff --git a/gtk2_ardour/level_meter.cc b/gtk2_ardour/level_meter.cc
index 34d34608c6..cc45e45f70 100644
--- a/gtk2_ardour/level_meter.cc
+++ b/gtk2_ardour/level_meter.cc
@@ -59,6 +59,7 @@ LevelMeter::LevelMeter (Session* s)
UI::instance()->theme_changed.connect (sigc::mem_fun(*this, &LevelMeter::on_theme_changed));
ColorsChanged.connect (sigc::mem_fun (*this, &LevelMeter::color_handler));
max_peak = minus_infinity();
+ meter_type = MeterPeak;
}
void
@@ -100,7 +101,7 @@ LevelMeter::update_meters ()
for (n = 0, i = meters.begin(); i != meters.end(); ++i, ++n) {
if ((*i).packed) {
- mpeak = _meter->max_peak_power(n);
+ mpeak = _meter->meter_level(n, MeterMaxPeak);
if (mpeak > (*i).max_peak) {
(*i).max_peak = mpeak;
(*i).meter->set_highlight(mpeak > Config->get_meter_peak());
@@ -109,7 +110,7 @@ LevelMeter::update_meters ()
max_peak = mpeak;
}
- peak = _meter->peak_power (n);
+ peak = _meter->meter_level (n, meter_type);
if (n < nmidi) {
(*i).meter->set (peak);
} else {
@@ -280,6 +281,13 @@ LevelMeter::setup_meters (int len, int initial_width, int thin_width)
color_changed = false;
}
+void
+LevelMeter::set_type(MeterType t)
+{
+ meter_type = t;
+ _meter->set_type(t);
+}
+
bool
LevelMeter::meter_button_press (GdkEventButton* ev)
{