summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/lv2_plugin.h
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2014-10-31 20:44:02 -0400
committerDavid Robillard <d@drobilla.net>2014-10-31 20:46:43 -0400
commit5de6c21ec1d1c6dde705df6cbe47d4aa5e711b55 (patch)
tree3a26cf24f14591a8d54eed1579a2decf0fd0b2db /libs/ardour/ardour/lv2_plugin.h
parent324ab35abca1ee8dbf24842dc149b15dd54d23e3 (diff)
More generic RT-safe implementation of LV2 properties.
Diffstat (limited to 'libs/ardour/ardour/lv2_plugin.h')
-rw-r--r--libs/ardour/ardour/lv2_plugin.h22
1 files changed, 8 insertions, 14 deletions
diff --git a/libs/ardour/ardour/lv2_plugin.h b/libs/ardour/ardour/lv2_plugin.h
index 3c8f94855d..9e0bebad5a 100644
--- a/libs/ardour/ardour/lv2_plugin.h
+++ b/libs/ardour/ardour/lv2_plugin.h
@@ -146,16 +146,13 @@ class LIBARDOUR_API LV2Plugin : public ARDOUR::Plugin, public ARDOUR::Workee
Worker* worker() { return _worker; }
- uint32_t patch_count() const { return _patch_count; }
- const char * patch_uri(const uint32_t p) const { if (p < _patch_count) return _patch_value_uri[p]; else return NULL; }
- const char * patch_key(const uint32_t p) const { if (p < _patch_count) return _patch_value_key[p]; else return NULL; }
- const char * patch_val(const uint32_t p) const { if (p < _patch_count) return _patch_value_cur[p]; else return NULL; }
- bool patch_set(const uint32_t p, const char * val);
- PBD::Signal1<void,const uint32_t> PatchChanged;
-
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 {
@@ -165,6 +162,7 @@ class LIBARDOUR_API LV2Plugin : public ARDOUR::Plugin, public ARDOUR::Workee
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;
@@ -177,6 +175,7 @@ class LIBARDOUR_API LV2Plugin : public ARDOUR::Plugin, public ARDOUR::Workee
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;
@@ -202,13 +201,8 @@ class LIBARDOUR_API LV2Plugin : public ARDOUR::Plugin, public ARDOUR::Workee
framepos_t _next_cycle_start; ///< Expected start frame of next run cycle
double _next_cycle_speed; ///< Expected start frame of next run cycle
PBD::ID _insert_id;
-
- uint32_t _patch_count;
- char ** _patch_value_uri;
- char ** _patch_value_key;
- char (*_patch_value_cur)[PATH_MAX]; ///< current value
- char (*_patch_value_set)[PATH_MAX]; ///< new value to set
- Glib::Threads::Mutex _patch_set_lock;
+ uint32_t _patch_port_in_index;
+ uint32_t _patch_port_out_index;
friend const void* lv2plugin_get_port_value(const char* port_symbol,
void* user_data,