13
0
Commit Graph

50 Commits

Author SHA1 Message Date
47a62b2850
Update backend GPL boilerplate and (C) from git log 2019-08-03 15:53:16 +02:00
8b71967be9
ALSA: add locks to safely add/remove MIDI devices
Theoretically this could be lock-free by using a queue of device
ports to be added/remove in sync in the process-callback, but
realistically adding/removing devices doesn't have to be rt-safe.
2019-01-14 22:33:31 +01:00
79e247e00a
Dynamic ALSA MIDI I/O device discovery and re/connect 2018-12-23 21:58:56 +01:00
217ef4d365
Use hash for ALSA-MIDI device name/ID 2018-12-23 21:58:55 +01: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
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
8337982766 Prototype using additional ALSA devices (w/resampling). 2017-09-18 16:13:55 +02:00
128a985361 ALSA Backend: Separate Device Reservation into its own class 2017-09-18 14:50:31 +02:00
59a63a08f9 ALSA 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
335debfa2f Add API to enforce valid device selection. 2016-11-26 15:31:21 +01: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
800c8182c6 O(log(n)) port and connection lookup for ALSA 2016-04-24 20:45:37 +02:00
10140a8e68 implement pretty-name set-property for ALSA and Dummy 2016-04-17 18:22:21 +02:00
cf6a3afcaa name ALSA midi ports after device 2016-01-11 11:46:10 +01:00
bfd2cbaa3f ALSA: allow to dynamically add/remove midi devices & update their latency. 2015-12-04 22:19:47 +01:00
ac075560bd ALSA: allow to measure & set systemic audio latency w/o restart.
(MIDI needs a bit more work)
2015-12-04 17:45:49 +01:00
990fd75c5f implement ALSA period/cycle setting 2015-12-04 10:16:19 +01:00
ccfe3e1015 Use ARDOUR::DSPLoadCalculator in ALSA Backend 2015-09-16 11:22:17 +10:00
548340eb05 remove -Woverload-virtual ambiguity (from 1d3690d)
this breaks compilation in engine_dialog.cc
2015-08-11 23:50:56 +02:00
a226c4ce38 ALSA backend: query and cache available device-parameters 2015-08-11 19:01:52 +02:00
dc2030cfd7 ALSA backend: add support for half-duplex devices 2015-06-14 22:26:06 +02:00
52e99750a0 ALSA: fix thinko in sample time calc. 2015-03-09 17:17:50 +01:00
659a8a26ae fix latency report, take buffersize changes into account. 2015-03-07 14:35:32 +01:00
782dd70875 alsa: implement timing callback 2015-03-05 01:59:59 +01:00
582138f280 change Audio backend sample time methods to use a 64 bit timeline 2015-02-19 17:44:01 -05:00
db28eefc49 ALSA backend: synchronous switch to/from freewheeling 2015-01-24 23:39:41 +01:00
f499f4cfd2 don't take temporary copy of MIDI sequence
fixes potential boost shared_ptr double free.
2014-12-31 03:19:00 +01:00
32e05fa640 update backends for API change in 8d59afb048 2014-10-01 03:24:54 +02:00
99a484f193 ALSA backend: initial device selection 2014-09-24 01:26:51 +02:00
dc318e6e74 ALSA|Dummy Backend: do as jack does:
when the backend is closed, unregister all ports.
2014-09-07 22:50:57 +02:00
07fafac36e don't let enumerated device list strings go out of scope. 2014-06-23 12:16:35 +02:00
fb51bdb892 statically allocate midi-options
fixes possible segfault when the data in the vector
goes out of scope due to RVO.
2014-06-23 11:56:58 +02:00
16ffff10cd ALSA-backend: dedicated Midi-Buffer n-periods (only use for HW output) 2014-06-22 18:28:24 +02:00
6648074a13 virtual abstraction of Alsa Raw+Seq 2014-06-21 13:51:46 +02:00
da912f7ed4 add AudioEngine API to configure individual MIDI devices 2014-06-13 11:47:51 +02:00
b3a44ea32b ALSA Backend: align midi output buffer with n_periods (currently 2) 2014-06-08 15:53:15 +02:00
8f17b7c309 ALSA backend: separate systemic audio+midi latency 2014-06-07 17:28:47 +02:00
960a5347f0 ALSA & Dummy: implement port [un]registration_callback 2014-06-07 17:28:46 +02:00
822c460d15 DBus ALSA device reservation 2014-06-05 02:22:13 +02:00
a907d3455e break out ALSA related functions into libardouralsautil 2014-06-04 19:16:37 +02:00
aec7ea4613 Revert "Revert "ALSA backend: separate flags for is-running and should-be-running""
sorry, c/p error
This reverts commit 9658b77327.
2014-06-04 02:39:39 +02:00
9658b77327 Revert "ALSA backend: separate flags for is-running and should-be-running"
Theoretically one could alter the plugins after a delivery even on a
frozen track. ..or even change settings, the ordering and add/remove
plugins after the frozen part of a track.

We won't go there. Frozen is frozen. this API is not needed after all.

This reverts commit 6d89488d64.
2014-06-04 02:34:58 +02:00
6d89488d64 ALSA backend: separate flags for is-running and should-be-running 2014-06-04 02:23:41 +02:00
5cd2010c79 ALSA backend: raw midi prototype 2014-06-02 19:23:07 +02:00
8e9b02cfa2 ALSA backend (based on Dummy backend and zita-alsa-pcmi) 2014-06-02 19:23:07 +02:00