summaryrefslogtreecommitdiff
path: root/libs/ardour/session_process.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2019-03-03 13:16:30 -0700
committerPaul Davis <paul@linuxaudiosystems.com>2019-03-03 13:16:30 -0700
commit033699a4cdbbe1d9da7a6d01222e661cd8e500ae (patch)
tree4f0f110a33e6a447d732c30466fc2bf0a09a0821 /libs/ardour/session_process.cc
parent64b6ea4341cb2f26fcfbccbf239d409807382eef (diff)
remove conditional surrounding wait-for-master-to-catch-us logic
Diffstat (limited to 'libs/ardour/session_process.cc')
-rw-r--r--libs/ardour/session_process.cc27
1 files changed, 6 insertions, 21 deletions
diff --git a/libs/ardour/session_process.cc b/libs/ardour/session_process.cc
index e8258dc4f2..a99fcb9ded 100644
--- a/libs/ardour/session_process.cc
+++ b/libs/ardour/session_process.cc
@@ -1129,28 +1129,13 @@ Session::track_transport_master (float slave_speed, samplepos_t slave_transport_
switch (transport_master_tracking_state) {
case Stopped:
- if (master->requires_seekahead()) {
- master_wait_end = slave_transport_sample + master->seekahead_distance ();
- DEBUG_TRACE (DEBUG::Slave, string_compose ("slave stopped, but running, requires seekahead to %1\n", master_wait_end));
- /* we can call locate() here because we are in process context */
- if (micro_locate (master_wait_end - _transport_sample) != 0) {
- locate (master_wait_end, false, false);
- }
- transport_master_tracking_state = Waiting;
-
- } else {
-
- DEBUG_TRACE (DEBUG::Slave, string_compose ("slave stopped -> running at %1\n", slave_transport_sample));
-
- if (slave_transport_sample != _transport_sample) {
- DEBUG_TRACE (DEBUG::Slave, string_compose ("require locate to run. eng: %1 -> sl: %2\n", _transport_sample, slave_transport_sample));
- if (micro_locate (slave_transport_sample - _transport_sample) != 0) {
- locate (slave_transport_sample, false, false);
- }
- }
- transport_master_tracking_state = Running;
+ master_wait_end = slave_transport_sample + worst_latency_preroll() + master->seekahead_distance ();
+ DEBUG_TRACE (DEBUG::Slave, string_compose ("slave stopped, but running, requires seekahead to %1, now WAITING\n", master_wait_end));
+ /* we can call locate() here because we are in process context */
+ if (micro_locate (master_wait_end - _transport_sample) != 0) {
+ locate (master_wait_end, false, false);
}
- break;
+ transport_master_tracking_state = Waiting;
case Waiting:
default: