diff options
author | Robin Gareus <robin@gareus.org> | 2015-09-05 17:25:59 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2015-09-05 17:25:59 +0200 |
commit | 0b2af5b9b89f2cda6921b82517f4560b91ef05c2 (patch) | |
tree | 6994c45af889822a3785f6eef80d707dc7902b97 /gtk2_ardour/automation_line.cc | |
parent | b6f1eac8b069d368aadb700bdc682bcc0298f4ce (diff) |
fix log-scale for automation lanes.
Diffstat (limited to 'gtk2_ardour/automation_line.cc')
-rw-r--r-- | gtk2_ardour/automation_line.cc | 8 |
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; |