Paul Davis
12c3daa46b
JACK: fix reported tempo & meter when functioning as JACK timebase master
...
TempoMap::metric_at() has a superclock_t variant that was being called
with a samplepos_t value. Full check (and removal, hopefully) coming up.
2023-06-12 12:10:26 -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
Robin Gareus
295dbd8e1e
Make RCU reader return a const pointer (omnibus commit)
2023-04-08 00:15:37 +02: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
Paul Davis
39ed528e25
std-ize: convert all boost shared/weak ptr includes to <memory>
...
Also fix stdint.h -> cstdint and alphabetically order std includes
2023-03-24 14:19:15 -06:00
Paul Davis
1eaaf4303b
jack backend: catch some possible errors in ::get_port_name()
2022-10-29 09:37:17 -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
Robin Gareus
13de664ae6
Provide jack2 compatible implementation for jack1
...
jack1 (which is Linux only) does not have a jack_client_stop_thread
API, and expects the application to call pthread_join().
This fixes an issue when the application is compiled using jack2 headers
but the application later runs using jack1's library.
2022-06-30 17:19:57 +02:00
Mads Kiilerich
5b7431f243
wscript: drop unnecessary trailing ";"
2022-04-09 12:16:41 +02:00
Mads Kiilerich
bac32a8c2d
wscript: consistently use 4 spaces for indentation
2022-04-09 12:16:40 +02:00
Mads Kiilerich
06f8936a73
wscript: remove trailing whitespace
2022-04-09 12:16:37 +02:00
Mads Kiilerich
8bb91099c5
wscript: drop configure statements already present in the top level wscript
...
Avoid repeated pointless configure messages like:
Checking for 'g++' (C++ compiler!) : /usr/lib64/ccache/g++
Checking for 'gcc' (C compiler) : /usr/lib64/ccache/gcc
2022-01-22 22:19:03 +01:00
Houston4444
36a2fb1ba8
JACK: re-create backend when re-connecting to the server
...
This updates the client-name when re-connecting to the
server, which is apparently useful with NSM.
2021-12-04 14:39:22 +01:00
Robin Gareus
83225886a1
Fix gcc4 builds ('EEXIST' was not declared in this scope)
2021-11-15 19:12:00 +01:00
Robin Gareus
79330f909e
Work around connection loss when re-starting JACK backend
...
If connecting ports using the port-engine fails,
ardour forgets the connection.
Internal backends only produced an error if a port was already
connected, when using ::connect (handle, other), but
ignore already existing connection when using port-names.
Various ports are connected twice when the engine connects
at session load. This worked fine for as long as the engine
was never stopped (saving the session asks the port-engine),
but failed when the engine went away and internal representation
is used.
2021-11-01 23:11:41 +01:00
Paul Davis
8bada4b5e1
remove public ::bbt_at (INTEGER) methods, because of superclock_t/samplepos_t confusion
...
libtemporal still needs ::bbt_at (superclock_t) fairly often so retain it as a private method, but public
interfaces take either Beats or timepos_t
2021-08-13 12:51:35 -06:00
Paul Davis
bed76798f3
manual fixups after rebase against master (general libs edition)
2021-08-13 12:51:31 -06:00
Paul Davis
79763893b3
remove/hide Session::tempo_map() and use TempoMap::use() instead (thread local shared ptr)
2021-08-13 12:51:30 -06:00
Paul Davis
f67029bd02
random commit to facilitate trivial move of work from laptop back to main system
2021-08-13 12:51:29 -06:00
Paul Davis
f4490f54c5
change Timecode::BBT_Time to use Temporal namespace, plus a couple of other minor changes to enable compilation
...
This still uses the tempo map object in libs/ardour, not the new one in libs/temporal, and isn't likely to be functional
(though it could be)
2021-08-13 12:51:28 -06: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
95215ff405
JACK backend: avoid deadlock if a port is unregistered that is not known to Ardour
2021-06-13 07:59:14 -06:00
Paul Davis
8afc994177
add some DSP stats to the JACK backend
2021-06-12 09:20:28 -06:00
Paul Davis
a67a475480
dramtically improve performance of ::get_port_by_name() for JACK backend
2021-06-11 10:41:41 -06:00
Robin Gareus
bc4ef3ff3d
Update weakjack, alternative macOS libjack paths
...
see also https://github.com/x42/weakjack/pull/13
2021-06-02 17:42:01 +02:00
Robin Gareus
5957e14259
Remove unused #include<> (2/2)
...
PBD::stacktrace() is not used nor needed by default.
It should be used sparingly.
2021-05-05 17:57:16 +02:00
Robin Gareus
291de1d277
Fix OSX and non GCC builds
2021-03-01 16:20:38 +01:00
Robin Gareus
7195ca20e0
Update weak_libjack - https://github.com/x42/weakjack/
...
This fixes an issue with recent MSVC causing a compile-error
due to __attribute__((constructor))
2021-02-28 16:27:22 +01:00
Robin Gareus
0c81ba33d2
JACK latency compensation for newly created tracks #8472
...
Ardour native backends trigger a latency-callback when ports_changed.
This was lost for JACK when the shared port engine was implemented.
2021-01-14 03:22:25 +01:00
Robin Gareus
5e76d63c06
Resolve some Xcode12 C++11, sigc++ issues
2020-12-12 04:46:22 +01:00
Robin Gareus
bb468ee4de
Update jackd.exe registry key
...
This ensures compatibility with upcoming jack > 1.9.16,
current jack 1.9.16, as well as older versions.
2020-11-09 20:06:49 +01:00
Robin Gareus
7896c30508
Fix cmdline parameter escape
2020-10-31 13:42:14 +01:00
John Emmas
40ed19767a
In a Windows build, support launching both older and newer versions of Jack (Stephane's + Filipe's)
2020-10-31 08:01:55 +00:00
Robin Gareus
f7cc5e1f38
Search for JACK on windows using the registry
2020-10-24 04:01:54 +02:00
Robin Gareus
472ce90fab
JACK backend allows to calibrate latency
...
However, if jackd is running, we should test if jackd is using
a full-duplex device to establish if latency calibration is
possible -- fix 92f54b3e98 .
2020-09-20 17:16:01 +02:00
Robin Gareus
481cf37052
RT-safe jack transport time-master
...
Prefer a try-lock, instead of locking the tempo-map.
2020-08-19 19:07:41 +02:00
Stefan Westerfeld
ad8eb4d05b
Set JACK transport bar_start_tick field.
2020-08-19 19:04:11 +02:00
Robin Gareus
92f54b3e98
Add API to query if systemic latency can be measured
2020-06-30 03:34:26 +02: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
ede8b9995a
fix another explicit return val for ::get_port_by_name() if JACK has died
2020-04-07 18:57:24 -06:00
Paul Davis
2591c81c1a
fix explicit return val for ::get_port_by_name() if JACK has died
2020-04-07 18:54:57 -06:00
Paul Davis
d827f3fdae
fix up shared_ptr<> use in JACK backend
2020-04-07 13:23:49 -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
nia
74ef32ec31
Only show the Sun driver on NetBSD and sun-ish systems.
2020-03-26 09:58:34 -06:00
nia
5a1514de33
Add Sun backend option for JACK
2020-03-26 09:58:34 -06:00
Robin Gareus
06b2eb1c27
Explicitly use OSX
...
Previously this was inherited via PBD.
On MacOS/X, this adds
"-undefined dynamic_lookup -flat_namespace"
and various "-framework .." options to linkflags
Without this flag, .dylibs fail to link usually because
of missing `-lintl` (Undefined symbols: "_libintl_dgettext")
On other systems this is a NO-OP:
CFLAGS_OSX, CXXFLAGS_OSX and LINKFLAGS_OSX
are only set on the darwin platform.
2020-01-25 04:07:41 +01:00