summaryrefslogtreecommitdiff
path: root/libs/ardour/session_transport.cc
AgeCommit message (Collapse)Author
2017-06-22Remove LocaleGuards from ARDOUR::Session transport related methodsTim Mayberry
ARDOUR::AutomationList is no longer using LocaleGuards as float <=> string conversion is using PBD::to_string/string_to so the reason for adding these guards as per comment no longer applies.
2017-06-10Emit Session::Located only if _engine.transport_frame() is up to dateJohannes Mueller
If _engine.transport_frame() is not up to date, we emit Located in Session::backend_sync_callback() because that's when audible_frame() is up to date. We don't want to emit it twice, because then, the playhead jumps back and forth. * mouse click in the ruler -> jump to requested location * mouse release -> jump to old location (because audible_frame has to catch up) * backend_sync_callback() called -> jump to new location
2017-03-30Fix count-in for non 4/4 time signaturesRobin Gareus
2017-02-13Prepare record with count-in actionRobin Gareus
2017-01-23at transport stop, clear all existing automation watches (touch)Paul Davis
2017-01-19Add alternative preroll record mode:Robin Gareus
* Start recording at preroll, trim region to skip preroll at rec-stop * Keep old punch-in rec-at-preroll API for tape-tracks (later)
2017-01-19Rework preroll-rec API:Robin Gareus
* rename: indicate that recording happens after preroll, punch-in * move API into libardour: rec+roll (no separate setup, seek, roll APIs)
2017-01-18Implement record with prerollRobin Gareus
2017-01-17Implement Count-In (before recording), fixed BPM, up to 2 barsRobin Gareus
2017-01-10Fix MTC slave implicit return on transport-stopRobin Gareus
MTC returns not-locked (no flywheel) when the signal is lost, in which case Session::follow_slave() jumps to no_roll and ignores the slave-position. The MTC slave does explicitly request a transport-locate and transport-stop. Yet, Session::realtime_stop() honors _requested_return_frame for whatever reason
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