summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/lv2_plugin.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/lv2_plugin.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/lv2_plugin.h')
-rw-r--r--libs/ardour/ardour/lv2_plugin.h45
1 files changed, 12 insertions, 33 deletions
diff --git a/libs/ardour/ardour/lv2_plugin.h b/libs/ardour/ardour/lv2_plugin.h
index 82912a947d..9696784f01 100644
--- a/libs/ardour/ardour/lv2_plugin.h
+++ b/libs/ardour/ardour/lv2_plugin.h
@@ -146,42 +146,16 @@ class LIBARDOUR_API LV2Plugin : public ARDOUR::Plugin, public ARDOUR::Workee
Worker* worker() { return _worker; }
+ URIMap& uri_map() { return _uri_map; }
+ const URIMap& uri_map() const { return _uri_map; }
+
int work(uint32_t size, const void* data);
int work_response(uint32_t size, const void* data);
- void set_property(uint32_t key, const Variant& value);
- void get_supported_properties(std::vector<ParameterDescriptor>& descs);
- void announce_property_values();
-
- static URIMap _uri_map;
-
- struct URIDs {
- uint32_t atom_Chunk;
- uint32_t atom_Path;
- uint32_t atom_Sequence;
- uint32_t atom_eventTransfer;
- uint32_t atom_URID;
- uint32_t atom_Blank;
- uint32_t atom_Object;
- uint32_t log_Error;
- uint32_t log_Note;
- uint32_t log_Warning;
- uint32_t midi_MidiEvent;
- uint32_t time_Position;
- uint32_t time_bar;
- uint32_t time_barBeat;
- uint32_t time_beatUnit;
- uint32_t time_beatsPerBar;
- uint32_t time_beatsPerMinute;
- uint32_t time_frame;
- uint32_t time_speed;
- uint32_t patch_Get;
- uint32_t patch_Set;
- uint32_t patch_property;
- uint32_t patch_value;
- };
-
- static URIDs urids;
+ void set_property(uint32_t key, const Variant& value);
+ const PropertyDescriptors& get_supported_properties() const { return _property_descriptors; }
+ const ParameterDescriptor& get_property_descriptor(uint32_t id) const;
+ void announce_property_values();
private:
struct Impl;
@@ -203,6 +177,7 @@ class LIBARDOUR_API LV2Plugin : public ARDOUR::Plugin, public ARDOUR::Workee
PBD::ID _insert_id;
uint32_t _patch_port_in_index;
uint32_t _patch_port_out_index;
+ URIMap& _uri_map;
friend const void* lv2plugin_get_port_value(const char* port_symbol,
void* user_data,
@@ -227,6 +202,8 @@ class LIBARDOUR_API LV2Plugin : public ARDOUR::Plugin, public ARDOUR::Workee
std::vector<size_t> _port_minimumSize;
std::map<std::string,uint32_t> _port_indices;
+ PropertyDescriptors _property_descriptors;
+
/// Message send to/from UI via ports
struct UIMessage {
uint32_t index;
@@ -283,6 +260,8 @@ class LIBARDOUR_API LV2Plugin : public ARDOUR::Plugin, public ARDOUR::Workee
void allocate_atom_event_buffers ();
void run (pframes_t nsamples);
+ void load_supported_properties(PropertyDescriptors& descs);
+
void latency_compute_run ();
std::string do_save_preset (std::string);
void do_remove_preset (std::string);