On Mon, 2011-02-21 at 20:56 +0000, Fons Adriaensen wrote: > 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.
Which is why yours is a poor solution. It loses much, and gains little if anything. Making a UNIX only plugin or UI is fine. Making a UNIX only plugin API is (in this case) stupid. You /can/ implement "I don't give a damn about anything but <toolkit X>" plugin UIs (or hosts) right now, by design. I have always strongly advocated this. You can't, however, use some nonexistent authority to force all the other developers to agree - many (and in this case virtually all) don't. Try and make a monolithic kitchen sink plugin API like that and watch as everyone outright rejects the entire thing instead of little replaceable slivers of it... Yours is a valid perspective for UI and host authors. It is a terrible one from the API designer perspective. The good design lets you and others work only with your preferred technology - and interoperate with others with different tastes. This is possible, feasible, and makes more developers and users happy. It is, in other words, an objectively much better solution. -dr _______________________________________________ Linux-audio-dev mailing list [email protected] http://lists.linuxaudio.org/listinfo/linux-audio-dev
