summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2013-08-29 13:05:11 +0200
committerRobin Gareus <robin@gareus.org>2013-08-29 13:05:11 +0200
commit03c26762e6c602b0d815d074384b71abf773ee37 (patch)
treec443aa849e6f0f5e10531d40749c2261eb257ebb /libs
parent486483366926e45c8236c26915dd417d8bb404dd (diff)
update external plugin UI handling
amend to 4cdb018 and 1d972d0 override ui_closed() behavior for lv2ui:external Keep UI around and do not re-instantiate, but simply show it again. (this is against the original specs but was agreed upon by various authors and the previous behavior or Ardour.) kx:external-ui are cleaned up after ui_closed().
Diffstat (limited to 'libs')
-rw-r--r--libs/ardour/ardour/lv2_plugin.h1
-rw-r--r--libs/ardour/lv2_plugin.cc9
2 files changed, 10 insertions, 0 deletions
diff --git a/libs/ardour/ardour/lv2_plugin.h b/libs/ardour/ardour/lv2_plugin.h
index 4cd34b3026..56aa9dc7cf 100644
--- a/libs/ardour/ardour/lv2_plugin.h
+++ b/libs/ardour/ardour/lv2_plugin.h
@@ -75,6 +75,7 @@ class LV2Plugin : public ARDOUR::Plugin, public ARDOUR::Workee
const void* c_ui_type();
bool is_external_ui () const;
+ bool is_external_kx () const;
bool ui_is_resizable () const;
const char* port_symbol (uint32_t port) const;
diff --git a/libs/ardour/lv2_plugin.cc b/libs/ardour/lv2_plugin.cc
index c6e9b89e5b..e056b55d9d 100644
--- a/libs/ardour/lv2_plugin.cc
+++ b/libs/ardour/lv2_plugin.cc
@@ -622,6 +622,15 @@ LV2Plugin::is_external_ui() const
}
bool
+LV2Plugin::is_external_kx() const
+{
+ if (!_impl->ui) {
+ return false;
+ }
+ return lilv_ui_is_a(_impl->ui, _world.ui_externalkx);
+}
+
+bool
LV2Plugin::ui_is_resizable () const
{
const LilvNode* s = lilv_ui_get_uri(_impl->ui);