summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/plugin_insert.h
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2014-11-01 23:29:10 -0400
committerDavid Robillard <d@drobilla.net>2014-11-02 02:10:24 -0500
commit8a128b33d38172ae525ac798c53bc105bc4e2c64 (patch)
tree226459f2fec72a9717d12f190d354f72175607dc /libs/ardour/ardour/plugin_insert.h
parent6dfb11c2d08201f1a27818955707590b762f5a40 (diff)
Automation of LV2 plugin properties.
Work towards ParameterDescriptor being used more universally to describe control characteristics.
Diffstat (limited to 'libs/ardour/ardour/plugin_insert.h')
-rw-r--r--libs/ardour/ardour/plugin_insert.h29
1 files changed, 24 insertions, 5 deletions
diff --git a/libs/ardour/ardour/plugin_insert.h b/libs/ardour/ardour/plugin_insert.h
index f1c03a79d2..6571732bb9 100644
--- a/libs/ardour/ardour/plugin_insert.h
+++ b/libs/ardour/ardour/plugin_insert.h
@@ -28,6 +28,7 @@
#include "ardour/ardour.h"
#include "ardour/libardour_visibility.h"
#include "ardour/types.h"
+#include "ardour/parameter_descriptor.h"
#include "ardour/processor.h"
#include "ardour/automation_control.h"
@@ -81,10 +82,13 @@ class LIBARDOUR_API PluginInsert : public Processor
void realtime_locate ();
void monitoring_changed ();
+ /** A control that manipulates a plugin parameter (control port). */
struct PluginControl : public AutomationControl
{
- PluginControl (PluginInsert* p, const Evoral::Parameter &param,
- boost::shared_ptr<AutomationList> list = boost::shared_ptr<AutomationList>());
+ PluginControl (PluginInsert* p,
+ const Evoral::Parameter& param,
+ const ParameterDescriptor& desc,
+ boost::shared_ptr<AutomationList> list=boost::shared_ptr<AutomationList>());
void set_value (double val);
double get_value (void) const;
@@ -95,9 +99,24 @@ class LIBARDOUR_API PluginInsert : public Processor
private:
PluginInsert* _plugin;
- bool _logarithmic;
- bool _sr_dependent;
- bool _toggled;
+ };
+
+ /** A control that manipulates a plugin property (message). */
+ struct PluginPropertyControl : public AutomationControl
+ {
+ PluginPropertyControl (PluginInsert* p,
+ const Evoral::Parameter& param,
+ const ParameterDescriptor& desc,
+ boost::shared_ptr<AutomationList> list=boost::shared_ptr<AutomationList>());
+
+ void set_value (const Variant& val);
+ void set_value (double val);
+ double get_value (void) const;
+ XMLNode& get_state();
+
+ private:
+ PluginInsert* _plugin;
+ Variant _value;
};
boost::shared_ptr<Plugin> plugin(uint32_t num=0) const {