X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Famp.cc;h=132be2e1c6db4c9cf8efa2066730b77dd885a34d;hb=84bcf5981274ea0674f5702ef1f0570c2b57a0f2;hp=c97d6244405eaecdd2a410e947d6b46cc0d48219;hpb=92848355801abdfcb81d620cd0adeeea74a3accd;p=ardour.git diff --git a/libs/ardour/amp.cc b/libs/ardour/amp.cc index c97d624440..132be2e1c6 100644 --- a/libs/ardour/amp.cc +++ b/libs/ardour/amp.cc @@ -372,19 +372,9 @@ Amp::inc_gain (gain_t factor, void *src) } void -Amp::set_gain (gain_t val, void *src) +Amp::set_gain (gain_t val, void *) { - val = min (val, max_gain_coefficient); - - if (src != _gain_control.get()) { - _gain_control->set_value (val); - // bit twisty, this will come back and call us again - // (this keeps control in sync with reality) - return; - } - - _gain_control->set_double (val); - _session.set_dirty(); + _gain_control->set_value (val); } XMLNode& @@ -414,13 +404,8 @@ Amp::set_state (const XMLNode& node, int version) void Amp::GainControl::set_value (double val) { - if (val > max_gain_coefficient) { - val = max_gain_coefficient; - } - - _amp->set_gain (val, this); - - AutomationControl::set_value(val); + AutomationControl::set_value (min (val, (double) max_gain_coefficient)); + _amp->session().set_dirty (); } double