summaryrefslogtreecommitdiff
path: root/libs/ardour/io.cc
AgeCommit message (Collapse)Author
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-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.