[LV2] [PATCH 5/5] add external UI as valid UI
d at drobilla.net
Sat Jan 4 11:27:20 PST 2014
On Thu, 2014-01-02 at 22:52 +0100, Robin Gareus wrote:
> On 01/02/2014 09:58 PM, Kaspar Emanuel wrote:
> > So are there plans to apply this?
> I think chances are slim to naught for this to become an a valid
> official URI.
Well, the original one violated the LV2 namespace without permission or
cooperation, which is not cool, so has an official looking URI, but
(For the record, anyone who does this again will be taken out back and
> > At least have some discussion around this?
> DR: "I have yet to hear one good reason why this extension isn't stupid."
> RG: "externalUI offers a potential solution for cases that libsuil
> cannot currently handle (and never might be able to) e.g mixing
> To be continued..
> > I am currently in the process of writing an external UI myself.
> > I understand that it will work in most plugin hosts except Jalv.
My opinion of the external UI extension is that it is a crap solution,
because plugin UIs themselves shouldn't be implementing all that
external communication mechanism.
A correct solution would have plugin UIs define their widgets normally,
e.g. expose a Gtk2UI, then have a SINGLE separate facility, like a
library, do the wrapping business. Then, it is embeddable if possible,
but usable regardless.
The external UI extension is essentially a kludge to work around doing
things correctly, and it adds a bunch of redundant code to both UIs and
hosts. I don't think it's a particularly suitable inclusion to the core
spec for these reasons.
Embedding works fine in most cases anyway. In cases where it does not,
that should be fixed. It's also a better user experience (external UIs
in a single window host like Jalv hardly sense anyway), so incentivising
properly exposed widgets is good.
I do not recommend implementing external UIs. To my knowledge there is
no good reason to do so. If you must, I highly recommend also exposing
your widget, in which case it will work fine in Jalv, among others.
More information about the Devel