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

Robin Gareus robin at gareus.org
Fri Oct 11 14:42:06 UTC 2013


On 10/11/2013 04:08 PM, Robin Gareus wrote:
> On 10/11/2013 02:28 AM, Harry van Haaren wrote:
>> On Thu, Oct 10, 2013 at 8:07 PM, Paul Davis <paul at linuxaudiosystems.com>wrote:
>>
>>>
>>> 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

correction. the official URI is

  http://kxstudio.sf.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 at lists.linuxaudio.org
> http://lists.linuxaudio.org/listinfo/linux-audio-dev


More information about the Linux-audio-dev mailing list