summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/port.h
AgeCommit message (Collapse)Author
2020-04-07use shared_ptr to manage backend port lifetimes (Pulse,ALSA,Dummy,JACK)Paul Davis
JACK is not yet finished. Changes also include minor reformatting and a spelling correction (latecies to latencies)
2019-11-06fix unconditional note resolution during DiskReader::realtime_locate()Paul Davis
When looping, we do not want to resolve notes at the end of the loop via ::realtime_locate() - ::get_midi_playback() has already taken care of this. But when not looping, we need this. So, add an argument to tell all interested parties whether the locate is for a loop end or not
2019-09-17resize audio port _data buffer based on current buffer sizePaul Davis
2019-08-03Update libardour GPL boilerplate and (C) from git logRobin Gareus
2019-04-13NO-OP: <tab> after <space> fixes in libsRobin Gareus
2018-11-26Fix various issues when the engine disconnects:Robin Gareus
Previously Port::PortDrop was never handled. The signal was disconnected directly when the connection is re-used by Port::PortSignalDrop. Ports::drop() was not called when the engine was stopped or disconnected, and port-handles were not invalidated. This lead to crashes whenever a port-related operation was performed while the engine was stopped. e.g. adding/removing tracks or plugins (latency recompute, notify port-engine) and various other operations.
2018-09-18new transport slave/master implementation, libs/ editionPaul Davis
2018-02-03Make sure that 'libardour-config,h' only gets #included when building with ↵John Emmas
waf (as it only gets generated when building with waf) When building with MSVC this was getting #included in a few places which had the effect of making my session files get generated in a very old format.
2017-11-04Add some notes for future optimizations (and prepare API)Robin Gareus
2017-10-29Remove unused per-port buffer offsetRobin 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-09-18NO-OP: whitespaceRobin Gareus
2016-04-24Disconnect Signals before dropping portsRobin Gareus
significantly speeds up session close
2016-04-17notify IO about port disconnection due to port removalRobin Gareus
[Jack] Ports can be deleted without being disconnected first. the IO Object does not catch that condition.
2016-04-17add API to set pretty names for ardour portsRobin Gareus
2016-04-10NO-OP whitespace + commentsRobin Gareus
2015-03-08libardour API to exercise get_port_propertyRobin Gareus
2014-04-10remove use of JACK headers to allow building on systems without JACKPaul Davis
2013-10-17add export visibility macros across libardourPaul Davis
2013-08-13save and restore all ardour-owned MIDI portsPaul Davis
still need to check on MCU port status
2013-07-25most of libardour now actually compilesPaul Davis
2013-07-24part-way through getting the audioengine changes to compilePaul Davis
2013-07-24more miscellaneous changes for audioengine, all of this is still far from ↵Paul Davis
actually compiling
2012-06-21a putatively better approach to cleaning up ports at session closingPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@12807 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-11Remove unused parameter to Port::flush_buffers().Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@11906 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-26add Port::PostDisconnect signal to allow objects other than the one being ↵Paul Davis
directly disconnected to act when disconnection happens. This turns out to be much easier than using the JACK port connect/disconnect callback git-svn-id: svn://localhost/ardour2/branches/3.0@11355 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-23Do some renaming in the ARDOUR::Port class tree.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@11062 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-06-01Fix broken whitespace. I'd apologize for the compile times if it was my ↵David Robillard
fault :D git-svn-id: svn://localhost/ardour2/branches/3.0@9654 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-05-30(1) push a locate all the way through the processing heirarchy so that MIDI ↵Paul Davis
output ports can resolve any notes currently playing (2) remove MidiStateTracker from MidiPort and use a fixed set of MIDI messages (sustain-off and all-notes-off, per channel) to do note resolution (3) move note resolution caused by a LoopEvent psuedo-event to within the main MidiPort::flush_output() loop, so that we resolve (turn off) Notes that come before the loop point, rather than send them out after the note resolution messages git-svn-id: svn://localhost/ardour2/branches/3.0@9635 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-05-29clarify some confusion about how "raw" port buffer sizes are definedPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@9628 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-04-05remove unused arguments to keep gcc quietPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@9291 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-03-11sorta-kinda working latency compensation, latency reporting and capture ↵Paul Davis
alignment ... working except that we report the wrong information to JACK and i've noticed a couple of odd circumstances where turning on a latent plugin caused punch recording to fail git-svn-id: svn://localhost/ardour2/branches/3.0@9121 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-03-07fix all manner of wrongness with port buffer offsetsPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@9098 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-02-16fixes for latency computation and compilationPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@8868 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-02-15part two of new JACK latency API support - should fix broken compilationPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@8864 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-02-15part one of several parts: implement support for new (and correct) JACK ↵Paul Davis
latency API git-svn-id: svn://localhost/ardour2/branches/3.0@8863 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-12-03Remove all use of nframes_t.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@8166 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-09-17megaopus patch #2 for today: remove nframes64_t and sframes_t from sourcePaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@7792 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-08-13Move _port_offset up to AudioPort, as MidiPort does not use it.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@7614 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-06-02add -P flag blocking port connections while loading sessionTorben Hohn
git-svn-id: svn://localhost/ardour2/branches/3.0@7213 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-05-01perhaps, just possibly, a working solo model. needs to be fixed so that ↵Paul Davis
connections to other JACK clients count as "physical" connections, so don't use this with ardour connected to other JACK apps just yet. Oh, this also invalidates existing a3 sessions again git-svn-id: svn://localhost/ardour2/branches/3.0@7033 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-19use new syntax for connecting to backend signals that enforces explicit ↵Paul Davis
connection scope, plus a few other related matters git-svn-id: svn://localhost/ardour2/branches/3.0@6376 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-12-17switch to using boost::signals2 instead of sigc++, at least for libardour. ↵Paul Davis
not finished yet, but compiles, loads sessions, records and can close a session without a crash git-svn-id: svn://localhost/ardour2/branches/3.0@6372 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-10-14Fix warnings.David Robillard
Hopefully that offset is an audio cycle offset, or someone's used the wrong type ;) git-svn-id: svn://localhost/ardour2/branches/3.0@5777 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-10-14(1) silence non-process FIFO message (2) move MIDI state tracking down to ↵Paul Davis
the MidiPort level (3) forward port the PRIVATE_JACK pointer "fix" from 2.X git-svn-id: svn://localhost/ardour2/branches/3.0@5774 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-10-14Strip trailing whitespace and fix other whitespace errors (e.g. space/tab ↵David Robillard
mixing). Whitespace changes only. Vimmers, try let c_space_errors = 1 in your .vimrc to highlight this kind of stuff in red. I don't know the emacs equivalent... git-svn-id: svn://localhost/ardour2/branches/3.0@5773 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-07-21Fix some unused parameter warnings.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@5403 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-05-04Preliminary MIDI plugin support.David Robillard
git-svn-id: svn://localhost/ardour2/branches/3.0@5036 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-04-23remove offset from process callback tree. some breakage may have occured. ↵Paul Davis
yes, really. git-svn-id: svn://localhost/ardour2/branches/3.0@4999 d708f5d6-7413-0410-9779-e7cbd77b26cf