diff options
author | David Robillard <d@drobilla.net> | 2011-03-08 20:14:45 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2011-03-08 20:14:45 +0000 |
commit | ca9a816d3031807eb5fc09379d3344a2cdbb7678 (patch) | |
tree | 01f50a6300d4fa283733ca5c0e5474b5e0242340 /gtk2_ardour | |
parent | 34b9883537769758c46b050cb5c1ced63d566c0f (diff) |
Update for new SLV2 UI API.
git-svn-id: svn://localhost/ardour2/branches/3.0@9108 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/lv2_plugin_ui.cc | 14 | ||||
-rw-r--r-- | gtk2_ardour/lv2_plugin_ui.h | 8 |
2 files changed, 15 insertions, 7 deletions
diff --git a/gtk2_ardour/lv2_plugin_ui.cc b/gtk2_ardour/lv2_plugin_ui.cc index 0ced96b9e3..98ccedce6a 100644 --- a/gtk2_ardour/lv2_plugin_ui.cc +++ b/gtk2_ardour/lv2_plugin_ui.cc @@ -30,6 +30,8 @@ using namespace Gtk; using namespace ARDOUR; using namespace PBD; +SLV2UIHost LV2PluginUI::ui_host = NULL; + void LV2PluginUI::lv2_ui_write(LV2UI_Controller controller, uint32_t port_index, @@ -166,13 +168,15 @@ LV2PluginUI::lv2ui_instantiate(const std::string& title) } #ifdef HAVE_NEW_SLV2 - SLV2UIHost ui_host = slv2_ui_host_new( - this, LV2PluginUI::lv2_ui_write, NULL, NULL, NULL); + if (!LV2PluginUI::ui_host) { + LV2PluginUI::ui_host = slv2_ui_host_new( + LV2PluginUI::lv2_ui_write, NULL, NULL, NULL); + } SLV2Value gtk_ui = slv2_value_new_uri( - ARDOUR::PluginManager::the_manager()->lv2_world()->world, - "http://lv2plug.in/ns/extensions/ui#GtkUI"); + ARDOUR::PluginManager::the_manager()->lv2_world()->world, + "http://lv2plug.in/ns/extensions/ui#GtkUI"); _inst = slv2_ui_instance_new( - _lv2->slv2_plugin(), _lv2->slv2_ui(), gtk_ui, ui_host, features_dst); + _lv2->slv2_plugin(), _lv2->slv2_ui(), gtk_ui, ui_host, this, features_dst); slv2_value_free(gtk_ui); slv2_ui_host_free(ui_host); #else diff --git a/gtk2_ardour/lv2_plugin_ui.h b/gtk2_ardour/lv2_plugin_ui.h index e267ecab6c..ec2f00360f 100644 --- a/gtk2_ardour/lv2_plugin_ui.h +++ b/gtk2_ardour/lv2_plugin_ui.h @@ -1,6 +1,6 @@ /* - Copyright (C) 2008 Paul Davis - Author: Dave Robillard + Copyright (C) 2008-2011 Paul Davis + Author: David Robillard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -78,6 +78,10 @@ class LV2PluginUI : public PlugUIBase, public Gtk::VBox static void on_external_ui_closed(LV2UI_Controller controller); +#ifdef HAVE_NEW_SLV2 + static SLV2UIHost ui_host; +#endif + static void lv2_ui_write( LV2UI_Controller controller, uint32_t port_index, |