From 8229124078cef9fac0d4a20bc7958a3148eb092f Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Sat, 29 Apr 2017 23:02:40 +0200 Subject: 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. --- libs/ardour/ardour/session.h | 1 - libs/ardour/session_process.cc | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) (limited to 'libs') diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h index 4ab9fc605b..0ade34a0e7 100644 --- a/libs/ardour/ardour/session.h +++ b/libs/ardour/ardour/session.h @@ -1443,7 +1443,6 @@ class LIBARDOUR_API Session : public PBD::StatefulDestructible, public PBD::Scop static const PostTransportWork ProcessCannotProceedMask = PostTransportWork ( PostTransportInputChange| - PostTransportSpeed| PostTransportReverse| PostTransportCurveRealloc| PostTransportAudition| diff --git a/libs/ardour/session_process.cc b/libs/ardour/session_process.cc index 766ce395e5..7788eb2b97 100644 --- a/libs/ardour/session_process.cc +++ b/libs/ardour/session_process.cc @@ -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; } -- cgit v1.2.3