summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/io.h
AgeCommit message (Collapse)Author
2019-09-29Ardour::IO is not latent by itselfRobin Gareus
2019-08-03Update libardour GPL boilerplate and (C) from git logRobin Gareus
2019-07-11Prevent adding a 2nd MIDI input/output portRobin Gareus
Ardour's Tracks/Routes are not capable of handing more than one MIDI port per per route properly. Most Plugin standards don't support this either. However, at this point in time IO::ensure_ports_locked() is not limited by this restriction! It is still possible to indirectly add a 2nd MIDI data-buffer and output-port via plugin pin-management, or simply plugins with two MIDI output ports when using flexible I/O.
2017-11-26Add convenience methods to set port latenciesRobin Gareus
2017-10-29Remove unused per-port buffer offsetRobin Gareus
2017-10-04Clean up State API:Robin Gareus
* Processor implement get_state(), classes derived from Processor implement protected ::state() -- as documented in processor.h * likewise for Route, Track: make ::state() a protected interface * removal of "full_state", use explicit "template_save" * use RAII/Unwind to skip saving automation-state
2017-09-30Remove unused IO::process_input() APIRobin Gareus
This was only needed in order to run the meter on inputs when Ardour did no processing at all.
2017-09-29Add API to query IO latenciesRobin Gareus
IO::connected_latency() is relevant once Ardour publishes individual per Port latency. IO::public_latency() is only for debug purposes.
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-08-24Remove all manual accounting of connected user bundlesJulien "_FrnchFrgg_" RIVAUD
IO used to manually keep a list of user bundles it was connected to, but it didn't work correctly: sometimes it didn't notice that a bundle wasn't connected anymore, and the list wasn't correctly persisted across save/reloads among other things. Moreover, it wasn't needed at all, since the user bundles are correctly listed by _session.bundles() and IO already notices they are connected ! Remove all occurrences of |_bundles_connected| and |check_bundles_connected|.
2017-08-23Make IO::connect_ports_to_bundle able to partially connectJulien "_FrnchFrgg_" RIVAUD
Forward the optional |allow_partial| boolean to |Bundle::connect|.
2017-04-19Use XMLNode::get/set_property in ARDOUR::IO classTim Mayberry
2016-06-25major internal plugin & processor API change:Robin Gareus
Pass current (latency compensated) cycle times to plugin. This fixes time-reporting to plugins and also fixes automation and when bouncing (the session->transport* is not valid) etc.
2016-04-17add IOProcessors pretty name supportRobin Gareus
2016-04-10NO-OP whitespace + commentsRobin 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
2012-10-18change input/output button context menus for mixer strip to be non-additive: ↵Paul Davis
when selecting a new IO bundle, disconnect from any existing connections before connecting to the new one (fixes #5087) git-svn-id: svn://localhost/ardour2/branches/3.0@13308 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-07-25convert from Glib:: to Glib::Threads for all thread-related APIPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@13084 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-07-17make it possible to (and actually do) name insert and send ports as "return" ↵Paul Davis
and "send" rather than "in" and "out" (#5012) git-svn-id: svn://localhost/ardour2/branches/3.0@13052 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-14drop boost::signals2 and replace with carl's solution which continues to ↵Paul Davis
rely on boost::function and boost::bind but alters two important semantics of signals2: (1) when a Connection object is disconnected, the slot ("functor") associated with the connection is destroyed immediately, unlike signals2 where this is deferred to a subsequent connect/emit call on the signal (2) if one functor called by the signal disconnects another Connection, the functor represented by the Connection will NOT be called during the current signal emission (signals2 copies the slot list at the start of emission and calls everything in the slot list). this change fixes some very nasty crashes apparently caused by boost::signals2 assuming that the memory referenced by a functor remains valid after a disconnect (google will show other developers who had issues with this). git-svn-id: svn://localhost/ardour2/branches/3.0@12265 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-03-16continue the saga of Rewrite The XML Node So That It Can Be Used To Set ↵Paul Davis
Another Object's State by descending into an IO node to fix the names of its ports as used in connection info. allows copies of sends etc. to retain the same connections as the original (with new names, obviously) git-svn-id: svn://localhost/ardour2/branches/3.0@11717 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-10-28Use shared_ptr for Port in the AudioEngine; improves thread-safety of the ↵Carl Hetherington
audio engine's port list as a writer cannot destroy a port in one thread while the port list is being iterated in another. git-svn-id: svn://localhost/ardour2/branches/3.0@10327 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-10-27Minor cleanups to IO.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@10322 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-07-25"forward" port IO::ensure_* changes from 2.X for correctness and consistencyPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@9918 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-07-15Remove unused _own_latency member from Latent.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@9881 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-07-03ctrl-alt-click now toggles input active status of other MIDI tracks using ↵Paul Davis
(any of) the same input(s) as the clicked track git-svn-id: svn://localhost/ardour2/branches/3.0@9789 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-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-01-10Optimise BufferSet::attach_buffers code to avoid memory allocation in the RT ↵Carl Hetherington
thread and speed things up a bit. git-svn-id: svn://localhost/ardour2/branches/3.0@8490 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-12-29Update mixer strip input/output button labels from the general JACK port ↵Carl Hetherington
connection / disconnection callback so that all changes are noticed. Fixes #3638. git-svn-id: svn://localhost/ardour2/branches/3.0@8368 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-12-11Comment a few things and add missing process lock when adding a route from a ↵Carl Hetherington
template. git-svn-id: svn://localhost/ardour2/branches/3.0@8242 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-11-25Prevent removal of route inputs when the plugins cannot be configured with ↵Carl Hetherington
the new number. Rework locking so that the process lock is held from the point that a route input is removed until after the processors are reconfigured; fixes #3548. git-svn-id: svn://localhost/ardour2/branches/3.0@8089 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-11-25Remove unused code.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@8083 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-07-13Remove stub class.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@7407 d708f5d6-7413-0410-9779-e7cbd77b26cf
2010-07-01Allow port matrix to show both audio and midi ports at the same time, and ↵Carl Hetherington
use that facility for route IO selectors. git-svn-id: svn://localhost/ardour2/branches/3.0@7344 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
2010-03-21change session construction so that the the monitor bus config is derived ↵Paul Davis
(once) from the master bus config git-svn-id: svn://localhost/ardour2/branches/3.0@6779 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-11-25Seconds out, the people vs. the port matrix, round 7.Carl Hetherington
Some spacing adjustments. Remove the hacky RouteBundle which caused more problems than it solved. Put notebook tabs close to the headings in the matrix. Some other minor tweaks. git-svn-id: svn://localhost/ardour2/branches/3.0@6179 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-10-15rework Stateful::set_state() patch to avoid default version argumentPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@5787 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-10-15Part 1 of loading 2.X sessions; some things work, some things don't, hacks ↵Carl Hetherington
a-plenty. LOADING 2.X SESSIONS WITH THIS COMMIT IN PLACE WILL (PROBABLY) CORRUPT THE .ardour FILE, MAKING THE SESSION UNLOADABLE ON 2.X AND LOSING INFORMATION. So don't do that unless you make a backup of the session file first. git-svn-id: svn://localhost/ardour2/branches/3.0@5786 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-06-23fix management of port connection state - THIS INVALIDATES PRE-EXISTING ↵Paul Davis
SESSIONS INTENTIONALLY git-svn-id: svn://localhost/ardour2/branches/3.0@5254 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-06-09the big Route structure refactor. !!!! THIS WILL ***NOT LOAD*** PRIOR 3.0 ↵Paul Davis
or 2.X SESSIONS !!!! BREAKAGE IS EXPECTED !!!! IF YOU HAVE AND NEED A WORKING 3.0 DO **NOT** UPDATE. !!!! otherwise, update and enjoy the steadily emerging joys of this major reworking of ardour internals git-svn-id: svn://localhost/ardour2/branches/3.0@5137 d708f5d6-7413-0410-9779-e7cbd77b26cf
2009-05-1775% (?) of the way towards making mixer strips control bus sends. lots more ↵Paul Davis
to do git-svn-id: svn://localhost/ardour2/branches/3.0@5090 d708f5d6-7413-0410-9779-e7cbd77b26cf