John Emmas
56772b8156
Revert an unintended change from # eff61bde32
2023-09-14 16:54:15 +01:00
Paul Davis
eff61bde32
JACK: accomodate MSVC in DEBUG_TRACE stmts involving pthread_self
2023-09-14 06:59:29 -06:00
Paul Davis
3c857a78c6
JACK backend: serialize all jack server calls with a mutex
...
As was noted in 88ee3af3ea it is unsafe/undefined behavior if two threads
sleep on the JACK request file descriptor, since there is no way to control
which one will wake and process the request. Since each thread may have
sent a different request, this can lead to a thread misinterpreting the
response because it is reading the wrong response.
This may (or may not) solve some subtle problems with JACK, but was
revealed by having a control surface (LaunchPad Pro) that registers
three ports from the butler thread at about the same as the GUI
thread is registering the auditioner. One thread read the wrong
response, and because of some slightly weird code/design, it attempts
to rename the port from within the response handler, which in JACK1
leads to deadlock (and later, zombification).
2023-09-13 09:20:41 -06:00
Paul Davis
0eed821eb9
JACK: do not set the thread-init callback
...
Because we use the non-callback API, we can call our thread init callback
ourselves from ::process_thread(). In addition, the init_callback in JACK is
used by every thread JACK creates, including the messagebuffer thread, and this
confuses things from an Ardour POV where the callback was intended just for
realtime threads.
2023-04-21 12:16:37 -06:00
Paul Davis
b35518e212
switch from boost::{shared,weak}_ptr to std::{shared,weak}_ptr
...
This is mostly a simple lexical search+replace but the absence of operator< for
std::weak_ptr<T> leads to some complications, particularly with Evoral::Sequence
and ExportPortChannel.
2023-03-24 14:19:15 -06:00
+merlan #flirora
79f55742d6
JACKAudioBackend::join_process_threads: Don’t pass NULL for jack_client_stop_thread
...
This is needed for PipeWire’s JACK frontend, which implements this
function and expects the first argument to be non-null.
2022-10-24 04:45:08 +02:00
Paul Davis
ad9ac0911e
remove some timing stats that it seems unlikely we will use
2021-06-15 14:03:55 -06:00
Paul Davis
e511cd2cb7
JACK backend: "fix" RunLoop timing
2021-06-13 11:11:03 -06:00
Paul Davis
a5f7c793e3
add a new "Run Loop" timing stats for ALSA and JACK backends
2021-06-13 10:28:51 -06:00
Paul Davis
8afc994177
add some DSP stats to the JACK backend
2021-06-12 09:20:28 -06:00
Robin Gareus
8e482ef0fb
Con't work on ALSA nperiod selection (see also d3d120fa)
2020-04-28 17:56:17 +02:00
Paul Davis
70f13a3ff3
use RCU to manage JACK backend's container of ports
2020-04-08 19:56:33 -06:00
Paul Davis
78a66b7180
improved port cleanup as backend is destroyed
2020-04-07 23:26:51 -06:00
Paul Davis
b9cb306e8b
use shared_ptr to manage backend port lifetimes (Pulse,ALSA,Dummy,JACK)
...
JACK is not yet finished.
Changes also include minor reformatting and a spelling correction (latecies to latencies)
2020-04-07 13:23:49 -06:00
Paul Davis
0b52ea7a9c
add a bit of debugging to JACK transport code
2019-11-15 16:06:04 -07:00
Robin Gareus
47a62b2850
Update backend GPL boilerplate and (C) from git log
2019-08-03 15:53:16 +02:00
Robin Gareus
94e6164bc3
Add API to query backend realtime thread priority
2018-10-11 15:29:40 +02:00
Paul Davis
30b087ab3d
globally change all use of "frame" to refer to audio into "sample".
...
Generated by tools/f2s. Some hand-editing will be required in a few places to fix up comments related to timecode
and video in order to keep the legible
2017-09-18 12:39:17 -04:00
Paul Davis
cf52d6e4b4
enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.h
2016-07-14 14:45:23 -04:00
Robin Gareus
7ad8ad8823
JACK: expose --nperiods option
2015-12-05 13:56:18 +01:00
Tim Mayberry
34d9b2148e
Remove an unnecessary boolean argument in jack utils
...
Specify latency in JackCommandLineOptions instead
2015-10-06 13:29:57 +10:00
Robin Gareus
22b07e0233
NOOP, remove trailing tabs/whitespace.
2015-10-05 16:17:49 +02:00
Paul Davis
4dc63966f0
globally remove all trailing whitespace from ardour code base.
...
Paul Davis was responsible for introducing almost all of this.
2015-10-04 14:51:05 -04:00
Robin Gareus
a68221e323
fix jack/pthread windows condition
2015-07-04 11:49:44 +02:00
Robin Gareus
416ef93635
use a trick to compile JACK/win with new and old headers
...
jack/systemdeps.h is jack2-only and contains many
windows-specific typedefs (native windows threads, ptw32 threads, MSVC
special cases etc etc.) which are not present in jack1/shared headers.
2015-07-04 09:52:04 +02:00
Robin Gareus
58a7b0e137
fix side-effect of moving to jack1 headers
2015-07-04 05:59:37 +02:00
Robin Gareus
278cd98799
fix compilation with mingw + pthreads
2015-07-04 05:48:42 +02:00
Robin Gareus
573ec69a9a
probe buffersize if jackd is already running.
2015-06-14 18:10:31 +02:00
Paul Davis
582138f280
change Audio backend sample time methods to use a 64 bit timeline
2015-02-19 17:44:01 -05:00
Robin Gareus
0018ee2b02
fix “invalid use of incomplete type jack_client_t”
...
introduced in 66eef25
2015-01-30 11:02:07 +01:00
Robin Gareus
66eef257d8
fix jack thread joining
...
at the time the graph gets around to takes down
client threads, the jack-backend’s jack_client has been reset.
But never mind: libjack does not care about it, anyway.
2015-01-30 01:28:52 +01:00
Robin Gareus
f3ff1b9669
weak/runtime jack linking: load libjack dynamically at runtime
2014-10-23 16:53:13 +02:00
Robin Gareus
f7211ff8f7
fix jack/mingw compilation
2014-10-22 23:57:55 +02:00
Paul Davis
68458cde69
fix all 4 backends' failure to include the main "backend" thread when computing ::in_process_thread()
2014-10-22 17:07:11 -04:00
Paul Davis
8d59afb048
copy over current Waves version of their backend, along with minor changes in libs/ardour and libs/backend/jack to fit with API changes
2014-09-30 21:00:34 -04:00
Robin Gareus
104adebea6
if the user chooses to stop the jack-backend, mark it as stopped. Don't display the "..was shutdown .. was not fast enough.." message.
2014-06-04 17:17:14 +02:00
Paul Davis
66559cd795
Add AudioBackend::info() method to retrieve AudioBackendInfo object
...
Goal is to be able to call AudioBackendInfo::already_configured() from the right place.
2014-05-01 09:14:25 -04:00
Robin Gareus
e6b56f3447
fix undefined value, support netjack2
2014-03-23 02:26:37 +01:00
Paul Davis
9dbdac2a19
remove unused and unimplementable audio engine sample format code
2014-02-24 14:46:19 -05:00
Paul Davis
36c233fe6c
Merge branch 'master' into cairocanvas
2014-01-07 21:37:48 -05:00
Paul Davis
2163467d31
add M-Audio 2496 as a recognized card for the mudita24 control panel/app.
...
(Yes, this hard coding thing is awful)
2014-01-06 11:35:57 -05:00
Paul Davis
1676789907
fix merge conflicts from master
2013-12-12 10:06:59 -05:00
Nils Philippsen
a86b66181a
ignore "unofficial" states in jack_sync_callback()
2013-12-09 17:56:06 +01:00
Paul Davis
59da788793
Merge branch 'master' into cairocanvas
2013-12-05 17:50:28 -05:00
Paul Davis
ce7bfb489c
change "cpu" in cpu load backend functions
2013-12-04 11:48:31 -05:00
Paul Davis
3c98de9ce4
fix merge with master
2013-11-29 22:31:29 -05:00
Paul Davis
1190f1d0e0
make JACK backend return the right set of values when asked for buffer sizes or sample rate of a device other than the one in use
2013-11-27 17:41:54 -05:00
Paul Davis
680c64246e
Merge branch 'master' into cairocanvas
2013-11-27 16:19:01 -05:00
Paul Davis
56716a1f28
add error check to call to PortManager::reestablish_ports
2013-11-27 15:24:24 -05:00
Paul Davis
0cca272431
try to fix various warnings from gcc when optimization flags are enabled
2013-11-04 21:32:41 -05:00