d6b14e761b
Remove unused backend channel count config API
2024-07-10 15:39:01 +02:00
2fa6500ec5
NOOP: fix indentation
2023-09-13 10:23:58 -06:00
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
88ee3af3ea
JACK backend: add a mutex to serialize per-thread port register requests to server
...
Without this, two threads can both sleep on the same communication channel, and the wake order
is non-determinate, so the wrong thread may process the response to the other thread's request.
2023-09-12 22:41:26 -06: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
a67a475480
dramtically improve performance of ::get_port_by_name() for JACK backend
2021-06-11 10:41:41 -06: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
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
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
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
47a62b2850
Update backend GPL boilerplate and (C) from git log
2019-08-03 15:53:16 +02:00
076e9fddd4
Remove ambiguous API implementation
...
* PortEngine::available() implementation
* AudioEngine::connected() wrapper
Eventually we may re-introduce PortEngine::available along
with a libardour internal port-engine.
2018-11-28 15:32:40 +01:00
e047b01aa2
add new API for retrieving port flags from backend
2018-10-17 14:11:37 -04:00
94e6164bc3
Add API to query backend realtime thread priority
2018-10-11 15:29:40 +02:00
94e2bce740
Add & implement PortEngine::externally_connected() API
2017-10-30 19:41:42 +01:00
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
2b7c585dba
Update backend API: read-only MIDI input buffers
2017-08-05 15:36:36 +02:00
9840a11537
implement metadata-set for remaining backends
2016-04-18 00:35:51 +02:00
7ad8ad8823
JACK: expose --nperiods option
2015-12-05 13:56:18 +01:00
22b07e0233
NOOP, remove trailing tabs/whitespace.
2015-10-05 16:17:49 +02:00
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
20cd14cf36
add backend support for port properties (jack)
2015-03-08 19:02:31 +01:00
582138f280
change Audio backend sample time methods to use a 64 bit timeline
2015-02-19 17:44:01 -05:00
f3ff1b9669
weak/runtime jack linking: load libjack dynamically at runtime
2014-10-23 16:53:13 +02:00
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
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
da912f7ed4
add AudioEngine API to configure individual MIDI devices
2014-06-13 11:47:51 +02:00
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
9dbdac2a19
remove unused and unimplementable audio engine sample format code
2014-02-24 14:46:19 -05:00
ce7bfb489c
change "cpu" in cpu load backend functions
2013-12-04 11:48:31 -05:00
dc4a984cd6
move AudioBackend::_start() into protected, and expand a bit on documenting ::start() vs ::_start()
2013-11-27 14:27:27 -05:00
7fec991077
fix thinko in declaration of ARDOUR::PortEngine::get_port_by_name()
2013-10-28 09:46:59 -04:00
cfe42bc4ea
fix issues with recording while synced to JACK (non-pure-virtual method added to AudioBackend) and remove pause() from AudioEngine/AudioBackend APIs
2013-10-21 16:24:24 -04:00
589ef168c1
adapt JACK audiobackend to pay attention to new _start() API related to latency measurement
2013-10-12 10:03:15 -04:00
c96108c2e1
add API to get current MIDI option from an audio/MIDI backend
2013-10-10 16:18:00 -04:00
1bd04f8bf3
add JACK backend support for MIDI option discovery
2013-10-10 12:59:11 -04:00
c98abed37f
restore jack timebase master and jack session callback functionality (moved into the JACK backend)
2013-10-08 14:02:03 -04:00
53ad2d187f
Move processing thread list from ARDOUR::Graph into AudioBackend implementation
2013-10-04 18:53:37 +10:00
df363a4fb3
Add AudioBackendThread class to support different thread type on windows
2013-10-04 18:51:47 +10:00
f51537b71d
substantive changes to allow the audio/MIDI setup dialog to change settings as intended
...
So far only tested with JACK backend, but expected to be more correct for other backends too
2013-09-17 21:09:13 -04:00
83a826095d
update JACK backend to use new inheritance structure for AudioBackend
2013-09-13 11:21:43 -04:00
4df3666738
add AudioBackendNativeThread to serve the same role as jack_native_thread_t
2013-09-12 11:29:47 -04:00
2a89234027
move control app launching back into audio backend to allow ASIO/CoreAudio model to work; push initial state of AMS dialog to backend
...
Issues remain with the basic model of the AMS dialog - when is
newly chosen state pushed into the backend (which can then
modify the control app button sensitivity. This is a special
problem for this button because APIs like ASIO and CoreAudio
probably don't allow us to launch a control app for an arbitrary
device, but only one actually in use. In this sense it is
different from properties like available buffer size etc, where
we can typically query without actually using the device.
2013-09-09 21:23:12 -04:00
ecfeeda4b8
launching control app is now responsibility of ardour GUI, not audio backend; use ARDOUR_DEVICE_CONTROL_APP if set in the environment
2013-09-09 16:48:27 -04:00
f06187735d
initial work on adding access to h/w control apps when ardour starts JACK
2013-09-09 15:17:43 -04:00
a228643e40
add can_change_{sample_rate,buffer_size}_while_running() methods to an AudioBackend
...
Allows the GUI and other stuff to know whether or not changing the SR/bufsize is possible while running, which is about to become useful
2013-09-09 15:17:43 -04:00