diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/LV2Info.cpp | 2 | ||||
-rw-r--r-- | src/server/LV2Info.hpp | 1 | ||||
-rw-r--r-- | src/server/LV2Node.cpp | 7 |
3 files changed, 4 insertions, 6 deletions
diff --git a/src/server/LV2Info.cpp b/src/server/LV2Info.cpp index e772b696..5a9ac556 100644 --- a/src/server/LV2Info.cpp +++ b/src/server/LV2Info.cpp @@ -20,6 +20,7 @@ #include "lv2/lv2plug.in/ns/ext/atom/atom.h" #include "lv2/lv2plug.in/ns/ext/resize-port/resize-port.h" +#include "lv2/lv2plug.in/ns/ext/worker/worker.h" #include "ingen/shared/World.hpp" #include "ingen/shared/LV2Features.hpp" @@ -43,6 +44,7 @@ LV2Info::LV2Info(Ingen::Shared::World* world) , lv2_default(lilv_new_uri(world->lilv_world(), LV2_CORE__default)) , lv2_portProperty(lilv_new_uri(world->lilv_world(), LV2_CORE__portProperty)) , rsz_minimumSize(lilv_new_uri(world->lilv_world(), LV2_RESIZE_PORT__minimumSize)) + , work_schedule(lilv_new_uri(world->lilv_world(), LV2_WORKER__schedule)) , _world(world) { assert(world); diff --git a/src/server/LV2Info.hpp b/src/server/LV2Info.hpp index 4a12f5cd..30b43191 100644 --- a/src/server/LV2Info.hpp +++ b/src/server/LV2Info.hpp @@ -44,6 +44,7 @@ public: LilvNode* lv2_default; LilvNode* lv2_portProperty; LilvNode* rsz_minimumSize; + LilvNode* work_schedule; Ingen::Shared::World& world() { return *_world; } LilvWorld* lv2_world() { return _world->lilv_world(); } diff --git a/src/server/LV2Node.cpp b/src/server/LV2Node.cpp index 3292a063..4a7800f3 100644 --- a/src/server/LV2Node.cpp +++ b/src/server/LV2Node.cpp @@ -150,9 +150,6 @@ LV2Node::instantiate(BufferFactory& bufs) _features = info->world().lv2_features().lv2_features(&info->world(), this); uint32_t port_buffer_size = 0; - LilvNode* work_schedule = lilv_new_uri(info->lv2_world(), - LV2_WORKER__schedule); - for (uint32_t i = 0; i < _polyphony; ++i) { (*_instances)[i] = SharedPtr<void>( lilv_plugin_instantiate(plug, _srate, _features->array()), @@ -164,15 +161,13 @@ LV2Node::instantiate(BufferFactory& bufs) return false; } - if (i == 0 && lilv_plugin_has_feature(plug, work_schedule)) { + if (i == 0 && lilv_plugin_has_feature(plug, info->work_schedule)) { _worker_iface = (LV2_Worker_Interface*) lilv_instance_get_extension_data(instance(i), LV2_WORKER__interface); } } - lilv_node_free(work_schedule); - string port_name; Raul::Path port_path; |