using namespace ARDOUR;
using namespace PBD;
+SLV2UIHost LV2PluginUI::ui_host = NULL;
+
void
LV2PluginUI::lv2_ui_write(LV2UI_Controller controller,
uint32_t port_index,
}
#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
/*
- 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
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,