summaryrefslogtreecommitdiff
path: root/libs/ardour/session.cc
AgeCommit message (Collapse)Author
2020-01-26Fix the ability to set Session Start&End Range on a new, empty sessionBen Loftis
set_session_extents had a bug; it wasn't calling locations->add() on the newly created location. The correct implementation was in set_session_range_location, but this was only called from one place. This function was removed, and set_session_extents will be used in its place. set_session_extents will create a session location if one no longer exists, so there is no need for set_session_range_location.
2020-01-18rename DoTheRightThing to RollIfAppropriatePaul Davis
2020-01-18Session::request_locate() takes a tri-valued second argument for ↵Paul Davis
"roll-after-locate" This allows callers to defer logic about auto-play/current rolling state and more to TransportFSM where it can be cnentralized and is less ambiguous
2020-01-05remove the (unused) concept of a MIDI patchfile folder per sessionPaul Davis
2019-12-27remove unused memberPaul Davis
Note: there is no global state for "the" transport master, since we have several at all times now
2019-12-25Use weak-ptr for source added/removed signals (1/2)Robin Gareus
This might fix a "SessionHandleRef exists across session deletion", when the shared_ptr was be pushed onto a x-thread pool, and not invalidated in time before the session was closed.
2019-12-25Prevent copy-construction of sources to be destroyed listRobin Gareus
destroy_sources () is only called from Session::remove_last_capture (). The list of sources to be destroyed is the local scope of that method and will hold a reference to the object. copy-construct the list and removing elements one by one from the copy is only unnecessary overhead.
2019-12-16reinstate missing latency initialization codePaul Davis
Removed (mistakenly) during work on transportFSM
2019-12-16expand DEBUG_TRACE outputPaul Davis
2019-12-11Remove hardcoded session-state versionsRobin Gareus
2019-12-10revert to single buffer for disk playback, and 5.x-style overwritePaul Davis
Also address issues with MIDI and also atomicity of _pending_overwrite
2019-12-08avoid a locate-to-loop-start from cancelling loopingPaul Davis
2019-12-05changes to use overwrite-buffers when loop is disabled or loop range changedPaul Davis
2019-11-23fix startup crash if no loop range is definedPaul Davis
2019-11-23more tweaks to correctly (or more correctly) reload disk reader buffers when ↵Paul Davis
loop fade choice changes
2019-11-22redesign of declicking and fades around loop boundariesPaul Davis
2019-11-15improve initial coordinate with JACK transport statePaul Davis
2019-11-02comment updatePaul Davis
2019-11-01fix the way Session::auto_loop_changed() works to put back various things ↵Paul Davis
removed since 5.x
2019-11-01remove seamless looping as an option (it's now the only kind of looping we ↵Paul Davis
support)
2019-10-28improve debug outputPaul Davis
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