diff options
author | Robin Gareus <robin@gareus.org> | 2014-11-01 07:25:47 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2014-11-01 07:27:35 +0100 |
commit | 52f44dc4dad15a70b9dff6284abc07e67ee65941 (patch) | |
tree | a26848fe54b6c2c56dd9b5bbb89784ba7b2409b0 /gtk2_ardour | |
parent | c855d17e09a4b8a977ff9e026dd1b01e80c3bf65 (diff) |
convert interface <> internal values for all automation
fixes Send-Fader, Gain-Automation and various Plugin-Slider ranges
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/automation_controller.cc | 27 | ||||
-rw-r--r-- | gtk2_ardour/generic_pluginui.cc | 8 | ||||
-rw-r--r-- | gtk2_ardour/processor_box.cc | 10 |
3 files changed, 20 insertions, 25 deletions
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<AutomationControl> 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<AutomationController>(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())); } } diff --git a/gtk2_ardour/generic_pluginui.cc b/gtk2_ardour/generic_pluginui.cc index f6029ecb0c..feea27b0b9 100644 --- a/gtk2_ardour/generic_pluginui.cc +++ b/gtk2_ardour/generic_pluginui.cc @@ -662,12 +662,6 @@ GenericPluginUI::build_control_ui (guint32 port_index, boost::shared_ptr<Automat Adjustment* adj = control_ui->controller->adjustment(); boost::shared_ptr<PluginInsert::PluginControl> pc = boost::dynamic_pointer_cast<PluginInsert::PluginControl> (control_ui->control); - adj->set_lower (desc.lower); - adj->set_upper (desc.upper); - - adj->set_step_increment (desc.step); - adj->set_page_increment (desc.largestep); - if (desc.integer_step) { control_ui->clickbox = new ClickBox (adj, "PluginUIClickBox"); Gtkmm2ext::set_size_request_to_display_given_text (*control_ui->clickbox, "g9999999", 2, 2); @@ -687,7 +681,7 @@ GenericPluginUI::build_control_ui (guint32 port_index, boost::shared_ptr<Automat } - adj->set_value (plugin->get_parameter (port_index)); + adj->set_value (mcontrol->internal_to_interface(plugin->get_parameter (port_index))); /* XXX memory leak: SliderController not destroyed by ControlUI destructor, and manage() reports object hierarchy diff --git a/gtk2_ardour/processor_box.cc b/gtk2_ardour/processor_box.cc index 12ae5af4bc..1fdad0801d 100644 --- a/gtk2_ardour/processor_box.cc +++ b/gtk2_ardour/processor_box.cc @@ -522,14 +522,14 @@ ProcessorEntry::Control::Control (boost::shared_ptr<AutomationControl> c, string box.add (_slider); _slider.show (); - double const lo = c->lower (); - double const up = c->upper (); + double const lo = c->internal_to_interface(c->lower ()); + double const up = c->internal_to_interface(c->upper ()); _adjustment.set_lower (lo); _adjustment.set_upper (up); _adjustment.set_step_increment ((up - lo) / 100); _adjustment.set_page_increment ((up - lo) / 10); - _slider.set_default_value (c->normal ()); + _slider.set_default_value (c->internal_to_interface(c->normal ())); _adjustment.signal_value_changed().connect (sigc::mem_fun (*this, &Control::slider_adjusted)); c->Changed.connect (_connection, MISSING_INVALIDATOR, boost::bind (&Control::control_changed, this), gui_context ()); @@ -581,7 +581,7 @@ ProcessorEntry::Control::slider_adjusted () return; } - c->set_value ( _adjustment.get_value () ); + c->set_value ( c->interface_to_internal(_adjustment.get_value ()) ); set_tooltip (); } @@ -617,7 +617,7 @@ ProcessorEntry::Control::control_changed () } else { - _adjustment.set_value (c->get_value ()); + _adjustment.set_value (c->internal_to_interface(c->get_value ())); stringstream s; s.precision (1); |