diff options
author | Robin Gareus <robin@gareus.org> | 2017-05-25 13:34:11 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2017-05-25 13:49:18 +0200 |
commit | 63a71c597af9e24feaa4090ae37a56c584c25095 (patch) | |
tree | 595d38656393d8680f58670bbb1e321bc36c0fa7 | |
parent | 2c40b46ca9e1ee23d7e994f529530e8b34bb278e (diff) |
Include ParameterDescriptor in read-only control output
-rw-r--r-- | libs/ardour/ardour/readonly_control.h | 5 | ||||
-rw-r--r-- | libs/ardour/plugin_insert.cc | 9 | ||||
-rw-r--r-- | libs/ardour/readonly_control.cc | 3 |
3 files changed, 11 insertions, 6 deletions
diff --git a/libs/ardour/ardour/readonly_control.h b/libs/ardour/ardour/readonly_control.h index 8a2901af68..b88deaffe2 100644 --- a/libs/ardour/ardour/readonly_control.h +++ b/libs/ardour/ardour/readonly_control.h @@ -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; }; diff --git a/libs/ardour/plugin_insert.cc b/libs/ardour/plugin_insert.cc index c20464be89..ece0fbe40d 100644 --- a/libs/ardour/plugin_insert.cc +++ b/libs/ardour/plugin_insert.cc @@ -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) { diff --git a/libs/ardour/readonly_control.cc b/libs/ardour/readonly_control.cc index 3b72ac5e1b..e09a9f0776 100644 --- a/libs/ardour/readonly_control.cc +++ b/libs/ardour/readonly_control.cc @@ -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) { } |