From 541ea5ccad4d84563f75b16a885d20b8590f083a Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Fri, 21 Feb 2020 15:48:53 -0700 Subject: [PATCH] avoid double-locate call when locating-while-stopped Session::locate() used TransportFSM::stopped() to determine if realtime stop was required. But this would return false, since the motion state at that time is WaitingForLocate. So invert the test and use !TransportFSM::rolling --- libs/ardour/session_transport.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/ardour/session_transport.cc b/libs/ardour/session_transport.cc index 2cc62118b5..80d4cda0ea 100644 --- a/libs/ardour/session_transport.cc +++ b/libs/ardour/session_transport.cc @@ -228,7 +228,7 @@ Session::locate (samplepos_t target_sample, bool with_roll, bool with_flush, boo /* it is important here that we use the internal state of the transport FSM, not the public facing result of ::transport_rolling() */ - bool transport_was_stopped = _transport_fsm->stopped(); + bool transport_was_stopped = !_transport_fsm->rolling(); if (!transport_was_stopped && (!auto_play_legal || !config.get_auto_play()) &&