diff options
author | David Robillard <d@drobilla.net> | 2014-11-01 23:29:10 -0400 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2014-11-02 02:10:24 -0500 |
commit | 8a128b33d38172ae525ac798c53bc105bc4e2c64 (patch) | |
tree | 226459f2fec72a9717d12f190d354f72175607dc /libs/ardour/ardour/plugin_insert.h | |
parent | 6dfb11c2d08201f1a27818955707590b762f5a40 (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.h | 29 |
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 ¶m, - 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 { |