summaryrefslogtreecommitdiff
path: root/libs/ardour/transport_fsm.cc
AgeCommit message (Collapse)Author
2020-03-13adjust TransportFSM to avoid declick to locate if ↵Paul Davis
DiskReader::_no_disk_output is set Under those conditions, the DR will not execute a code path that will cause the declick to take place and therefore the declick will never finish
2020-02-24fix thinko when handling set_speed (0.0)Paul Davis
Code only handled a reversing->rolling path, not reversing->stopped
2020-02-21make "reversing" back into a DirectionState and prohibit speed changes while ↵Paul Davis
reversing
2020-02-20change transport API, session API, transportFSM API to move reverse ↵Paul Davis
management and motion state (partially) into TFSM
2020-01-23tentative fix for stop-transport not working after a locate at loop endPaul Davis
2020-01-18fix mistaken "do not roll" conclusion in TransportFSM::compute_should_roll()Paul Davis
2020-01-18fix broken-ness caused by bad initialization of a StopTransport event in ↵Paul Davis
TransportFSM
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
2019-12-17a new stop command while in the middle of declick-to-stop is not a bad ↵Paul Davis
transition
2019-12-08correct logic errors related to roll-after-locate in TransportFSMPaul Davis
This might have broken some other subtle behavior, but testing hasn't shown it thus far
2019-11-23fix locate-while-rollingPaul Davis
2019-11-22redesign of declicking and fades around loop boundariesPaul Davis
2019-11-18fix transport FSM to stop first and declick laterPaul Davis
2019-11-15better debugging messagePaul Davis
2019-11-15consolidate setting of "get roll after locate" in TFSMPaul Davis
2019-11-06do not transition "back" to Rolling by calling start_transport() if a locate ↵Paul Davis
was for loop-end We never stopped the transport, so there's no reason to start it again. Doing so causes alignment problems because all tracks have their ::run() ranges reinitialized
2019-11-06fix unconditional note resolution during DiskReader::realtime_locate()Paul Davis
When looping, we do not want to resolve notes at the end of the loop via ::realtime_locate() - ::get_midi_playback() has already taken care of this. But when not looping, we need this. So, add an argument to tell all interested parties whether the locate is for a loop end or not
2019-11-04fix a bad transition in the transportFSM.Paul Davis
2019-11-02allow explicit "with-roll" argument to a locate to override ↵Paul Davis
Session::should_roll_after_locate()
2019-11-01transportFSM: when locating due to end-of-loop, skip declick and do not ↵Paul Davis
transition states
2019-10-29fix handling of deferred events in transportFSMPaul Davis
tfsm events live on intrusive lists, with only 1 hook, which means they can only be on one list at a time, and cannot be deleted while part of the list. This wasn't being addressed properly when deferring (and undeferring) events.
2019-09-22various changes to transportFSM, mostly to try to keep track of whether to ↵Paul Davis
roll-after-locate (more) accurately
2019-09-20better initial valuePaul Davis
2019-09-20remove debug outputPaul Davis
2019-09-20fix crash when doing rapid (ongoing-locate-interrupting) locatesPaul Davis
2019-09-20move TransportFSM::enqueue() into .cc filePaul Davis
2019-09-20at transport stop, reset FSM's idea of the last locate target (also removes ↵Paul Davis
const from method)
2019-09-20const-ify TransportFSMPaul Davis
2019-09-20rename TransportFSM::FSMEvent to TransportFSM::Event (c/o the Department of ↵Paul Davis
Redundancy Department)
2019-09-20use boost::intrusive to manage FSM events (this is all RT code)Paul Davis
2019-09-20expand commentPaul Davis
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-17add finite state machine to control/manage transport statePaul Davis