Make adjust region gain work in 1dB steps with no upper limit. Should fix or help...
authorCarl Hetherington <carl@carlh.net>
Sun, 12 Dec 2010 01:03:56 +0000 (01:03 +0000)
committerCarl Hetherington <carl@carlh.net>
Sun, 12 Dec 2010 01:03:56 +0000 (01:03 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@8254 d708f5d6-7413-0410-9779-e7cbd77b26cf

gtk2_ardour/editor_ops.cc

index 77b2f40bcc5aa33e818ebac642f112aad083c5a7..fa096dc42b0b9572e870281cab7f00522a97480a 100644 (file)
@@ -4517,28 +4517,16 @@ Editor::adjust_region_gain (bool up)
                }
 
                arv->region()->clear_changes ();
                }
 
                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) {
 
                if (up) {
-                       fraction += 0.05;
-                       fraction = min (fraction, 1.0);
+                       dB += 1;
                } else {
                } 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()));
        }
 
                _session->add_command (new StatefulDiffCommand (arv->region()));
        }