diff options
author | Robin Gareus <robin@gareus.org> | 2015-04-25 06:46:56 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2015-04-25 06:46:56 +0200 |
commit | 517211681ef288b6c31c5f6c3a66eef52772926b (patch) | |
tree | f79f9e51fb7a028a093bbcf7f64556ec9762d465 /gtk2_ardour/level_meter.cc | |
parent | 75087f5c62dd8d8796b23d875234e764c3ce687f (diff) |
0dBFS peak meter GUI
Diffstat (limited to 'gtk2_ardour/level_meter.cc')
-rw-r--r-- | gtk2_ardour/level_meter.cc | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/gtk2_ardour/level_meter.cc b/gtk2_ardour/level_meter.cc index 62556c801a..7bb61a7cbc 100644 --- a/gtk2_ardour/level_meter.cc +++ b/gtk2_ardour/level_meter.cc @@ -150,6 +150,8 @@ LevelMeterBase::update_meters () const float peak = _meter->meter_level (n, meter_type); if (meter_type == MeterPeak) { (*i).meter->set (log_meter (peak)); + } else if (meter_type == MeterPeak0dB) { + (*i).meter->set (log_meter0dB (peak)); } else if (meter_type == MeterIEC1NOR) { (*i).meter->set (meter_deflect_nordic (peak + meter_lineup(0))); } else if (meter_type == MeterIEC1DIN) { @@ -374,6 +376,25 @@ LevelMeterBase::setup_meters (int len, int initial_width, int thin_width) c[0] = c[2] = c[3] = c[4] = c[5] = c[1]; c[7] = c[8] = c[9] = c[6]; break; + case MeterPeak0dB: + stp[1] = 115.0 * log_meter0dB(-10); + stp[2] = 115.0 * log_meter0dB(-3); + stp[3] = 115.0 * log_meter0dB(0); + switch (ARDOUR_UI::config()->get_meter_line_up_level()) { + case MeteringLineUp24: + stp[0] = 115.0 * log_meter0dB(-24); + break; + case MeteringLineUp20: + stp[0] = 115.0 * log_meter0dB(-20); + break; + default: + case MeteringLineUp18: + stp[0] = 115.0 * log_meter0dB(-18); + break; + case MeteringLineUp15: + stp[0] = 115.0 * log_meter0dB(-15); + } + break; default: // PEAK, RMS stp[1] = 77.5; // 115 * log_meter(-10) stp[2] = 92.5; // 115 * log_meter(-3) |