diff options
author | David Robillard <d@drobilla.net> | 2011-02-24 09:00:54 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2011-02-24 09:00:54 +0000 |
commit | 128b9ee5107c4d9b3d963bef8de016c08c6d74c6 (patch) | |
tree | 04e4681bca52e4e5fb161d12cf65dac84c699bd8 | |
parent | 5e65983c5f9944d4df7a017e215d1934c356de84 (diff) | |
download | ingen-128b9ee5107c4d9b3d963bef8de016c08c6d74c6.tar.gz ingen-128b9ee5107c4d9b3d963bef8de016c08c6d74c6.tar.bz2 ingen-128b9ee5107c4d9b3d963bef8de016c08c6d74c6.zip |
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
-rw-r--r-- | src/client/PluginUI.cpp | 43 | ||||
-rw-r--r-- | src/client/PluginUI.hpp | 3 | ||||
-rw-r--r-- | src/client/wscript | 2 | ||||
-rw-r--r-- | src/gui/wscript | 1 | ||||
-rw-r--r-- | wscript | 5 |
5 files changed, 15 insertions, 39 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 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<NodeModel> _node; - SuilInstance _instance; + SLV2UIInstance _instance; SharedPtr<Shared::LV2Features::FeatureArray> _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 ''') @@ -51,8 +51,6 @@ def configure(conf): atleast_version='0.120.0', mandatory=False) autowaf.check_pkg(conf, 'slv2', uselib_store='SLV2', atleast_version='0.6.0', mandatory=True) - autowaf.check_pkg(conf, 'suil', uselib_store='SUIL', - atleast_version='0.0.0', mandatory=True) autowaf.check_pkg(conf, 'raul', uselib_store='RAUL', atleast_version='0.6.2', mandatory=True) autowaf.check_pkg(conf, 'flowcanvas', uselib_store='FLOWCANVAS', @@ -112,7 +110,6 @@ def configure(conf): autowaf.display_msg(conf, "OSC", str(conf.env['HAVE_LIBLO'] == 1)) autowaf.display_msg(conf, "HTTP", str(conf.env['HAVE_SOUP'] == 1)) autowaf.display_msg(conf, "LV2", str(conf.env['HAVE_SLV2'] == 1)) - autowaf.display_msg(conf, "LV2 UI", str(conf.env['HAVE_SUIL'] == 1)) autowaf.display_msg(conf, "GUI", str(conf.env['INGEN_BUILD_GUI'] == 1)) print @@ -143,7 +140,7 @@ def build(bld): obj.defines = 'VERSION="' + bld.env['INGEN_VERSION'] + '"' obj.use = 'libingen_module libingen_shared' obj.install_path = '${BINDIR}' - autowaf.use_lib(bld, obj, 'GTHREAD GLIBMM SORD RAUL LV2CORE SLV2 SUIL INGEN LIBLO SOUP') + autowaf.use_lib(bld, obj, 'GTHREAD GLIBMM SORD RAUL LV2CORE SLV2 INGEN LIBLO SOUP') bld.install_files('${DATADIR}/applications', 'src/ingen/ingen.desktop') |