On Fri, 28 Dec 2001, Robert Jonsson wrote:
Hi all,
I just subscribed to this list, I hope my questions aren't evidently answered elsewhere, I tried to do some homework browsing the docs and parts of the mailing list, but then again I'm no pro so I might have missed it.
The background story: There is a plugin system for professional audio applications in Windows called VST. I suppose it does pretty much the same job as a multimedia codec. With the exception that they have internally generated GUIs! Perhaps a winamp plugin would be the closest match. There is a similar format in Linux called LADSPA (www.ladspa.org). Basically what I seek to do is try and wrap a VST plugin in a LADSPA plugin.
The question: I don't know that much about Wine internals, but all the example applications I've looked at use the wine executable as boot loader. Does
I thought to quibble with that, but it is a pretty fair analogy after all. Wine (including wineserver and wine builtin dlls) is a *NIX application, but it does provide "OS" services. It sort of needs an address space or two to kick around if it is going to be able to load native dlls that are not relocatable, FI.
that mean that this is the only way to start a wine application?
Well, something has to be sure the wineserver is started.
The way I'd like to use it is like this: Linuxhost (dlopen ladspaplug) - LADSPAplugin (LoadLibrary vstplugin) - VSTplugin
Can your ladspaplug not fork and exec wine to run your vst wrapper?
A possible solution would be to startup the VSTplugin in another application and do IPC between the LADSPAplugin and the VSTplugin-proxyhost. Like this: Linuxhost (dlopen ladspaplug) - LADSPAplugin <----ipc----> winebased_VSThost (LoadLibrary vstplugin) - VSTplugin This does however seem akward... Is it possible to do it in an easier way?
There isn't all that much to the wine executable these days. Most of Wine is in the builtin dlls and the wineserver. Have a look at <wine>/miscemu/main.c. If you think you can get that to run inside your plugin, maybe you can. Codeweavers did a crossover plugin whosis for linux browsers, I think, that would have had to address the problems.
Lawson