highlight meter-background of a port that has peaked (experiment)

This commit is contained in:
Robin Gareus 2013-07-06 16:32:36 +02:00
parent 03a510c3d7
commit 413b996a2c
2 changed files with 13 additions and 7 deletions

View File

@ -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();
}

View File

@ -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;
}
};