summaryrefslogtreecommitdiff
path: root/libs/ardour
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2017-04-29 23:02:40 +0200
committerRobin Gareus <robin@gareus.org>2017-04-30 01:22:25 +0200
commit8229124078cef9fac0d4a20bc7958a3148eb092f (patch)
tree2fd5a93c2633d86916568a385a3a586cb22fcefd /libs/ardour
parent73e80b4429c0d6c187acaa270659adc44620e53c (diff)
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.
Diffstat (limited to 'libs/ardour')
-rw-r--r--libs/ardour/ardour/session.h1
-rw-r--r--libs/ardour/session_process.cc2
2 files changed, 1 insertions, 2 deletions
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;
}