summaryrefslogtreecommitdiff
path: root/libs/ardour/io.cc
AgeCommit message (Collapse)Author
2017-09-18NO-OP: whitespaceRobin Gareus
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-08-03Allow calling IO::silence for yet unregistered ports (Click)Robin Gareus
2017-06-22Remove locale_guard.h from ardour/ardour.h headerTim Mayberry
Add to source files that use LocaleGuard Results in far less recompiling when pbd/locale_guard.h changes
2017-06-22Remove LocaleGuard from ARDOUR::IO class state methodsTim Mayberry
There are no float <=> string conversions that require a LocaleGuard and all conversions are performed using PBD::to_string/string_to via XMLNode
2017-04-19Use PBD::string_to/to_string in IO::find_possible_bundleTim Mayberry
Possible issue with numeric formatting using std::streams in locales with grouping. Although I don't think it would be an issue in this case use locale independant alternative for numeric formatting anyway.
2017-04-19Use XMLNode::get/set_property in ARDOUR::IO classTim Mayberry
2017-04-19Use ID::to_s() in libardour instead of ID::print()Tim Mayberry
2017-03-31Connect route-template insert i/o ports #5778Robin Gareus
2017-01-20Plug some libardour memory leaksRobin Gareus
2016-10-17add more DEBUG_TRACE statements for port/destruction debuggingPaul Davis
2016-08-08fix race condition when dropping PortsPaul Davis
Jack2 calls back from a notification thread and the callback (PortManager::connect_callback()) could end up holding the final reference on 1 or more ports. The ports would then be unregistered as we leave the callback scope, which is illegal (no server calls from a notification thread)
2016-07-14enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.hPaul Davis
2016-07-14regenerate and manually fix all PO files so that ./waf i18n doesn't generate ↵Paul Davis
unnecessary errors
2016-07-09Assert that nobody calls IO::copy_to_output with empty bufsJulien "_FrnchFrgg_" RIVAUD
IO::copy_to_output() crashed if there was no channel to copy from. Since all callers seem to check before calling, just assert() that it is not the case.
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-05-07fix LocaleGuard contstructor (3dc77280)Robin Gareus
2016-05-05we always only use the "C" locale when saving.Robin Gareus
2016-05-04OMNIBUS COMMIT: prefer const XMLNode::property method (and provide a real one)Paul Davis
2016-04-18fix possible crash at session close.Robin Gareus
In the wake of 81faa3b420303eec2ca0e3. Disconnect Signal from process callback, may notify an IO that just reached a zero shared ptr refcount due to route-deletion (GUI thread) resulting in a double free.
2016-04-17add IOProcessors pretty name supportRobin Gareus
2016-04-03small optimization, read-only buffer suffices here.Robin Gareus
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