[LAD] lv2 external UI -- was Re: LV2 Oscilloscope

From: Robin Gareus <robin@email-addr-hidden>
Date: Fri Oct 11 2013 - 17:08:06 EEST

On 10/11/2013 02:28 AM, Harry van Haaren wrote:
> On Thu, Oct 10, 2013 at 8:07 PM, Paul Davis <paul@email-addr-hiddenwrote:
>
>>
>> If a plugin uses one of them (the original) then Ardour will NOT delete
>> the UI instance when it is closed.
>> If a plugin uses the other (the version "forked"/"copied" by falktx) then
>> Ardour WILL delete the UI instance when it is closed.
>>
>> Both specifications state that the UI is defunct and no longer usable
>> after being closed:
>>
>> * After this callback is called, UI is defunct. Host must call
>> * LV2UI_Descriptor::cleanup(). If host wants to make the UI visible
>> * again UI must be reinstantiated.
>>
>>
> Thanks for clearing that up: learning in progress on my behalf.
> Cheers, -Harry
>

To clarify this a bit and fill in the details:

*All this is only relevant for external UI.*

1) URI: http://kxstudio.sourceforge.net/ns/lv2ext/external-ui

Ardour3.4 behaves according to spec, see the function documentation
of void (*ui_closed)(LV2UI_Controller controller); in the header file
http://kxstudio.sourceforge.net/ns/lv2ext/lv2_external_ui.h

2) URI: http://lv2plug.in/ns/extensions/ui#external

Ardour 2.X - 3.4 does not follow the spec regarding void (*ui_closed).
It just hides the window and shows it again.

The reason for Ardour doing (2) differently is that it was agreed on by
some developers that for many plugins re-initialization does not make
sense (re-init can be CPU intense). Those devs updated the
implementation but forgot or neglected to update the spec.

AFAIK it's also only Ardour that does not follow the spec. Other LV2
hosts that support lv2plug.in#externalui may implement it as synonym to
kxstudio#external-ui.

Otherwise the kxstudio#external-ui and lv2plugin#externalui are
identical (with just a minor cosmetic difference that kxstudio defines a
separate URI for the Host and plugin-widget).

In any case, external UI's should be avoided if possible, there are very
few valid use-cases. Just use a 'normal' LV2 UI or let the host generate
one.

ciao,
robin
_______________________________________________
Linux-audio-dev mailing list
Linux-audio-dev@email-addr-hidden
http://lists.linuxaudio.org/listinfo/linux-audio-dev
Received on Sat Oct 12 04:15:01 2013

This archive was generated by hypermail 2.1.8 : Sat Oct 12 2013 - 04:15:03 EEST