[Clam-devel] today's (many!) commits

Pau Arumi parumi at iua.upf.edu
Fri Mar 2 13:13:31 PST 2007

important:  clean your compiled objects "scons -c" because we have
moved classes between clam libs (AudioSource/Sink from processing
to core)

summary of what we have done today. it's been a productive session :-)

many improvements on PANetworkPlayer (portaudio). now it's solid!
refactored the NetworkPlayer class hierarchy so now subclasses share
audio-sources/sinks and methods to collect them from a network.
now writing new network back-ends is easier.

and a non planed thing: a new network player "freeweeling" useful to
process files in batch mode (no audio-device callback). it's interface is
really simple: you set the files and start rolling the whole thing in 
just 3
method calls. we've also started (not finished) to new binary to use 
like this:
$ process net.clamnetwork in.wav out.wav
this will ease a lot our functional tests. but will have many other
applications as well.

today's commits:

 * Added FreewheelingNetworkPlayer class (allows processing an input
   file into an output file given a network)
 * extracted NetworkPlayer implemntation to a new .cxx file

 * FunctionalTests/TestStreamingSMSAnalysisSynthesis: simplified a
   lot now using freewheeling networkplayer. actually, fixing this
   test (broken till last flow-control redesign) was the initial motivation
   for having such NP

 * build system: moved audiosource/sink from libclam_processing to
   libclam_core. developers clean your local sources: "scons -c"

 * INSTALL: documented portaudio as dependency

 * refactoring of NetworkPlayer classes: sources and sinks moved
   to the base. CollectSourcesAndSinks() as well

 * marked PushFlowControl as deprecated

 * MonoAudioFileReader: added interface to get its AudioOutPort because
   needs of freewheeling-n-p but (it's likely this will be reverted)

 * PANetworkPlayer
   * Always Initialize and Terminate on Start/Stop
   * Fix: Device dump: the default api was wrongly marked
   * Fix: The stream was never closed

 * PANetworkPlayer:
   * Start and Stop delegations inlined
   * Free resources on stop
   * Error conditions on start keeps the Player stopped, do a trace,
     and set an internal error status.
   * Explicit check for available channels

 * Portaudio active by default on all platforms

 * PANetworkPlayer: First iteration of the error management refactoring
* naming refactorings in PANetworkPlayer : changed sources/sinks typedef
   and various attributes

* NE/vst/CLAMVstPlugin.cpp : use new source/sink interface 
"SetExternalBuffer", and new Network.Do() semantic
 * PANetworkPlayer: Most methods privatized alla PP (just to friends)
 * PANetworkPlayer: The callback is an static member
 * XXXNetworkPlayer: Added interface to know whether is working and why not
 * JACKNetworkPlayer: IsConnectedToServer generalized as IsWorking
 * NetworkEditor/Prototyper: Moved to the IsWorking prototyper
 * Prototyper: Removed unused function getMonitorNumber

 * Removed the call to AddFlowControl (a default one is chosen on 
Network constructor)

More information about the clam-devel mailing list