From 033699a4cdbbe1d9da7a6d01222e661cd8e500ae Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Sun, 3 Mar 2019 13:16:30 -0700 Subject: [PATCH] remove conditional surrounding wait-for-master-to-catch-us logic --- libs/ardour/session_process.cc | 27 ++++++--------------------- 1 file 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: