summaryrefslogtreecommitdiff
path: root/libs/ardour/amp.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2014-02-19 12:51:32 -0500
committerPaul Davis <paul@linuxaudiosystems.com>2014-02-19 23:25:08 -0500
commit08eecbf3fe081ede63f3559bb54969d0a88b14df (patch)
tree0fc57e36c42a590371e9715630d4ad06ca00c900 /libs/ardour/amp.cc
parent80d83fd238dbfef474b29688942ad66043214cf8 (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.cc23
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