Prepare to eventually drop Automatable::value_as_string()
authorRobin Gareus <robin@gareus.org>
Fri, 9 Jun 2017 11:41:04 +0000 (13:41 +0200)
committerRobin Gareus <robin@gareus.org>
Fri, 9 Jun 2017 14:54:21 +0000 (16:54 +0200)
Probably due to historical reasons, there are two APIs to format a
control's value. In all both variants end up calling either
ARDOUR::value_as_string() or the Controllable's formatting function
(except for panners).

libs/ardour/ardour/automation_control.h
libs/ardour/automation_control.cc
libs/ardour/pannable.cc

index 299b7d1d97c66765ff51cfacb12688afa29323bd..cb3b6085f4ab00570f941f519810ce5ca179a0b5 100644 (file)
@@ -116,6 +116,8 @@ class LIBARDOUR_API AutomationControl
        double internal_to_interface (double i) const;
        double interface_to_internal (double i) const;
 
+       virtual std::string get_user_string() const;
+
        const ParameterDescriptor& desc() const { return _desc; }
 
        const ARDOUR::Session& session() const { return _session; }
index ffff120a239a7e9602833993c05ff211107374fe..7e74ce7cf75fb9c7567b1bcc190a7f07038ff16c 100644 (file)
@@ -31,6 +31,7 @@
 #include "ardour/event_type_map.h"
 #include "ardour/session.h"
 #include "ardour/selection.h"
+#include "ardour/value_as_string.h"
 
 #include "pbd/i18n.h"
 
@@ -338,6 +339,12 @@ AutomationControl::interface_to_internal (double val) const
        return val;
 }
 
+std::string
+AutomationControl::get_user_string () const
+{
+       return ARDOUR::value_as_string (_desc, get_value());
+}
+
 void
 AutomationControl::set_group (boost::shared_ptr<ControlGroup> cg)
 {
index e91eb43429b2261a9779ec5ab66a7521df4f302c..a32efc74aabdb53701831662ca506d0735adb1cf 100644 (file)
@@ -28,6 +28,7 @@
 #include "ardour/panner.h"
 #include "ardour/pan_controllable.h"
 #include "ardour/session.h"
+#include "ardour/value_as_string.h"
 
 #include "pbd/i18n.h"
 
@@ -282,5 +283,5 @@ Pannable::value_as_string (boost::shared_ptr<const AutomationControl> ac) const
                return p->value_as_string (ac);
        }
 
-       return Automatable::value_as_string (ac);
+       return ARDOUR::value_as_string(ac->desc(), ac->get_value());
 }