92f54b3e98
Add API to query if systemic latency can be measured
2020-06-30 03:34:26 +02:00
09aa0a3d1a
Consolidate code using pthread_attr_setstacksize
...
This also adds some stack constraint to rt and fallback threads
that didn't have those before (ALSA MIDI for example)
2020-06-06 18:35:44 +02:00
3d166c7789
Consolidate stack-size and priority of rt-threads
2020-04-23 01:28:58 +02:00
1e996ca45f
add port connect/add/remove callbacks to CoreAudio backend
2020-04-10 10:01:04 -06:00
3188fe00aa
fix return value
2020-04-08 18:13:13 -06:00
78a66b7180
improved port cleanup as backend is destroyed
2020-04-07 23:26:51 -06:00
ff41232d16
fix CoreAudio backend to use shared_ptr
2020-04-07 13:52:35 -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
30766c75e8
buildable version of CoreAudio backend using PortEngineSharedImpl
2020-04-02 19:45:31 -06:00
a31d3689bf
tentative changes to extend port engine shared impl to coreaudio
2020-04-02 19:45:31 -06:00
a8ff35accb
Reset DSP load on backend re-start and after freewheeling
2020-03-30 16:58:55 +02:00
c365c6cdb2
Set thread-names (libs)
2020-03-29 14:56:22 +02:00
140a3f4a10
Fix Coreaudio buffersize changes
2020-03-06 05:52:55 +01:00
a9c75f9760
Fix CoreAudio systemic latency, implement hw latency report
2020-02-24 04:24:50 +01: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
47a62b2850
Update backend GPL boilerplate and (C) from git log
2019-08-03 15:53:16 +02:00
78fc6d6651
Prefix all env variable with "ARDOUR_"
...
In particular "CONCURRENCY" can be problematic. But in general
it's good practice to use a namespace prefix for app-specifics.
2019-07-26 16:44:29 +02:00
2f91bdfa53
NO-OP: <tab> after <space> fixes in libs
2019-04-13 19:19:29 +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
37df98d0af
CoreAudio/MIDI: add locks for port-registration
...
CoreMIDI ports are dynamic. When dis/connecting a device CoreAudio's
AudioHardware-PropertyListener triggers a callback which can
add/remove ports.
This can not happen concurrently with processing, but it may happen
concurrently with a user creating tracks using Ardour's UI
and/or session-load/setup.
2018-03-29 18:15:20 +02:00
7671268bc3
strlen is not a member of std.
2018-01-03 18:06:55 +01:00
4ebcef53f8
Relax max MIDI msg size to 256 (for long sysex)
...
(win-mme already used 256, CoreMIDI can handle up to 256 as can ALSA)
2017-12-19 17:41:57 +01:00
c0dbe8eaaf
Move coreaudio_set_realtime_policy into libpbd
2017-10-30 16:31:38 +01:00
ab3889fff8
Propagate Latency to backend/system ports
...
Set accumulated capture-latency for physical-outputs
and accumulated playback-latency for physical-inputs
after Ardour is done setting all non-physical port latencies.
This will be needed for latency-compensation of the complete graph.
2017-09-23 00:34:01 +02:00
666aa5a557
More Coreaudio SDK fixes, after 30b087ab3
2017-09-19 05:20:05 +02:00
1ec471c961
partially revert 30b087ab3
, CoreAudio SDK uses "Frames"
2017-09-19 04:47:10 +02: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
7258c6334d
Namespace PBD::RingBuffer
...
class RingBuffer<> is a very generic name and should not pollute the
global namespace.
2017-09-16 16:37:29 +02:00
467c801ce8
Abstract definition of rt-scheduler policy
...
pthread-w32 does not support pthread_setschedparam() with
SCHED_FIFO and bails out. While pthread_create() simply ignores the policy
and sets the priority regadless.
This only affects ctrl-surface event-loops & AutomationWatch on Windows.
2017-08-29 20:35:36 +02:00
df659e91f1
Consolidate _realtime_pthread_create() into libpbd.
2017-08-29 17:25:23 +02:00
e0a83a758e
Redesign Session+Route Template Meta Script API
...
Remove special-cased script types. Allow Action-Scripts to be re-used
for session-setup or route-templates.
2017-08-18 20:42:55 +02:00
8c61c7f14a
amend f4c76f89d3a; fix blind coding typos
2017-08-05 16:06:15 +02:00
f4c76f89d3
Coreaudio backend RT-safe MIDI buffer allocation
2017-08-05 15:36:36 +02:00
2b7c585dba
Update backend API: read-only MIDI input buffers
2017-08-05 15:36:36 +02:00
c125cd2647
Reduce DSP thread priority (main-i/o > midi i/o > computation)
2017-08-05 01:28:11 +02:00
38c5e9de6d
CoreAudio: Set MachThread RT Priority
2017-08-04 06:25:23 +02:00
6b5d374352
Some more assert() debugging
2017-08-03 23:46:05 +02:00
f9db9bf5fd
Retain order of concurrent MIDI events
...
This fixes an issue with FaderPort8 (and maybe other surfaces or synths).
2017-04-08 23:43:50 +02:00
43bd7f5db1
fix const-cast
2016-11-12 16:20:43 +01:00
56711b99c9
Work around OSX MIDI devices that send no timestamps
2016-10-19 19:45:53 +02:00
355fa64c79
fix Coreaudio Aggregate for separate devices with identical names
2016-08-28 13:44:30 +02:00
957f59f351
print a warning if CoreAudio falls back to non realtime priority
2016-08-22 17:38:45 +02:00
cf52d6e4b4
enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.h
2016-07-14 14:45:23 -04:00
8444837b71
properly sort port-names
2016-07-14 16:52:43 +02:00
ac923be7af
fix port-sort order for good.
...
TODO find out how to make std::set::find() work with custom sort order,
as std::find may only be O(N) and not O(log (N)).
2016-07-08 21:37:42 +02:00
f84a7605d8
pre-sort port-names
2016-07-08 20:44:21 +02:00
43e620504a
port 93eac8b0
to ALSA and CoreAudio
2016-04-26 18:19:48 +02:00
2169de3975
keep portmap & portindex in sync when renaming ports
...
Fixes crash on session re-load (introduced in 800c8182
and fde99e68
)
2016-04-26 02:26:20 +02:00
fde99e68f7
..and CoreAudio.
2016-04-24 20:45:50 +02:00