summaryrefslogtreecommitdiff
path: root/libs/ardour/session_transport.cc
AgeCommit message (Collapse)Author
2016-11-25RAII to postpone processor changes/graph recalculationRobin Gareus
2016-07-14enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.hPaul Davis
2016-05-31universal change in the design of the way Route/Track controls are designed ↵Paul Davis
and used. The controls now own their own state, rather than proxy for state in their owners. Massive changes all over the code to accomodate this. Many things are not finished. Consider this a backup safety commit
2016-05-25fix timecode update after locate.Robin Gareus
Various session rt-events set "_send_timecode_update" to true, but at the same time queue post-transport-work. The timecode-update is generated, but due to pending transport work session->silent() is true and the timecode was never sent.
2016-05-07a few strategic LocaleGuards..Robin Gareus
..to prevent switching forth and back during individual ::state(), ::set_state() when loading/saving the session or locating.
2015-12-15explicitly disallow looping with external-syncRobin Gareus
amend 939808a7
2015-12-13Fix ff->stop->play not at speed 1.0 on Mackie Control and some key bindings.Len Ovens
2015-10-18disable auto-return with external sync #6577Robin Gareus
2015-10-05NOOP, remove trailing tabs/whitespace.Robin Gareus
2015-10-04globally remove all trailing whitespace from ardour code base.Paul Davis
Paul Davis was responsible for introducing almost all of this.
2015-09-30change the logic for a capture buffer flush to disk when a locate is occuringPaul Davis
We can't check for Session::actively_recording() because punch out may have disabled that. Rather than add logic to check if a flush is needed (which is not much different than the code that runs as part of the flush to disk), just do a flush anyway.
2015-09-28get loop recording working when using seam-ed loopingPaul Davis
2015-09-28change semantics of 4th argument to Session::locate to mean "this locate is ↵Paul Davis
connected with play-loop just being enabled"
2015-09-28a few new DEBUG_TRACE calls related to session transport statePaul Davis
2015-09-28minor fix for possible off-by-one logic when at/near the end of the loop rangePaul Davis
2015-09-28fix a long-standing bug arising from a change to some logic which reversed ↵Paul Davis
an "is-rolling" test
2015-09-28move code location where loop playback is cancelled when stoppingPaul Davis
2015-08-22fix some compiler warnings (float/double)Robin Gareus
2015-06-29implement Ardour-only version of playhead priority, which is basically ↵Paul Davis
auto-return to last roll location or nothing
2015-06-29(re)implement Yevgeny's LTC branch changes in the context of ↵Paul Davis
ardour-merge-from-tracks (just the libs/* section)
2015-06-29add additional check for playhead priority target when testing loop range, ↵Paul Davis
to match Tracks' logic
2015-06-29remove Tracks runtime conditional, incorrectly added during manual mergingPaul Davis
2015-06-29follow various events related to playhead priority (loop changes, parameter ↵Paul Davis
changes); remove debug output
2015-06-29give different Tracks + Ardour/Mixbus playhead priority functionality, and ↵Paul Davis
add missing set_track_loop() call for playhead priority
2015-06-29initial version of playback priority design. No GUI control over options yetPaul Davis
Conflicts: libs/ardour/ardour/session.h libs/ardour/ardour/types.h libs/ardour/enums.cc libs/ardour/session_transport.cc system_config
2015-06-29more tweaks for varifill model, and avoid filling playback buffers during ↵Paul Davis
session loading Conflicts: libs/ardour/diskstream.cc libs/ardour/session.cc libs/ardour/session_state.cc Conflicts: libs/ardour/session.cc
2015-06-29add initial support for vari-fillPaul Davis
When refilling playback buffer, try to fill it completely, or at least using the next-lowest power-of-2 as the amount to read. When locating, where we use do_refill_with_alloc(), only partially fill the buffer. Work not yet finished, but possibly promising.
2015-06-29fix logic of previous commit for transport-stop during locatePaul Davis
2015-06-29Do not disable record (performing transport stop) during locate request when ↵Paul Davis
MTC source is activated This is required for the case when we leave Tracks ready for record and then activate MTC source.
2015-06-29Add some libardour support for indicating MTC active status.Paul Davis
The general design here is wrong, because it should be more general and cover all possible sync sources. But it does work, it is used in Tracks, and my attempt to do it correctly revealed the problem to be an EXTREMELY difficult design issue (as in: two weeks of work on it did not really solve the fundamental issues with slave design). So, here it is for now, c/o Grygorii
2015-06-29[Summary] Fixed race condition: "should_do_transport_work" must not be ↵GZharun
dropped to 0 outside, it's illegal. It may cause "should_do_transport_work" go below 0 and make butler to round for a very-very long time (hang and possible lock of other threads) before stop() call returns. _butler->stop () is synchronous, so its safe to wait in this call for butler to finish it's work. [Reviewed by] PDavis
2015-04-29add xrun counter API to sessionRobin Gareus
2015-04-27special case [optimize] RT processor reorder.Robin Gareus
realtime processor re-ordering does not require a route resort nor latency compensation update. (which were done as callback in same thread)
2015-03-10throttle TransportStateChange signal emissionsRobin Gareus
2015-02-19fix transport issues when loop-is-mode is off.Paul Davis
Session::unset_play_loop() needed to be a no-op if play loop was already false, and this was exacerbated now that it potentially schedules butler transport work.
2015-02-17try to restore original semantics for scheduling butler transport work in ↵Paul Davis
Session::locate()
2015-02-17[Summary] Fixed loop processing in cases when loop is moved/resizedGZharun
[Reviewed by] REQUIRED REVIEW FROM PAUL DAVIS
2015-02-16fixes for desirable playback when using seamless looping.Paul Davis
Try to make sure that we appropriately reset and refill track buffers whenever we enter/leave loop playback,and whenever we locate. In addition, if we start playing somewhere other than the loop range while loop is enabled, then the first time we hit the loop end, set up the track buffers. Conflicts: libs/ardour/session_transport.cc
2015-02-13fix seamless looping after a locate out of the loop.Paul Davis
Something, somewhere has to tell tracks to refill their buffers with the special loop-data-only magic
2015-02-13correctly set track loop status when locating away from loop range (and ↵Paul Davis
later, when coming back to the loop) Conflicts: libs/ardour/ardour/session.h libs/ardour/session.cc libs/ardour/session_transport.cc
2015-01-24make butler thread merely ask for session state save, not actually do the ↵Paul Davis
save itself. This prevents the possibility of cross-thread calls in the GUI when it adds its state to the session via extra XML
2014-10-22fix delivery of MMC events under split process cycle conditionsPaul Davis
2014-10-22ignore negative value locates and MMC locate commandsPaul Davis
2014-10-10subtle changes to accomplish two goals (1) playhead should stop where the ↵Paul Davis
user pressed stopped (2) captured regions should end where the playhead ends
2014-09-13Return playhead to last start position when aborting captureColin Fletcher
2014-07-03fix the naming and behavior of always-play-range to match the button, which ↵Ben Loftis
is follow-edits. when you select a range, the playhead should jump to the start of the range and begin to play the selection. BUT (unlike previous implementation) if the user wants to relocate the playhead, then that should be allowed. The user should always remain in charge of the playhead location. NOTE: your previous config setting will be invalidated. You must re-save a session to overwrite with the new config variable
2014-07-02add a method to cancel a pending play_range. this is needed when we are ↵Ben Loftis
modifying the range with keyboard commands.
2014-06-26bump take-name after every recordingRobin Gareus
2014-05-02tell the SceneChanger to emit any relevant scene changes after a locatePaul Davis
2014-04-17new transport option, "loop-is-mode" which optionally changes the role of ↵Paul Davis
the "play loop" button. If enabled, then the button simply changes the behaviour of the "play" button rather than actually starting playback. If disabled transport behaviour should be unchanged from before.