Include ParameterDescriptor in read-only control output
authorRobin Gareus <robin@gareus.org>
Thu, 25 May 2017 11:34:11 +0000 (13:34 +0200)
committerRobin Gareus <robin@gareus.org>
Thu, 25 May 2017 11:49:18 +0000 (13:49 +0200)
libs/ardour/ardour/readonly_control.h
libs/ardour/plugin_insert.cc
libs/ardour/readonly_control.cc

index 8a2901af6877a2e52837533d96a833181f8423fc..b88deaffe27422cdd3983b984ee09afca6d063c9 100644 (file)
@@ -21,6 +21,7 @@
 #define __ardour_readonly_control_h__
 
 #include <boost/weak_ptr.hpp>
+#include "ardour/parameter_descriptor.h"
 
 namespace ARDOUR {
 
@@ -29,13 +30,15 @@ class Plugin;
 class LIBARDOUR_API ReadOnlyControl : public PBD::Destructible
 {
 public:
-       ReadOnlyControl (boost::shared_ptr<Plugin> p, uint32_t pnum);
+       ReadOnlyControl (boost::shared_ptr<Plugin>, const ParameterDescriptor&, uint32_t pnum);
 
        double get_parameter () const;
        std::string describe_parameter ();
+       const ParameterDescriptor& desc() const { return _desc; }
 
 private:
        boost::weak_ptr<Plugin> _plugin;
+       const ParameterDescriptor _desc;
        uint32_t _parameter_num;
 };
 
index c20464be8990a10d4e72b09972c6c8e56e6de8fd..ece0fbe40df100aaff72c715c470099e366a2148 100644 (file)
@@ -458,15 +458,16 @@ PluginInsert::create_automatable_parameters ()
                if (!plugin->parameter_is_control (i)) {
                        continue;
                }
+
+               ParameterDescriptor desc;
+               plugin->get_parameter_descriptor(i, desc);
+
                if (!plugin->parameter_is_input (i)) {
-                       _control_outputs[i] = boost::shared_ptr<ReadOnlyControl> (new ReadOnlyControl (plugin, i));
+                       _control_outputs[i] = boost::shared_ptr<ReadOnlyControl> (new ReadOnlyControl (plugin, desc, i));
                        continue;
                }
                Evoral::Parameter param (PluginAutomation, 0, i);
 
-               ParameterDescriptor desc;
-               plugin->get_parameter_descriptor(i, desc);
-
                const bool automatable = a.find(param) != a.end();
 
                if (automatable) {
index 3b72ac5e1b6efc5938075bc5571a183a7017bd71..e09a9f077657dd39a1beba2edeee975c22871fe9 100644 (file)
@@ -24,8 +24,9 @@
 
 using namespace ARDOUR;
 
-ReadOnlyControl::ReadOnlyControl (boost::shared_ptr<Plugin> p, uint32_t pnum)
+ReadOnlyControl::ReadOnlyControl (boost::shared_ptr<Plugin> p, const ParameterDescriptor& desc, uint32_t pnum)
                : _plugin (boost::weak_ptr<Plugin> (p))
+               , _desc (desc)
                , _parameter_num (pnum)
 { }