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:
@@ -1443,7 +1443,6 @@ class LIBARDOUR_API Session : public PBD::StatefulDestructible, public PBD::Scop
|
||||
static const PostTransportWork ProcessCannotProceedMask =
|
||||
PostTransportWork (
|
||||
PostTransportInputChange|
|
||||
PostTransportSpeed|
|
||||
PostTransportReverse|
|
||||
PostTransportCurveRealloc|
|
||||
PostTransportAudition|
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user