Prepare removal of redundant get_user/set_user API.
authorRobin Gareus <robin@gareus.org>
Wed, 21 Jun 2017 15:05:03 +0000 (17:05 +0200)
committerRobin Gareus <robin@gareus.org>
Wed, 21 Jun 2017 16:13:41 +0000 (18:13 +0200)
gtk2_ardour/ardour_display.cc
gtk2_ardour/plugin_pin_dialog.cc
gtk2_ardour/processor_box.cc
libs/surfaces/faderport/faderport.cc

index d4c75af7bb5d534513cd6402f2a89e30686cc3d2..67220dcf9e0b2b448926bb001a3884cfa3ef19c9 100644 (file)
@@ -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);
 }
 
 
index 11efbcfb9065d7d323826c80fa54b32e2b7dc69e..ed15db2a761295b28d34900c433e0d8a955663e7 100644 (file)
@@ -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);
 }
 
index 36b646806039aba383b0611bbd8b8be9c57ff58a..d9bf1a974969062d4a723cfe5ad613992945adac 100644 (file)
@@ -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);
 }
index 9debc72f6faa9422d86f3663736bb276ab19988f..8e106c7948f9a73fd68b4c13507988f10371d4dd 100644 (file)
@@ -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<AutomationControl> 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);