Re: [linux-audio-dev] LADSPA: proposition for polyphonic use of plugins

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: Re: [linux-audio-dev] LADSPA: proposition for polyphonic use of plugins
From: Alfons Adriaensen (fons.adriaensen_AT_alcatel.be)
Date: Mon Nov 17 2003 - 18:46:20 EET


On Mon, Nov 17, 2003 at 04:04:46PM +0000, Steve Harris wrote:

> I see, but I still dislike the idea FWIW :)

Well if you want the functionality (and I do) I see no other way,
except by doing something that would break the existing API.
  
> > I have some plugins that are able to create their own GUI (by using a shared
> > library that makes them look like a single client to the X-server, and that
> > also provides a standard set of widgets). Clearly, all instances that belong
> > to the same module should share the same GUI. The proposed way of using
> > the standard 'lifecycle' functions enables them to do this correctly.
>
> This is a valid point, and and interesting technique, does it work with
> arbitrary host toolkits? How do you bypass the hosts connection to the X
> server?

It doesn't depend on the host's support in any way. The host doesn't even have
to be an X client - the same library can be called by for example an internal
JACK client.

The shared library creates a thread for the X code, connects to the X-server
as a new client, and provides a set of widgets (C++ classes actually) and some
other code as a dedicated 'mini-toolkit'. It also provides methods for lock-free
communication with the audio code. The X-connection and thread are shared by all
plugins.

Plugin code remains relatively simple since most of the hard work is done by the
library. But it has to be C++.

Maybe I'll present this in Karlsruhe next year. ATM it's 'for personal use only'
as it touches on too many sensitive areas, and I don't want to start new GUI /
toolkit / language wars. :-)

-- 
FA


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : Mon Nov 17 2003 - 18:46:50 EET