On 02/09/2011 04:49 PM, David Robillard wrote:
On Fri, 2011-01-14 at 21:29 +0100, Tom Szilagyi
wrote:
Regarding LV2 hosts other than Ardour: the second in the above list of
fixes should help, however please be aware that IR is at the moment
really not usable without its own GTK UI. In future versions I may
manage to switch to using an external-process LV2 UI which would
result in the plugin UI being completely host toolkit agnostic.
FWIW, I would not do this. The external UI extension is the wrong way
of going about this, and momentum towards it is very worrysome... We
need an abstraction layer (i.e. a library) to provide the ability for
any UI to be external. It shouldn't be the host's - and very definitely
not the plugin's - problem to do this. It's a difficult problem to get
just right(*). Even if it wasn't, we'd end up with the same code
implemented all over the place, which is an obvious sign something is
not right...
The right way is for the plugin UI to provide whatever native UI (e.g.
gtk) it pleases, and a library provides the means to launch it
externally if the host toolkit does not match. This way, the host can
embed the UI if possible (a feature which really is a shame to throw
away), but anyone can use it externally if this is not possible. It is
also possible these days for Gtk to embed Qt, and vice versa, which the
lib could also do... in short, all the tricky business of using an X UI
in a Y host, either embedded or externally, needs to be done in one
place, and done in that one place correctly, so every host/plugin author
doesn't have to repeatedly deal with the same problems.
After the upcoming LV2r4 (and new librdf-free slv2) is released (soon),
I will take a stab at making this library. All the nitty gritty has
been done by other people already, it just needs to be sanely
amalgamated.
your words, Dave, are wise, but... until that (yours?) lib gets ever
real, the lv2-external-ui extension won't ever be wrong. sorry to tell
what has, and still is, outrageously wrong is that utter cannot-say-what
stickiness to gtk gore over the lv2-ui interface--it's real pain (gasp)
lock-in disease--mostly due on ardour being a top reference as a plugin
host, nevermind being a gtk based one (and damn good at several other
things too;)
please, don't give me nice talks about xembed and that stuff about gtk
and qt widgets being reciprocally embeddable. it just doesn't work for
the masses. well, in practice, unless you're in some kind ivory tower
and aim for a very special case or tight coupled application, that is...
im kind of serious on this stuff. i've been there, done that, and
failed--you guess where :)
cheers
--
rncbc aka Rui Nuno Capela
rncbc(a)rncbc.org