On Mon, Feb 21, 2011 at 02:30:25PM -0500, David Robillard wrote:
I just did a
simple test:
* added a few lines (< 10) of code to jaaa,
* started Ardour and opened its 'Locations' window,
* and had jaaa running within it in seconds.
And that's wihout any cooperation from Ardour. A plugin could use
whatever X11 toolkit it likes and with minimal support from the host
do the same. Apart from that it would need some cooperation to transfer
data between the dsp code and the GUI, but this can be made almost
transparent to the host.
This is currently a possibility, but it throws away the ability to do
things possible when the toolkits do match (notably embedding the GUI in
another window, such as the presets/etc bar ardour adds to the top).
Embedding the GUI in whatever window you like (e.g. a channel strip)
is just the same thing. The changes I made to jaaa made it accept a
window ID instead of its own top level parent window. It could equally
well accept parameters that define a rectangle in a host's window. And
if the host doesn't trust the plugin not to go outside its assigned
area it can just create a window for the plugin to use and have peace.
It is also not portable (depends on X11),
I don't care about any system that doesn't support X11. I don't even
care about some that do.
assumes the concept of "window" always
makes sense(*),
If it doesn't you can create a window that makes sense, see above.
and has other problems.
Such as ?
Ciao,
--
FA