Fix vari-speed and non-locked slave modes

A transport-speed-change is no reason to skip processing.

Prior to this change cannot_process() silently skipped in the process
cycle of the speed-change (which may have been every process-cycle),
without moving the transport or doing any processing.
This commit is contained in:
Robin Gareus 2017-04-29 23:02:40 +02:00
parent 73e80b4429
commit 8229124078
2 changed files with 1 additions and 2 deletions

View file

@ -1443,7 +1443,6 @@ class LIBARDOUR_API Session : public PBD::StatefulDestructible, public PBD::Scop
static const PostTransportWork ProcessCannotProceedMask =
PostTransportWork (
PostTransportInputChange|
PostTransportSpeed|
PostTransportReverse|
PostTransportCurveRealloc|
PostTransportAudition|

View file

@ -674,7 +674,7 @@ Session::follow_slave (pframes_t nframes)
}
if (_slave_state == Running && !non_realtime_work_pending()) {
if (_slave_state == Running && 0 == (post_transport_work () & ~PostTransportSpeed)) {
/* speed is set, we're locked, and good to go */
return true;
}