From a69ca86944cae1ffeebff9426b18b8d3e9f153d8 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Thu, 11 Apr 2024 18:52:10 +0200 Subject: [PATCH] Fix inline controls allow for inverted range Some controls (notably pan azimuth) have reversed range 1..0. Support for this was added years ago in 647103c8250 but inline controls were not updated. --- gtk2_ardour/processor_box.cc | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/gtk2_ardour/processor_box.cc b/gtk2_ardour/processor_box.cc index dbd5dae94b..531c368673 100644 --- a/gtk2_ardour/processor_box.cc +++ b/gtk2_ardour/processor_box.cc @@ -1036,11 +1036,11 @@ ProcessorEntry::Control::Control (ProcessorEntry& e,std::shared_ptrdesc(); - double const lo = c->internal_to_interface (desc.lower); - double const up = c->internal_to_interface (desc.upper); - double const normal = c->internal_to_interface (desc.normal); - double const smallstep = c->internal_to_interface (desc.lower + desc.smallstep); - double const largestep = c->internal_to_interface (desc.lower + desc.largestep); + double const lo = c->internal_to_interface (desc.lower, true); + double const up = c->internal_to_interface (desc.upper, true); + double const normal = c->internal_to_interface (desc.normal, true); + double const smallstep = fabs (c->internal_to_interface (desc.lower + desc.smallstep, true) - lo); + double const largestep = fabs (c->internal_to_interface (desc.lower + desc.largestep, true) - lo); _adjustment.set_lower (lo); _adjustment.set_upper (up); @@ -1099,7 +1099,7 @@ ProcessorEntry::Control::slider_adjusted () return; } - c->set_value ( c->interface_to_internal(_adjustment.get_value ()) , Controllable::NoGroup); + c->set_value ( c->interface_to_internal(_adjustment.get_value (), true) , Controllable::NoGroup); set_tooltip (); } @@ -1186,7 +1186,7 @@ ProcessorEntry::Control::control_changed () _button.set_active (c->get_value() > 0.5); } else { // Note: the _slider watches the controllable by itself - const double nval = c->internal_to_interface (c->get_value ()); + const double nval = c->internal_to_interface (c->get_value (), true); if (_adjustment.get_value() != nval) { _adjustment.set_value (nval); set_tooltip ();