From 128b9ee5107c4d9b3d963bef8de016c08c6d74c6 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Thu, 24 Feb 2011 09:00:54 +0000 Subject: Make Suil exclusively deal with instantiating (not choosing) UIs. Add slv2_ui_instance_new as a replacement for slv2_ui_instantiate (now deprecated), which supports cross-toolkit embedding by taking an additional widget type pointer. Remove direct Suil dependency from Ingen. git-svn-id: http://svn.drobilla.net/lad/trunk/ingen@3022 a436a847-0d15-0410-975c-d299462d15a1 --- src/client/PluginUI.cpp | 43 ++++++++++++------------------------------- src/client/PluginUI.hpp | 3 +-- src/client/wscript | 2 +- src/gui/wscript | 1 - 4 files changed, 14 insertions(+), 35 deletions(-) (limited to 'src') 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 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 diff --git a/src/client/PluginUI.hpp b/src/client/PluginUI.hpp index ae1cd12e..3a59a232 100644 --- a/src/client/PluginUI.hpp +++ b/src/client/PluginUI.hpp @@ -20,7 +20,6 @@ #include "raul/SharedPtr.hpp" #include "slv2/slv2.h" -#include "suil/suil.h" #include "LV2Features.hpp" @@ -60,7 +59,7 @@ private: Ingen::Shared::World* _world; SharedPtr _node; - SuilInstance _instance; + SLV2UIInstance _instance; SharedPtr _features; }; diff --git a/src/client/wscript b/src/client/wscript index 38c0a598..8a4540d0 100644 --- a/src/client/wscript +++ b/src/client/wscript @@ -36,5 +36,5 @@ def build(bld): obj.target = 'ingen_client' obj.install_path = '${LIBDIR}' obj.use = 'libingen_shared' - autowaf.use_lib(bld, obj, 'GLIBMM LV2CORE SLV2 SUIL RAUL SORD SOUP SIGCPP LIBLO SOUP') + autowaf.use_lib(bld, obj, 'GLIBMM LV2CORE SLV2 RAUL SORD SOUP SIGCPP LIBLO SOUP') diff --git a/src/gui/wscript b/src/gui/wscript index db9eed38..8e6bf344 100644 --- a/src/gui/wscript +++ b/src/gui/wscript @@ -62,7 +62,6 @@ def build(bld): SIGCPP LV2CORE SLV2 - SUIL SOUP ''') -- cgit v1.2.1