summaryrefslogtreecommitdiff
path: root/libs/ardour/session.cc
AgeCommit message (Collapse)Author
2019-10-28provide a mechanism to decide if Session::update_latency_compensation() is ↵Paul Davis
being called as part of a callback from the backend. If it is, do not call AudioEngine::update_latencies() to avoid JACK1-style deadlock
2019-10-28to avoid deadlock in JACK1 scenarios, do not invoke ↵Paul Davis
AudioEngine::update_latencies() from update_latency_compensation() if called from a process thread
2019-10-28better commentsPaul Davis
2019-10-28do not hold a lock when calling AudioEngine::update_latencies() from ↵Paul Davis
Session::update_latency_compensation(). Only when using JACK1 is ::update_latencies() a synchronous call (ending up in Session::update_latency() which tries to take the same lock). But the semantics of ::update_latencies() are sufficiently ill-defined that entering that call with a lock held seems like a bad idea, so we release the lock unconditionally here.
2019-10-28add explanatory commentPaul Davis
2019-10-28move reset (deletion) of click_io and ltc_output objects until after we are ↵Paul Davis
disconnected from the engine We use those objects unconditionally and without caching inside process(), which could be invoked by the engine during their deletion
2019-10-26Fix latency compensation race-conditionRobin Gareus
Remove need for explicit `initialize_latencies` call that used to be called from GUI-thread post_engine_init(), as well as Session::engine_running(). Further reduce calls, `graph_reordered` implies a latency-update and fix ordering issue. update_latency_compensation() must be called *after* resort_routes().
2019-10-12remove Session::AudioMidiSetupRequired signal (no longer necessary)Paul Davis
2019-10-11remove responsibility for starting AudioEngine from SessionPaul Davis
2019-10-10make BusProfile argument to new Session constructor be const (and in ↵Paul Davis
associated call tree)
2019-09-29Emit signal when session latency was updatedRobin Gareus
2019-09-29Add Signal to indicate global delay compensation statusRobin Gareus
2019-09-25goodbye Profile->...trxPaul Davis
2019-09-25goodbye USE_TRACKS_CODE_FEATURES and is_tracks_buildPaul Davis
2019-09-22move all bundle-related session methods into their own filePaul Davis
2019-09-20Add abstract API for latency compensated sendsRobin Gareus
This is in preparation for MixbusSends that are not derived from Delivery : IOProcessor.
2019-09-19replace boost::msm - based FSM for transport with one written in "plain C++"Paul Davis
Still need to use boost::intrusive to managed qeued/deferred containers
2019-09-18Consistent use of abort() /* NOTREACHED */Robin Gareus
This fixes some static analysis warnings: PBD::fatal transmitter needs to be connected to a function that aborts. This is usually the case with GUI
2019-09-17add finite state machine to control/manage transport statePaul Davis
2019-08-16Fix periodic backup savesRobin Gareus
Retain ".pending" files until explicit save or session destruction. Previously every transport-stop deleted them :(
2019-08-07Add method to graphviz plot the process-graphRobin Gareus
2019-08-03Update libardour GPL boilerplate and (C) from git logRobin Gareus
2019-08-01prefer lowercase and no spaces, since this will appear in the filename.Ben Loftis
2019-08-01(Source List) Catch new sources created by bounce-range-to-source-listBen Loftis
2019-08-01(Source List) merge fixesBen Loftis
2019-08-01(Source List) Clean up the natural_position implementation (libardour part).Ben Loftis
2019-08-01(Source List) Region Tags (libardour part)Ben Loftis
Rough-in: Region-Tags. More correct implementation of tags property (libardour). Region Tags (libardour part)
2019-08-01(Source List) Region List rewrite (libardour part)Ben Loftis
2019-08-01(Source List) Source property signals (libardour part)Ben Loftis
2019-05-08Fix solo logic, connection/feed-informationRobin Gareus
Assume the following connections Audio -> Bus1 --aux-send--> Bus2 Prior to this commit, Audio -> Bus2 was marked as "direct feed", even though the connection was only indirect via an aux-send. This caused issues with implicit solo and could lead to stuck solo.
2019-04-13NO-OP: <tab> after <space> fixes in libsRobin Gareus
2019-04-12NO-OP: mixbus codebase unificationRobin Gareus
2019-04-07Enable midi-to-audio bounce when processing w/synthRobin Gareus
2019-04-07Prepare midi-export for midi-to-audio bouncing.Robin Gareus
* shift event time into process cycle before calling processors * reset note-trackers when exporting, don't allow any pending events into the queue
2019-04-07NO-OP/Optimize Bounce: Lookup data-type only onceRobin Gareus
This is to prepare for midi-to-audio bounce: allow to change the data-type to be used as output.
2019-03-28Fix route-templates with external sendsRobin Gareus
2019-03-23Clean out session-global controllablesRobin Gareus
This isn't strictly speaking needed, there are only a handful of users (most notably generic-midi ctrl surface, and Selection)
2019-03-20working but still confusing fix for ensuring that playlist shared-with data ↵Paul Davis
is correct when duplicating tracks. Confusing because orig_track_id is still being switched to the NEW track, and shared_with refers to the OLD one
2019-03-20fix Session::new_route_from_template() to use playlist IDs and not names. ↵Paul Davis
This also fixes #7674
2019-03-19Remove global Session::playlists variable, use getter method (1/2)Robin Gareus
Global variables that can written by anyone are to be avoided. This also simplifies exposing SessionPlaylists as Lua bindings.
2019-03-18NO-OP: Use API to set/test state-of-the-stateRobin Gareus
2019-03-17Speed up session deletionRobin Gareus
No need to reconfigure routes due to removal of monitor or aux send/return. The processors will be removed with the route.
2019-03-17NO-OP: prefer to use API to check session-stateRobin Gareus
2019-03-06Fix typoRobin Gareus
2019-03-06Tweak session loadRobin Gareus
Listen positions are already correctly set when the route state is restored. The Route directly uses the Config. This skips duplicate calls to re-configure all processors on all Routes during RCConfiguration::map_parameters() on session-load, twice (pfl-position, listen-position)
2019-03-01Revert Monitor-Section to be per sessionRobin Gareus
This partially reverts 639dff3a7c7. When loading a session, the monitor-bus that was saved with the session is used. This changes semantics of the monitor-section/config. Config::set_use_monitor_bus(bool) is used to initiate a change! Notification about the change is sent asynchronously by Session::MonitorBusAddedOrRemoved It is no longer possible to directly call add/remove_monitor_section() and leave the session + config in an inconsistent state.
2019-02-21Remove more cruft (unused rf-scale)Robin Gareus
2019-02-12Session-range behavior (libardour part)Ben Loftis
2018-11-28Consolidate ambiguous engine API callsRobin Gareus
available(), connected(), running() were ill-defined and used interchangeably.
2018-11-26Fix stuck connection block when template load fails.Robin Gareus
Session::new_route_from_template() unconditionally calls IO::disable_connecting(), and needs to be reverted likewise (no RAII here).