summaryrefslogtreecommitdiff
path: root/libs/ardour/session_process.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2019-02-26 09:02:18 -0700
committerPaul Davis <paul@linuxaudiosystems.com>2019-02-26 09:02:42 -0700
commit5fad2efa107b93da7f2ff3c851de1819f55af801 (patch)
tree5cb38c7c433ce52ea8ded3b6d5c562cd8dbbaa7d /libs/ardour/session_process.cc
parenteefc2d774cf80ea6b04573137bfb18cfcf33f607 (diff)
reorder call to ::track_transport_master() so that delta is computed correctly
Diffstat (limited to 'libs/ardour/session_process.cc')
-rw-r--r--libs/ardour/session_process.cc7
1 files changed, 5 insertions, 2 deletions
diff --git a/libs/ardour/session_process.cc b/libs/ardour/session_process.cc
index 81e6d12d7f..bfd6c44291 100644
--- a/libs/ardour/session_process.cc
+++ b/libs/ardour/session_process.cc
@@ -1077,12 +1077,15 @@ Session::follow_transport_master (pframes_t nframes)
slave_speed = tmm.get_current_speed_in_process_context();
slave_transport_sample = tmm.get_current_position_in_process_context ();
+
+ track_transport_master (slave_speed, slave_transport_sample);
+
+ /* transport sample may have been moved during ::track_transport_master() */
+
delta = _transport_sample - slave_transport_sample;
DEBUG_TRACE (DEBUG::Slave, string_compose ("session at %1, master at %2, delta: %3 res: %4\n", _transport_sample, slave_transport_sample, delta, tmm.current()->resolution()));
- track_transport_master (slave_speed, slave_transport_sample);
-
if (transport_master_tracking_state == Running) {
if (!actively_recording() && abs (delta) > tmm.current()->resolution()) {