summaryrefslogtreecommitdiff
path: root/libs/ardour/port_manager.cc
AgeCommit message (Collapse)Author
2020-04-08use an Unwinder to provde exception-safetyPaul Davis
2020-04-07Further tweak ambiguous latency checkRobin Gareus
Ignore latency of async ports (Virtual Keyboard in particular), and only consider ardour's own ports.
2020-04-07Fix typo in API name (1/2)Robin Gareus
2020-04-07Fix ambiguous latency checkRobin Gareus
Only compare playback latency, delaylines in tracks do not push back the capture latency to the source. The delayline on tracks sits in between disk-writer and disk-reader, delaying input to align with the disk-reader. Furthermore tracks may be connected to different inputs, even though those inputs are usually from the same hardware device, capture latency of those ports can differ.
2020-04-06Add method to check for ambiguous port latencyRobin Gareus
2019-12-17Fix MIDI port i/o when vari-speedingRobin Gareus
2019-12-05VKeybd: Set default MIDI port flagsRobin Gareus
2019-11-03Correctly flush MIDI buffers on cycle-splitRobin Gareus
2019-10-28add DEBUG_TRACE for all (?) backend callbacksPaul Davis
2019-10-19Fix typo in bc363f1258c4Robin Gareus
2019-10-18Special case "Virtual Keyboard" to be available as external inputRobin Gareus
2019-09-25goodbye Profile->...trxPaul Davis
2019-09-17correct mistakenly left-in debugging condition that removed parallelism for ↵Paul Davis
PortManager::cycle_start()
2019-09-17resize audio port _data buffer based on current buffer sizePaul Davis
2019-09-17manually correct cherry-pick of cdbabe40ed4ePaul Davis
2019-08-03Update libardour GPL boilerplate and (C) from git logRobin Gareus
2019-03-17remove debug outputPaul Davis
2019-03-08do not save MIDI port info unnecessarilyPaul Davis
2019-03-08add runtime warning messagePaul Davis
2019-03-08drop silly canonical name stuff from MIDI port info, and just store backend ↵Paul Davis
name (libs version
2019-03-07rework name/canonical-name stuff for MIDI port infoPaul Davis
2019-03-07save/restore MIDI port pretty names, but prefer backend pretty name if availablePaul Davis
2019-03-07redesign naming and reload of MIDI port information (library edition)Paul Davis
2019-02-15Simply debugging port-registration failuresRobin Gareus
2018-09-18new transport slave/master implementation, libs/ editionPaul Davis
2018-07-31Add support for PreSonus Faderport2 (2018 model)Ben Loftis
This is a cleaned-up, foward-ported version of Ben's Mixbus patch (d6694c5b31).
2017-12-12Add FP17 to reserved I/O namesRobin Gareus
2017-11-30Add some devices to the reserved list of midi controllers.Ben Loftis
2017-11-06Some further notes (and experiments) on optimizationsRobin Gareus
2017-11-04Add some notes for future optimizations (and prepare API)Robin Gareus
2017-10-30Fix fade-out at quit.Robin Gareus
2017-10-30Parallel execution of cycle-start/endRobin Gareus
2017-10-29NO-OP: whitespaceRobin Gareus
2017-10-29Move vari-speed into backend (resample ports)Robin Gareus
Previously Ardour used a /local/ per track vari-speed mechanism. Now that the disk-reader is a latency-compensated processor, the speed of each disk-reader would need to be maintained locally, offset by each disk-reader's output latency. Furthermore each disk-reader may produce a different number of samples, depending on its global alignment. This commit introduces port-data resampling directly at the engine-level: Up/down-sample all input ports at the beginning, and down/up-sample output port-data using the inverse ratio at the end of the session's process cycle. The session itself is unaware of the speed-change, and only needs to handle transport speeds {-1, 0, +1}. This also allows for aligned cue-monitoring and vari-speed recording, and also pitch-shifts synthesized MIDI along.
2017-09-18globally change all use of "frame" to refer to audio into "sample".Paul Davis
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-04-21Do not clear pretty-names set by the backendRobin Gareus
Since 7dde6c3b8f pretty-names are no longer saved and hence initially empty. The port-manager cleared existing pretty-port-names.
2017-04-19Use XMLProperty::get/set_property API in PortManager classTim Mayberry
2017-04-18prevent crash when loading midi port info about ports that no longer existPaul Davis
2017-04-13Faderport8 control surface supportRobin Gareus
2017-04-03do not save or restore MIDI port "pretty-names" from XMLPaul Davis
This is a job for the backend, which should really get the names from the hardware/driver and make a mapping between a device UUID and the name. Neither the ALSA, JACK or ASIO backends can do this at present
2016-10-21when fetching MIDI ports for bundles and auto-connection, ignore ↵Paul Davis
control-only (and "virtual") MIDI ports "virtual" is a placeholder name for ALSA sequencer MIDI through ports
2016-10-20infrastructure for save/restore of MIDI port user-provided informationPaul Davis
2016-10-19add PortManager::disconnect (std::string const&)Paul Davis
2016-10-19infrastructure for MIDI-input-follows-selectionPaul Davis
2016-10-19basics of managing a list of port names for MIDI-input-follows-selectionPaul Davis
2016-10-17add more DEBUG_TRACE statements for port/destruction debuggingPaul Davis
2016-10-13new scheme for managing port deletionPaul Davis
shared_ptr<Port> now uses a deleter functor which pushes Port* to a lock-free FIFO so that the Port is always deleted (and thus unregistered with the PortEngine/backend) in a safe context w.r.t. various callbacks in the host. Currently the auto_connect_thread in Session has been tasked with doing these deletions.
2016-09-27remove ControlOnly port flag, since it was essentially unusablePaul Davis
2016-09-27add PortManager::port_is_control_only() and use it in PortManager::get_ports()Paul Davis
This allows us to avoid using "control-only" ports (e.g. Ableton Push 2 hardware ports) as inputs or outputs
2016-09-27change PortManager API to allow specifying additional flags when registering ↵Paul Davis
a port