summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk2_ardour/editor_ops.cc22
1 files changed, 5 insertions, 17 deletions
diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc
index 77b2f40bcc..fa096dc42b 100644
--- a/gtk2_ardour/editor_ops.cc
+++ b/gtk2_ardour/editor_ops.cc
@@ -4517,28 +4517,16 @@ Editor::adjust_region_gain (bool up)
}
arv->region()->clear_changes ();
-
- double fraction = gain_to_slider_position (arv->audio_region()->scale_amplitude ());
+
+ double dB = accurate_coefficient_to_dB (arv->audio_region()->scale_amplitude ());
if (up) {
- fraction += 0.05;
- fraction = min (fraction, 1.0);
+ dB += 1;
} else {
- fraction -= 0.05;
- fraction = max (fraction, 0.0);
- }
-
- if (!up && fraction <= 0) {
- continue;
- }
-
- fraction = slider_position_to_gain (fraction);
-
- if (up && fraction >= 2.0) {
- continue;
+ dB -= 1;
}
- arv->audio_region()->set_scale_amplitude (fraction);
+ arv->audio_region()->set_scale_amplitude (dB_to_coefficient (dB));
_session->add_command (new StatefulDiffCommand (arv->region()));
}