From 55df5b39bc5ff2fc4efabb78d701e8a9e3d56b47 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Wed, 21 Jun 2017 17:05:03 +0200 Subject: [PATCH] Prepare removal of redundant get_user/set_user API. --- gtk2_ardour/ardour_display.cc | 8 +++++++- gtk2_ardour/plugin_pin_dialog.cc | 7 +++---- gtk2_ardour/processor_box.cc | 11 +++-------- libs/surfaces/faderport/faderport.cc | 6 +++--- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/gtk2_ardour/ardour_display.cc b/gtk2_ardour/ardour_display.cc index d4c75af7bb..67220dcf9e 100644 --- a/gtk2_ardour/ardour_display.cc +++ b/gtk2_ardour/ardour_display.cc @@ -104,7 +104,13 @@ ArdourDisplay::handle_controllable_preset (float p) if (!c) return; - c->set_user(p); + /* This should not use dB_to_coefficient(), but the Controllable's value. + * + * The only user of this API is currently monitor_section.cc which conveniently + * binds dB values. Once there are other use-cases, for this, this (GUI only) API + * needs fixing. + */ + c->set_value(dB_to_coefficient (p), Controllable::NoGroup); } diff --git a/gtk2_ardour/plugin_pin_dialog.cc b/gtk2_ardour/plugin_pin_dialog.cc index 11efbcfb90..ed15db2a76 100644 --- a/gtk2_ardour/plugin_pin_dialog.cc +++ b/gtk2_ardour/plugin_pin_dialog.cc @@ -36,6 +36,7 @@ #include "ardour/profile.h" #include "ardour/send.h" #include "ardour/session.h" +#include "ardour/value_as_string.h" #include "plugin_pin_dialog.h" #include "gui_thread.h" @@ -1914,10 +1915,8 @@ PluginPinWidget::Control::set_tooltip () if (!c) { return; } - char tmp[256]; - snprintf (tmp, sizeof (tmp), "%s: %.2f", _name.c_str (), c->internal_to_user (c->get_value ())); - - string sm = Gtkmm2ext::markup_escape_text (tmp); + std::string tt = _name + ": " + ARDOUR::value_as_string (c->desc(), c->get_value ()); + string sm = Gtkmm2ext::markup_escape_text (tt); _slider_persistant_tooltip.set_tip (sm); } diff --git a/gtk2_ardour/processor_box.cc b/gtk2_ardour/processor_box.cc index 36b6468060..d9bf1a9749 100644 --- a/gtk2_ardour/processor_box.cc +++ b/gtk2_ardour/processor_box.cc @@ -59,6 +59,7 @@ #include "ardour/send.h" #include "ardour/session.h" #include "ardour/types.h" +#include "ardour/value_as_string.h" #include "LuaBridge/LuaBridge.h" @@ -886,14 +887,8 @@ ProcessorEntry::Control::set_tooltip () if (!c) { return; } - char tmp[256]; - if (c->toggled ()) { - snprintf (tmp, sizeof(tmp), "%s: %s", _name.c_str(), c->get_value() > 0.5 ? _("on") : _("off")); - } else { - snprintf (tmp, sizeof(tmp), "%s: %.2f", _name.c_str(), c->internal_to_user (c->get_value ())); - } - - string sm = Gtkmm2ext::markup_escape_text (tmp); + std::string tt = _name + ": " + ARDOUR::value_as_string (c->desc(), c->get_value ()); + string sm = Gtkmm2ext::markup_escape_text (tt); _slider_persistant_tooltip.set_tip (sm); ARDOUR_UI_UTILS::set_tooltip (_button, sm); } diff --git a/libs/surfaces/faderport/faderport.cc b/libs/surfaces/faderport/faderport.cc index 9debc72f6f..8e106c7948 100644 --- a/libs/surfaces/faderport/faderport.cc +++ b/libs/surfaces/faderport/faderport.cc @@ -459,9 +459,9 @@ FaderPort::encoder_handler (MIDI::Parser &, MIDI::pitchbend_t pb) if ((button_state & trim_modifier) == trim_modifier ) { // mod+encoder = input trim boost::shared_ptr trim = _current_stripable->trim_control (); if (trim) { - float val = trim->get_user(); //for gain elements, the "user" value is in dB - val += delta; - trim->set_user(val); + float val = accurate_coefficient_to_dB (trim->get_value()); + val += delta * .5f; // use 1/2 dB Steps -20..+20 + trim->set_value (dB_to_coefficient (val), Controllable::UseGroup); } } else if (width_modifier && ((button_state & width_modifier) == width_modifier)) { ardour_pan_width (delta);