13
0

debugging external LV2 GUI cleanup

git-svn-id: svn://localhost/ardour2/branches/3.0@9723 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Paul Davis 2011-06-13 21:00:53 +00:00
parent 1a2f401a06
commit d5fee8e2f5

View File

@ -264,20 +264,26 @@ LV2PluginUI::lv2ui_instantiate(const std::string& title)
void void
LV2PluginUI::lv2ui_free() LV2PluginUI::lv2ui_free()
{ {
if (_lv2->is_external_ui() || !_gui_widget) { stop_updating(NULL);
return;
if (_gui_widget) {
remove (*_gui_widget);
} }
stop_updating(NULL);
remove(*_gui_widget);
#ifdef HAVE_SUIL #ifdef HAVE_SUIL
cerr << "Calling suil_instance_free() to clean up "
<< (_lv2->is_external_ui() ? " external " : " internal ")
<< "UI\n";
suil_instance_free((SuilInstance*)_inst); suil_instance_free((SuilInstance*)_inst);
#else #else
SLV2UIInstance inst = (SLV2UIInstance)_inst; SLV2UIInstance inst = (SLV2UIInstance)_inst;
const LV2UI_Descriptor* ui_desc = slv2_ui_instance_get_descriptor(inst); const LV2UI_Descriptor* ui_desc = slv2_ui_instance_get_descriptor(inst);
LV2UI_Handle ui_handle = slv2_ui_instance_get_handle(inst); LV2UI_Handle ui_handle = slv2_ui_instance_get_handle(inst);
std::cerr << "Calling ui descriptor cleanup on " << ui_desc << " to clean up "
<< (_lv2->is_external_ui() ? " external " : " internal ")
<< "UI\n";
if (ui_desc) { if (ui_desc) {
ui_desc->cleanup(ui_handle); ui_desc->cleanup(ui_handle);
} }
@ -289,7 +295,7 @@ LV2PluginUI::lv2ui_free()
LV2PluginUI::~LV2PluginUI () LV2PluginUI::~LV2PluginUI ()
{ {
//cout << "LV2PluginUI destructor called" << endl; std::cerr << "LV2PluginUI destructor called" << std::endl;
if (_values) { if (_values) {
delete[] _values; delete[] _values;