summaryrefslogtreecommitdiff
path: root/gtk2_ardour/automation_line.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2015-09-05 17:25:59 +0200
committerRobin Gareus <robin@gareus.org>2015-09-05 17:25:59 +0200
commit0b2af5b9b89f2cda6921b82517f4560b91ef05c2 (patch)
tree6994c45af889822a3785f6eef80d707dc7902b97 /gtk2_ardour/automation_line.cc
parentb6f1eac8b069d368aadb700bdc682bcc0298f4ce (diff)
fix log-scale for automation lanes.
Diffstat (limited to 'gtk2_ardour/automation_line.cc')
-rw-r--r--gtk2_ardour/automation_line.cc8
1 files changed, 4 insertions, 4 deletions
diff --git a/gtk2_ardour/automation_line.cc b/gtk2_ardour/automation_line.cc
index b0e4f3573e..7ea3ff027c 100644
--- a/gtk2_ardour/automation_line.cc
+++ b/gtk2_ardour/automation_line.cc
@@ -1194,12 +1194,12 @@ AutomationLine::view_to_model_coord_y (double& y) const
*/
if ( alist->parameter().type() == GainAutomation
|| alist->parameter().type() == EnvelopeAutomation
- || (_desc.unit == ParameterDescriptor::DB && _desc.lower == 0.)) {
+ || (_desc.logarithmic && _desc.lower == 0. && _desc.upper > _desc.lower)) {
y = slider_position_to_gain_with_max (y, _desc.upper);
y = max ((double)_desc.lower, y);
y = min ((double)_desc.upper, y);
} else if (alist->parameter().type() == TrimAutomation
- || (_desc.unit == ParameterDescriptor::DB && _desc.lower > 0 && _desc.upper > _desc.lower)) {
+ || (_desc.logarithmic && _desc.lower * _desc.upper > 0 && _desc.upper > _desc.lower)) {
const double lower_db = accurate_coefficient_to_dB (_desc.lower);
const double range_db = accurate_coefficient_to_dB (_desc.upper) - lower_db;
y = max (0.0, y);
@@ -1226,10 +1226,10 @@ AutomationLine::model_to_view_coord_y (double& y) const
/* TODO: This should be more generic (use ParameterDescriptor) */
if ( alist->parameter().type() == GainAutomation
|| alist->parameter().type() == EnvelopeAutomation
- || (_desc.unit == ParameterDescriptor::DB && _desc.lower == 0.)) {
+ || (_desc.logarithmic && _desc.lower == 0. && _desc.upper > _desc.lower)) {
y = gain_to_slider_position_with_max (y, Config->get_max_gain());
} else if (alist->parameter().type() == TrimAutomation
- || (_desc.unit == ParameterDescriptor::DB && _desc.lower > 0 && _desc.upper > _desc.lower)) {
+ || (_desc.logarithmic && _desc.lower * _desc.upper > 0 && _desc.upper > _desc.lower)) {
const double lower_db = accurate_coefficient_to_dB (_desc.lower);
const double range_db = accurate_coefficient_to_dB (_desc.upper) - lower_db;
y = (accurate_coefficient_to_dB (y) - lower_db) / range_db;