jack2 codebase
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

859 lines
37KB

  1. ChangeLog
  2. #########
  3. * 1.9.14 (2019-10-28)
  4. * Fix ARM build
  5. * Fix mixed mode build when meta-data is enabled
  6. * Fix blocking DBus device reservation, so it plays nice with others (like PipeWire)
  7. * Use python3 for the waf build scripts
  8. * 1.9.13 (2019-10-06)
  9. * Meta-data API implementation. (and a few tools updated with support for it)
  10. * Correct GPL licence to LGPL for files needed to build libjack.
  11. * Remove FreeBoB backend (superseded by FFADO).
  12. * define JACK_LIB_EXPORT, useful for internal clients.
  13. * Mark jack_midi_reset_buffer as deprecated.
  14. * Add example systemd unit file
  15. * Signal to systemd when jackd is ready.
  16. * Set "seq" alsa midi driver to maximum resolution possible.
  17. * Fix loading internal clients from another internal client.
  18. * Code cleanup and various fixes. (too many to mention here, see git log for details)
  19. * 1.9.12 (2017-12-13)
  20. * Fix Windows build issues.
  21. * Fix build with gcc-7.
  22. * Show hint when DBus device reservation fails.
  23. * Add support for internal session files.
  24. * 1.9.11-RC1 (2017-06-13)
  25. * Various corrections in NetJack2 code. Partial buffers can now be
  26. transmitted with libjacknet API.
  27. * Including S24_LE/BE formats to linux ALSA driver.
  28. * More robust shared memory allocator.
  29. * Allow autostart of jackd on OSX where device-names can contain spaces.
  30. * Correct CoreAudio devices aggregation code.
  31. * Waf and wscripts improvement and update.
  32. * More flexible RT priority setup on Windows.
  33. * New JackProxyDriver.
  34. * Various fixes in JACK MIDI code.
  35. * Fix return value of SetTimebaseCallback().
  36. * Correct netmanager latency reporting.
  37. * Implement new jack_port_rename and JackPortRenameCallback API.
  38. * For OSX El Capitan support, use of Posix semaphore and move of Frameworks
  39. in /Library folder.
  40. * Fix CPU hogging of the midi_thread().
  41. * Release audio devices when alsa_driver_new fails.
  42. * String management fix.
  43. * Correct JackDriver::Open: call to fGraphManager->SetBufferSize has to use
  44. current fEngineControl->fBufferSize value.
  45. * Use ARM neon intrinsics for AudioBufferMixdown.
  46. * Fix Netjack alignment.
  47. * Various wscript improvements and cleanup.
  48. * Fix initialization of several class variables.
  49. * Heap-allocate client matrix in topo sort.
  50. * Add a toggle command to transport utility, to allow toggling between play
  51. and stop state.
  52. * Avoid side effects from parsing of "version" option in jackd.
  53. * Allow firewire device be selected via -d.
  54. * Add ARM-NEON acceleration for all non-dithering sample conversion
  55. functions.
  56. * Add jack_simdtest utility.
  57. * Use Linux futex as JackSynchro.
  58. * Add autoclose option to jack_load.
  59. * 1.9.10 (2014-07-19)
  60. * More robust code in JackPortAudioDriver to handle buffer size change and
  61. backend switching.
  62. * Fix bus error on ARM platforms.
  63. * Dynamically scan and print backend and internal names in jackd.
  64. * CoreMIDI driver fixes.
  65. * Rework NetJack2 code (OPUS codec on OSX, latency management, libjacknet
  66. code).
  67. * Correct auto-connect for audioadapter.
  68. * Add IIO driver.
  69. * Merge of Nedko no-self-connect branch.
  70. * Fix freewheel mode.
  71. * JackServer::SwitchMaster now correctly notify buffer_size and sample_rate
  72. changes, cleanup/improvements in JackNetDriver.
  73. * Tim Mayberry : Add support for building with mingw compiler.
  74. * Merge of Kim Jeong Yeon Android branch.
  75. * Partial port of metadata API.
  76. * 1.9.9.5 (2012-11-26)
  77. * Adrian Knoth fix in midiseq.c.
  78. * Fix library symbols export issue.
  79. * Cleanup drivers and internals loading code.
  80. * jackctl_driver_params_parse API moved in public control.h.
  81. * More general drivers/internals loading model on Windows.
  82. * Factorize code the server/client request in JackRequestDecoder class.
  83. * More robust server/client protocol.
  84. * Implement shutdown for in server clients.
  85. * Better time-out management in NetJack2.
  86. * Experimental system port alias use in Windows JackRouter.
  87. * Improve ShutDown in NetManager.
  88. * Correct ShutDown in JackInternalClient and JackLibClient.
  89. * Fix NetJack2 initialisation bug.
  90. * Add EndTime function (especially for Windows).
  91. * Rename JackProcessSync in JackPosixProcessSync.
  92. * A bit more robust JackMessageBuffer implementation (in progress).
  93. * Check server API callback from notification thread.
  94. * Use a time-out in notification channel write function.
  95. * Fix lock management in JackEngine.
  96. * In control API, UNIX like sigset_t replaced by more abstract
  97. jackctl_sigmask_t * opaque struct.
  98. * Improve libjacknet master mode.
  99. * Remove JACK_32_64 flag, so POST_PACKED_STRUCTURE now always used.
  100. POST_PACKED_STRUCTURE used for jack_latency_range_t type.
  101. * Rework JackMessageBuffer. [firewire]
  102. * Introduce UpdateLatencies() in FFADO backend. [firewire]
  103. * Allow FFADO backend to change the buffer size.
  104. * Update waf.
  105. * New jack_get_cycle_times() implementation from Fons Adriennsen.
  106. * Align buffers to 32 byte boundaries to allow AVX processing.
  107. * Extend jack_control to have parameter reset commands.
  108. * Fix alsa driver parameter order.
  109. * Control API: Enforce driver/internal parameter order.
  110. * Fix in ALSA adapter.
  111. * Devin Anderson patch for Jack/CoreMIDI duplicated messages.
  112. * Change framework installation hierarchy for OSX Mountain Lion.
  113. * Update JackCoreAudioDriver and JackCoreAudioAdapter with more recent API.
  114. * jack_control: fix epr command.
  115. * Add opus support to NetJack2.
  116. * More robust channel mapping handling in JackCoreAudioDriver.
  117. * netjack1/netone opus support.
  118. * controlapi: fix double free on master switch.
  119. * Use string ids in the alsa device list.
  120. * netjack/opus: don't re-init en/decoders.
  121. * Correct JackPortAudioDriver::Open: special case for ASIO drivers.
  122. * 1.9.8 (2011-12-19)
  123. * Merge newer-midi branch (Devin Anderson redesign of the MIDI drivers:
  124. alsarawmidi, ffado, coremidi and winmme).
  125. * Correction in jackdmp.cpp: notify_server_stop should be done after server
  126. destruction.
  127. * Correct driver lifetime management.
  128. * Add XRun detection in PortAudio driver.
  129. * CELT code for NetJack2.
  130. * Merge branch switch-master-port-registration-notifications: correct driver
  131. port registration.
  132. * Libjacknet in progress.
  133. * Correct MIDI in NetJack2.
  134. * Correct OSX real-time thread setup.
  135. * Correct rd_acquire in dbus code.
  136. * Correct NetJack2 connection handling.
  137. * SaveConnections/RestoreConnections in NetDriver and JackAudioDriver.
  138. * Special version of jack_attach_shm/jack_release_shm on client side for
  139. POSIX shared memory, to solve a memory leak issue.
  140. * Another round of code improvements to handle completely buggy Digidesign
  141. CoreAudio user-land driver.
  142. * Special CATCH_CLOSE_EXCEPTION_RETURN to handle Close API calls.
  143. * Add JACK_NETJACK_PORT and JACK_NETJACK_MULTICAST environment variables for
  144. NetJack2. NetJack2 now only send data on network only is ports are
  145. connected both sides.
  146. * Fix for "starting two instances of same app in parallel does not work"
  147. bug.
  148. * Enable explicit channel mapping in CoreAudio driver.
  149. * New JackTimedDriver class to be used by JackDummyDriver, JackNetDriver and
  150. JackNetOneDriver classes.
  151. * More robust code in synchronization primitives and in JackMessageBuffer.
  152. * More robust Control API implementation. Add jackctl_driver_get_type in
  153. Control API.
  154. * Singleton behaviour for JackCoreMidiDriver and JackWinMMEDriver.
  155. * John Emmas patch for DSP CPU computation.
  156. * John Emmas Windows server launching patch.
  157. * Fix jack_set_port_name API.
  158. * Enable local access in NetJack2 code.
  159. * Dynamic port management in JACK/CoreMidi bridge.
  160. * 1.9.7 (2011-03-30)
  161. * Sync JackAlsaDriver::alsa_driver_check_card_type with JACK1 backend.
  162. * Correct JackServer::Open to avoid a race when control API is used on OSX.
  163. * Improve backend error handling: fatal error returned by Read/Write now
  164. cause a Process failure (so a thread exit for blocking backends).
  165. Recoverable ones (XRuns..) are now treated internally in ALSA, FreeBob and
  166. FFADO backends.
  167. * In jackdmp.cpp, jackctl_setup_signals moved before jackctl_server_start.
  168. * Correct symbols export in backends on OSX. ALSA backend: suspend/resume
  169. handling.
  170. * Correct dummy driver.
  171. * Adrian Knoth jack_lsp patch.
  172. * Remove JackPortIsActive flag.
  173. * New latency API implementation.
  174. * ComputeTotalLatencies now a client/server call.
  175. * Add latent test client for latency API.
  176. * Also print playback and capture latency in jack_lsp.
  177. jack_client_has_session_callback implementation.
  178. * Check requested buffer size and limit to 1..8192 - avoids weird behaviour
  179. caused by jack_bufsize foobar.
  180. * jack_port_type_get_buffer_size implementation.
  181. * Stop using alloca and allocate buffer on the heap for alsa_io.
  182. * Rename jdelay to jack_iodelay as per Fons' request.
  183. * Call buffer size callback in activate (actually this is done on client side
  184. in the RT thread Init method).
  185. * Add jack_midi_dump client.
  186. * Synchronize net JACK1 with JACK1 version.
  187. * Synchronize jack_connect/jack_disconnect with JACK1 version.
  188. * Correct JackNetMaster::SetBufferSize.
  189. * Use jack_default_audio_sample_t instead of float consistently, fix ticket
  190. #201.
  191. * -X now allows to add several slave backends, add -I to load several
  192. internal clients.
  193. * Rework internal slave driver management, JackServerGlobals now handle same
  194. parameters as jackdmp.
  195. * Correct JackEngine::NotifyGraphReorder, update JackDebugClient with latest
  196. API.
  197. * Devin Anderson server-ctl-proposal branch merged on trunk: improved control
  198. API, slave backend reworked. Implement renaming in JackDriver::Open to
  199. avoid name collision (thanks Devin Anderson).
  200. * Correct alsa_driver_restart (thanks Devin Anderson). Correction of
  201. jack_connect/jack_disconnect: use of jack_activate and volatile keyword for
  202. thread shared variable.
  203. * Correction of JackNetOneDriver for latest CELT API.
  204. * Synchronize JackWeakAPI.cpp with new APIs.
  205. * 1.9.6 (2010-08-30)
  206. * Improve JackCoreAudioDriver and JackCoreAudioAdapter : when no devices are
  207. described, takes default input and output and aggregate them.
  208. * Correct JackGraphManager::DeactivatePort.
  209. * Correct JackMachServerChannel::Execute : keep running even in error cases.
  210. Raise JACK_PROTOCOL_VERSION number.
  211. * Arnold Krille firewire patch.
  212. * Raise JACK_DRIVER_PARAM_STRING_MAX and JACK_PARAM_STRING_MAX to 127
  213. otherwise some audio drivers cannot be loaded on OSX.
  214. * Fix some file header to have library side code use LGPL.
  215. * On Windows, now use TRE library for regexp (BSD license instead of GPL
  216. license).
  217. * ffado-portname-sync.patch from ticket #163 applied.
  218. * Remove call to exit in library code.
  219. * Make jack_connect/jack_disconnect wait for effective port
  220. connection/disconnection.
  221. * Add tests to validate intclient.h API.
  222. * On Linux, inter-process synchronization primitive switched to POSIX
  223. semaphore.
  224. * In JackCoreAudioDriver, move code called in MeasureCallback to be called
  225. once in IO thread.
  226. * David Garcia Garzon netone patch.
  227. * Fix from Fernando Lopez-Lezcano for compilation on fc13.
  228. * Fix JackPosixSemaphore::TimedWait : same behavior as
  229. JackPosixSemaphore::Wait regarding EINTR.
  230. * David Garcia Garzon unused_pkt_buf_field_jack2 netone patch.
  231. * Arnold Krille firewire snooping patch.
  232. * Jan Engelhardt patch for get_cycles on SPARC.
  233. * Adrian Knoth hurd.patch, kfreebsd-fix.patch and alpha_ia64-sigsegv.patch
  234. from ticket 177.
  235. * Adrian Knoth fix for linux cycle.h (ticket 188).
  236. * In JackCoreAudioDriver, fix an issue when no value is given for input.
  237. * 1.9.5 (2010-02-12)
  238. * Dynamic choice of maximum port number.
  239. * More robust sample rate change handling code in JackCoreAudioDriver.
  240. * Devin Anderson patch for Jack FFADO driver issues with lost MIDI bytes
  241. between periods (and more).
  242. * Fix port_rename callback: now both old name and new name are given as
  243. parameters.
  244. * Special code in JackCoreAudio driver to handle completely buggy Digidesign
  245. CoreAudio user-land driver.
  246. * Ensure that client-side message buffer thread calls thread_init callback
  247. if/when it is set by the client (backport of JACK1 rev 3838).
  248. * Check dynamic port-max value.
  249. * Fix JackCoreMidiDriver::ReadProcAux when ring buffer is full (thanks Devin
  250. Anderson).
  251. * Josh Green ALSA driver capture only patch.
  252. * When threads are cancelled, the exception has to be rethrown.
  253. * Use a QUIT notification to properly quit the server channel, the server
  254. channel thread can then be 'stopped' instead of 'canceled'.
  255. * Mario Lang alsa_io time calculation overflow patch. Shared memory manager
  256. was calling abort in case of fatal error, now return an error in caller.
  257. * Change JackEngineProfiling and JackAudioAdapterInterface gnuplot scripts
  258. to output SVG instead of PDF.
  259. * 1.9.4 (2009-11-19)
  260. * Solaris boomer backend now working in capture or playback only mode.
  261. * Add a -G parameter in CoreAudio backend (the computation value in RT
  262. thread expressed as percent of period).
  263. * Use SNDCTL_DSP_SYNCGROUP/SNDCTL_DSP_SYNCSTART API to synchronize input and
  264. output in Solaris boomer backend.
  265. * Big endian bug fix in memops.c.
  266. * Fix issues in JackNetDriver::DecodeTransportData and
  267. JackNetDriver::Initialize.
  268. * Correct CPU timing in JackNetDriver, now take cycle begin time after Read.
  269. * Simplify transport in NetJack2: master only can control transport.
  270. * Change CoreAudio notification thread setup for OSX Snow Leopard.
  271. * Correct server temporary mode: now set a global and quit after
  272. server/client message handling is finished.
  273. * Add a string parameter to server ==> client notification, add a new
  274. JackInfoShutdownCallback type.
  275. * CoreAudio backend now issue a JackInfoShutdownCallback when an
  276. unrecoverable error is detected (sampling rate change, stream
  277. configuration change).
  278. * Correct jackdmp.cpp (failures case were not correct..).
  279. * Improve JackCoreAudioDriver code.
  280. * Raise default port number to 2048.
  281. * Correct JackProcessSync::LockedTimedWait.
  282. * Correct JACK_MESSAGE_SIZE value, particularly in OSX RPC code.
  283. * Now start server channel thread only when backend has been started (so in
  284. JackServer::Start).
  285. * Should solve race conditions at start time.
  286. * jack_verbose moved to JackGlobals class.
  287. * Improve aggregate device management in JackCoreAudioDriver: now a
  288. "private" device only and cleanup properly.
  289. * Aggregate device code added to JackCoreAudioAdapter.
  290. * Implement "hog mode" (exclusive access of the audio device) in
  291. JackCoreAudioDriver.
  292. * Fix jack_set_sample_rate_callback to have he same behavior as in JACK1.
  293. * Dynamic system version detection in JackCoreAudioDriver to either create
  294. public or private aggregate device.
  295. * In JackCoreAudioDriver, force the SR value to the wanted one *before*
  296. creating aggregate device (otherwise creation will fail).
  297. * In JackCoreAudioDriver, better cleanup of AD when intermediate open
  298. failure.
  299. * In JackCoreAudioDriver::Start, wait for the audio driver to effectively
  300. start (use the MeasureCallback).
  301. * In JackCoreAudioDriver, improve management of input/output channels: -1 is
  302. now used internally to indicate a wanted max value.
  303. * In JackCoreAudioDriver::OpenAUHAL, correct stream format setup and
  304. cleanup.
  305. * Correct crash bug in JackAudioAdapterInterface when not input is used in
  306. adapter (temporary fix).
  307. * Sync JackCoreAudioAdapter code on JackCoreAudioDriver one.
  308. * JACK_SCHED_POLICY switched to SCHED_FIFO.
  309. * Now can aggregate device that are themselves AD.
  310. * No reason to make jack_on_shutdown deprecated, so revert the incorrect
  311. change.
  312. * Thread AcquireRealTime and DropRealTime were (incorrectly) using fThread
  313. field.
  314. * Use pthread_self()) (or GetCurrentThread() on Windows) to get the calling
  315. thread.
  316. * Correctly save and restore RT mode state in freewheel mode.
  317. * Correct freewheel code on client side.
  318. * Fix AcquireRealTime and DropRealTime: now distinguish when called from
  319. another thread (AcquireRealTime/DropRealTime) and from the thread itself
  320. (AcquireSelfRealTime/DropSelfRealTime).
  321. * Correct JackPosixThread::StartImp: thread priority setting now done in the
  322. RT case only.
  323. * Correct JackGraphManager::GetBuffer for the "client loop with one
  324. connection" case: buffer must be copied.
  325. * Correct JackInfoShutdownCallback prototype, two new
  326. JackClientProcessFailure and JackClientZombie JackStatus code.
  327. * Correct JackCoreAudio driver when empty strings are given as -C, -P or -d
  328. parameter.
  329. * Better memory allocation error checking on client (library) side.
  330. * Better memory allocation error checking in ringbuffer.c, weak import
  331. improvements.
  332. * Memory allocation error checking for jack_client_new and jack_client_open
  333. (server and client side).
  334. * Memory allocation error checking in server for RPC.
  335. * Simplify server temporary mode: now use a JackTemporaryException.
  336. * Lock/Unlock shared memory segments (to test...).
  337. * Sync with JACK1 : -r parameter now used for no-realtime, realtime (-R) is
  338. now default, usable backend given vie platform.
  339. * In JackCoreAudio driver, (possibly) clock drift compensation when needed
  340. in aggregated devices.
  341. * In JackCoreAudio driver, clock drift compensation in aggregated devices
  342. working.
  343. * In JackCoreAudio driver, clock drift compensation semantic changed a bit:
  344. when on, does not activate if not needed (same clock domain).
  345. * Sync JackCoreAudioAdapter code with JackCoreAudioDriver.
  346. * 1.9.3 (2009-07-21)
  347. * New JackBoomerDriver class for Boomer driver on Solaris.
  348. * Add mixed 32/64 bits mode (off by default).
  349. * Native MIDI backend (JackCoreMidiDriver, JackWinMMEDriver).
  350. * In ALSA audio card reservation code, tries to open the card even if
  351. reservation fails.
  352. * Clock source setting on Linux.
  353. * Add jackctl_server_switch_master API.
  354. * Fix transport callback (timebase master, sync) issue when used after
  355. jack_activate (RT thread was not running).
  356. * D-Bus access for jackctl_server_add_slave/jackctl_server_remove_slave API.
  357. * Cleanup "loopback" stuff in server.
  358. * Torben Hohn fix for InitTime and GetMicroSeconds in JackWinTime.c.
  359. * New jack_free function added in jack.h.
  360. * Reworked Torben Hohn fix for server restart issue on Windows.
  361. * Correct jack_set_error_function, jack_set_info_function and
  362. jack_set_thread_creator functions.
  363. * Correct JackFifo::TimedWait for EINTR handling.
  364. * Move DBus based audio device reservation code in ALSA backend compilation.
  365. * Correct JackTransportEngine::MakeAllLocating, sync callback has to be
  366. called in this case also.
  367. * NetJack2 code: better error checkout, method renaming.
  368. * Tim Bechmann patch: hammerfall, only release monitor thread, if it has
  369. been created.
  370. * Tim Bechmann memops.c optimization patches.
  371. * In combined --dbus and --classic compilation code, use PulseAudio
  372. acquire/release code.
  373. * Big rewrite of Solaris boomer driver, seems to work in duplex mode at
  374. least.
  375. * Loopback backend reborn as a dynamically loadable separated backend.
  376. * 1.9.2 (2009-02-11)
  377. * Solaris version.
  378. * New "profiling" tools.
  379. * Rework the mutex/signal classes.
  380. * Support for BIG_ENDIAN machines in NetJack2.
  381. * D-BUS based device reservation to better coexist with PulseAudio on Linux.
  382. * Add auto_connect parameter in netmanager and netadapter.
  383. * Use Torben Hohn PI controler code for adapters.
  384. * Client incorrect re-naming fixed : now done at socket and fifo level.
  385. * Virtualize and allow overriding of thread creation function, to allow Wine
  386. support (from JACK1).
  387. * 1.9.1 (2008-11-14)
  388. * Fix jackctl_server_unload_internal.
  389. * Filter SIGPIPE to avoid having client get a SIGPIPE when trying to access
  390. a died server.
  391. * Libjack shutdown handler does not "deactivate" (fActive = false) the
  392. client anymore, so that jack_deactivate correctly does the job later on.
  393. * Better isolation of server and clients system resources to allow starting
  394. the server in several user account at the same time.
  395. * Report ringbuffer.c fixes from JACK1.
  396. * Client and library global context cleanup in case of incorrect shutdown
  397. handling (that is applications not correctly closing client after server
  398. has shutdown).
  399. * Use JACK_DRIVER_DIR variable in internal clients loader.
  400. * For ALSA driver, synchronize with latest JACK1 memops functions.
  401. * Synchronize JACK2 public headers with JACK1 ones.
  402. * Implement jack_client_real_time_priority and
  403. jack_client_max_real_time_priority API.
  404. * Use up to BUFFER_SIZE_MAX frames in midi ports, fix for ticket #117.
  405. * Cleanup server starting code for clients directly linked with
  406. libjackserver.so.
  407. * JackMessageBuffer was using thread "Stop" scheme in destructor, now use
  408. the safer thread "Kill" way.
  409. * Synchronize ALSA backend code with JACK1 one.
  410. * Set default mode to 'slow' in JackNetDriver and JackNetAdapter.
  411. * Simplify audio packet order verification.
  412. * Fix JackNetInterface::SetNetBufferSize for socket buffer size computation
  413. and JackNetMasterInterface::DataRecv if synch packet is received, various
  414. cleanup.
  415. * Better recovery of network overload situations, now "resynchronize" by
  416. skipping cycles.".
  417. * Support for BIG_ENDIAN machines in NetJack2.
  418. * Support for BIG_ENDIAN machines in NetJack2 for MIDI ports.
  419. * Support for "-h" option in internal clients to print the parameters.
  420. * In NetJack2, fix a bug when capture or playback only channels are used.
  421. * Add a JACK_INTERNAL_DIR environment variable to be used for internal
  422. clients.
  423. * Add a resample quality parameter in audioadapter.
  424. * Now correctly return an error if JackServer::SetBufferSize could not
  425. change the buffer size (and was just restoring the current one).
  426. * Use PRIu32 kind of macro in JackAlsaDriver again.
  427. * Add a resample quality parameter in netadapter.
  428. * 1.9.0 (2008-03-18)
  429. * Waf based build system: Nedko Arnaudov, Grame for preliminary OSX support.
  430. * Control API, dbus based server control access: Nedko Arnaudov, Grame.
  431. * NetJack2 components (in progress): jack_net backend, netmanager,
  432. audioadapter, netadapter : Romain Moret, Grame.
  433. * Code restructuring to help port on other architectures: Michael Voigt.
  434. * Code cleanup/optimization: Tim Blechmann.
  435. * Improve handling of server internal clients that can now be
  436. loaded/unloaded using the new server control API: Grame.
  437. * A lot of bug fix and improvements.
  438. * 0.72 (2008-04-10)
  439. * 0.71 (2008-02-14)
  440. * Add port register/unregister notification in JackAlsaDriver.
  441. * Correct JACK_port_unregister in MIDI backend.
  442. * Add TimeCallback in JackDebugClient class.
  443. * Correct jack_get_time propotype.
  444. * Correct JackSocketClientChannel::ClientClose to use ServerSyncCall instead
  445. of ServerAsyncCall.
  446. * Better documentation in jack.h. libjackdmp.so renamed to
  447. libjackservermp.so and same for OSX framework.
  448. * Define an internal jack_client_open_aux needed for library wrapper feature.
  449. * Remove unneeded jack_port_connect API.
  450. * Correct jack_port_get_connections function (should return NULL when no
  451. connections).
  452. * In thread model, execute a dummy cycle to be sure thread has the correct
  453. properties (ensure thread creation is finished).
  454. * Fix engine real-time notification (was broken since ??).
  455. * Implements wrapper layer.
  456. * Correct jack_port_get_total_latency.
  457. * Correct all backend playback port latency in case of "asynchronous" mode
  458. (1 buffer more).
  459. * Add test for jack_cycle_wait, jack_cycle_wait and jack_set_process_thread
  460. API.
  461. * RT scheduling for OSX thread (when used in dummy driver).
  462. * Add -L (extra output latency in aynchronous mode) in CoreAudio driver.
  463. * New JackLockedEngine decorator class to serialize access from ALSA Midi
  464. thread, command thread and in-server clients.
  465. * Use engine in JackAlsaDriver::port_register and
  466. JackAlsaDriver::port_unregister.
  467. * Fix connect notification to deliver *one* notification only.
  468. * Correct JackClient::Activate so that first kGraphOrderCallback can be
  469. received by the client notification thread.
  470. * New jack_server_control client to test notifications when linked to the
  471. server library.
  472. * Synchronise transport.h with latest jackd version (Video handling).
  473. * Transport timebase fix.
  474. * Dmitry Baikov patch for alsa_rawmidi driver.
  475. * Pieter Palmers patch for FFADO driver.
  476. * Add an Init method for blocking drivers to be decorated using
  477. JackThreadedDriver class.
  478. * Correct PortRegister, port name checking must be done on server side.
  479. * Correct a missing parameter in the usage message of jack_midiseq.
  480. * New SetNonBlocking method for JackSocket.
  481. * Correct a dirty port array issue in JackGraphManager::GetPortsAux.
  482. * 0.70 (2008-01-24)
  483. * Updated API to match jack 0.109.0 version.
  484. * Update in usx2y.c and JackPort.cpp to match jackd 0.109.2.
  485. * Latest jack_lsp code from jack SVN.
  486. * Add jack_mp_thread_wait client example.
  487. * Add jack_thread_wait client example.
  488. * Remove checking thread in CoreAudio driver, better device state change
  489. recovery strategy: the driver is stopped and restarted.
  490. * Move transport related methods from JackEngine to JackServer.
  491. * Tim Blechmann sse optimization patch for JackaudioPort::MixAudioBuffer,
  492. use of Apple Accelerate framework on OSX.
  493. * Remove use of assert in JackFifo, JackMachSemaphore, and
  494. JackPosixSemaphore: print an error instead.
  495. * Correct "server_connect": close the communication channel.
  496. * More robust external API.
  497. * Use SetAlias for port naming.
  498. * Use jackd midi port naming scheme.
  499. * Notify ports unregistration in JackEngine::ClientCloseAux.
  500. * Fix in JackClient::Error(): when RT thread is failing and calling
  501. Shutdown, Shutdown was not desactivating the client correctly.
  502. * 0.69
  503. * On OSX, use CFNotificationCenterPostNotificationWithOptions with
  504. kCFNotificationDeliverImmediately | kCFNotificationPostToAllSessions for
  505. server ==> JackRouter plugin notification.
  506. * On OSX, use jack server name in notification system.
  507. * Correct fPeriodUsecs computation in JackAudioDriver::SetBufferSize and
  508. JackAudioDriver::SetSampleRate.
  509. * Correct JackMachNotifyChannel::ClientNotify.
  510. * Correct bug in CoreAudio driver sample rate management.
  511. * Add a sample_rate change listener in CoreAudio driver.
  512. * Correct sample_rate management in JackCoreAudioDriver::Open.
  513. * Better handling in sample_rate change listener.
  514. * Pieter Palmers FFADO driver and scons based build.
  515. * Pieter Palmers second new build system: scons and Makefile based build.
  516. * Tim Blechmann scons patch.
  517. * Change string management for proper compilation with gcc 4.2.2.
  518. * JackLog cleanup.
  519. * Cleanup in CoreAudio driver.
  520. * Tim Blechmann patch for JackGraphManager::GetPortsAux memory leak, Tim
  521. Blechmann patch for scons install.
  522. * Dmitry Baikov MIDI patch: alsa_seqmidi and alsa_rammidi drivers.
  523. * CoreAudio driver improvement: detect and notify abnormal situations
  524. (stopped driver in case of SR change...).
  525. * 0.68 (2007-10-16)
  526. * Internal loadable client implementation, winpipe version added.
  527. * Reorganize jack headers.
  528. * Improve Linux install/remove scripts.
  529. * Use LIB_DIR variable for 64 bits related compilation (drivers location).
  530. * More generic Linux script.
  531. * Correct jack_acquire_real_time_scheduling on OSX.
  532. * Merge of Dmitry Baikov MIDI branch.
  533. * Correct JackGraphManager::GetPortsAux to use port type.
  534. * Remove JackEngineTiming class: code moved in JackEngineControl.
  535. * Add midiseq and midisine examples.
  536. * Cleanup old zombification code.
  537. * Linux Makefile now install jack headers.
  538. * Use of JACK_CLIENT_DEBUG environment variable to activate debug client
  539. mode.
  540. * Definition of JACK_LOCATION variable using -D in the Makefile.
  541. * Restore jack 0.103.0 MIDI API version.
  542. * Fix a bug in freewheel management in async mode: drivers now receive the
  543. kStartFreewheelCallback and kStopFreewheelCallback notifications.
  544. * Server and user directory related code moved in a JackTools file.
  545. * Client name rewriting to remove path characters (used in fifo naming).
  546. * Correct ALSA driver Attach method: internal driver may have changed the
  547. buffer_size and sample_rate values.
  548. * Add JackWinSemaphore class.
  549. * Add an implementation for obsolete jack_internal_client_new and
  550. jack_internal_client_close.
  551. * Add missing jack_port_type_size.
  552. * Use of JackWinSemaphore instead of JackWinEvent for inter-process
  553. synchronization.
  554. * Correct types.h for use with MINGW on Windows.
  555. * Move OSX start/stop notification mechanism in Jackdmp.cpp.
  556. * Correct CheckPort in JackAPI.cpp.
  557. * 0.67 (2007-09-28)
  558. * Correct jack_client_open "status" management.
  559. * Rename server_name from "default" to "jackdmp_default" to avoid conflict
  560. with regular jackd server.
  561. * Fix a resource leak issue in JackCoreAudioDriver::Close().
  562. * Better implement "jack_client_open" when linking a client with the server
  563. library.
  564. * Correct "jack_register_server" in shm.c.
  565. * Add missing timestamps.c and timestamps.h files.
  566. * Correctly export public headers in OSX frameworks.
  567. * Suppress JackEngine::ClientInternalCloseIm method.
  568. * Use .jackdrc file (instead of .jackdmprc).
  569. * Install script now creates a link "jackd ==> jackdmp" so that automatic
  570. launch can work correctly.
  571. * Paul Davis patch for -r (--replace-registry) feature.
  572. * Internal loadable client implementation.
  573. * Fix JackEngine::Close() method.
  574. * Windows JackRouter.dll version 0.17: 32 integer sample format.
  575. * 0.66 (2007-09-06)
  576. * Internal cleanup.
  577. * Windows JackRouter.dll version 0.16: use of "jack_client_open" API to
  578. allow automatic client renaming, better Windows VISTA support, new
  579. JackRouter.ini file.
  580. * 0.65 (2007-08-30)
  581. * Fix backend port alias management (renaming in system:xxx).
  582. * Fix a bug in JackLibClient::Open introduced when adding automatic client
  583. renaming.
  584. * Fix a bug in jack_test.
  585. * Correct JackShmMem destructor.
  586. * Correct end case in JackClient::Execute.
  587. * Correct JackMachSemaphore::Disconnect.
  588. * Implement server temporary (-T) mode.
  589. * Make "Rename" a method of JackPort class, call it from driver Attach
  590. method.
  591. * Server/library protocol checking implementation.
  592. * 0.64 (2007-07-26)
  593. * Checking in the server to avoid calling the clients if no callback are
  594. registered.
  595. * Correct deprecated jack_set_sample_rate_callback to return 0 instead of
  596. -1.
  597. * Dmitry Baikov buffer size patch.
  598. * Correct notification for kActivateClient event. Correct
  599. JackEngine::ClientCloseAux (when called from
  600. JackEngine::ClientExternalOpen).
  601. * Correct JackWinEvent::Allocate.
  602. * Automatic client renaming.
  603. * Add "systemic" latencies management in CoreAudio driver.
  604. * Automatic server launch.
  605. * Removes unneeded 'volatile' for JackTransportEngine::fWriteCounter.
  606. * 0.63 (2007-04-05)
  607. * Correct back JackAlsaDriver::Read method.
  608. * Dmitry Baikov patch for JackGraphManager.cpp. Merge JackGraphManager Remove
  609. and Release method in a unique Release method.
  610. * Dmitry Baikov jackmp-time patch : add jack_get_time, jack_time_to_frames,
  611. jack_frames_to_time. Add missing -D__SMP__in OSX project. Add new
  612. jack_port_set_alias, jack_port_unset_alias and jack_port_get_aliases API.
  613. * Steven Chamberlain patch to fix jack_port_by_id export.
  614. * Steven Chamberlain patch to fix jack_port_type. Test for jack_port_type
  615. behaviour in jack_test.cpp tool. Add jack_set_client_registration_callback
  616. API. Add "callback exiting" and "jack_frame_time" tests in jack_test.
  617. * 0.62 (2007-02-16)
  618. * More client debug code: check if the client is still valid in every
  619. JackDebugClient method, check if the library context is still valid in
  620. every API call.
  621. * Uses a time out value of 10 sec in freewheel mode (like jack).
  622. * More robust activation/deactivation code, especially in case of client
  623. crash.
  624. * New LockAllMemory and UnlockAllMemory functions.
  625. * Use pthread_attr_setstacksize in JackPosixThread class.
  626. * Add Pieter Palmers FreeBob driver.
  627. * Thibault LeMeur ALSA driver patch.
  628. * Thom Johansen fix for port buffer alignment issues.
  629. * Better error checking in PortAudio driver.
  630. * 0.61 (2006-12-18)
  631. * Tom Szilagyi memory leak fix in ringbuffer.c.
  632. * Move client refnum management in JackEngine.
  633. * Shared_ports renamed to shared_graph.
  634. * Add call to the init callback (set up using the
  635. jack_set_thread_init_callback API) in Real-Time and Notification threads.
  636. * Define a new 'kActivateClient' notification.
  637. * New server/client data transfer model to fix a 64 bits system bug.
  638. * Fix a device name reversal bug in ALSA driver.
  639. * Implement thread.h API.
  640. * 0.60 (2006-11-23)
  641. * Improve audio driver synchronous code to better handle possible time-out
  642. cases.
  643. * Correct JackWinEnvent::Allocate (handle the ERROR_ALREADY_EXISTS case).
  644. * Correct JackEngine::ClientExternalNew.
  645. * 0.59 (2006-09-22)
  646. * Various fixes in Windows version.
  647. * Signal handling in the Windows server.
  648. * Improved JackRouter ASIO/Jack bridge on Windows.
  649. * Rename global "verbose" in "jack_verbose" to avoid symbol clash with
  650. PureData.
  651. * Add a new cpu testing/loading client.
  652. * Correct server SetBufferSize in case of failure.
  653. * Correct PortAudio driver help.
  654. * Use -D to setup ADDON_DIR on OSX and Linux.
  655. * Synchronize ALSA backend with jack one.
  656. * 0.58 (2006-09-06)
  657. * Correct a bug introduced in 0.55 version that was preventing coreaudio
  658. audio inputs to work.
  659. * Restructured code structure after import on svn.
  660. * 0.57
  661. * Correct bug in Mutex code in JackClientPipeThread::HandleRequest.
  662. * ASIO JackRouter driver supports more applications.
  663. * Updated HTML documentation.
  664. * Windows dll binaries are compiled in "release" mode.
  665. * 0.56
  666. * Correct SetBufferSize in coreaudio driver, portaudio driver and
  667. JackServer.
  668. * Real-time notifications for Windows version.
  669. * In the PortAudio backend, display more informations for installed WinMME,
  670. * DirectSound and ASIO drivers.
  671. * 0.55
  672. * Windows version.
  673. * Correct management of monitor ports in ALSA driver.
  674. * Engine code cleanup.
  675. * Apply Rui patch for more consistent parameter naming in coreaudio driver.
  676. * Correct JackProcessSync::TimedWait: time-out was not computed correctly.
  677. * Check the return code of NotifyAddClient in JackEngine.
  678. * 0.54
  679. * Use the latest shm implementation that solve the uncleaned shm segment
  680. problem on OSX.
  681. * Close still opened file descriptors (report from Giso Grimm). Updated html
  682. documentation.
  683. * 0.53
  684. * Correct JackPilotMP tool on OSX.
  685. * Correct CoreAudio driver for half duplex cases.
  686. * Fix a bug in transport for "unactivated" clients.
  687. * Fix a bug when removing "unactivated" clients from the server. Tested on
  688. Linux/PPC.
  689. * 0.52
  690. * Universal version for Mac Intel and PPC.
  691. * Improvement of CoreAudio driver for half duplex cases.
  692. * 0.51
  693. * Correct bugs in transport API implementation.
  694. * 0.50
  695. * Transport API implementation.
  696. * 0.49
  697. * Internal connection manager code cleanup.
  698. * 0.48
  699. * Finish software monitoring implementation for ALSA and CoreAudio drivers.
  700. * Simpler shared library management on OSX.
  701. * 0.47
  702. * More fix for 64 bits compilation.
  703. * Correct ALSA driver.
  704. * Create a specific folder for jackdmp drivers.
  705. * Use /dev/shm as default for fifo and sockets.
  706. * "Install" and "Remove" script for smoother use with regular jack.
  707. * 0.46
  708. * Fix a bug in loop management.
  709. * Fix a bug in driver loading/unloading code.
  710. * Internal code cleanup for better 64 bits architecture support.
  711. * Compilation on OSX/Intel.
  712. * Add the -d option for coreaudio driver (display CoreAudio devices internal
  713. name).
  714. * 0.45
  715. * Script to remove the OSX binary stuff.
  716. * Correct an export symbol issue that was preventing QjackCtl to work on OSX.
  717. * Fix the consequences of the asynchronous semantic of
  718. connections/disconnections.
  719. * 0.44
  720. * Patch from Dmitry Daikov: use clock_gettime by default for timing.
  721. * Correct dirty buffer issue in CoreAudio driver. Updated doc.
  722. * 0.43
  723. * Correct freewheel mode.
  724. * Optimize ALSA and coreaudio drivers.
  725. * Correct OSX installation script.
  726. * 0.42
  727. * Patch from Nick Mainsbridge.
  728. * Correct default mode for ALSA driver.
  729. * Correct XCode project.
  730. * 0.41
  731. * Add the ALSA MMAP_COMPLEX support for ALSA driver.
  732. * Patch from Dmitry Daikov: compilation option to choose between
  733. "get_cycles" and "gettimeofday" to measure timing.
  734. * 0.4
  735. * Linux version, code cleanup, new -L parameter to activate the loopback
  736. driver (see Documentation), a number of loopback ports can be defined.
  737. Client validation tool.
  738. * 0.31
  739. * Correct bug in mixing code that caused Ardour + jackdmp to crash...
  740. * 0.3
  741. * Implement client zombification + correct feedback loop management + code
  742. cleanup.
  743. * 0.2
  744. * Implements jack_time_frame, new -S (sync) mode: when "synch" mode is
  745. activated, the jackdmp server waits for the graph to be finished in the
  746. current cycle before writing the output buffers. Note: To experiment with
  747. the -S option, jackdmp must be launched in a console.
  748. * 0.1
  749. * First published version