#include "gui_thread.h"
#include "lv2_plugin_ui.h"
-#include "lv2_ui.h"
+#include "lv2/lv2plug.in/ns/extensions/ui/ui.h"
#include <lilv/lilv.h>
#include <suil/suil.h>
uint32_t port_index,
bool grabbed)
{
- LV2PluginUI* me = (LV2PluginUI*)controller;
+ LV2PluginUI* me = (LV2PluginUI*)controller;
+ if (port_index >= me->_controllables.size()) {
+ return;
+ }
+
ControllableRef control = me->_controllables[port_index];
if (grabbed) {
control->start_touch(control->session().transport_frame());
ui_host = suil_host_new(LV2PluginUI::write_from_ui,
LV2PluginUI::port_index,
NULL, NULL);
-#ifdef HAVE_NEW_SUIL
suil_host_set_touch_func(ui_host, LV2PluginUI::touch);
-#endif
}
const char* container_type = (is_external_ui)
? NS_UI "external"
pack_start(*_ardour_buttons_box, false, false);
GtkWidget* c_widget = (GtkWidget*)GET_WIDGET(_inst);
- _gui_widget = Glib::wrap(c_widget);
+ _gui_widget = Gtk::manage(Glib::wrap(c_widget));
_gui_widget->show_all();
pack_start(*_gui_widget, true, true);
} else {
if (_gui_widget) {
remove (*_gui_widget);
+ _gui_widget = NULL;
}
- if (_ardour_buttons_box) {
- remove (*_ardour_buttons_box);
- delete _ardour_buttons_box;
- _ardour_buttons_box = 0;
+ if (_inst) {
+ suil_instance_free((SuilInstance*)_inst);
+ _inst = NULL;
}
-
- suil_instance_free((SuilInstance*)_inst);
-
- _inst = NULL;
- _gui_widget = NULL;
}
LV2PluginUI::~LV2PluginUI ()