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
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
295dbd8e1e
Make RCU reader return a const pointer (omnibus commit)
2023-04-08 00:15:37 +02:00
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
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
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
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
83225886a1
Fix gcc4 builds ('EEXIST' was not declared in this scope)
2021-11-15 19:12:00 +01:00
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
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
bed76798f3
manual fixups after rebase against master (general libs edition)
2021-08-13 12:51:31 -06:00
79763893b3
remove/hide Session::tempo_map() and use TempoMap::use() instead (thread local shared ptr)
2021-08-13 12:51:30 -06:00
f67029bd02
random commit to facilitate trivial move of work from laptop back to main system
2021-08-13 12:51:29 -06:00
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
ad9ac0911e
remove some timing stats that it seems unlikely we will use
2021-06-15 14:03:55 -06:00
e511cd2cb7
JACK backend: "fix" RunLoop timing
2021-06-13 11:11:03 -06:00
a5f7c793e3
add a new "Run Loop" timing stats for ALSA and JACK backends
2021-06-13 10:28:51 -06:00
95215ff405
JACK backend: avoid deadlock if a port is unregistered that is not known to Ardour
2021-06-13 07:59:14 -06:00
8afc994177
add some DSP stats to the JACK backend
2021-06-12 09:20:28 -06:00
a67a475480
dramtically improve performance of ::get_port_by_name() for JACK backend
2021-06-11 10:41:41 -06:00
bc4ef3ff3d
Update weakjack, alternative macOS libjack paths
...
see also https://github.com/x42/weakjack/pull/13
2021-06-02 17:42:01 +02:00
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
291de1d277
Fix OSX and non GCC builds
2021-03-01 16:20:38 +01:00
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
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
5e76d63c06
Resolve some Xcode12 C++11, sigc++ issues
2020-12-12 04:46:22 +01:00
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
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
f7cc5e1f38
Search for JACK on windows using the registry
2020-10-24 04:01:54 +02:00
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
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
92f54b3e98
Add API to query if systemic latency can be measured
2020-06-30 03:34:26 +02:00
8e482ef0fb
Con't work on ALSA nperiod selection (see also d3d120fa
)
2020-04-28 17:56:17 +02:00
70f13a3ff3
use RCU to manage JACK backend's container of ports
2020-04-08 19:56:33 -06:00
78a66b7180
improved port cleanup as backend is destroyed
2020-04-07 23:26:51 -06:00
ede8b9995a
fix another explicit return val for ::get_port_by_name() if JACK has died
2020-04-07 18:57:24 -06:00
2591c81c1a
fix explicit return val for ::get_port_by_name() if JACK has died
2020-04-07 18:54:57 -06:00
d827f3fdae
fix up shared_ptr<> use in JACK backend
2020-04-07 13:23:49 -06:00
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
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