13
0
Commit Graph

53 Commits

Author SHA1 Message Date
a7ca4cf8a1 CoreAudio: subscribe to device-alive property
This notifies the user about device disconnect and properly
shuts down the backend.
2023-04-22 19:36:37 +02: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
5417ddd792
Fix typo in 6a513a11f 2022-06-03 07:24:42 +02:00
6a513a11fa
Coreaudio: set real-time constraint before joining the workgroup
The worker thread needs to have a real-time constraint set,
before it cab be joined to the workgroup.
2022-06-03 06:42:38 +02:00
74ee7ee091
Add parallel realtime threads to CoreAudio workgroup
This API is only available since BigSur (11.0), see also
https://developer.apple.com/documentation/audiotoolbox/workgroup_management/adding_parallel_real-time_threads_to_audio_workgroups?language=objc
2022-06-03 04:56:28 +02:00
a393f75694
Use shared port engine MIDI event compare operator 2021-11-30 19:41:39 +01:00
a80064981e
NO-OP: Consolidate PortConnect code into shared parent class 2020-09-05 23:05:57 +02:00
92f54b3e98
Add API to query if systemic latency can be measured 2020-06-30 03:34:26 +02:00
3188fe00aa fix return value 2020-04-08 18:13:13 -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
a9c75f9760
Fix CoreAudio systemic latency, implement hw latency report 2020-02-24 04:24:50 +01: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
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
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
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
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
38c5e9de6d CoreAudio: Set MachThread RT Priority 2017-08-04 06:25:23 +02:00
355fa64c79 fix Coreaudio Aggregate for separate devices with identical names 2016-08-28 13:44:30 +02: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
fde99e68f7 ..and CoreAudio. 2016-04-24 20:45:50 +02:00
9840a11537 implement metadata-set for remaining backends 2016-04-18 00:35:51 +02:00
cae2f82278 NOOP: fix whitespace/indendentation in coreaudio backend code 2016-01-08 09:39:00 -05:00
3d5e345800 coreaudio: reset MIDI parsers when entering and leaving freewheeling 2016-01-08 09:23:05 -05:00
9d3cbe44a3 coreaudio: correctly clear MIDI port buffers 2016-01-07 18:11:45 -05:00
c615e26f3c coreaudio: factor out common code for stuffing MIDI data into a CoreMidiPort buffer 2016-01-07 18:11:45 -05:00
6e71d3b445 coreaudio: per-port parser for incoming MIDI, copied from ALSA Raw MIDI support 2016-01-07 16:42:34 -05:00
1c43383e92 CoreAudio: use libardour provided DSP load calc. 2015-09-16 18:24:57 +02:00
548340eb05 remove -Woverload-virtual ambiguity (from 1d3690d)
this breaks compilation in engine_dialog.cc
2015-08-11 23:50:56 +02:00
8f10b38275 coreaudio backend: SR/BS query for separate devices 2015-08-11 15:38:04 +02:00
b687ed9339 consolidate & document Coreaudio midi parser 2015-07-01 18:14:48 +02:00
da0ca57539 NOOP, reindent & whitespace 2015-07-01 01:18:52 +02:00
b86cf68e1f add an explicit midi parser/chunker to CoreAudio 2015-07-01 01:12:30 +02:00
1fe738a36e coreaudio support for multiple devices 2015-06-01 01:02:38 +02:00
5090934a2c clean out cruft from CoreAudio Backend 2015-03-13 14:05:12 +01:00
0446ff64f4 implement samples_since cycle start. 2015-03-09 17:17:50 +01:00
0cf11acc27 add backend support for port properties (CoreAudio) 2015-03-08 19:02:31 +01:00
2657992ebb CoreAudio fwheelin’ state-machine cleanup etc. 2015-03-08 19:02:30 +01:00
659a8a26ae fix latency report, take buffersize changes into account. 2015-03-07 14:35:32 +01:00
ce3adfd3d4 Hard Core Audio
* allow to change buffersizes
* subscribe to buffersize & samplerate changes
* add support for half-duplex devices.
* aggregate Devices (not yet used) code from JACK2
* unify deprecated API wrappers
* properly keep track of MIDI ports
* disable MidiI/O during freewheeling
* various small fixes & cleanup
2015-03-07 14:35:32 +01:00