Using windows dlls in unix shared libraries

lawson_whitney at juno.com lawson_whitney at juno.com
Fri Dec 28 20:34:32 CST 2001


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





More information about the wine-devel mailing list