summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2017-05-25 13:34:11 +0200
committerRobin Gareus <robin@gareus.org>2017-05-25 13:49:18 +0200
commit63a71c597af9e24feaa4090ae37a56c584c25095 (patch)
tree595d38656393d8680f58670bbb1e321bc36c0fa7
parent2c40b46ca9e1ee23d7e994f529530e8b34bb278e (diff)
Include ParameterDescriptor in read-only control output
-rw-r--r--libs/ardour/ardour/readonly_control.h5
-rw-r--r--libs/ardour/plugin_insert.cc9
-rw-r--r--libs/ardour/readonly_control.cc3
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)
{ }