summaryrefslogtreecommitdiff
path: root/libs/ardour/port_manager.cc
AgeCommit message (Collapse)Author
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
2016-09-21PortManager::silence() should not clear data in AsyncMIDIPortsPaul Davis
This data was generated asynchronously and is not required to be "silenced" the way that session data would be. Compare also to the similar tests for sync-related MIDI ports
2016-08-08add explanatory commentPaul Davis
2016-07-14enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.hPaul Davis
2016-05-25fix timecode update after locate.Robin Gareus
Various session rt-events set "_send_timecode_update" to true, but at the same time queue post-transport-work. The timecode-update is generated, but due to pending transport work session->silent() is true and the timecode was never sent.
2016-04-26implement missing PortManager methods and lua-bind themRobin Gareus
2015-10-09remove unused PortManager::port_name_prefix_is_unique() methodPaul Davis
2015-10-07use C++ for PortManager::make_port_name_relative()Paul Davis
2015-10-05NOOP, remove trailing tabs/whitespace.Robin Gareus
2015-10-04globally remove all trailing whitespace from ardour code base.Paul Davis
Paul Davis was responsible for introducing almost all of this.
2015-09-10add PortManager::port_name_prefix_is_unique()Paul Davis
2015-06-29add required profile headerPaul Davis
2015-06-29avoid redundant IO port reconnections in Tracks runtime casePaul Davis
2015-05-04clear port-list before query.Robin Gareus
fixes crash in PortManager::silence_outputs()
2015-05-04fix thinko in 2e4428bRobin Gareus
perspective of Ardour: signal sinks are outputs
2015-05-03add an API to silence buffers (without session)Robin Gareus
2015-03-08libardour API to exercise get_port_propertyRobin Gareus
2014-11-30Add missing namespace qualifiers.David Robillard
2013-09-13change inheritance so that an AudioBackend IS-A PortEnginePaul Davis
This allows a derived (concrete) implementation to share information (e.g. sample rate, buffer size) between the audio backend side of things and the port management side of things.
2013-09-05fix a problem creating and displaying connected status for ports not owned ↵Paul Davis
by ardour (e.g. system:....) This was caused by using jack_port_get_connections() which will not return the correct status for ports owned by another JACK client. Because of the potential for deadlock by calling jack_port_get_all_connections(), an extra argument was added to several PortEngine:: API calls to specify whether the call is in a process-callback context, which defaults to true. The only place where false is passed is within the GlobalPortMatrix when we need to determine whether two non-ardour ports are connected.
2013-08-08rationalize (a bit) engine start/stop/restart so that it is possible to ↵Paul Davis
start up, disconnect from JACK and then reconnect
2013-08-07major redesign of MIDI port heirarchy and management (part 2)Paul Davis
2013-08-01start code reorganization needed to deal with backend choices. compiles, ↵Paul Davis
links and runs as far as the startup screen now
2013-08-01full compilation and linking (coding not finished, will not run)Paul Davis
2013-07-31more stuff compilesPaul Davis