diff --git a/ChangeLog b/ChangeLog index 9fe8e1c2..c2084186 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,38 +1,43 @@ ---------------------------- - Contributors ---------------------------- - -Dmitry Baikov -Gabriel M. Beddingfield -Steven Chamberlain -Thom Johansen -Thibault LeMeur -Tom Szilagyi -Andrzej Szombierski -Kjetil S.Matheussen -Pieter Palmers -Tim Blechmann -Marc-Olivier Barre -Nedko Arnaudov -Fernando Lopez-Lezcano -Romain Moret -Florian Faber -Michael Voigt -Torben Hohn -Paul Davis -Peter L Jones -Devin Anderson -Josh Green -Mario Lang +--------------------------- + Contributors +--------------------------- + +Dmitry Baikov +Gabriel M. Beddingfield +Steven Chamberlain +Thom Johansen +Thibault LeMeur +Tom Szilagyi +Andrzej Szombierski +Kjetil S.Matheussen +Pieter Palmers +Tim Blechmann +Marc-Olivier Barre +Nedko Arnaudov +Fernando Lopez-Lezcano +Romain Moret +Florian Faber +Michael Voigt +Torben Hohn +Paul Davis +Peter L Jones +Devin Anderson +Josh Green +Mario Lang Arnold Krille Jan Engelhardt Adrian Knoth David Garcia Garzon -Valerio Pilo - ---------------------------- - Jackdmp changes log +Valerio Pilo + --------------------------- + Jackdmp changes log +--------------------------- + +2011-03-28 Stephane Letz + + * Correction of jack_connect/jack_disconnect: use of jack_activate and volatile keyword for thread shared variable. + * Correction of JackNetOneDriver for latest CELT API. 2011-03-24 Stephane Letz @@ -133,1603 +138,1603 @@ Valerio Pilo * Sync JackAlsaDriver::alsa_driver_check_card_type with JACK1 backend. -2010-08-30 Stephane Letz - - * Version 1.9.7 started. +2010-08-30 Stephane Letz + + * Version 1.9.7 started. -2010-08-25 Stephane Letz - - * In JackCoreAudioDriver, fix an issue when no value is given for input. +2010-08-25 Stephane Letz -2010-08-23 Stephane Letz - - * Adrian Knoth fix for linux cycle.h (ticket 188). + * In JackCoreAudioDriver, fix an issue when no value is given for input. + +2010-08-23 Stephane Letz + + * Adrian Knoth fix for linux cycle.h (ticket 188). + +2010-07-07 Stephane Letz -2010-07-07 Stephane Letz - * Jan Engelhardt patch for get_cycles on SPARC. - * Adrian Knoth hurd.patch, kfreebsd-fix.patch and alpha_ia64-sigsegv.patch from ticket 177. - -2010-06-29 Stephane Letz - - * Arnold Krille firewire snooping patch. - -2010-06-16 Stephane Letz - - * David Garcia Garzon unused_pkt_buf_field_jack2 netone patch. - -2010-06-13 Stephane Letz - - * Fix JackPosixSemaphore::TimedWait : same behavior as JackPosixSemaphore::Wait regarding EINTR. - -2010-05-31 Stephane Letz - - * Fix from Fernando Lopez-Lezcano for compilation on fc13. - -2010-05-30 Stephane Letz - - * David Garcia Garzon netone patch. - -2010-05-27 Stephane Letz - - * In JackCoreAudioDriver, move code called in MeasureCallback to be called once in IO thread. - -2010-05-07 Stephane Letz - - * Add tests to validate intclient.h API. - * On Linux, inter-process synchronization primitive switched to POSIX semaphore. - -2010-04-16 Stephane Letz - - * Make jack_connect/jack_disconnect wait for effective port connection/disconnection. - -2010-04-07 Stephane Letz - - * Remove call to exit in library code. - -2010-03-26 Stephane Letz - - * ffado-portname-sync.patch from ticket #163 applied. - -2010-03-24 Stephane Letz - - * On Windows, now use TRE library for regexp (BSD license instead of GPL license). - -2010-03-19 Stephane Letz - - * Fix some file header to have library side code use LGPL. - * Apply srcfactor.diff patch for ticket #162. - -2010-03-06 Stephane Letz - - * Arnold Krille firewire patch. - * Raise JACK_DRIVER_PARAM_STRING_MAX and JACK_PARAM_STRING_MAX to 127 otherwise some audio drivers cannot be loaded on OSX. - -2010-03-04 Stephane Letz - - * Correct JackMachServerChannel::Execute : keep running even in error cases. - * Raise JACK_PROTOCOL_VERSION number. - -2010-03-03 Stephane Letz - - * Correct JackGraphManager::DeactivatePort. - -2010-03-02 Stephane Letz - - * Improve JackCoreAudioDriver and JackCoreAudioAdapter : when no devices are described, takes default input and output and aggregate them. - -2010-02-15 Stephane Letz - - * Version 1.9.6 started. - -2010-01-29 Gabriel M. Beddingfield - - * Change JackEngineProfiling and JackAudioAdapterInterface gnuplot scripts to output SVG instead of PDF. - -2009-12-15 Stephane Letz - - * Shared memory manager was calling abort in case of fatal error, now return an error in caller. - -2009-12-13 Stephane Letz - - * Mario Lang alsa_io time calculation overflow patch. - -2009-12-10 Stephane Letz - - * Use a QUIT notification to properly quit the server channel, the server channel thread can then be 'stopped' instead of 'canceled'. - -2009-12-09 Stephane Letz - - * When threads are cancelled, the exception has to be rethrown. - -2009-12-08 Stephane Letz - - * Josh Green ALSA driver capture only patch. - -2009-12-03 Stephane Letz - - * Fix JackCoreMidiDriver::ReadProcAux when ring buffer is full (thanks Devin Anderson). - -2009-12-02 Stephane Letz - - * Special code in JackCoreAudio driver to handle completely buggy Digidesign CoreAudio user-land driver. - * Ensure that client-side message buffer thread calls thread_init callback if/when it is set by the client (backport of JACK1 rev 3838). - * Check dynamic port-max value. - -2009-12-01 Stephane Letz - - * Fix port_rename callback : now both old name and new name are given as parameters. - -2009-11-30 Stephane Letz - - * Devin Anderson patch for Jack FFADO driver issues with lost MIDI bytes between periods (and more). - -2009-11-29 Stephane Letz - - * More robust sample rate change handling code in JackCoreAudioDriver. - -2009-11-24 Stephane Letz - - * Dynamic choice of maximum port number. - -2009-11-23 Stephane Letz - - * Peter L Jones patch for NetJack1 compilation on Windows. - -2009-11-20 Stephane Letz - - * Version 1.9.5 started. - * Client debugging code improved. - -2009-11-18 Stephane Letz - - * Sync JackCoreAudioAdapter code with JackCoreAudioDriver. - -2009-11-17 Stephane Letz - - * In JackCoreAudio driver, clock drift compensation in aggregated devices working. - * In JackCoreAudio driver, clock drift compensation semantic changed a bit : when on, does not activate if not needed (same clock domain). - -2009-11-16 Stephane Letz - - * In JackCoreAudio driver, (possibly) clock drift compensation when needed in aggregated devices. - -2009-11-14 Stephane Letz - - * Sync with JACK1 : -r parameter now used for no-realtime, realtime (-R) is now default, usable backend given vie platform. - -2009-11-13 Stephane Letz - - * Better memory allocation error checking in ringbuffer.c, weak import improvements. - * Memory allocation error checking for jack_client_new and jack_client_open (server and client side). - * Memory allocation error checking in server for RPC. - * Simplify server temporary mode : now use a JackTemporaryException. - * Lock/Unlock shared memory segments (to test...). - -2009-11-12 Stephane Letz - - * Better memory allocation error checking on client (library) side. - -2009-11-11 Stephane Letz - - * Correct JackCoreAudio driver when empty strings are given as -C, -P or -d parameter. - -2009-11-10 Stephane Letz - - * Correct JackInfoShutdownCallback prototype, two new JackClientProcessFailure and JackClientZombie JackStatus code. - -2009-11-09 Stephane Letz - - * Correct JackGraphManager::GetBuffer for the "client loop with one connection" case : buffer must be copied. - -2009-11-07 Stephane Letz - - * Fix AcquireRealTime and DropRealTime: now distinguish when called from another thread (AcquireRealTime/DropRealTime) and from the thread itself (AcquireSelfRealTime/DropSelfRealTime). - * Correct JackPosixThread::StartImp : thread priority setting now done in the RT case only. - -2009-11-06 Stephane Letz - - * Correctly save and restore RT mode state in freewheel mode. - * Correct freewheel code on client side. - -2009-11-05 Stephane Letz - - * No reason to make jack_on_shutdown deprecated, so revert the incorrect change. - * Thread AcquireRealTime and DropRealTime were (incorrectly) using fThread field. Use pthread_self()) (or GetCurrentThread() on Windows) to get the calling thread. - -2009-10-30 Stephane Letz - - * In JackCoreAudioDriver, improve management of input/output channels: -1 is now used internally to indicate a wanted max value. - * In JackCoreAudioDriver::OpenAUHAL, correct stream format setup and cleanup. - * Correct crash bug in JackAudioAdapterInterface when not input is used in adapter (temporary fix...) - * Sync JackCoreAudioAdapter code on JackCoreAudioDriver one. - * JACK_SCHED_POLICY switched to SCHED_FIFO. - * Now can aggregate device that are themselves AD. - -2009-10-29 Stephane Letz - - * In JackCoreAudioDriver::Start, wait for the audio driver to effectively start (use the MeasureCallback). - -2009-10-28 Stephane Letz - - * In JackCoreAudioDriver, force the SR value to the wanted one *before* creating aggregate device (otherwise creation will fail). - * In JackCoreAudioDriver, better cleanup of AD when intermediate open failure. - -2009-10-27 Stephane Letz - - * Dynamic system version detection in JackCoreAudioDriver to either create public or private aggregate device. - -2009-10-26 Stephane Letz - - * Implement "hog mode" (exclusive access of the audio device) in JackCoreAudioDriver. - * Fix jack_set_sample_rate_callback to have he same behavior as in JACK1. - -2009-10-25 Stephane Letz - - * Improve aggregate device management in JackCoreAudioDriver : now a "private" device only and cleanup properly. - * Aggregate device code added to JackCoreAudioAdapter. - -2009-10-23 Stephane Letz - - * Correct JackProcessSync::LockedTimedWait. - * Correct JACK_MESSAGE_SIZE value, particularly in OSX RPC code. - * Now start server channel thread only when backend has been started (so in JackServer::Start). Should solve race conditions at start time. - * jack_verbose moved to JackGlobals class. - -2009-10-22 Stephane Letz - - * Correct jackdmp.cpp (failures case were not correct..). Improve JackCoreAudioDriver code. Raise default port number to 2048. - -2009-10-20 Stephane Letz - - * Add a string parameter to server ==> client notification, add a new JackInfoShutdownCallback type. - * CoreAudio backend now issue a JackInfoShutdownCallback when an unrecoverable error is detected (sampling rate change, stream configuration changed) - -2009-10-17 Stephane Letz - - * Correct server temporary mode : now set a global and quit after server/client message handling is finished. - -2009-10-15 Stephane Letz - - * Change CoreAudio notification thread setup for OSX Snow Leopard. - -2009-09-18 Stephane Letz - - * Simplify transport in NetJack2: master only can control transport. - -2009-09-15 Stephane Letz - - * Correct CPU timing in JackNetDriver, now take cycle begin time after Read. - * Fix issues in JackNetDriver::DecodeTransportData and JackNetDriver::Initialize. - -2009-08-28 Stephane Letz - - * Correct monitor port naming in JackAudioDriver and JackCoreAudioDriver. - * Big endian bug fix in memops.c (http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=5;filename=11_be24bit.patch;att=1;bug=486308) - -2009-07-31 Stephane Letz - - * Use SNDCTL_DSP_SYNCGROUP/SNDCTL_DSP_SYNCSTART API to synchronize input and output in Solaris boomer backend. - -2009-07-29 Stephane Letz - - * Add a -G parameter in CoreAudio backend (the computation value in RT thread expressed as percent of period). - -2009-07-28 Stephane Letz - - * Fix CopyAndConvertIn for Solaris backends. - -2009-07-22 Stephane Letz - - * Version 1.9.4 started. - * Solaris boomer backend now working in capture or playback only mode. - * Fix control.h for proper compilation on Solaris. - -2009-07-17 Stephane Letz - - * Loopback backend reborn as a dynamically loadable separated backend. - * -L parameter for loopback backend activated again in jackd. - -2009-07-17 Stephane Letz - - * Big rewrite of Solaris boomer driver, seems to work in duplex mode at least. - -2009-07-16 Stephane Letz - - * In combined --dbus and --classic compilation code, use PulseAudio acquire/release code. - -2009-07-15 Stephane Letz - - * Rename JackDriver::Init method to JackDriver::Initialize (to avoid confusion with JackThread::Init method). - * Update Solaris boomer driver. - * Report some cleanup and documentation improvements done on JACK1 timing functions. - -2009-07-11 Stephane Letz - - * Raise drivers time out used in synchronous mode. - -2009-07-09 Stephane Letz - - * Use __attribute__((__packed__)) again, more fixes for 64/32 mixed mode. - * Torben Hohn changes for 64/32 mixed mode in wscripts. - * Add compile time option for maximum ports per application. - -2009-07-07 Stephane Letz - - * Use __attribute__((__aligned__(32))) instead of __attribute__((__packed__)) for 64/32 mixed mode. - -2009-07-03 Stephane Letz - - * Another Tim Bechmann memops.c optimization patch. - -2009-07-01 Stephane Letz - - * Tim Bechmann memops.c optimization patch. - -2009-06-30 Stephane Letz - - * Tim Bechmann patch : hammerfall, only release monitor thread, if it has been created. - -2009-06-19 Stephane Letz - - * Correct JackTransportEngine::MakeAllLocating, sync callback has to be called in this case also. - * NetJack2 code : better error checkout, method renaming. - -2009-06-17 Stephane Letz - - * Move DBus based audio device reservation code in ALSA backend compilation. - -2009-06-16 Stephane Letz - - * Correct JackFifo::TimedWait for EINTR handling. - -2009-06-05 Stephane Letz - - * Correct jack_set_error_function, jack_set_info_function and jack_set_thread_creator functions. - -2009-05-18 Stephane Letz - - * Correct wcsript files to create jackdbus only (and not create jackd anymore) when compiled in --dbus mode, add a --classic option. Both options are possible but issue a warning. - -2009-05-15 Stephane Letz - - * Move InitFrameTime in JackDriver::Start method. - -2009-05-13 Stephane Letz - - * Reworked Torben Hohn fix for server restart issue on Windows. - -2009-05-11 Stephane Letz - - * New jack_free function added in jack.h. - * Torben Hohn fix for InitTime and GetMicroSeconds in JackWinTime.c. - -2009-05-07 Stephane Letz - - * Cleanup "loopback" stuff in server. - -2009-05-06 Stephane Letz - - * Fix transport callback (timebase master, sync) issue when used after jack_activate (RT thread was not running). - * D-Bus access for jackctl_server_add_slave/jackctl_server_remove_slave API. - -2009-05-05 Stephane Letz - - * First working version of native MIDI backend (JackCoreMidiDriver, JackWinMMEDriver). - -2009-04-22 Stephane Letz - - * jackctl_server_load_master renamed to jackctl_server_switch_master, jackctl_server_unload_master is removed. - -2009-04-21 Stephane Letz - - * Add jackctl_server_load_master/jackctl_server_unload_master API. - -2009-04-20 Stephane Letz - - * In ALSA audio card reservation code, tries to open the card even if reservation fails. - * Clock source setting on Linux. - -2009-04-08 Stephane Letz - - * Native MIDI backend (JackCoreMidiDriver, JackWinMMEDriver) in progress. - -2009-04-03 Stephane Letz - - * Simplify JackClient RT code, jack_thread_wait API marked deprecated." - -2009-03-29 Stephane Letz - - * Cleanup JackInternalClient code. - -2009-03-27 Stephane Letz - - * Add a buffer size callback for netmaster that just remove the client (it will be recreated with the new parameters). - -2009-03-26 Stephane Letz - - * First working JackBoomerDriver two threads version. - -2009-03-24 Stephane Letz - - * New JackBoomerDriver class for Boomer driver on Solaris. - * Add mixed 32/64 bits mode (off by default). - -2009-03-23 Stephane Letz - - * Version 1.9.3 started. - -2009-03-19 Stephane Letz - - * Tim Blechmann optimization patch (inlining some heavy used methods). - -2009-03-12 Stephane Letz - - * Virtualize and allow overriding of thread creation function, to allow Wine support (from JACK1). - -2009-03-12 Stephane Letz - - * Try automatic adaptative mode in adapters. - -2009-03-11 Stephane Letz - - * Client incorrect re-naming fixed : now done at socket level also. - -2009-03-10 Stephane Letz - - * Add -g (ring-buffer) parameter to netadapter. - * Automatic adaptative ringbuffer size mode when -g = 0. - -2009-03-09 Stephane Letz - - * Use Torben Hohn PI controler code for adapters (in progress). - -2009-03-05 Stephane Letz - - * Support for BIG_ENDIAN machines in NetJack2 for transport data. - * Add auto_connect parameter in netmanager and netadapter. - -2009-03-03 Stephane Letz - - * More robust profiling tools when clients come and go. - -2009-03-01 Stephane Letz - - * Raise default port number to 1024. - -2009-02-27 Stephane Letz - - * Improve generated gnuplot files for adapting code. - -2009-02-25 Stephane Letz - - * Major cleanup in adapter code. - -2009-02-25 Stephane Letz - - * Fix JackNetDriver::Close method. - * For audio device reservation, add card_to_num function. - * Fix buffer size and sample rate handling in JackAlsaAdapter. - * Add control for adapter ringbuffer size. - * Fix JackAlsaAdapter.h for 64 bits compilation. - -2009-02-23 Stephane Letz - - * Another fix in systemdeps.h and types.h: jack_time_t now uniquely defined in types.h. - * Move generic code and data in JackNetInterface and JackNetMasterInterface classes. - * First version of D-Bus based audio device reservation. - -2009-02-20 Stephane Letz - - * Add InitConnection and InitRendering methods in JackNetSlaveInterface, better packet type checking in JackNetSlaveInterface::SyncRecv. - * Change fMulticastIP handling in JackNetInterface. - * Cleanup systemdeps.h on Windows. - -2009-02-17 Stephane Letz - - * Fix the mutex/signal classes on Windows. - * Client incorrect re-naming fixed: now done at fifo level only. - -2009-02-16 Stephane Letz - - * Rework the mutex/signal classes. Use them in JackMessageBuffer. - -2009-02-11 Stephane Letz - - * Merge Solaris branch back on trunk. - * Equality of input and output buffer size removed (for now) in JackOSSDriver. - -2009-02-10 Stephane Letz - - * Add a resample quality parameter in netadapter. - -2009-02-09 Stephane Letz - - * Use PRIu32 kind of macro in JackAlsaDriver again. - * Now correctly return an error if JackServer::SetBufferSize could not change the buffer size (and was just restoring the current one). - -2009-02-05 Stephane Letz - - * Add a resample quality parameter in audioadapter. - -2009-02-01 Stephane Letz - - * Add a JACK_INTERNAL_DIR environment variable to be used for internal clients. - -2009-01-30 Stephane Letz - - * In NetJack2, fix a bug when capture or playback only channels are used. - -2009-01-29 Stephane Letz - - * Support for "-h" option in internal clients to print the parameters. - * Support for BIG_ENDIAN machines in NetJack2 for MIDI ports. - -2009-01-28 Stephane Letz - - * Support for BIG_ENDIAN machines in NetJack2. - -2009-01-27 Stephane Letz - - * Better recovery of network overload situations, now "resynchronize" by skipping cycles." - -2009-01-26 Stephane Letz - - * Fix JackNetInterface::SetNetBufferSize for socket buffer size computation and JackNetMasterInterface::DataRecv if synch packet is received, various cleanup. - * Fix in JackAlsaAdapter::Open. - * Simplify audio packet order verification. - * Set default mode to 'slow' in JackNetDriver and JackNetAdapter. - -2009-01-19 Stephane Letz - - * Synchronize ALSA backend code with JACK1 one. - -2009-01-17 Stephane Letz - - * JackMessageBuffer was using thread "Stop" scheme in destructor, now use the safer thread "Kill" way. - -2009-01-14 Stephane Letz - - * Cleanup server starting code for clients directly linked with libjackserver.so. - -2009-01-09 Stephane Letz - - * JackProfiler scan already running clients (so can now be added anytime in the graph). - -2009-01-09 Stephane Letz - - * New JackProfiler class for real-time server monitoring. - -2009-01-07 Stephane Letz - - * Use up to BUFFER_SIZE_MAX frames in midi ports, fix for ticket #117. - -2009-01-05 Stephane Letz - - * Synchronize jack2 public headers with JACK1 ones. - * Implement jack_client_real_time_priority and jack_client_max_real_time_priority API. - -2008-12-18 Stephane Letz - - * For ALSA driver, synchronize with latest JACK1 memops functions. - * Use memops functions in JackOSSDriver. - * Use memops functions in JackOSSAdapter. - -2008-12-17 Stephane Letz - - * Use JACK_DRIVER_DIR variable in internal clients loader. - -2008-12-16 Stephane Letz - - * Fix JackOSSDriver::SetBufferSize (was crashing when restoring old size), fix ticket #111. - * Force memory page in of profiling array in JackOSSDriver::Open. - * Cleanup profiling code. - * Client and library global context cleanup in case of incorrect shutdown handling (that is applications not correctly closing client after server has shutdown). - -2008-12-08 Stephane Letz - - * Forbid JackOSSDriver to run in "aynchronous" mode, correct DSP CPU computation. - -2008-12-04 Stephane Letz - - * More profiling in JackOSSDriver: sample conversion duration is measured. - -2008-12-02 Stephane Letz - - * Optimize JackOSSDriver: no samples conversion if ports are not connected. - -2008-12-01 Stephane Letz - - * Force preload of memory table in JackEngineProfiling. - -2008-11-27 Stephane Letz - - * Add timing profiling code in JackOSSDriver. - * Report ringbuffer.c fixes from JACK1. - -2008-11-21 Stephane Letz - - * Report ringbuffer.c fixes from JACK1. - * Better isolation of server and clients system resources to allow starting the server in several user account at the same time. - * Correct ressource cleanup in case of driver open failure. - -2008-11-19 Stephane Letz - - * Libjack shutdown handler does not "deactivate" (fActive = false) the client anymore, so that jack_deactivate correctly does the job later on. - * Filter SIGPIPE to avoid having client get a SIGPIPE when trying to access a died server. - -2008-11-14 Stephane Letz - - * Version 1.9.1 started, fix symbols export in ringbuffer.c, cleanup on Windows. - -2008-11-13 Stephane Letz - - * Fix jackctl_server_unload_internal. - -2008-10-30 Stephane Letz - - * Correct JackClient::ShutDown. - * TimeOut management in JackNetUnixSocket on Solaris. - -2008-10-23 Stephane Letz - - * In JackOSSDriver, vmix mode is used by default, exclusif (O_EXCL) mode can be selected with -e option. - * Fix a crash in JackEngine::Close when backend cannot be loaded. - * Tim Blechmann optimization patch. - * Backport of latest Paul alsa_seqmidi changes. - -2008-10-15 Stephane Letz - - * Fix a conflict with Audio Hijack in JackCoreAudioDriver. - -2008-10-09 Stephane Letz - - * Use a mutex to make jack_client_open/jack_client_close thread safe, remove use of jack_init/jack_uninit. - -2008-10-08 Stephane Letz - - * Fix a SMP related bug introduced in rev 2957 : remove the __SMP__ flag and define LOCK for SMP in all cases. - -2008-10-02 Stephane Letz - - * Correct file permission for jack-shm-registry POSIX shared memory segment. - * Checking for libsamplerate in waf, fix ticket #89." - * Header cleanup, add --clients and --ports options in configure. - -2008-09-22 Stephane Letz - - * Socket time out implementation on Solaris. - * Fix a conflict with Audio Hijack in JackCoreAudioDriver. - -2008-10-10 Stephane Letz - - * Improve OSS backend : SNDCTL_DSP_SETFRAGMENT must be done before, use of AFMT_S16_LE kind of values. - -2008-10-09 Stephane Letz - - * First version of OSS backend. - * Use a mutex to make jack_client_open/jack_client_close thread safe, remove use of jack_init/jack_uninit. - -2008-10-08 Stephane Letz - - * Fix a SMP related bug introduced in rev 2957 : remove the __SMP__ flag and define LOCK for SMP in all cases. - -2008-10-03 Stephane Letz - - * Add engine profiling tools. - -2008-10-02 Stephane Letz - - * Correct file permission for jack-shm-registry POSIX shared memory segment. - * Checking for libsamplerate in waf, fix ticket #89." - * Header cleanup, add --clients and --ports options in configure. - -2008-10-01 Stephane Letz - - * First Solaris version. - -2008-09-22 Stephane Letz - - * Cleanup jack_port_id_t/jack_port_t mess, should work again on 64 bits machines." - -2008-09-20 Stephane Letz - - * Michael Voigt JackAPI cleanup patch. - -2008-09-19 Stephane Letz - - * Michael Voigt JackTime cleanup patch. - -2008-09-17 Stephane Letz - - * New JackDriverInfo class to cleanup driver loading code. - -2008-09-08 Stephane Letz - - * Better symbols export for server and client side libraries. - -2008-09-06 Stephane Letz - - * Correct driver hierarchy on macosx and windows targets. - -2008-09-05 Stephane Letz - - * Merge Michael Voigt "drops" branch after reorganization step. - -2008-09-04 Stephane Letz - - * Michael Voigt 4th source reorganization patch. - * Correct JackNetDriver initialization. - -2008-09-03 Stephane Letz - - * Implement DBUS entry points to handle internal clients, add new commands in jack_control. - * Add new "desc" (extended description) in jack_driver_desc_t, to be used by backends and internal clients. - -2008-09-01 Stephane Letz - - * Michael Voigt third source reorganization patch. - * Add new jack_set_port_rename_callback API, jack_port_set_name is now a server request that call port rename callbacks. - -2008-08-31 Stephane Letz - - * Michael Voigt second source reorganization patch. - -2008-08-28 Stephane Letz - - * Michael Voigt first source reorganization patch. - -2008-08-26 Stephane Letz - - * Better parameter handling in JackCoreAudioAdapter. - * Fix memory leaks. - -2008-08-23 Stephane Letz - - * Implements internal clients management API. - -2008-08-22 Stephane Letz - - * Move GetCurrentTransportFrame code from JackClient to JackTransportEngine. - * Add a fNetworkSync state in JackTransportEngine used in network. - -2008-08-03 Stephane Letz - - * Fix JackFrameTimer::Time2Frames and JackTimer::Frames2Time, jack_cpu compiled again. - -2008-08-01 Stephane Letz - - * Fix desallocation of remaining clients when server quits. - * Close remaining client sockets in JackSocketServerChannel::Close. - * Correct JackClient::Close() to request server close only if server is running. - -2008-07-30 Stephane Letz - - * Remove restriction that port connection could be done only if the client was activated. - -2008-07-25 Stephane Letz - - * Florian Faber patch for 32 bit float (LE only) support to jack's alsa driver. - * Fix a crash bug when desallocating a non completely created external client. - -2008-07-24 Stephane Letz - - * Fix server client OSX special notification mechanism, CoreAudio driver compilation back for 10.4. - -2008-07-18 Stephane Letz - - * Correct audioadapter when a sample rate value different from jack server one is chosen. - * Cleanup in JackTransportEngine, move some code that was in JackClient class. - * Remove transport_type.h file, move transport types in types.h file. - -2008-07-12 Stephane Letz - - * Loopback driver working again. - -2008-07-08 Stephane Letz - - * Add jack_get_descriptor in internal clients API. - * Fix JackFreewheelDriver::Process() in case if client time-out : continue processing until a better recovery strategy is chosen. - -2008-07-08 Stephane Letz - - * Merge windows branch back to trunk. - -2008-07-05 Stephane Letz - - * Netioadapter renamed in audioadapter. - -2008-07-04 Stephane Letz - - * Netioadapter now adapts for buffer size and sample rate changes. - -2008-07-03 Stephane Letz - - * Add IsFixedBufferSize method in all drivers. - -2008-07-02 Stephane Letz - - * New netioadapter in server client. - -2008-06-20 Stephane Letz - - * Add new jack_client_stop_thread and jack_client_kill_thread API. - * New generic BuildClientPath for internal clients loading. - -2008-06-19 Stephane Letz - - * Embed JackEngineControl in JackDriver (starting from Tim Blechmann idea). - -2008-06-18 Stephane Letz - - * On OSX waf now compiles Universal Binaries. - -2008-06-17 Stephane Letz - - * Driver class hierarchy simplification. - * Update waf for compilation on OSX. - -2008-06-13 Stephane Letz - - * Correct JackPosixThread::ThreadHandler termination, do not set buffer size if same value is used. - * Another Tim Blechmann cleanup patch + do no allocate JackClientControl in shared memory for server internal clients. - -2008-06-12 Stephane Letz - - * Another Tim Blechmann patch to remove unnecessary virtual methods. - -2008-06-09 Stephane Letz - - * Improve net driver so that jack clients can be registered even if driver has not yet started. - -2008-06-08 Stephane Letz - - * Add a missing EXPORT for JackException class. - -2008-06-06 Stephane Letz - - * Better error checking in JackGraphManager::RemoveAllPorts. - -2008-06-05 Stephane Letz - - * Better control of exported symbols. - * Fix a bug in backend parameter parsing. - -2008-06-04 Stephane Letz - - * Merge of network branch. - * Use of set_threaded_log_function only when needed in RT threads. - -2008-06-02 Stephane Letz - - * Tim Blechmann patch to remove unnecessary virtual methods : choice of the appropriate platform version is now done at compilation time. - -2008-06-02 Stephane Letz - - * Cleanup and correct wscript for example-clients. - * Add a test for coherent freewheel state in JackDebugClient. - * Cleanup JackMutex class. - -2008-05-31 Stephane Letz - - * Add missing include for proper compilation when jack headers are not installed. - -2008-05-30 Stephane Letz - - * Avoid using Terminate when "quitting" in RT thread. Cleanup JackEngineInterface. - -2008-05-29 Stephane Letz - - * Tim Blechmann patch for JackPosixSemaphore (still to test...). - * Correct JackWinThread::Terminate. - -2008-05-28 Stephane Letz - - * New testMutex test, correct timing in drivers. - -2008-05-27 Stephane Letz - - * Correct timing in drivers : frame time has to be incremented before Read. - -2008-05-26 Stephane Letz - - * Merge control branch. - * Cleanup example clients : use jack_client_open and install a proper 'quit' signal handler. - -2008-05-24 Stephane Letz - - * Tim Blechmann RAII idiom patch for JackServer ressource initialization. - -2008-05-23 Stephane Letz - - * Use StartSync to start the client notification thread, otherwise initial notifications from the server may be lost. - * Tim Blechmann JackEngine cleanup patch. - * Call init callback in notification thread also. - -2008-05-22 Stephane Letz - - * Correct JackPort::ClearBuffer. - * Correct JackEngine inheritance graph. - -2008-05-21 Stephane Letz - - * Correct JackEngine::PortUnRegister, JackEngine::ClientCloseAux and JackEngine::ClientDeactivate to correctly send notifications. - * New jack_get_client_pid API, implemented on server side. - * Better handling of graph state read functions : never wait when used in the real-time thread, current state is used. - -2008-05-20 Stephane Letz - - * Package number bumped to 1.90 everywhere. - * Implementation of jack_get_max_delayed_usecs, jack_get_xrun_delayed_usecs and jack_reset_max_delayed_usecs. - -2008-05-19 Stephane Letz - - * Use of placement new for dynamic port allocation is possibly not safe... so avoid that until a definitive answer is found. - * JackAudioDriver::ProcessAsync and JackAudioDriver::ProcessSync were broken at some point : 0 has to be returned in all cases. - -2008-05-16 Stephane Letz - - * Activate now connect to FW driver and start the realtime thread only if clients are actually realtime, that is have setup any of the RT callback. - -2008-05-14 Stephane Letz - - * Fix JackEngine::Close to only delete "loadable" clients. - -2008-05-13 Stephane Letz - - * Fix exception handling in JackShmMem::operator new. - * Fix JackMutex constructor. - -2008-05-12 Stephane Letz - - * Allows wrapper library to log in a file (using JACK_WRAPPER_DEBUG=file). - -2008-05-09 Stephane Letz - - * Mike Taht's fix for proper alsa xrun duration measurement. - -2008-05-06 Stephane Letz - - * Fix JackPosixThread::StartImp and JackWinThread::StartImp. - -2008-05-05 Stephane Letz - - * Fix JackClient::Close : notification channel is stopped first to avoid receiving notifications while closing and Close is again a synchronous call. - * No more remaining client close in JackEngine::Close(). - -2008-05-01 Stephane Letz - - * Fix JackMachClientChannel::InternalClientLoad. - * Correct internal client loading. - * For threaded drivers, AcquireRealTime is called after Init step. - -2008-04-30 Stephane Letz - - * Fix JackRestartThreadedDriver::Execute. - * Better handling of init and run state in JackThread. - -2008-04-28 Stephane Letz - - * Add exceptions management to distinguish drivers recoverable errors from non recoverable ones. Will be used in special threaded drivers (for network). - -2008-04-25 Stephane Letz - - * Correct JackServerGlobals::Init: now check is server is already started. - -2008-04-24 Stephane Letz - - * Correct internal client load. - -2008-04-10 Stephane Letz - - * Remove Linux Makefile, update Readme. - -2008-04-03 Stephane Letz - - * Correct a dirty port array issue in JackGraphManager::GetPortsAux. - -2008-03-31 Stephane Letz - - * New SetNonBlocking method for JackSocket. - -2008-03-29 Stephane Letz - - * Correct a missing parameter in the usage message of jack_midiseq. - * Add a client counter in wrapper layer : library is unloaded only when all clients have been closed. - -2008-03-28 Stephane Letz - - * Correct PortRegister, port name checking must be done on server side. - * Add an Init method for blocking drivers to be decorated using JackThreadedDriver class. - -2008-03-27 Stephane Letz - - * Pieter Palmers patch for FFADO driver. - * Dmitry Baikov patch for alsa_rawmidi driver. - -2008-03-26 Stephane Letz - - * JackWrapperAPI.cpp: use open_library in jack_client_name_size, jack_port_name_size and jack_port_type_size. - -2008-03-20 Stephane Letz - - * Transport timebase fix. - -2008-03-19 Stephane Letz - - * Synchronise transport.h with latest jackd version (Video handling). - -2008-03-19 Stephane Letz - - * Add jack_port_type_id in jack API. - -2008-03-17 Stephane Letz - - * New jack_server_control client to test notifications when linked to the server library. - * Correct JackClient::Activate so that first kGraphOrderCallback can be received by the client notification thread. - * MIDI API in wrapper lib. - * Fix connect notification to deliver *one* notification only. - -2008-03-16 Stephane Letz - - * Use engine in JackAlsaDriver::port_register and JackAlsaDriver::port_unregister. - * New JackLockedEngine decorator class to serialize access from ALSA Midi thread, command thread and in-server clients. - -2008-03-15 Stephane Letz - - * Add -L (extra output latency in aynchronous mode) in CoreAudio driver. - * RT scheduling for OSX thread (when use in dummy driver). - -2008-03-14 Stephane Letz - - * Fernando Lopez-Lezcano scons patch. - -2008-03-13 Stephane Letz - - * Add test for jack_cycle_wait, jack_cycle_wait and jack_set_process_thread API. - * Add jack_set_process_thread in wrapper library. - * Correct all backend playback port latency in case of "asynchronous" mode (1 buffer more). - * Correct jack_port_get_total_latency. - * Correct jack_port_by_id in wrapper library. - -2008-03-12 Stephane Letz - - * Marc-Olivier Barre library related scons patch. - * Nedko Arnaudov FULL_MIMIC patch. - * Automatic server launch in wrapper layer. - -2008-03-11 Stephane Letz - - * Fix engine real-time notification (was broken since ??). - * Correct jack_client_open_aux, jack_client_open and jack_client_new. - * Correct jack_internal_client_load for wrapper layer. - * In thread model, execute a dummy cycle to be sure thread has the correct properties (ensure thread creation is finished). - * Correct jack_port_get_connections function (should return NULL when no connections). - -2008-03-10 Stephane Letz - - * Nedko Arnaudov log patch. - * Remove unneeded jack_port_connect API. - -2008-03-07 Stephane Letz - - * Define an internal jack_client_open_aux needed for library wrapper feature. - * Improve wrapper code. - * Correct FreeBob driver_initialize. - -2008-03-06 Stephane Letz - - * Marc-Olivier Barre scons patch (3). - -2008-03-06 Stephane Letz - - * Fix JackSocketClientChannel::ClientClose: async call from the client and server does not need to write any reply. - * Correct port notification: 2 notifications have to be sent (src, dst) and (dst, src)... - -2008-03-05 Stephane Letz - - * libjackdmp.so renamed to libjackservermp.so and same for OSX framework. - * tw1.c example added (new thread model). - * Marc-Olivier Barre scons patch (2). - -2008-03-02 Stephane Letz - - * Correct JackSocketClientChannel::ClientClose to use ServerSyncCall instead of ServerAsyncCall. - * Better documentation in jack.h. - * Marc-Olivier Barre scons patch. - -2008-03-02 Stephane Letz - - * Correct jack_get_time propotype. - -2008-02-25 Stephane Letz - - * Add TimeCallback in JackDebugClient class. - -2008-02-22 Stephane Letz - - * Correct JACK_port_unregister. - -2008-02-21 Stephane Letz - - * Add port register/unregister notification in JackAlsaDriver. - -2008-02-12 Stephane Letz - - * Fix in JackClient::Error(): when RT thread is failing and calling Shutdown, Shutdown was not desactivating the client correctly. - * Notify ports unregistration in JackEngine::ClientCloseAux. - * Thanks Esben Stien for helping finding these bugs. - -2008-02-11 Stephane Letz - - * Use SetAlias for port naming. Use jackd midi port naming scheme. - -2008-02-08 Stephane Letz - - * More robust external API. - -2008-02-07 Stephane Letz - - * Correct "server_connect": close the communication channel. - -2008-02-05 Stephane Letz - - * Reduce WaitGraphChange wait value. - * Remove use of assert in JackFifo, JackMachSemaphore, and JackPosixSemaphore: print an error instead. - -2008-02-03 Stephane Letz - - * Add "Readme" file from package in src folder. - * Tim Blechmann sse optimization patch for JackaudioPort::MixAudioBuffer, use of Apple Accelerate framework on OSX. - -2008-02-02 Stephane Letz - - * Tim Blechmann patches. - -2008-02-01 Stephane Letz - - * Move transport related methods from JackEngine to JackServer. - * Finish port connection callback server side implementation. - -2008-01-31 Stephane Letz - - * Remove checking thread in CoreAudio driver, better device state change recovery strategy: the driver is stopped and restarted. - * jack_thread_wait implementation. - * Add jack_thread_wait client example. - * Add jack_mp_thread_wait client example. - -2008-01-30 Stephane Letz - - * Latest jack_lsp code from jack SVN. - * Update in usx2y.c and JackPort.cpp to match jackd 0.109.2. - -2008-01-29 Stephane Letz - - * Implement jack_recompute_total_latency and jack_recompute_total_latencies. - * Remove fBufferSize field in JackGraphManager object. - * Port connection callback, client side. - -2008-01-28 Stephane Letz - - * Updated API to match jack 0.109.0 version (in progress). Correct checking thread in CoreAudio driver. - * Port connection callback, server side. - * Cleanup jack_port_connected_to implementation. - -2008-01-25 Stephane Letz - - * OSX 32/64 bits version. - -2008-01-24 Stephane Letz - - * CoreAudio driver improvement: detect and notify abnormal situations (stopped driver in case of SR change...). - -2008-01-03 Stephane Letz - - * Dmitry Baikov MIDI patch : alsa_seqmidi and alsa_rammidi drivers. - -2008-01-03 Stephane Letz - - * Tim Blechmann patch for JackGraphManager::GetPortsAux memory leak, Tim Blechmann patch for scons install. - -2007-12-12 Stephane Letz - - * Cleanup in CoreAudio driver. - -2007-12-11 Stephane Letz - - * Change string management for proper compilation with gcc 4.2.2. JackLog cleanup. - -2007-12-08 Stephane Letz - - * Tim Blechmann scons patch. - -2007-12-07 Stephane Letz - - * Pieter Palmers second new build system: scons and Makefile based build. - -2007-12-06 Stephane Letz - - * Pieter Palmers FFADO driver and scons based build. - -2007-12-05 Stephane Letz - - * Correct sample_rate management in JackCoreAudioDriver::Open. Better handling in sample_rate change listener. - -2007-12-04 Stephane Letz - - * Add a sample_rate change listener in CoreAudio driver. - -2007-12-03 Stephane Letz - - * Correct bug in CoreAudio driver sample rate management. - -2007-11-30 Stephane Letz - - * Correct JackMachNotifyChannel::ClientNotify. - -2007-11-29 Stephane Letz - - * Correct fPeriodUsecs computation in JackAudioDriver::SetBufferSize and JackAudioDriver::SetSampleRate. - -2007-11-28 Stephane Letz - - * On OSX, use jack server name in notification system. - -2007-11-21 Stephane Letz - - * On OSX, use CFNotificationCenterPostNotificationWithOptions with kCFNotificationDeliverImmediately | kCFNotificationPostToAllSessions for server ==> JackRouter plugin notification. - -2007-11-20 Stephane Letz - - * Correct CheckPort in JackAPI.cpp. - -2007-11-15 Stephane Letz - - * Move OSX start/stop notification mechanism in Jackdmp.cpp. - -2007-11-05 Stephane Letz - - * Use of JackWinSemaphore instead of JackWinEvent for inter-process synchronization. - * Correct types.h for use with MINGW on Windows. - -2007-11-04 Stephane Letz - - * Add an implementation for obsolete jack_internal_client_new and jack_internal_client_close. Add missing jack_port_type_size. - -2007-11-02 Stephane Letz - - * Correct ALSA driver Attach method: internal driver may have changed the buffer_size and sample_rate values. - * Add JackWinSemaphore class. - -2007-10-01 Stephane Letz - - * Server and user directory related code moved in a JackTools file. - * Client name rewritting to remove path characters (used in fifo naming). - -2007-10-30 Stephane Letz - - * Fix a bug in freewheel management in async mode: drivers now receive the kStartFreewheelCallback and kStopFreewheelCallback notifications. - -2007-10-26 Stephane Letz - - * Add midiseq and midisine examples. - * Cleanup old zombification code. - * Linux Makefile now install jack headers. - * Use of JACK_CLIENT_DEBUG environment variable to activate debug client mode. - * Definition of JACK_LOCATION variable using -D in the Makefile. - * Restore jack 0.103.0 MIDI API version. - -2007-10-25 Stephane Letz - - * Merge of Dmitry Baikov MIDI branch. - * Correct JackGraphManager::GetPortsAux to use port type. - * Remove JackEngineTiming class: code moved in JackEngineControl. - -2007-10-24 Stephane Letz - - * Implementation of server_name setting (-n). - -2007-10-23 Stephane Letz - - * Correct jack_acquire_real_time_scheduling on OSX. - -2007-10-18 Stephane Letz - - * Use LIB_DIR variable for 64 bits related compilation (drivers location). More generic Linux script. - -2007-10-16 Stephane Letz - - * Reorganize jack headers. Improve Linux install/remove scripts. - -2007-10-16 Stephane Letz - - * Internal loadable client implementation, winpipe version added. - -2007-10-12 Stephane Letz - - * Internal loadable client implementation, socket version added. - * Fix JackEngine::Close() method. - -2007-10-11 Stephane Letz - - * Internal loadable client implementation (in progress). - -2007-10-08 Stephane Letz - - * Use .jackdrc file (instead of .jackdmprc). Install script now creates a link "jackd ==> jackdmp" so that automatic launch can work correctly. - * Paul Davis patch for -r (--replace-registry) feature. - -2007-10-07 Stephane Letz - - * Add missing timestamps.c and timestamps.h files. Correctly export public headers in OSX frameworks. Suppress JackEngine::ClientInternalCloseIm method. - -2007-10-04 Stephane Letz - - * Correct "jack_register_server" in shm.c. - -2007-10-04 Stephane Letz - - * Fix a resource leak issue in JackCoreAudioDriver::Close(). Better implement "jack_client_open" when linking a client with the server library. - -2007-10-03 Stephane Letz - - * Rename server_name from "default" to "jackdmp_default" to avoid conflict with regular jackd server. - -2007-10-02 Stephane Letz - - * Correct jack_client_open "status" management. - -2007-08-27 Stephane Letz - - * Server/library protocol checking implementation. - -2007-08-26 Stephane Letz - - * Make "Rename" a method of JackPort class, call it from driver Attach method. - -2007-08-24 Stephane Letz - - * Implement server temporary (-T) mode. - -2007-08-23 Stephane Letz - - * Fix a bug in jack_test. Correct JackShmMem destructor. Correct end case in JackClient::Execute. Correct JackMachSemaphore::Disconnect. - -2007-08-22 Stephane Letz - - * Fix a bug in JackLibClient::Open introduced when adding automatic client renaming. - -2007-08-21 Stephane Letz - - * Fix backend port alias management (renaming in system:xxx). - -2007-08-20 Stephane Letz - - * Automatic server launch. Removes unneeded 'volatile' for JackTransportEngine::fWriteCounter. - -2007-08-19 Stephane Letz - - * Add "systemic" latencies management in CoreAudio driver. - -2007-08-16 Stephane Letz - - * Automatic client renaming. - -2007-07-27 Stephane Letz - - * Correct JackEngine::ClientCloseAux (when called from JackEngine::ClientExternalOpen). Correct JackWinEvent::Allocate. - -2007-07-20 Stephane Letz - - * Correct notification for kActivateClient event. - -2007-06-11 Stephane Letz - - * Dmitry Baikov buffer size patch. - -2007-06-10 Stephane Letz - - * Correct deprecated jack_set_sample_rate_callback to return 0 instead of -1. - -2007-06-09 Stephane Letz - - * Checking in the server to avoid calling the clients if no callback are registered. - -2007-06-08 Stephane Letz - - * New JackNotication.h header in preparation for callback checking in the server. - -2007-05-29 Stephane Letz - - * Add "callback exiting" and "jack_frame_time" tests in jack_test. - -2007-05-09 Stephane Letz - - * Add a mutex in JackGraphManager AllocatePort/ReleasePort methods. - -2007-05-05 Stephane Letz - - * Add jack_set_client_registration_callback API. - -2007-05-04 Stephane Letz - - * Steven Chamberlain patch to fix jack_port_type. Test for jack_port_type behaviour in jack_test.cpp tool. - -2007-05-03 Stephane Letz - - * Steven Chamberlain patch to fix jack_port_by_id export. - -2007-04-28 Stephane Letz - - * Add new jack_port_set_alias, jack_port_unset_alias and jack_port_get_aliases API. - -2007-04-27 Stephane Letz - - * Add missing -D__SMP__in OSX project. - -2007-04-23 Stephane Letz - - * Dmitry Baikov jackmp-time patch: add jack_get_time, jack_time_to_frames, jack_frames_to_time. - -2007-04-03 Stephane Letz - - * Dmitry Baikov remove-nframes patch. - -2007-04-02 Stephane Letz - - * Dmitry Baikov lost-event patch. - -2007-04-01 Stephane Letz - - * Merge JackGraphManager Remove and Release method in a unique Release method. - -2007-03-12 Stephane Letz - - * Bug fix in JackMidiBuffer::MaxEventSize(). - -2007-03-09 Stephane Letz - - * Dmitry Baikov MIDI patch phase 2. - -2007-03-08 Stephane Letz - - * Dmitry Baikov jackmp-port-clear patch. - -2007-03-06 Stephane Letz - - * Dmitry Baikov MIDI patch phase 1. - -2007-03-04 Stephane Letz - - * Dmitry Baikov patch for JackGraphManager.cpp. - * Dmitry Baikov MIDI patch phase 0. - -2007-02-19 Stephane Letz - - * Correct back JackAlsaDriver::Read method. - -2007-02-14 Stephane Letz - - * Better error checking in PortAudio driver. - -2007-02-07 Stephane Letz - - * Thom Johansen fix for port buffer alignment issues. - -2007-02-05 Stephane Letz - - * Add Pieter Palmers FreeBob driver. - * Thibault LeMeur ALSA driver patch. - -2007-01-31 Stephane Letz - - * Use pthread_attr_setstacksize in JackPosixThread class. - -2007-01-30 Stephane Letz - - * New LockAllMemory and UnlockAllMemory functions. - -2007-01-29 Stephane Letz - - * More robust activation/deactivation code, especially in case of client crash. - -2007-01-27 Stephane Letz - - * Uses a time out value of 10 sec in freewheel mode (like jack). - -2007-01-21 Stephane Letz - - * More client debug code: check if the client is still valid in every JackDebugClient method, check if the library context is still valid in every API call. - -2007-01-14 Stephane Letz - - * Implement thread.h API. - -2007-01-09 Stephane Letz - - * New server/client data transfer model to fix a 64 bits system bug. Fix a device name reversal bug in ALSA driver. - -2007-01-04 Stephane Letz - - * Add call to the init callback (set up using the jack_set_thread_init_callback API) in Real-Time and Notification threads. Define a new 'kActivateClient' notification. - -2007-01-02 Stephane Letz - - * Internal cleanup. - -2006-12-23 Stephane Letz - - * shared_ports renamed to shared_graph. - -2006-12-15 Stephane Letz - - * Move client refnum management in JackEngine. - -2006-12-12 Stephane Letz - - * Tom Szilagyi memory leak fix in ringbuffer.c. - -2006-11-29 Stephane Letz - - * Correct JackWinEnvent::Allocate (handle the ERROR_ALREADY_EXISTS case). Correct JackEngine::ClientExternalNew. - * Karsten Wiese correction for ALSA usx2y driver. - -2006-11-22 Stephane Letz - - * In synchronous mode, if the driver time out is reached, the server may get desynchronized (pending signal may arrive in later cycles), - improve audio driver synchronous code to better handle this case. - -2006-11-08 Stephane Letz - - * Synchronize ALSA backend with jack one. - -2006-11-04 Stephane Letz - - * Use -D to setup ADDON_DIR on OSX and Linux. - -2006-10-11 Stephane Letz - - * Correct server SetBufferSize in case of failure. Correct PortAudio driver help. - -2006-10-06 Stephane Letz - - * Add a new cpu testing/loading client. - -2006-09-23 Stephane Letz - - * Rename global "verbose" in "jack_verbose" to avoid symbol clash with PureData. - -2006-09-20 Stephane Letz - - * On Windows, avoid to use the unsafe Kill thread method. Use thread Stop instead and have blocked IO be unlocked. - * Still get RT thread termination problems, restore a version that works on OSX and Linux with conditionnal compilation for now. - -2006-09-16 Stephane Letz - - * Restore behaviour of LoopBack driver, which has to be opened in any case... - -2006-09-15 Stephane Letz - - * On Windows version, use signal to quit the server. - -2006-09-13 Stephane Letz - - * Correct pipe destruction bug in JackWinNamedPipe class. - -2006-09-11 Stephane Letz - - * Handling of LoopBack driver only when really needed. - * Correct crash bug when closing clients on Windows due to multi-threading synchronization issues. - -2006-09-06 Stephane Letz - - * Correct coreaudio driver (input was not working since 0.55 version). - * Version for 0.58 release. - -2006-09-04 Stephane Letz - - * Correct Windows VC++ projects. - -2006-09-03 Stephane Letz - - * First import of version 0.58 base code + * Adrian Knoth hurd.patch, kfreebsd-fix.patch and alpha_ia64-sigsegv.patch from ticket 177. + +2010-06-29 Stephane Letz + + * Arnold Krille firewire snooping patch. + +2010-06-16 Stephane Letz + + * David Garcia Garzon unused_pkt_buf_field_jack2 netone patch. + +2010-06-13 Stephane Letz + + * Fix JackPosixSemaphore::TimedWait : same behavior as JackPosixSemaphore::Wait regarding EINTR. + +2010-05-31 Stephane Letz + + * Fix from Fernando Lopez-Lezcano for compilation on fc13. + +2010-05-30 Stephane Letz + + * David Garcia Garzon netone patch. + +2010-05-27 Stephane Letz + + * In JackCoreAudioDriver, move code called in MeasureCallback to be called once in IO thread. + +2010-05-07 Stephane Letz + + * Add tests to validate intclient.h API. + * On Linux, inter-process synchronization primitive switched to POSIX semaphore. + +2010-04-16 Stephane Letz + + * Make jack_connect/jack_disconnect wait for effective port connection/disconnection. + +2010-04-07 Stephane Letz + + * Remove call to exit in library code. + +2010-03-26 Stephane Letz + + * ffado-portname-sync.patch from ticket #163 applied. + +2010-03-24 Stephane Letz + + * On Windows, now use TRE library for regexp (BSD license instead of GPL license). + +2010-03-19 Stephane Letz + + * Fix some file header to have library side code use LGPL. + * Apply srcfactor.diff patch for ticket #162. + +2010-03-06 Stephane Letz + + * Arnold Krille firewire patch. + * Raise JACK_DRIVER_PARAM_STRING_MAX and JACK_PARAM_STRING_MAX to 127 otherwise some audio drivers cannot be loaded on OSX. + +2010-03-04 Stephane Letz + + * Correct JackMachServerChannel::Execute : keep running even in error cases. + * Raise JACK_PROTOCOL_VERSION number. + +2010-03-03 Stephane Letz + + * Correct JackGraphManager::DeactivatePort. + +2010-03-02 Stephane Letz + + * Improve JackCoreAudioDriver and JackCoreAudioAdapter : when no devices are described, takes default input and output and aggregate them. + +2010-02-15 Stephane Letz + + * Version 1.9.6 started. + +2010-01-29 Gabriel M. Beddingfield + + * Change JackEngineProfiling and JackAudioAdapterInterface gnuplot scripts to output SVG instead of PDF. + +2009-12-15 Stephane Letz + + * Shared memory manager was calling abort in case of fatal error, now return an error in caller. + +2009-12-13 Stephane Letz + + * Mario Lang alsa_io time calculation overflow patch. + +2009-12-10 Stephane Letz + + * Use a QUIT notification to properly quit the server channel, the server channel thread can then be 'stopped' instead of 'canceled'. + +2009-12-09 Stephane Letz + + * When threads are cancelled, the exception has to be rethrown. + +2009-12-08 Stephane Letz + + * Josh Green ALSA driver capture only patch. + +2009-12-03 Stephane Letz + + * Fix JackCoreMidiDriver::ReadProcAux when ring buffer is full (thanks Devin Anderson). + +2009-12-02 Stephane Letz + + * Special code in JackCoreAudio driver to handle completely buggy Digidesign CoreAudio user-land driver. + * Ensure that client-side message buffer thread calls thread_init callback if/when it is set by the client (backport of JACK1 rev 3838). + * Check dynamic port-max value. + +2009-12-01 Stephane Letz + + * Fix port_rename callback : now both old name and new name are given as parameters. + +2009-11-30 Stephane Letz + + * Devin Anderson patch for Jack FFADO driver issues with lost MIDI bytes between periods (and more). + +2009-11-29 Stephane Letz + + * More robust sample rate change handling code in JackCoreAudioDriver. + +2009-11-24 Stephane Letz + + * Dynamic choice of maximum port number. + +2009-11-23 Stephane Letz + + * Peter L Jones patch for NetJack1 compilation on Windows. + +2009-11-20 Stephane Letz + + * Version 1.9.5 started. + * Client debugging code improved. + +2009-11-18 Stephane Letz + + * Sync JackCoreAudioAdapter code with JackCoreAudioDriver. + +2009-11-17 Stephane Letz + + * In JackCoreAudio driver, clock drift compensation in aggregated devices working. + * In JackCoreAudio driver, clock drift compensation semantic changed a bit : when on, does not activate if not needed (same clock domain). + +2009-11-16 Stephane Letz + + * In JackCoreAudio driver, (possibly) clock drift compensation when needed in aggregated devices. + +2009-11-14 Stephane Letz + + * Sync with JACK1 : -r parameter now used for no-realtime, realtime (-R) is now default, usable backend given vie platform. + +2009-11-13 Stephane Letz + + * Better memory allocation error checking in ringbuffer.c, weak import improvements. + * Memory allocation error checking for jack_client_new and jack_client_open (server and client side). + * Memory allocation error checking in server for RPC. + * Simplify server temporary mode : now use a JackTemporaryException. + * Lock/Unlock shared memory segments (to test...). + +2009-11-12 Stephane Letz + + * Better memory allocation error checking on client (library) side. + +2009-11-11 Stephane Letz + + * Correct JackCoreAudio driver when empty strings are given as -C, -P or -d parameter. + +2009-11-10 Stephane Letz + + * Correct JackInfoShutdownCallback prototype, two new JackClientProcessFailure and JackClientZombie JackStatus code. + +2009-11-09 Stephane Letz + + * Correct JackGraphManager::GetBuffer for the "client loop with one connection" case : buffer must be copied. + +2009-11-07 Stephane Letz + + * Fix AcquireRealTime and DropRealTime: now distinguish when called from another thread (AcquireRealTime/DropRealTime) and from the thread itself (AcquireSelfRealTime/DropSelfRealTime). + * Correct JackPosixThread::StartImp : thread priority setting now done in the RT case only. + +2009-11-06 Stephane Letz + + * Correctly save and restore RT mode state in freewheel mode. + * Correct freewheel code on client side. + +2009-11-05 Stephane Letz + + * No reason to make jack_on_shutdown deprecated, so revert the incorrect change. + * Thread AcquireRealTime and DropRealTime were (incorrectly) using fThread field. Use pthread_self()) (or GetCurrentThread() on Windows) to get the calling thread. + +2009-10-30 Stephane Letz + + * In JackCoreAudioDriver, improve management of input/output channels: -1 is now used internally to indicate a wanted max value. + * In JackCoreAudioDriver::OpenAUHAL, correct stream format setup and cleanup. + * Correct crash bug in JackAudioAdapterInterface when not input is used in adapter (temporary fix...) + * Sync JackCoreAudioAdapter code on JackCoreAudioDriver one. + * JACK_SCHED_POLICY switched to SCHED_FIFO. + * Now can aggregate device that are themselves AD. + +2009-10-29 Stephane Letz + + * In JackCoreAudioDriver::Start, wait for the audio driver to effectively start (use the MeasureCallback). + +2009-10-28 Stephane Letz + + * In JackCoreAudioDriver, force the SR value to the wanted one *before* creating aggregate device (otherwise creation will fail). + * In JackCoreAudioDriver, better cleanup of AD when intermediate open failure. + +2009-10-27 Stephane Letz + + * Dynamic system version detection in JackCoreAudioDriver to either create public or private aggregate device. + +2009-10-26 Stephane Letz + + * Implement "hog mode" (exclusive access of the audio device) in JackCoreAudioDriver. + * Fix jack_set_sample_rate_callback to have he same behavior as in JACK1. + +2009-10-25 Stephane Letz + + * Improve aggregate device management in JackCoreAudioDriver : now a "private" device only and cleanup properly. + * Aggregate device code added to JackCoreAudioAdapter. + +2009-10-23 Stephane Letz + + * Correct JackProcessSync::LockedTimedWait. + * Correct JACK_MESSAGE_SIZE value, particularly in OSX RPC code. + * Now start server channel thread only when backend has been started (so in JackServer::Start). Should solve race conditions at start time. + * jack_verbose moved to JackGlobals class. + +2009-10-22 Stephane Letz + + * Correct jackdmp.cpp (failures case were not correct..). Improve JackCoreAudioDriver code. Raise default port number to 2048. + +2009-10-20 Stephane Letz + + * Add a string parameter to server ==> client notification, add a new JackInfoShutdownCallback type. + * CoreAudio backend now issue a JackInfoShutdownCallback when an unrecoverable error is detected (sampling rate change, stream configuration changed) + +2009-10-17 Stephane Letz + + * Correct server temporary mode : now set a global and quit after server/client message handling is finished. + +2009-10-15 Stephane Letz + + * Change CoreAudio notification thread setup for OSX Snow Leopard. + +2009-09-18 Stephane Letz + + * Simplify transport in NetJack2: master only can control transport. + +2009-09-15 Stephane Letz + + * Correct CPU timing in JackNetDriver, now take cycle begin time after Read. + * Fix issues in JackNetDriver::DecodeTransportData and JackNetDriver::Initialize. + +2009-08-28 Stephane Letz + + * Correct monitor port naming in JackAudioDriver and JackCoreAudioDriver. + * Big endian bug fix in memops.c (http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=5;filename=11_be24bit.patch;att=1;bug=486308) + +2009-07-31 Stephane Letz + + * Use SNDCTL_DSP_SYNCGROUP/SNDCTL_DSP_SYNCSTART API to synchronize input and output in Solaris boomer backend. + +2009-07-29 Stephane Letz + + * Add a -G parameter in CoreAudio backend (the computation value in RT thread expressed as percent of period). + +2009-07-28 Stephane Letz + + * Fix CopyAndConvertIn for Solaris backends. + +2009-07-22 Stephane Letz + + * Version 1.9.4 started. + * Solaris boomer backend now working in capture or playback only mode. + * Fix control.h for proper compilation on Solaris. + +2009-07-17 Stephane Letz + + * Loopback backend reborn as a dynamically loadable separated backend. + * -L parameter for loopback backend activated again in jackd. + +2009-07-17 Stephane Letz + + * Big rewrite of Solaris boomer driver, seems to work in duplex mode at least. + +2009-07-16 Stephane Letz + + * In combined --dbus and --classic compilation code, use PulseAudio acquire/release code. + +2009-07-15 Stephane Letz + + * Rename JackDriver::Init method to JackDriver::Initialize (to avoid confusion with JackThread::Init method). + * Update Solaris boomer driver. + * Report some cleanup and documentation improvements done on JACK1 timing functions. + +2009-07-11 Stephane Letz + + * Raise drivers time out used in synchronous mode. + +2009-07-09 Stephane Letz + + * Use __attribute__((__packed__)) again, more fixes for 64/32 mixed mode. + * Torben Hohn changes for 64/32 mixed mode in wscripts. + * Add compile time option for maximum ports per application. + +2009-07-07 Stephane Letz + + * Use __attribute__((__aligned__(32))) instead of __attribute__((__packed__)) for 64/32 mixed mode. + +2009-07-03 Stephane Letz + + * Another Tim Bechmann memops.c optimization patch. + +2009-07-01 Stephane Letz + + * Tim Bechmann memops.c optimization patch. + +2009-06-30 Stephane Letz + + * Tim Bechmann patch : hammerfall, only release monitor thread, if it has been created. + +2009-06-19 Stephane Letz + + * Correct JackTransportEngine::MakeAllLocating, sync callback has to be called in this case also. + * NetJack2 code : better error checkout, method renaming. + +2009-06-17 Stephane Letz + + * Move DBus based audio device reservation code in ALSA backend compilation. + +2009-06-16 Stephane Letz + + * Correct JackFifo::TimedWait for EINTR handling. + +2009-06-05 Stephane Letz + + * Correct jack_set_error_function, jack_set_info_function and jack_set_thread_creator functions. + +2009-05-18 Stephane Letz + + * Correct wcsript files to create jackdbus only (and not create jackd anymore) when compiled in --dbus mode, add a --classic option. Both options are possible but issue a warning. + +2009-05-15 Stephane Letz + + * Move InitFrameTime in JackDriver::Start method. + +2009-05-13 Stephane Letz + + * Reworked Torben Hohn fix for server restart issue on Windows. + +2009-05-11 Stephane Letz + + * New jack_free function added in jack.h. + * Torben Hohn fix for InitTime and GetMicroSeconds in JackWinTime.c. + +2009-05-07 Stephane Letz + + * Cleanup "loopback" stuff in server. + +2009-05-06 Stephane Letz + + * Fix transport callback (timebase master, sync) issue when used after jack_activate (RT thread was not running). + * D-Bus access for jackctl_server_add_slave/jackctl_server_remove_slave API. + +2009-05-05 Stephane Letz + + * First working version of native MIDI backend (JackCoreMidiDriver, JackWinMMEDriver). + +2009-04-22 Stephane Letz + + * jackctl_server_load_master renamed to jackctl_server_switch_master, jackctl_server_unload_master is removed. + +2009-04-21 Stephane Letz + + * Add jackctl_server_load_master/jackctl_server_unload_master API. + +2009-04-20 Stephane Letz + + * In ALSA audio card reservation code, tries to open the card even if reservation fails. + * Clock source setting on Linux. + +2009-04-08 Stephane Letz + + * Native MIDI backend (JackCoreMidiDriver, JackWinMMEDriver) in progress. + +2009-04-03 Stephane Letz + + * Simplify JackClient RT code, jack_thread_wait API marked deprecated." + +2009-03-29 Stephane Letz + + * Cleanup JackInternalClient code. + +2009-03-27 Stephane Letz + + * Add a buffer size callback for netmaster that just remove the client (it will be recreated with the new parameters). + +2009-03-26 Stephane Letz + + * First working JackBoomerDriver two threads version. + +2009-03-24 Stephane Letz + + * New JackBoomerDriver class for Boomer driver on Solaris. + * Add mixed 32/64 bits mode (off by default). + +2009-03-23 Stephane Letz + + * Version 1.9.3 started. + +2009-03-19 Stephane Letz + + * Tim Blechmann optimization patch (inlining some heavy used methods). + +2009-03-12 Stephane Letz + + * Virtualize and allow overriding of thread creation function, to allow Wine support (from JACK1). + +2009-03-12 Stephane Letz + + * Try automatic adaptative mode in adapters. + +2009-03-11 Stephane Letz + + * Client incorrect re-naming fixed : now done at socket level also. + +2009-03-10 Stephane Letz + + * Add -g (ring-buffer) parameter to netadapter. + * Automatic adaptative ringbuffer size mode when -g = 0. + +2009-03-09 Stephane Letz + + * Use Torben Hohn PI controler code for adapters (in progress). + +2009-03-05 Stephane Letz + + * Support for BIG_ENDIAN machines in NetJack2 for transport data. + * Add auto_connect parameter in netmanager and netadapter. + +2009-03-03 Stephane Letz + + * More robust profiling tools when clients come and go. + +2009-03-01 Stephane Letz + + * Raise default port number to 1024. + +2009-02-27 Stephane Letz + + * Improve generated gnuplot files for adapting code. + +2009-02-25 Stephane Letz + + * Major cleanup in adapter code. + +2009-02-25 Stephane Letz + + * Fix JackNetDriver::Close method. + * For audio device reservation, add card_to_num function. + * Fix buffer size and sample rate handling in JackAlsaAdapter. + * Add control for adapter ringbuffer size. + * Fix JackAlsaAdapter.h for 64 bits compilation. + +2009-02-23 Stephane Letz + + * Another fix in systemdeps.h and types.h: jack_time_t now uniquely defined in types.h. + * Move generic code and data in JackNetInterface and JackNetMasterInterface classes. + * First version of D-Bus based audio device reservation. + +2009-02-20 Stephane Letz + + * Add InitConnection and InitRendering methods in JackNetSlaveInterface, better packet type checking in JackNetSlaveInterface::SyncRecv. + * Change fMulticastIP handling in JackNetInterface. + * Cleanup systemdeps.h on Windows. + +2009-02-17 Stephane Letz + + * Fix the mutex/signal classes on Windows. + * Client incorrect re-naming fixed: now done at fifo level only. + +2009-02-16 Stephane Letz + + * Rework the mutex/signal classes. Use them in JackMessageBuffer. + +2009-02-11 Stephane Letz + + * Merge Solaris branch back on trunk. + * Equality of input and output buffer size removed (for now) in JackOSSDriver. + +2009-02-10 Stephane Letz + + * Add a resample quality parameter in netadapter. + +2009-02-09 Stephane Letz + + * Use PRIu32 kind of macro in JackAlsaDriver again. + * Now correctly return an error if JackServer::SetBufferSize could not change the buffer size (and was just restoring the current one). + +2009-02-05 Stephane Letz + + * Add a resample quality parameter in audioadapter. + +2009-02-01 Stephane Letz + + * Add a JACK_INTERNAL_DIR environment variable to be used for internal clients. + +2009-01-30 Stephane Letz + + * In NetJack2, fix a bug when capture or playback only channels are used. + +2009-01-29 Stephane Letz + + * Support for "-h" option in internal clients to print the parameters. + * Support for BIG_ENDIAN machines in NetJack2 for MIDI ports. + +2009-01-28 Stephane Letz + + * Support for BIG_ENDIAN machines in NetJack2. + +2009-01-27 Stephane Letz + + * Better recovery of network overload situations, now "resynchronize" by skipping cycles." + +2009-01-26 Stephane Letz + + * Fix JackNetInterface::SetNetBufferSize for socket buffer size computation and JackNetMasterInterface::DataRecv if synch packet is received, various cleanup. + * Fix in JackAlsaAdapter::Open. + * Simplify audio packet order verification. + * Set default mode to 'slow' in JackNetDriver and JackNetAdapter. + +2009-01-19 Stephane Letz + + * Synchronize ALSA backend code with JACK1 one. + +2009-01-17 Stephane Letz + + * JackMessageBuffer was using thread "Stop" scheme in destructor, now use the safer thread "Kill" way. + +2009-01-14 Stephane Letz + + * Cleanup server starting code for clients directly linked with libjackserver.so. + +2009-01-09 Stephane Letz + + * JackProfiler scan already running clients (so can now be added anytime in the graph). + +2009-01-09 Stephane Letz + + * New JackProfiler class for real-time server monitoring. + +2009-01-07 Stephane Letz + + * Use up to BUFFER_SIZE_MAX frames in midi ports, fix for ticket #117. + +2009-01-05 Stephane Letz + + * Synchronize jack2 public headers with JACK1 ones. + * Implement jack_client_real_time_priority and jack_client_max_real_time_priority API. + +2008-12-18 Stephane Letz + + * For ALSA driver, synchronize with latest JACK1 memops functions. + * Use memops functions in JackOSSDriver. + * Use memops functions in JackOSSAdapter. + +2008-12-17 Stephane Letz + + * Use JACK_DRIVER_DIR variable in internal clients loader. + +2008-12-16 Stephane Letz + + * Fix JackOSSDriver::SetBufferSize (was crashing when restoring old size), fix ticket #111. + * Force memory page in of profiling array in JackOSSDriver::Open. + * Cleanup profiling code. + * Client and library global context cleanup in case of incorrect shutdown handling (that is applications not correctly closing client after server has shutdown). + +2008-12-08 Stephane Letz + + * Forbid JackOSSDriver to run in "aynchronous" mode, correct DSP CPU computation. + +2008-12-04 Stephane Letz + + * More profiling in JackOSSDriver: sample conversion duration is measured. + +2008-12-02 Stephane Letz + + * Optimize JackOSSDriver: no samples conversion if ports are not connected. + +2008-12-01 Stephane Letz + + * Force preload of memory table in JackEngineProfiling. + +2008-11-27 Stephane Letz + + * Add timing profiling code in JackOSSDriver. + * Report ringbuffer.c fixes from JACK1. + +2008-11-21 Stephane Letz + + * Report ringbuffer.c fixes from JACK1. + * Better isolation of server and clients system resources to allow starting the server in several user account at the same time. + * Correct ressource cleanup in case of driver open failure. + +2008-11-19 Stephane Letz + + * Libjack shutdown handler does not "deactivate" (fActive = false) the client anymore, so that jack_deactivate correctly does the job later on. + * Filter SIGPIPE to avoid having client get a SIGPIPE when trying to access a died server. + +2008-11-14 Stephane Letz + + * Version 1.9.1 started, fix symbols export in ringbuffer.c, cleanup on Windows. + +2008-11-13 Stephane Letz + + * Fix jackctl_server_unload_internal. + +2008-10-30 Stephane Letz + + * Correct JackClient::ShutDown. + * TimeOut management in JackNetUnixSocket on Solaris. + +2008-10-23 Stephane Letz + + * In JackOSSDriver, vmix mode is used by default, exclusif (O_EXCL) mode can be selected with -e option. + * Fix a crash in JackEngine::Close when backend cannot be loaded. + * Tim Blechmann optimization patch. + * Backport of latest Paul alsa_seqmidi changes. + +2008-10-15 Stephane Letz + + * Fix a conflict with Audio Hijack in JackCoreAudioDriver. + +2008-10-09 Stephane Letz + + * Use a mutex to make jack_client_open/jack_client_close thread safe, remove use of jack_init/jack_uninit. + +2008-10-08 Stephane Letz + + * Fix a SMP related bug introduced in rev 2957 : remove the __SMP__ flag and define LOCK for SMP in all cases. + +2008-10-02 Stephane Letz + + * Correct file permission for jack-shm-registry POSIX shared memory segment. + * Checking for libsamplerate in waf, fix ticket #89." + * Header cleanup, add --clients and --ports options in configure. + +2008-09-22 Stephane Letz + + * Socket time out implementation on Solaris. + * Fix a conflict with Audio Hijack in JackCoreAudioDriver. + +2008-10-10 Stephane Letz + + * Improve OSS backend : SNDCTL_DSP_SETFRAGMENT must be done before, use of AFMT_S16_LE kind of values. + +2008-10-09 Stephane Letz + + * First version of OSS backend. + * Use a mutex to make jack_client_open/jack_client_close thread safe, remove use of jack_init/jack_uninit. + +2008-10-08 Stephane Letz + + * Fix a SMP related bug introduced in rev 2957 : remove the __SMP__ flag and define LOCK for SMP in all cases. + +2008-10-03 Stephane Letz + + * Add engine profiling tools. + +2008-10-02 Stephane Letz + + * Correct file permission for jack-shm-registry POSIX shared memory segment. + * Checking for libsamplerate in waf, fix ticket #89." + * Header cleanup, add --clients and --ports options in configure. + +2008-10-01 Stephane Letz + + * First Solaris version. + +2008-09-22 Stephane Letz + + * Cleanup jack_port_id_t/jack_port_t mess, should work again on 64 bits machines." + +2008-09-20 Stephane Letz + + * Michael Voigt JackAPI cleanup patch. + +2008-09-19 Stephane Letz + + * Michael Voigt JackTime cleanup patch. + +2008-09-17 Stephane Letz + + * New JackDriverInfo class to cleanup driver loading code. + +2008-09-08 Stephane Letz + + * Better symbols export for server and client side libraries. + +2008-09-06 Stephane Letz + + * Correct driver hierarchy on macosx and windows targets. + +2008-09-05 Stephane Letz + + * Merge Michael Voigt "drops" branch after reorganization step. + +2008-09-04 Stephane Letz + + * Michael Voigt 4th source reorganization patch. + * Correct JackNetDriver initialization. + +2008-09-03 Stephane Letz + + * Implement DBUS entry points to handle internal clients, add new commands in jack_control. + * Add new "desc" (extended description) in jack_driver_desc_t, to be used by backends and internal clients. + +2008-09-01 Stephane Letz + + * Michael Voigt third source reorganization patch. + * Add new jack_set_port_rename_callback API, jack_port_set_name is now a server request that call port rename callbacks. + +2008-08-31 Stephane Letz + + * Michael Voigt second source reorganization patch. + +2008-08-28 Stephane Letz + + * Michael Voigt first source reorganization patch. + +2008-08-26 Stephane Letz + + * Better parameter handling in JackCoreAudioAdapter. + * Fix memory leaks. + +2008-08-23 Stephane Letz + + * Implements internal clients management API. + +2008-08-22 Stephane Letz + + * Move GetCurrentTransportFrame code from JackClient to JackTransportEngine. + * Add a fNetworkSync state in JackTransportEngine used in network. + +2008-08-03 Stephane Letz + + * Fix JackFrameTimer::Time2Frames and JackTimer::Frames2Time, jack_cpu compiled again. + +2008-08-01 Stephane Letz + + * Fix desallocation of remaining clients when server quits. + * Close remaining client sockets in JackSocketServerChannel::Close. + * Correct JackClient::Close() to request server close only if server is running. + +2008-07-30 Stephane Letz + + * Remove restriction that port connection could be done only if the client was activated. + +2008-07-25 Stephane Letz + + * Florian Faber patch for 32 bit float (LE only) support to jack's alsa driver. + * Fix a crash bug when desallocating a non completely created external client. + +2008-07-24 Stephane Letz + + * Fix server client OSX special notification mechanism, CoreAudio driver compilation back for 10.4. + +2008-07-18 Stephane Letz + + * Correct audioadapter when a sample rate value different from jack server one is chosen. + * Cleanup in JackTransportEngine, move some code that was in JackClient class. + * Remove transport_type.h file, move transport types in types.h file. + +2008-07-12 Stephane Letz + + * Loopback driver working again. + +2008-07-08 Stephane Letz + + * Add jack_get_descriptor in internal clients API. + * Fix JackFreewheelDriver::Process() in case if client time-out : continue processing until a better recovery strategy is chosen. + +2008-07-08 Stephane Letz + + * Merge windows branch back to trunk. + +2008-07-05 Stephane Letz + + * Netioadapter renamed in audioadapter. + +2008-07-04 Stephane Letz + + * Netioadapter now adapts for buffer size and sample rate changes. + +2008-07-03 Stephane Letz + + * Add IsFixedBufferSize method in all drivers. + +2008-07-02 Stephane Letz + + * New netioadapter in server client. + +2008-06-20 Stephane Letz + + * Add new jack_client_stop_thread and jack_client_kill_thread API. + * New generic BuildClientPath for internal clients loading. + +2008-06-19 Stephane Letz + + * Embed JackEngineControl in JackDriver (starting from Tim Blechmann idea). + +2008-06-18 Stephane Letz + + * On OSX waf now compiles Universal Binaries. + +2008-06-17 Stephane Letz + + * Driver class hierarchy simplification. + * Update waf for compilation on OSX. + +2008-06-13 Stephane Letz + + * Correct JackPosixThread::ThreadHandler termination, do not set buffer size if same value is used. + * Another Tim Blechmann cleanup patch + do no allocate JackClientControl in shared memory for server internal clients. + +2008-06-12 Stephane Letz + + * Another Tim Blechmann patch to remove unnecessary virtual methods. + +2008-06-09 Stephane Letz + + * Improve net driver so that jack clients can be registered even if driver has not yet started. + +2008-06-08 Stephane Letz + + * Add a missing EXPORT for JackException class. + +2008-06-06 Stephane Letz + + * Better error checking in JackGraphManager::RemoveAllPorts. + +2008-06-05 Stephane Letz + + * Better control of exported symbols. + * Fix a bug in backend parameter parsing. + +2008-06-04 Stephane Letz + + * Merge of network branch. + * Use of set_threaded_log_function only when needed in RT threads. + +2008-06-02 Stephane Letz + + * Tim Blechmann patch to remove unnecessary virtual methods : choice of the appropriate platform version is now done at compilation time. + +2008-06-02 Stephane Letz + + * Cleanup and correct wscript for example-clients. + * Add a test for coherent freewheel state in JackDebugClient. + * Cleanup JackMutex class. + +2008-05-31 Stephane Letz + + * Add missing include for proper compilation when jack headers are not installed. + +2008-05-30 Stephane Letz + + * Avoid using Terminate when "quitting" in RT thread. Cleanup JackEngineInterface. + +2008-05-29 Stephane Letz + + * Tim Blechmann patch for JackPosixSemaphore (still to test...). + * Correct JackWinThread::Terminate. + +2008-05-28 Stephane Letz + + * New testMutex test, correct timing in drivers. + +2008-05-27 Stephane Letz + + * Correct timing in drivers : frame time has to be incremented before Read. + +2008-05-26 Stephane Letz + + * Merge control branch. + * Cleanup example clients : use jack_client_open and install a proper 'quit' signal handler. + +2008-05-24 Stephane Letz + + * Tim Blechmann RAII idiom patch for JackServer ressource initialization. + +2008-05-23 Stephane Letz + + * Use StartSync to start the client notification thread, otherwise initial notifications from the server may be lost. + * Tim Blechmann JackEngine cleanup patch. + * Call init callback in notification thread also. + +2008-05-22 Stephane Letz + + * Correct JackPort::ClearBuffer. + * Correct JackEngine inheritance graph. + +2008-05-21 Stephane Letz + + * Correct JackEngine::PortUnRegister, JackEngine::ClientCloseAux and JackEngine::ClientDeactivate to correctly send notifications. + * New jack_get_client_pid API, implemented on server side. + * Better handling of graph state read functions : never wait when used in the real-time thread, current state is used. + +2008-05-20 Stephane Letz + + * Package number bumped to 1.90 everywhere. + * Implementation of jack_get_max_delayed_usecs, jack_get_xrun_delayed_usecs and jack_reset_max_delayed_usecs. + +2008-05-19 Stephane Letz + + * Use of placement new for dynamic port allocation is possibly not safe... so avoid that until a definitive answer is found. + * JackAudioDriver::ProcessAsync and JackAudioDriver::ProcessSync were broken at some point : 0 has to be returned in all cases. + +2008-05-16 Stephane Letz + + * Activate now connect to FW driver and start the realtime thread only if clients are actually realtime, that is have setup any of the RT callback. + +2008-05-14 Stephane Letz + + * Fix JackEngine::Close to only delete "loadable" clients. + +2008-05-13 Stephane Letz + + * Fix exception handling in JackShmMem::operator new. + * Fix JackMutex constructor. + +2008-05-12 Stephane Letz + + * Allows wrapper library to log in a file (using JACK_WRAPPER_DEBUG=file). + +2008-05-09 Stephane Letz + + * Mike Taht's fix for proper alsa xrun duration measurement. + +2008-05-06 Stephane Letz + + * Fix JackPosixThread::StartImp and JackWinThread::StartImp. + +2008-05-05 Stephane Letz + + * Fix JackClient::Close : notification channel is stopped first to avoid receiving notifications while closing and Close is again a synchronous call. + * No more remaining client close in JackEngine::Close(). + +2008-05-01 Stephane Letz + + * Fix JackMachClientChannel::InternalClientLoad. + * Correct internal client loading. + * For threaded drivers, AcquireRealTime is called after Init step. + +2008-04-30 Stephane Letz + + * Fix JackRestartThreadedDriver::Execute. + * Better handling of init and run state in JackThread. + +2008-04-28 Stephane Letz + + * Add exceptions management to distinguish drivers recoverable errors from non recoverable ones. Will be used in special threaded drivers (for network). + +2008-04-25 Stephane Letz + + * Correct JackServerGlobals::Init: now check is server is already started. + +2008-04-24 Stephane Letz + + * Correct internal client load. + +2008-04-10 Stephane Letz + + * Remove Linux Makefile, update Readme. + +2008-04-03 Stephane Letz + + * Correct a dirty port array issue in JackGraphManager::GetPortsAux. + +2008-03-31 Stephane Letz + + * New SetNonBlocking method for JackSocket. + +2008-03-29 Stephane Letz + + * Correct a missing parameter in the usage message of jack_midiseq. + * Add a client counter in wrapper layer : library is unloaded only when all clients have been closed. + +2008-03-28 Stephane Letz + + * Correct PortRegister, port name checking must be done on server side. + * Add an Init method for blocking drivers to be decorated using JackThreadedDriver class. + +2008-03-27 Stephane Letz + + * Pieter Palmers patch for FFADO driver. + * Dmitry Baikov patch for alsa_rawmidi driver. + +2008-03-26 Stephane Letz + + * JackWrapperAPI.cpp: use open_library in jack_client_name_size, jack_port_name_size and jack_port_type_size. + +2008-03-20 Stephane Letz + + * Transport timebase fix. + +2008-03-19 Stephane Letz + + * Synchronise transport.h with latest jackd version (Video handling). + +2008-03-19 Stephane Letz + + * Add jack_port_type_id in jack API. + +2008-03-17 Stephane Letz + + * New jack_server_control client to test notifications when linked to the server library. + * Correct JackClient::Activate so that first kGraphOrderCallback can be received by the client notification thread. + * MIDI API in wrapper lib. + * Fix connect notification to deliver *one* notification only. + +2008-03-16 Stephane Letz + + * Use engine in JackAlsaDriver::port_register and JackAlsaDriver::port_unregister. + * New JackLockedEngine decorator class to serialize access from ALSA Midi thread, command thread and in-server clients. + +2008-03-15 Stephane Letz + + * Add -L (extra output latency in aynchronous mode) in CoreAudio driver. + * RT scheduling for OSX thread (when use in dummy driver). + +2008-03-14 Stephane Letz + + * Fernando Lopez-Lezcano scons patch. + +2008-03-13 Stephane Letz + + * Add test for jack_cycle_wait, jack_cycle_wait and jack_set_process_thread API. + * Add jack_set_process_thread in wrapper library. + * Correct all backend playback port latency in case of "asynchronous" mode (1 buffer more). + * Correct jack_port_get_total_latency. + * Correct jack_port_by_id in wrapper library. + +2008-03-12 Stephane Letz + + * Marc-Olivier Barre library related scons patch. + * Nedko Arnaudov FULL_MIMIC patch. + * Automatic server launch in wrapper layer. + +2008-03-11 Stephane Letz + + * Fix engine real-time notification (was broken since ??). + * Correct jack_client_open_aux, jack_client_open and jack_client_new. + * Correct jack_internal_client_load for wrapper layer. + * In thread model, execute a dummy cycle to be sure thread has the correct properties (ensure thread creation is finished). + * Correct jack_port_get_connections function (should return NULL when no connections). + +2008-03-10 Stephane Letz + + * Nedko Arnaudov log patch. + * Remove unneeded jack_port_connect API. + +2008-03-07 Stephane Letz + + * Define an internal jack_client_open_aux needed for library wrapper feature. + * Improve wrapper code. + * Correct FreeBob driver_initialize. + +2008-03-06 Stephane Letz + + * Marc-Olivier Barre scons patch (3). + +2008-03-06 Stephane Letz + + * Fix JackSocketClientChannel::ClientClose: async call from the client and server does not need to write any reply. + * Correct port notification: 2 notifications have to be sent (src, dst) and (dst, src)... + +2008-03-05 Stephane Letz + + * libjackdmp.so renamed to libjackservermp.so and same for OSX framework. + * tw1.c example added (new thread model). + * Marc-Olivier Barre scons patch (2). + +2008-03-02 Stephane Letz + + * Correct JackSocketClientChannel::ClientClose to use ServerSyncCall instead of ServerAsyncCall. + * Better documentation in jack.h. + * Marc-Olivier Barre scons patch. + +2008-03-02 Stephane Letz + + * Correct jack_get_time propotype. + +2008-02-25 Stephane Letz + + * Add TimeCallback in JackDebugClient class. + +2008-02-22 Stephane Letz + + * Correct JACK_port_unregister. + +2008-02-21 Stephane Letz + + * Add port register/unregister notification in JackAlsaDriver. + +2008-02-12 Stephane Letz + + * Fix in JackClient::Error(): when RT thread is failing and calling Shutdown, Shutdown was not desactivating the client correctly. + * Notify ports unregistration in JackEngine::ClientCloseAux. + * Thanks Esben Stien for helping finding these bugs. + +2008-02-11 Stephane Letz + + * Use SetAlias for port naming. Use jackd midi port naming scheme. + +2008-02-08 Stephane Letz + + * More robust external API. + +2008-02-07 Stephane Letz + + * Correct "server_connect": close the communication channel. + +2008-02-05 Stephane Letz + + * Reduce WaitGraphChange wait value. + * Remove use of assert in JackFifo, JackMachSemaphore, and JackPosixSemaphore: print an error instead. + +2008-02-03 Stephane Letz + + * Add "Readme" file from package in src folder. + * Tim Blechmann sse optimization patch for JackaudioPort::MixAudioBuffer, use of Apple Accelerate framework on OSX. + +2008-02-02 Stephane Letz + + * Tim Blechmann patches. + +2008-02-01 Stephane Letz + + * Move transport related methods from JackEngine to JackServer. + * Finish port connection callback server side implementation. + +2008-01-31 Stephane Letz + + * Remove checking thread in CoreAudio driver, better device state change recovery strategy: the driver is stopped and restarted. + * jack_thread_wait implementation. + * Add jack_thread_wait client example. + * Add jack_mp_thread_wait client example. + +2008-01-30 Stephane Letz + + * Latest jack_lsp code from jack SVN. + * Update in usx2y.c and JackPort.cpp to match jackd 0.109.2. + +2008-01-29 Stephane Letz + + * Implement jack_recompute_total_latency and jack_recompute_total_latencies. + * Remove fBufferSize field in JackGraphManager object. + * Port connection callback, client side. + +2008-01-28 Stephane Letz + + * Updated API to match jack 0.109.0 version (in progress). Correct checking thread in CoreAudio driver. + * Port connection callback, server side. + * Cleanup jack_port_connected_to implementation. + +2008-01-25 Stephane Letz + + * OSX 32/64 bits version. + +2008-01-24 Stephane Letz + + * CoreAudio driver improvement: detect and notify abnormal situations (stopped driver in case of SR change...). + +2008-01-03 Stephane Letz + + * Dmitry Baikov MIDI patch : alsa_seqmidi and alsa_rammidi drivers. + +2008-01-03 Stephane Letz + + * Tim Blechmann patch for JackGraphManager::GetPortsAux memory leak, Tim Blechmann patch for scons install. + +2007-12-12 Stephane Letz + + * Cleanup in CoreAudio driver. + +2007-12-11 Stephane Letz + + * Change string management for proper compilation with gcc 4.2.2. JackLog cleanup. + +2007-12-08 Stephane Letz + + * Tim Blechmann scons patch. + +2007-12-07 Stephane Letz + + * Pieter Palmers second new build system: scons and Makefile based build. + +2007-12-06 Stephane Letz + + * Pieter Palmers FFADO driver and scons based build. + +2007-12-05 Stephane Letz + + * Correct sample_rate management in JackCoreAudioDriver::Open. Better handling in sample_rate change listener. + +2007-12-04 Stephane Letz + + * Add a sample_rate change listener in CoreAudio driver. + +2007-12-03 Stephane Letz + + * Correct bug in CoreAudio driver sample rate management. + +2007-11-30 Stephane Letz + + * Correct JackMachNotifyChannel::ClientNotify. + +2007-11-29 Stephane Letz + + * Correct fPeriodUsecs computation in JackAudioDriver::SetBufferSize and JackAudioDriver::SetSampleRate. + +2007-11-28 Stephane Letz + + * On OSX, use jack server name in notification system. + +2007-11-21 Stephane Letz + + * On OSX, use CFNotificationCenterPostNotificationWithOptions with kCFNotificationDeliverImmediately | kCFNotificationPostToAllSessions for server ==> JackRouter plugin notification. + +2007-11-20 Stephane Letz + + * Correct CheckPort in JackAPI.cpp. + +2007-11-15 Stephane Letz + + * Move OSX start/stop notification mechanism in Jackdmp.cpp. + +2007-11-05 Stephane Letz + + * Use of JackWinSemaphore instead of JackWinEvent for inter-process synchronization. + * Correct types.h for use with MINGW on Windows. + +2007-11-04 Stephane Letz + + * Add an implementation for obsolete jack_internal_client_new and jack_internal_client_close. Add missing jack_port_type_size. + +2007-11-02 Stephane Letz + + * Correct ALSA driver Attach method: internal driver may have changed the buffer_size and sample_rate values. + * Add JackWinSemaphore class. + +2007-10-01 Stephane Letz + + * Server and user directory related code moved in a JackTools file. + * Client name rewritting to remove path characters (used in fifo naming). + +2007-10-30 Stephane Letz + + * Fix a bug in freewheel management in async mode: drivers now receive the kStartFreewheelCallback and kStopFreewheelCallback notifications. + +2007-10-26 Stephane Letz + + * Add midiseq and midisine examples. + * Cleanup old zombification code. + * Linux Makefile now install jack headers. + * Use of JACK_CLIENT_DEBUG environment variable to activate debug client mode. + * Definition of JACK_LOCATION variable using -D in the Makefile. + * Restore jack 0.103.0 MIDI API version. + +2007-10-25 Stephane Letz + + * Merge of Dmitry Baikov MIDI branch. + * Correct JackGraphManager::GetPortsAux to use port type. + * Remove JackEngineTiming class: code moved in JackEngineControl. + +2007-10-24 Stephane Letz + + * Implementation of server_name setting (-n). + +2007-10-23 Stephane Letz + + * Correct jack_acquire_real_time_scheduling on OSX. + +2007-10-18 Stephane Letz + + * Use LIB_DIR variable for 64 bits related compilation (drivers location). More generic Linux script. + +2007-10-16 Stephane Letz + + * Reorganize jack headers. Improve Linux install/remove scripts. + +2007-10-16 Stephane Letz + + * Internal loadable client implementation, winpipe version added. + +2007-10-12 Stephane Letz + + * Internal loadable client implementation, socket version added. + * Fix JackEngine::Close() method. + +2007-10-11 Stephane Letz + + * Internal loadable client implementation (in progress). + +2007-10-08 Stephane Letz + + * Use .jackdrc file (instead of .jackdmprc). Install script now creates a link "jackd ==> jackdmp" so that automatic launch can work correctly. + * Paul Davis patch for -r (--replace-registry) feature. + +2007-10-07 Stephane Letz + + * Add missing timestamps.c and timestamps.h files. Correctly export public headers in OSX frameworks. Suppress JackEngine::ClientInternalCloseIm method. + +2007-10-04 Stephane Letz + + * Correct "jack_register_server" in shm.c. + +2007-10-04 Stephane Letz + + * Fix a resource leak issue in JackCoreAudioDriver::Close(). Better implement "jack_client_open" when linking a client with the server library. + +2007-10-03 Stephane Letz + + * Rename server_name from "default" to "jackdmp_default" to avoid conflict with regular jackd server. + +2007-10-02 Stephane Letz + + * Correct jack_client_open "status" management. + +2007-08-27 Stephane Letz + + * Server/library protocol checking implementation. + +2007-08-26 Stephane Letz + + * Make "Rename" a method of JackPort class, call it from driver Attach method. + +2007-08-24 Stephane Letz + + * Implement server temporary (-T) mode. + +2007-08-23 Stephane Letz + + * Fix a bug in jack_test. Correct JackShmMem destructor. Correct end case in JackClient::Execute. Correct JackMachSemaphore::Disconnect. + +2007-08-22 Stephane Letz + + * Fix a bug in JackLibClient::Open introduced when adding automatic client renaming. + +2007-08-21 Stephane Letz + + * Fix backend port alias management (renaming in system:xxx). + +2007-08-20 Stephane Letz + + * Automatic server launch. Removes unneeded 'volatile' for JackTransportEngine::fWriteCounter. + +2007-08-19 Stephane Letz + + * Add "systemic" latencies management in CoreAudio driver. + +2007-08-16 Stephane Letz + + * Automatic client renaming. + +2007-07-27 Stephane Letz + + * Correct JackEngine::ClientCloseAux (when called from JackEngine::ClientExternalOpen). Correct JackWinEvent::Allocate. + +2007-07-20 Stephane Letz + + * Correct notification for kActivateClient event. + +2007-06-11 Stephane Letz + + * Dmitry Baikov buffer size patch. + +2007-06-10 Stephane Letz + + * Correct deprecated jack_set_sample_rate_callback to return 0 instead of -1. + +2007-06-09 Stephane Letz + + * Checking in the server to avoid calling the clients if no callback are registered. + +2007-06-08 Stephane Letz + + * New JackNotication.h header in preparation for callback checking in the server. + +2007-05-29 Stephane Letz + + * Add "callback exiting" and "jack_frame_time" tests in jack_test. + +2007-05-09 Stephane Letz + + * Add a mutex in JackGraphManager AllocatePort/ReleasePort methods. + +2007-05-05 Stephane Letz + + * Add jack_set_client_registration_callback API. + +2007-05-04 Stephane Letz + + * Steven Chamberlain patch to fix jack_port_type. Test for jack_port_type behaviour in jack_test.cpp tool. + +2007-05-03 Stephane Letz + + * Steven Chamberlain patch to fix jack_port_by_id export. + +2007-04-28 Stephane Letz + + * Add new jack_port_set_alias, jack_port_unset_alias and jack_port_get_aliases API. + +2007-04-27 Stephane Letz + + * Add missing -D__SMP__in OSX project. + +2007-04-23 Stephane Letz + + * Dmitry Baikov jackmp-time patch: add jack_get_time, jack_time_to_frames, jack_frames_to_time. + +2007-04-03 Stephane Letz + + * Dmitry Baikov remove-nframes patch. + +2007-04-02 Stephane Letz + + * Dmitry Baikov lost-event patch. + +2007-04-01 Stephane Letz + + * Merge JackGraphManager Remove and Release method in a unique Release method. + +2007-03-12 Stephane Letz + + * Bug fix in JackMidiBuffer::MaxEventSize(). + +2007-03-09 Stephane Letz + + * Dmitry Baikov MIDI patch phase 2. + +2007-03-08 Stephane Letz + + * Dmitry Baikov jackmp-port-clear patch. + +2007-03-06 Stephane Letz + + * Dmitry Baikov MIDI patch phase 1. + +2007-03-04 Stephane Letz + + * Dmitry Baikov patch for JackGraphManager.cpp. + * Dmitry Baikov MIDI patch phase 0. + +2007-02-19 Stephane Letz + + * Correct back JackAlsaDriver::Read method. + +2007-02-14 Stephane Letz + + * Better error checking in PortAudio driver. + +2007-02-07 Stephane Letz + + * Thom Johansen fix for port buffer alignment issues. + +2007-02-05 Stephane Letz + + * Add Pieter Palmers FreeBob driver. + * Thibault LeMeur ALSA driver patch. + +2007-01-31 Stephane Letz + + * Use pthread_attr_setstacksize in JackPosixThread class. + +2007-01-30 Stephane Letz + + * New LockAllMemory and UnlockAllMemory functions. + +2007-01-29 Stephane Letz + + * More robust activation/deactivation code, especially in case of client crash. + +2007-01-27 Stephane Letz + + * Uses a time out value of 10 sec in freewheel mode (like jack). + +2007-01-21 Stephane Letz + + * More client debug code: check if the client is still valid in every JackDebugClient method, check if the library context is still valid in every API call. + +2007-01-14 Stephane Letz + + * Implement thread.h API. + +2007-01-09 Stephane Letz + + * New server/client data transfer model to fix a 64 bits system bug. Fix a device name reversal bug in ALSA driver. + +2007-01-04 Stephane Letz + + * Add call to the init callback (set up using the jack_set_thread_init_callback API) in Real-Time and Notification threads. Define a new 'kActivateClient' notification. + +2007-01-02 Stephane Letz + + * Internal cleanup. + +2006-12-23 Stephane Letz + + * shared_ports renamed to shared_graph. + +2006-12-15 Stephane Letz + + * Move client refnum management in JackEngine. + +2006-12-12 Stephane Letz + + * Tom Szilagyi memory leak fix in ringbuffer.c. + +2006-11-29 Stephane Letz + + * Correct JackWinEnvent::Allocate (handle the ERROR_ALREADY_EXISTS case). Correct JackEngine::ClientExternalNew. + * Karsten Wiese correction for ALSA usx2y driver. + +2006-11-22 Stephane Letz + + * In synchronous mode, if the driver time out is reached, the server may get desynchronized (pending signal may arrive in later cycles), + improve audio driver synchronous code to better handle this case. + +2006-11-08 Stephane Letz + + * Synchronize ALSA backend with jack one. + +2006-11-04 Stephane Letz + + * Use -D to setup ADDON_DIR on OSX and Linux. + +2006-10-11 Stephane Letz + + * Correct server SetBufferSize in case of failure. Correct PortAudio driver help. + +2006-10-06 Stephane Letz + + * Add a new cpu testing/loading client. + +2006-09-23 Stephane Letz + + * Rename global "verbose" in "jack_verbose" to avoid symbol clash with PureData. + +2006-09-20 Stephane Letz + + * On Windows, avoid to use the unsafe Kill thread method. Use thread Stop instead and have blocked IO be unlocked. + * Still get RT thread termination problems, restore a version that works on OSX and Linux with conditionnal compilation for now. + +2006-09-16 Stephane Letz + + * Restore behaviour of LoopBack driver, which has to be opened in any case... + +2006-09-15 Stephane Letz + + * On Windows version, use signal to quit the server. + +2006-09-13 Stephane Letz + + * Correct pipe destruction bug in JackWinNamedPipe class. + +2006-09-11 Stephane Letz + + * Handling of LoopBack driver only when really needed. + * Correct crash bug when closing clients on Windows due to multi-threading synchronization issues. + +2006-09-06 Stephane Letz + + * Correct coreaudio driver (input was not working since 0.55 version). + * Version for 0.58 release. + +2006-09-04 Stephane Letz + + * Correct Windows VC++ projects. + +2006-09-03 Stephane Letz + + * First import of version 0.58 base code diff --git a/common/JackNetOneDriver.cpp b/common/JackNetOneDriver.cpp index 9b6d7b89..641ba5c9 100644 --- a/common/JackNetOneDriver.cpp +++ b/common/JackNetOneDriver.cpp @@ -36,7 +36,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. #endif #if HAVE_CELT -#include "celt/celt.h" +#include #endif #define MIN(x,y) ((x)<(y) ? (x) : (y)) @@ -153,12 +153,15 @@ namespace Jack } //port = fGraphManager->GetPort ( port_id ); - netj.capture_ports = - jack_slist_append (netj.capture_ports, (void *)(intptr_t)port_id); + netj.capture_ports = jack_slist_append (netj.capture_ports, (void *)(intptr_t)port_id); if( netj.bitdepth == CELT_MODE ) { #if HAVE_CELT - #if HAVE_CELT_API_0_7 || HAVE_CELT_API_0_8 + #if HAVE_CELT_API_0_11 + celt_int32 lookahead; + CELTMode *celt_mode = celt_mode_create( netj.sample_rate, netj.period_size, NULL ); + netj.capture_srcs = jack_slist_append(netj.capture_srcs, celt_decoder_create_custom( celt_mode, 1, NULL ) ); + #elif HAVE_CELT_API_0_7 || HAVE_CELT_API_0_8 celt_int32 lookahead; CELTMode *celt_mode = celt_mode_create( netj.sample_rate, netj.period_size, NULL ); netj.capture_srcs = jack_slist_append(netj.capture_srcs, celt_decoder_create( celt_mode, 1, NULL ) ); @@ -202,12 +205,13 @@ namespace Jack } //port = fGraphManager->GetPort ( port_id ); - netj.playback_ports = - jack_slist_append (netj.playback_ports, (void *)(intptr_t)port_id); - + netj.playback_ports = jack_slist_append (netj.playback_ports, (void *)(intptr_t)port_id); if( netj.bitdepth == CELT_MODE ) { #if HAVE_CELT - #if HAVE_CELT_API_0_7 || HAVE_CELT_API_0_8 + #if HAVE_CELT_API_0_11 + CELTMode *celt_mode = celt_mode_create( netj.sample_rate, netj.period_size, NULL ); + netj.playback_srcs = jack_slist_append(netj.playback_srcs, celt_encoder_create_custom( celt_mode, 1, NULL ) ); + #elif HAVE_CELT_API_0_7 || HAVE_CELT_API_0_8 CELTMode *celt_mode = celt_mode_create( netj.sample_rate, netj.period_size, NULL ); netj.playback_srcs = jack_slist_append(netj.playback_srcs, celt_encoder_create( celt_mode, 1, NULL ) ); #else @@ -697,10 +701,18 @@ namespace Jack { // audio port, decode celt data. CELTDecoder *decoder = (CELTDecoder *)src_node->data; + + #if HAVE_CELT_API_0_8 | HAVE_CELT_API_0_11 + if( !packet_payload ) + celt_decode_float( decoder, NULL, net_period_down, buf, nframes ); + else + celt_decode_float( decoder, packet_bufX, net_period_down, buf, nframes ); + #else if( !packet_payload ) - celt_decode_float( decoder, NULL, net_period_down, buf ); + celt_decode_float( decoder, NULL, net_period_down, buf ); else - celt_decode_float( decoder, packet_bufX, net_period_down, buf ); + celt_decode_float( decoder, packet_bufX, net_period_down, buf ); + #endif src_node = jack_slist_next (src_node); } @@ -746,8 +758,12 @@ namespace Jack jack_default_audio_sample_t *floatbuf = (jack_default_audio_sample_t *)alloca (sizeof(jack_default_audio_sample_t) * nframes ); memcpy( floatbuf, buf, nframes * sizeof(jack_default_audio_sample_t) ); CELTEncoder *encoder = (CELTEncoder *)src_node->data; + #if HAVE_CELT_API_0_8 | HAVE_CELT_API_0_11 + encoded_bytes = celt_encode_float( encoder, floatbuf, nframes, packet_bufX, net_period_up ); +#else encoded_bytes = celt_encode_float( encoder, floatbuf, NULL, packet_bufX, net_period_up ); - if( encoded_bytes != (int)net_period_up ) +#endif + if( encoded_bytes != (int)net_period_up ) jack_error( "something in celt changed. netjack needs to be changed to handle this." ); src_node = jack_slist_next( src_node ); } diff --git a/common/netjack.c b/common/netjack.c index d916fd32..e3ec0c33 100644 --- a/common/netjack.c +++ b/common/netjack.c @@ -365,7 +365,7 @@ void netjack_attach( netjack_driver_state_t *netj ) if( netj->bitdepth == CELT_MODE ) { #if HAVE_CELT -#if HAVE_CELT_API_0_7 || HAVE_CELT_API_0_8 +#if HAVE_CELT_API_0_7 || HAVE_CELT_API_0_8 || HAVE_CELT_API_0_11 celt_int32 lookahead; netj->celt_mode = celt_mode_create( netj->sample_rate, netj->period_size, NULL ); #else @@ -398,7 +398,9 @@ void netjack_attach( netjack_driver_state_t *netj ) if( netj->bitdepth == CELT_MODE ) { #if HAVE_CELT -#if HAVE_CELT_API_0_7 || HAVE_CELT_API_0_8 +#if HAVE_CELT_API_0_11 + netj->capture_srcs = jack_slist_append(netj->capture_srcs, celt_decoder_create_custom( netj->celt_mode, 1, NULL ) ); +#elif HAVE_CELT_API_0_7 || HAVE_CELT_API_0_8 netj->capture_srcs = jack_slist_append(netj->capture_srcs, celt_decoder_create( netj->celt_mode, 1, NULL ) ); #else netj->capture_srcs = jack_slist_append(netj->capture_srcs, celt_decoder_create( netj->celt_mode ) ); @@ -444,7 +446,10 @@ void netjack_attach( netjack_driver_state_t *netj ) jack_slist_append (netj->playback_ports, port); if( netj->bitdepth == CELT_MODE ) { #if HAVE_CELT -#if HAVE_CELT_API_0_7 || HAVE_CELT_API_0_8 +#if HAVE_CELT_API_0_11 + CELTMode *celt_mode = celt_mode_create( netj->sample_rate, netj->period_size, NULL ); + netj->playback_srcs = jack_slist_append(netj->playback_srcs, celt_decoder_create_custom( celt_mode, 1, NULL ) ); +#elif HAVE_CELT_API_0_7 || HAVE_CELT_API_0_8 CELTMode *celt_mode = celt_mode_create( netj->sample_rate, netj->period_size, NULL ); netj->playback_srcs = jack_slist_append(netj->playback_srcs, celt_encoder_create( celt_mode, 1, NULL ) ); #else diff --git a/common/netjack_packet.c b/common/netjack_packet.c index d03d49f0..22829e41 100644 --- a/common/netjack_packet.c +++ b/common/netjack_packet.c @@ -1368,21 +1368,20 @@ render_payload_to_jack_ports_celt (void *packet_payload, jack_nframes_t net_peri if (jack_port_is_audio (porttype)) { // audio port, decode celt data. + CELTDecoder *decoder = src_node->data; + #if HAVE_CELT_API_0_8 | HAVE_CELT_API_0_11 + if( !packet_payload ) + celt_decode_float( decoder, NULL, net_period_down, buf, nframes ); + else + celt_decode_float( decoder, packet_bufX, net_period_down, buf, nframes ); + #else + if( !packet_payload ) + celt_decode_float( decoder, NULL, net_period_down, buf ); + else + celt_decode_float( decoder, packet_bufX, net_period_down, buf ); + #endif - CELTDecoder *decoder = src_node->data; -#if HAVE_CELT_API_0_8 - if( !packet_payload ) - celt_decode_float( decoder, NULL, net_period_down, buf, nframes ); - else - celt_decode_float( decoder, packet_bufX, net_period_down, buf, nframes ); -#else - if( !packet_payload ) - celt_decode_float( decoder, NULL, net_period_down, buf ); - else - celt_decode_float( decoder, packet_bufX, net_period_down, buf ); -#endif - - src_node = jack_slist_next (src_node); + src_node = jack_slist_next (src_node); } else if (jack_port_is_midi (porttype)) { @@ -1390,8 +1389,8 @@ render_payload_to_jack_ports_celt (void *packet_payload, jack_nframes_t net_peri // convert the data buffer to a standard format (uint32_t based) unsigned int buffer_size_uint32 = net_period_down / 2; uint32_t * buffer_uint32 = (uint32_t*) packet_bufX; - if( packet_payload ) - decode_midi_buffer (buffer_uint32, buffer_size_uint32, buf); + if( packet_payload ) + decode_midi_buffer (buffer_uint32, buffer_size_uint32, buf); } packet_bufX = (packet_bufX + net_period_down); node = jack_slist_next (node); @@ -1422,7 +1421,7 @@ render_jack_ports_to_payload_celt (JSList *playback_ports, JSList *playback_srcs float *floatbuf = alloca (sizeof(float) * nframes ); memcpy( floatbuf, buf, nframes*sizeof(float) ); CELTEncoder *encoder = src_node->data; -#if HAVE_CELT_API_0_8 +#if HAVE_CELT_API_0_8 | HAVE_CELT_API_0_11 encoded_bytes = celt_encode_float( encoder, floatbuf, nframes, packet_bufX, net_period_up ); #else encoded_bytes = celt_encode_float( encoder, floatbuf, NULL, packet_bufX, net_period_up ); diff --git a/example-clients/connect.c b/example-clients/connect.c index a4132cea..3c6de6b9 100644 --- a/example-clients/connect.c +++ b/example-clients/connect.c @@ -31,7 +31,7 @@ jack_port_t *input_port; jack_port_t *output_port; int connecting, disconnecting; -int done = 0; +volatile int done = 0; #define TRUE 1 #define FALSE 0 @@ -58,7 +58,6 @@ show_usage (char *my_name) fprintf (stderr, "For more information see http://jackaudio.org/\n"); } - int main (int argc, char *argv[]) { @@ -181,11 +180,11 @@ main (int argc, char *argv[]) if ((port1 = jack_port_by_name(client, portA)) == 0) { fprintf (stderr, "ERROR %s not a valid port\n", portA); goto exit; - } + } if ((port2 = jack_port_by_name(client, portB)) == 0) { fprintf (stderr, "ERROR %s not a valid port\n", portB); goto exit; - } + } port1_flags = jack_port_flags (port1); port2_flags = jack_port_flags (port2); @@ -207,17 +206,25 @@ main (int argc, char *argv[]) goto exit; } + /* tell the JACK server that we are ready to roll */ + if (jack_activate (client)) { + fprintf (stderr, "cannot activate client"); + goto exit; + } + /* connect the ports. Note: you can't do this before the client is activated (this may change in the future). */ if (connecting) { if (jack_connect(client, jack_port_name(src_port), jack_port_name(dst_port))) { + fprintf (stderr, "cannot connect client, already connected?\n"); goto exit; } } if (disconnecting) { if (jack_disconnect(client, jack_port_name(src_port), jack_port_name(dst_port))) { + fprintf (stderr, "cannot disconnect client, already disconnected?\n"); goto exit; } } diff --git a/example-clients/control.c b/example-clients/control.c index 363b6b21..f22307b6 100644 --- a/example-clients/control.c +++ b/example-clients/control.c @@ -1,4 +1,4 @@ -/** @file simple_client.c +/** @file control.c * * @brief This simple client demonstrates the basic features of JACK * as they would be used by many applications. @@ -14,14 +14,14 @@ jack_client_t *client; static int reorder = 0; - + static int Jack_Graph_Order_Callback(void *arg) { const char **ports; int i; - + printf("Jack_Graph_Order_Callback count = %d\n", reorder++); - + ports = jack_get_ports(client, NULL, NULL, JackPortIsPhysical|JackPortIsOutput); if (ports) { for (i = 0; ports[i]; ++i) { @@ -29,15 +29,15 @@ static int Jack_Graph_Order_Callback(void *arg) } free(ports); } - + ports = jack_get_ports(client, NULL, NULL, JackPortIsPhysical|JackPortIsInput); - if (ports) { + if (ports) { for (i = 0; ports[i]; ++i) { printf("name: %s\n", ports[i]); } free(ports); } - + return 0; } @@ -46,7 +46,7 @@ main (int argc, char *argv[]) { jack_options_t options = JackNullOption; jack_status_t status; - + /* open a client connection to the JACK server */ client = jack_client_open("control_client", options, &status); @@ -54,7 +54,7 @@ main (int argc, char *argv[]) printf("jack_client_open() failed \n"); exit(1); } - + if (jack_set_graph_order_callback(client, Jack_Graph_Order_Callback, 0) != 0) { printf("Error when calling jack_set_graph_order_callback() !\n"); } @@ -66,10 +66,10 @@ main (int argc, char *argv[]) printf("cannot activate client"); exit(1); } - - printf("Type 'q' to quit\n"); + + printf("Type 'q' to quit\n"); while ((getchar() != 'q')) {} - + jack_client_close(client); exit (0); } diff --git a/example-clients/wscript b/example-clients/wscript index 8f6dae62..94888db8 100644 --- a/example-clients/wscript +++ b/example-clients/wscript @@ -130,22 +130,22 @@ def build(bld): prog.uselib_local = 'clientlib' prog.target = 'jack_netsource' - #if bld.env['IS_LINUX'] and bld.env['BUILD_EXAMPLE_ALSA_IO']: - # prog = bld.new_task_gen('cc', 'program') - # prog.includes = os_incdir + ['../common/jack', '../common'] - # prog.source = ['alsa_in.c', '../common/memops.c'] - # prog.env.append_value("CCFLAGS", "-DNO_JACK_ERROR") - # prog.uselib = 'ALSA SAMPLERATE' - # prog.uselib_local = 'clientlib' - # prog.target = 'alsa_in' - - # prog = bld.new_task_gen('cc', 'program') - # prog.includes = os_incdir + ['../common/jack', '../common'] - # prog.source = ['alsa_out.c', '../common/memops.c'] - # prog.env.append_value("CCFLAGS", "-DNO_JACK_ERROR") - # prog.uselib = 'ALSA SAMPLERATE' - # prog.uselib_local = 'clientlib' - # prog.target = 'alsa_out' + if bld.env['IS_LINUX'] and bld.env['BUILD_EXAMPLE_ALSA_IO']: + prog = bld.new_task_gen('cc', 'program') + prog.includes = os_incdir + ['../common/jack', '../common'] + prog.source = ['alsa_in.c', '../common/memops.c'] + prog.env.append_value("CCFLAGS", "-DNO_JACK_ERROR") + prog.uselib = 'ALSA SAMPLERATE' + prog.uselib_local = 'clientlib' + prog.target = 'alsa_in' + + prog = bld.new_task_gen('cc', 'program') + prog.includes = os_incdir + ['../common/jack', '../common'] + prog.source = ['alsa_out.c', '../common/memops.c'] + prog.env.append_value("CCFLAGS", "-DNO_JACK_ERROR") + prog.uselib = 'ALSA SAMPLERATE' + prog.uselib_local = 'clientlib' + prog.target = 'alsa_out' for example_lib, example_lib_source in example_libs.items(): lib = bld.new_task_gen('cc', 'shlib') diff --git a/wscript b/wscript index 43ab73a2..dedd86eb 100644 --- a/wscript +++ b/wscript @@ -129,23 +129,33 @@ def configure(conf): conf.fatal('jackdbus was explicitly requested but cannot be built') conf.sub_config('example-clients') - if conf.check_cfg(package='celt', atleast_version='0.8.0', args='--cflags --libs'): + if conf.check_cfg(package='celt', atleast_version='0.11.0', args='--cflags --libs'): conf.define('HAVE_CELT', 1) + conf.define('HAVE_CELT_API_0_11', 1) + conf.define('HAVE_CELT_API_0_8', 0) + conf.define('HAVE_CELT_API_0_7', 0) + conf.define('HAVE_CELT_API_0_5', 0) + elif conf.check_cfg(package='celt', atleast_version='0.8.0', args='--cflags --libs'): + conf.define('HAVE_CELT', 1) + conf.define('HAVE_CELT_API_0_11', 0) conf.define('HAVE_CELT_API_0_8', 1) conf.define('HAVE_CELT_API_0_7', 0) conf.define('HAVE_CELT_API_0_5', 0) elif conf.check_cfg(package='celt', atleast_version='0.7.0', args='--cflags --libs'): conf.define('HAVE_CELT', 1) + conf.define('HAVE_CELT_API_0_11', 0) conf.define('HAVE_CELT_API_0_8', 0) conf.define('HAVE_CELT_API_0_7', 1) conf.define('HAVE_CELT_API_0_5', 0) elif conf.check_cfg(package='celt', atleast_version='0.5.0', args='--cflags --libs', required=True): conf.define('HAVE_CELT', 1) + conf.define('HAVE_CELT_API_0_11', 0) conf.define('HAVE_CELT_API_0_8', 0) conf.define('HAVE_CELT_API_0_7', 0) conf.define('HAVE_CELT_API_0_5', 1) else: conf.define('HAVE_CELT', 0) + conf.define('HAVE_CELT_API_0_11', 0) conf.define('HAVE_CELT_API_0_8', 0) conf.define('HAVE_CELT_API_0_7', 0) conf.define('HAVE_CELT_API_0_5', 0)