summaryrefslogtreecommitdiff
path: root/libs/ardour/io.cc
AgeCommit message (Collapse)Author
2015-10-05remove unused fstream includesRobin Gareus
2015-10-05NOOP, remove trailing tabs/whitespace.Robin Gareus
2015-09-27Sort ports in state-save.Robin Gareus
This results in identical XML if the session did not change, allowing to keep track of state-changes easily (e.g. session file in git). Thanks to deva (again).
2015-08-07remove more cruft (dead assignments)Robin Gareus
2015-06-29Fixed a misprint in a commentGZharun
2015-06-29[Summary] Do not restore routes connection using XML IO state for ↵GZharun
TracksLive, because this is redundant for TracksLive. Moreover if the device is changed XML state of IO contains port names of the old device which causes attempts to connect to non existent ports. [Reviewed by] Paul Davis
2015-02-19fix some static-analysis warningsRobin Gareus
2015-01-27Don't try to dereference a NULL ptr (the function 'ARDOUR::IO::nth()' can ↵John Emmas
return an invalid ptr, so let's make sure we test for it) Note 1: Potentially we could have the same issue with 'AutomationLine::nth()' (although the current code seems okay) Note 2: This (specific) problem seems mostly to affect Mixbus3 when it tries to load an old (version2) session from Ardour2. Mixbus can mark certain IO ports as being 'unused'. While loading sessions, function 'ARDOUR::IO::ensure_ports_locked()' deletes any unused ports. But later, the function 'ARDOUR::IO::make_connections_2X()' was crashing while trying to connect those (now NULL) ports. This commit fixes that crash but there's some evidence that it might only have moved the problem elsewhere. The version2 sessions now open successfully - but an MSVC (Debug) build now crashes whilst closing them (the Release build however, is okay). Someone who's more familiar with the code than me should review the Mixbus3/Ardour2 loading procedure to make sure it's safe.
2015-01-19use C locale, because POSIX locale is not supported on windows, and ↵Ben Loftis
operation is undefined. C works on all platforms
2014-11-18Clean up funny code and initialize variables.David Robillard
2014-11-18Fix broken logic and possible NULL pointer dereference for Bundle XML.David Robillard
2013-12-02Fix compilation on linux now that libardour no longer links to libjackTim Mayberry
Similar change has already been made in master branch
2013-09-12incomplete merge of master into windows (requires upcoming changes to master ↵Paul Davis
to be complete)
2013-08-09remove another naming that refers to JACKPaul Davis
2013-08-09'libs/ardour' - Correct an invalid buffer address (io.cc)John Emmas
2013-08-04'libs/ardour' - Platform specific changes and includesJohn Emmas
2013-08-04'libs/ardour' - Use 'std::vector' instead of dynamically sized arrays ↵John Emmas
(required to be buildable with MSVC)
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-07-17Merge branch 'master' into windowsPaul Davis
2013-07-16fix metering states 34, 38, 49, 50, 53 and 54Robin Gareus
for state descriptions see http://www.oofus.co.uk/ardour/Ardour3MonitorModesV3.pdf
2013-07-13Don't use trylock in assertions on windows as it will failPaul Davis
glib uses TryEnterCriticalSection on windows which will return true if the lock as able to be locked *or* is already locked by the current thread.
2013-01-28port names are NOT translatablePaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@14024 d708f5d6-7413-0410-9779-e7cbd77b26cf
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-24Remove over 500 unnecessary includes (including 54 of session.h).David Robillard
It's slightly possible that this causes trivial build failures on different configurations, but otherwise shouldn't cause any problems (i.e. no actual changes other than include/naming/namespace stuff). I deliberately avoided removing libardour-config.h since this can mysteriously break things, though a few of those do seem to be unnecessary. This commit only targets includes of ardour/*.h. There is also a very large number of unnecessary includes of stuff in gtk2_ardour; tackling that should also give a big improvement in build time when things are modified. git-svn-id: svn://localhost/ardour2/branches/3.0@12420 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-17remove debugging outputPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@11718 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
2012-01-18make monitor section an optional feature than can be added/removed as ↵Paul Davis
needed. this is a big commit, and breakage is possible. it has been moderately tested. this commit also locks the remote control ID of the master bus to 318 and the monitor section (if any) to 319. the numbers are based on MIDI Machine Control limits git-svn-id: svn://localhost/ardour2/branches/3.0@11256 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-26Comments.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@11070 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-10Don't try to process_input() if an IO has no ports; fixesCarl Hetherington
#4546. git-svn-id: svn://localhost/ardour2/branches/3.0@10965 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-07Check that adding a port to an IO is ok with the processorsCarl Hetherington
in its route, and raise an error if not (part of #4535). git-svn-id: svn://localhost/ardour2/branches/3.0@10938 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-11-16Slightly unpleasant fix for creation of tracks fromCarl Hetherington
templates; it would be nice if we could set things up using the Route's logic for setting names of its children, rather than repeating the same logic in XML-land (#4303). git-svn-id: svn://localhost/ardour2/branches/3.0@10655 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-10-18make Stateful::_id private and provide appropriate methods to set it, and ↵Paul Davis
use them throughout ardour git-svn-id: svn://localhost/ardour2/branches/3.0@10222 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-07-26fix up colons in track names before they are used for JACK port names; catch ↵Paul Davis
most (not all) attempted renames and ask the user about colons git-svn-id: svn://localhost/ardour2/branches/3.0@9928 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-22use std::vector::assign() in BufferSet::attach_buffers() rather than an ↵Paul Davis
explicit loop; minor formatting touchups git-svn-id: svn://localhost/ardour2/branches/3.0@9912 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-07-14Save and restore Latent's _user_latency for IOs (fixes #4186).Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@9879 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-07-13Add a couple of missing attach_buffers() calls after _ports has been ↵Carl Hetherington
changed. I think this fixes #3856. git-svn-id: svn://localhost/ardour2/branches/3.0@9858 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-18fix (?) capture alignment by making sure we use non-public latency ↵Paul Davis
information for playback latency, thus avoiding counting plugin latency twice git-svn-id: svn://localhost/ardour2/branches/3.0@9168 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-03-15fix all manner of things relating to io connections, setting capture ↵Paul Davis
alignment, and so on. still needs more tests of actual precise placement of newly recorded material git-svn-id: svn://localhost/ardour2/branches/3.0@9155 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-03-12properly use and publish private/public port latency values for JACK latency APIPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@9130 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-08lots of stuff related to capture alignment. things appear to be working now, ↵Paul Davis
but require the right alignment setting, which doesn't persist correctly at present git-svn-id: svn://localhost/ardour2/branches/3.0@9107 d708f5d6-7413-0410-9779-e7cbd77b26cf