-void
-Amp::inc_gain (gain_t factor, void *src)
-{
- float desired_gain = _gain_control->user_float();
-
- if (desired_gain == 0.0f) {
- set_gain (0.000001f + (0.000001f * factor), src);
- } else {
- set_gain (desired_gain + (desired_gain * factor), src);
- }
-}
-
-void
-Amp::set_gain (gain_t val, void *src)
-{
- // max gain at about +6dB (10.0 ^ ( 6 dB * 0.05))
- if (val > 1.99526231f) {
- val = 1.99526231f;
- }
-
- //cerr << "set desired gain to " << val << " when curgain = " << _gain_control->get_value () << endl;
-
- 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_float(val, false);
- _session.set_dirty();
-}
-