diff options
author | Robin Gareus <robin@gareus.org> | 2013-08-29 13:05:11 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2013-08-29 13:05:11 +0200 |
commit | 03c26762e6c602b0d815d074384b71abf773ee37 (patch) | |
tree | c443aa849e6f0f5e10531d40749c2261eb257ebb /libs | |
parent | 486483366926e45c8236c26915dd417d8bb404dd (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.h | 1 | ||||
-rw-r--r-- | libs/ardour/lv2_plugin.cc | 9 |
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); |