From 52f44dc4dad15a70b9dff6284abc07e67ee65941 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Sat, 1 Nov 2014 07:25:47 +0100 Subject: convert interface <> internal values for all automation fixes Send-Fader, Gain-Automation and various Plugin-Slider ranges --- gtk2_ardour/automation_controller.cc | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) (limited to 'gtk2_ardour/automation_controller.cc') diff --git a/gtk2_ardour/automation_controller.cc b/gtk2_ardour/automation_controller.cc index 3174980a7b..77b8d39406 100644 --- a/gtk2_ardour/automation_controller.cc +++ b/gtk2_ardour/automation_controller.cc @@ -69,18 +69,19 @@ AutomationController::create( const Evoral::Parameter& param, boost::shared_ptr ac) { + double const lo = ac->internal_to_interface(param.min()); + double const up = ac->internal_to_interface(param.max()); Gtk::Adjustment* adjustment = manage ( - new Gtk::Adjustment ( - param.normal(), - param.min(), - param.max(), - (param.max() - param.min()) / 100.0, - (param.max() - param.min()) / 10.0 - ) - ); - - assert (ac); - assert(ac->parameter() == param); + new Gtk::Adjustment ( + ac->internal_to_interface(param.normal()), + lo, up, + // TODO we should use explicit step-sizes if provided by Plugin::ParameterDescriptor + (up - lo) / 100, (up - lo) / 10 + ) + ); + + assert (ac); + assert(ac->parameter() == param); return boost::shared_ptr(new AutomationController(printer, ac, adjustment)); } @@ -94,7 +95,7 @@ AutomationController::get_label (double& xpos) void AutomationController::display_effective_value() { - double const interface_value = _controllable->get_value(); + double const interface_value = _controllable->internal_to_interface(_controllable->get_value()); if (_adjustment->get_value () != interface_value) { _ignore_change = true; @@ -107,7 +108,7 @@ void AutomationController::value_adjusted () { if (!_ignore_change) { - _controllable->set_value (_adjustment->get_value()); + _controllable->set_value (_controllable->interface_to_internal(_adjustment->get_value())); } } -- cgit v1.2.3