diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2014-02-19 12:51:32 -0500 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2014-02-19 23:25:08 -0500 |
commit | 08eecbf3fe081ede63f3559bb54969d0a88b14df (patch) | |
tree | 0fc57e36c42a590371e9715630d4ad06ca00c900 /libs/ardour/amp.cc | |
parent | 80d83fd238dbfef474b29688942ad66043214cf8 (diff) |
clear up some stupid thinking in Amp regarding the way the underlying AutomationControl/Controllable gets set when Amp::set_gain() is called
Diffstat (limited to 'libs/ardour/amp.cc')
-rw-r--r-- | libs/ardour/amp.cc | 23 |
1 files changed, 4 insertions, 19 deletions
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 |