> On 05 Sep 2002 16:06:37 +0100, Dave Griffiths wrote: > > > > The makefile attempts to build the jack plugin, which I haven't finished > > > > porting yet, but it shouldn't affect the install. > > > > > > So does that mean that this verision won't talk to jack? > > > > Not yet, mainly as I haven't got alsa working on my new machine yet, let alone > > jack. There isn't much to do though to get it working with the new code IIRC > > (I've done about half of it). > > can you outline some of the difficulties you had when implementing > the threading ? I will have to do this to galan too.... so it would > be nice to see what problems i am facing.
The difficult part was writing a layer for the GUI and audio parts of the program to communicate in a threadsafe and non blocking manner (for the audio thread) I did this by double buffering the data, so if the GUI had a lock on the shared data, the audio could fall back on a previous copy. I think there are many ways to achieve this, the solution I chose was designed cause minimal changes to the existing code. If you want to have a look at this, it's the ChannelHandler class in SpiralPlugin.C - you basically register bits of data on the audio side which you can then get or set from the GUI. There is some extra stuff in there to emulate function calling. The most time consuming part (and most boring) was to rewrite the all the plugins to use this communication method. The audio code didn't have to be changed too much, but the GUI is much more restricted, and took a lot more work (I still have to get some of the more complex plugins to work). A good side effect of this is that it forced me to fix a lot of code that was too reliant on the GUI doing things it shouldn't :) Cheers, Dave : www.pawfal.org :
