Commit graph

80 commits

Author SHA1 Message Date
Robin Gareus
728558e51c
Use compiler provided PTW_VERSION define for compatibility 2025-12-05 16:00:09 +01:00
Robin Gareus
74c4ca3e52
Reduce reliance on boost - the hard part
the rest from `tools/convert_boost.sh`.

* replace boost::function, boost::bind with std::function and std::bind.

This required some manual fixes, notably std::placeholders,
some static_casts<>, and boost::function::clear -> = {}.
2024-10-19 03:47:21 +02:00
Alejandro Domínguez
1ffb70f670
Replace boost::scoped_ptr with std::unique_ptr (1/2) 2024-10-19 01:04:14 +02:00
Robin Gareus
a76b2ed1bb
Rename JACK to "JACK/Pipewire" on Linux (1/2) 2024-07-31 04:38:01 +02:00
Robin Gareus
d6b14e761b
Remove unused backend channel count config API 2024-07-10 15:39:01 +02:00
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