what would all this mean for LADSPA?
1) there would need to be a way to associate plugins+GUIs since we
probably don't want them in the same object.
- could be done using LRDF or a dir search path combined with the
plugin ID.
2) the GUI would have to declare which toolkit it was using so that
the host could ensure support for it (i.e. fire up a thread that
will run the equivalent of gtk_main or QApplication::exec()) and
ask the relevant toolkit thread to call the primary entry point to
the GUI. how does it declare this? a well known symbol? is it a
char* or a function call? is it in the LRDF entry, or the filename,
or what?
3) adopt a standard for how the entry point is to be
called. presumably it should get a pointer to the plugin instance,
but what (if anything) else? oh yes, a return value that provides
a way to terminate the GUI.
4) the names of toolkits would have to be standardized and possibly
include version information. "GTK+:2.2" or "Qt:3.1" might work,
for
example.
5) a small library (which i have more or less started already) to
provide simple C functions to offer per-toolkit support. a host
would look at the pluginGUI toolkit, call the support function
with the .so name, and the right things would happen. the library
needs an ancillary function to kill the GUI when the time is
right.
6) [ only if we really wanted hosts to have a "real" handle on the
plugin GUI window ] the library would need to contain a way to
pass in an X "Window", and wrap it up as a native drawing area
for each toolkit. i would prefer not to do this for now, if ever.
--p