diff options
Diffstat (limited to 'src/client/PluginUI.cpp')
-rw-r--r-- | src/client/PluginUI.cpp | 43 |
1 files changed, 12 insertions, 31 deletions
diff --git a/src/client/PluginUI.cpp b/src/client/PluginUI.cpp index d13bc1b3..19c0fe03 100644 --- a/src/client/PluginUI.cpp +++ b/src/client/PluginUI.cpp @@ -109,7 +109,7 @@ PluginUI::PluginUI(Ingen::Shared::World* world, PluginUI::~PluginUI() { - suil_instance_free(_instance); + slv2_ui_instance_free(_instance); } @@ -121,35 +121,15 @@ PluginUI::create(Ingen::Shared::World* world, SharedPtr<PluginUI> ret(new PluginUI(world, node)); ret->_features = world->lv2_features()->lv2_features(world, node.get()); - // Build Suil UI set for this plugin - const char* const plugin_uri = slv2_value_as_uri(slv2_plugin_get_uri(plugin)); - SLV2UIs slv2_uis = slv2_plugin_get_uis(plugin); - SuilUIs suil_uis = suil_uis_new(plugin_uri); - for (unsigned i = 0; i < slv2_uis_size(slv2_uis); ++i) { - SLV2UI ui = slv2_uis_get_at(slv2_uis, i); - SLV2Values classes = slv2_ui_get_classes(ui); - for (unsigned j = 0; j < slv2_values_size(classes); ++j) { - SLV2Value type = slv2_values_get_at(classes, j); - if (suil_ui_type_supported("http://lv2plug.in/ns/extensions/ui#GtkUI", - slv2_value_as_uri(type))) { - suil_uis_add( - suil_uis, - slv2_value_as_uri(slv2_ui_get_uri(ui)), - slv2_value_as_uri(type), - slv2_uri_to_path(slv2_value_as_uri(slv2_ui_get_bundle_uri(ui))), - slv2_uri_to_path(slv2_value_as_uri(slv2_ui_get_binary_uri(ui)))); - break; - } else { - warn << "Unsupported LV2 UI type " << slv2_value_as_uri(type) << endl; - } - } - } + SLV2Value gtk_ui = slv2_value_new_uri( + world->slv2_world(), "http://lv2plug.in/ns/extensions/ui#GtkUI"); + + SLV2UI ui = slv2_plugin_get_default_ui(plugin, gtk_ui); - // Attempt to instantiate a UI - SuilInstance instance = suil_instance_new( - suil_uis, - "http://lv2plug.in/ns/extensions/ui#GtkUI", - NULL, + SLV2UIInstance instance = slv2_ui_instance_new( + plugin, + ui, + gtk_ui, lv2_ui_write, ret.get(), ret->_features->array()); @@ -167,7 +147,7 @@ PluginUI::create(Ingen::Shared::World* world, LV2UI_Widget PluginUI::get_widget() { - return (LV2UI_Widget*)suil_instance_get_widget(_instance); + return (LV2UI_Widget*)slv2_ui_instance_get_widget(_instance); } void @@ -176,7 +156,8 @@ PluginUI::port_event(uint32_t port_index, uint32_t format, const void* buffer) { - suil_instance_port_event(_instance, port_index, buffer_size, format, buffer); + slv2_ui_instance_port_event( + _instance, port_index, buffer_size, format, buffer); } } // namespace Client |