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