summaryrefslogtreecommitdiff
path: root/gtk2_ardour/lv2_plugin_ui.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2013-08-25 16:20:27 +0200
committerRobin Gareus <robin@gareus.org>2013-08-25 16:21:18 +0200
commit1d972d05c5e889e4358d18ec6ba0c8e2e11a64e4 (patch)
treefa108cffdeece8db2f6adf2711e617b2830b18f4 /gtk2_ardour/lv2_plugin_ui.cc
parent4cdb018cae8580581359274d6397779b79263bdc (diff)
add LV2 support for kx:external-ui#
the ABI of http://kxstudio.sf.net/ns/lv2ext/external-ui# is identical to http://lv2plug.in/ns/extensions/ui#external It just adds a distinction between #Host and #Widget for cosmetic reasons. Sadly some newer plugins are released with only support for kxstudio URI :(
Diffstat (limited to 'gtk2_ardour/lv2_plugin_ui.cc')
-rw-r--r--gtk2_ardour/lv2_plugin_ui.cc9
1 files changed, 7 insertions, 2 deletions
diff --git a/gtk2_ardour/lv2_plugin_ui.cc b/gtk2_ardour/lv2_plugin_ui.cc
index 6f22ce5182..168f2d6798 100644
--- a/gtk2_ardour/lv2_plugin_ui.cc
+++ b/gtk2_ardour/lv2_plugin_ui.cc
@@ -171,6 +171,7 @@ LV2PluginUI::output_update()
//cout << "output_update" << endl;
if (_external_ui_ptr) {
LV2_EXTERNAL_UI_RUN(_external_ui_ptr);
+ if (!_external_ui_ptr) return; // ui was closed here
}
/* FIXME only works with control output ports (which is all we support now anyway) */
@@ -222,12 +223,16 @@ LV2PluginUI::lv2ui_instantiate(const std::string& title)
_external_ui_feature.URI = LV2_EXTERNAL_UI_URI;
_external_ui_feature.data = &_external_ui_host;
+ _external_kxui_feature.URI = LV2_EXTERNAL_UI_KX__Host;
+ _external_kxui_feature.data = &_external_ui_host;
+
++features_count;
features = (LV2_Feature**)malloc(
- sizeof(LV2_Feature*) * (features_count + 1));
- for (size_t i = 0; i < features_count - 1; ++i) {
+ sizeof(LV2_Feature*) * (features_count + 2));
+ for (size_t i = 0; i < features_count - 2; ++i) {
features[i] = features_src[i];
}
+ features[features_count - 2] = &_external_kxui_feature;
features[features_count - 1] = &_external_ui_feature;
features[features_count] = NULL;
} else {