diff options
Diffstat (limited to 'gtk2_ardour/gain_meter.cc')
-rw-r--r-- | gtk2_ardour/gain_meter.cc | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/gtk2_ardour/gain_meter.cc b/gtk2_ardour/gain_meter.cc index c0d7acc118..fc8e183d96 100644 --- a/gtk2_ardour/gain_meter.cc +++ b/gtk2_ardour/gain_meter.cc @@ -205,7 +205,7 @@ GainMeter::GainMeter (boost::shared_ptr<IO> io, Session& s) gain_adjustment.signal_value_changed().connect (mem_fun(*this, &GainMeter::gain_adjusted)); peak_display.signal_button_release_event().connect (mem_fun(*this, &GainMeter::peak_button_release)); - _session.MeterHoldChanged.connect (mem_fun(*this, &GainMeter::meter_hold_changed)); + Config->ParameterChanged.connect (mem_fun (*this, &GainMeter::parameter_changed)); gain_changed (0); update_gain_sensitive (); @@ -350,17 +350,24 @@ GainMeter::update_meters () } void -GainMeter::meter_hold_changed() +GainMeter::parameter_changed(const char* parameter_name) { - ENSURE_GUI_THREAD(mem_fun(*this, &GainMeter::meter_hold_changed)); - - vector<MeterInfo>::iterator i; - uint32_t n; +#define PARAM_IS(x) (!strcmp (parameter_name, (x))) + + ENSURE_GUI_THREAD (bind (mem_fun(*this, &GainMeter::parameter_changed), parameter_name)); + + if (PARAM_IS ("meter-hold")) { - for (n = 0, i = meters.begin(); i != meters.end(); ++i, ++n) { + vector<MeterInfo>::iterator i; + uint32_t n; - (*i).meter->set_hold_count ((uint32_t) floor(_session.meter_hold())); + for (n = 0, i = meters.begin(); i != meters.end(); ++i, ++n) { + + (*i).meter->set_hold_count ((uint32_t) floor(Config->get_meter_hold())); + } } + +#undef PARAM_IS } void @@ -428,7 +435,7 @@ GainMeter::setup_meters () for (uint32_t n = 0; n < nmeters; ++n) { if (meters[n].width != width) { delete meters[n].meter; - meters[n].meter = new FastMeter ((uint32_t) floor (_session.meter_hold()), width, FastMeter::Vertical); + meters[n].meter = new FastMeter ((uint32_t) floor (Config->get_meter_hold()), width, FastMeter::Vertical); meters[n].width = width; meters[n].meter->add_events (Gdk::BUTTON_RELEASE_MASK); |