summaryrefslogtreecommitdiff
path: root/libs/ardour/session_transport.cc
AgeCommit message (Collapse)Author
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.
2013-09-19switch from JACK_Slave to Engine_SlavePaul Davis
2013-09-05move MidiPortManager from AudioEngine to SessionPaul Davis
This makes the responsibilities and ownership of non-Route related MIDI ports more clear, and removes a few wierd bits of code. It also ensures that open/close/open on the same session will retain connections for those MIDI ports
2013-08-09don't waste time with sending MTC or MMC after stop if we're disconnected ↵Paul Davis
from the engine. Also, add note about threading oddities with send_mmc_locate() being called from ::non_realtime_stop() which gets called from a *realtime* context.
2013-08-07major redesign of MIDI port heirarchy and management (part 2)Paul Davis
2013-08-05fix conflicts after merge with masterPaul Davis
2013-08-02WIP - Experimenting with an alternative clock generating algoMichael Fisher
- Transport debug output (tracing where transport_frame is updated
2013-08-01full compilation and linking (coding not finished, will not run)Paul Davis
2013-07-25most of libardour now actually compilesPaul Davis
2013-04-06rename Route::is_hidden() to Route::is_auditioner() and Route::Hidden to ↵Paul Davis
Route::Auditioner. this has been the meaning of these terms for years now and it would be better to make it explicit
2013-01-16remove debug outputPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@13850 d708f5d6-7413-0410-9779-e7cbd77b26cf
2013-01-16when stopping transport, revert _default_transport_speed to 1.0 if current ↵Paul Davis
speed is reversed (should fix #5264) git-svn-id: svn://localhost/ardour2/branches/3.0@13848 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-12-30fix vari-speed stuck at zero and playing backwards.Robin Gareus
git-svn-id: svn://localhost/ardour2/branches/3.0@13747 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-12-23Revert "fix for problem when reverse playback hits 00:00:00:00 (may be ↵Robin Gareus
incomplete)" This reverts commit 13708 -- because it's the wrong approach to fix this. git-svn-id: svn://localhost/ardour2/branches/3.0@13713 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-12-21fix for problem when reverse playback hits 00:00:00:00 (may be incomplete)Robin Gareus
should fix #5221 git-svn-id: svn://localhost/ardour2/branches/3.0@13708 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-12-14merge robin gareus' libltc into ardour source tree for conveniencePaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@13665 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-16don't do a pending save if slave is syncing.Robin Gareus
13:00 < rgareus> When a slave does initial sync, it sets speed=0, pos=XXX (required by session_process.cc state-machine to init) 13:01 < rgareus> This triggers a locate(roll=false) which in turn triggers a realtime_stop() which in turn triggers a non_realtime_stop(). [..] 13:06 < rgareus> las: the problem I have with non_realtime_stop() is that it does save a pending state IFF get_record_enabled() is true. 13:06 < rgareus> The save can take ages (seconds), which will void the initial sync of the slave. 13:07 < rgareus> The slave enters a live-lock: sync, save, re-sync, save... 13:07 < las> rgareus: understood 13:07 < rgareus> las: I propose to workaround this: only save pending state if there is no slave or the slave is not locked. 13:07 < las> rgareus: another reason why recording + slave == bad idea :( 13:07 < las> rgareus: but yes, that sounds fine to me 13:07 < rgareus> AFICT this is not harmful. It only affects pre-record settings. 13:07 < rgareus> 'did_record' is used to save a full state after each recording. git-svn-id: svn://localhost/ardour2/branches/3.0@13288 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-10-12tweaks to be ready for more information timecode display in Timecode clock modePaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@13264 d708f5d6-7413-0410-9779-e7cbd77b26cf