From b40b35326488c881ac79d4df96fec00edc6845c9 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Tue, 16 Oct 2012 20:53:12 +0000 Subject: prepare for non-seekahead [LTC] slave. fix state machine locate() will call realtime_stop which will reset the slave-state. git-svn-id: svn://localhost/ardour2/branches/3.0@13290 d708f5d6-7413-0410-9779-e7cbd77b26cf --- libs/ardour/session_process.cc | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'libs/ardour') diff --git a/libs/ardour/session_process.cc b/libs/ardour/session_process.cc index 273a40366d..4af6b10b89 100644 --- a/libs/ardour/session_process.cc +++ b/libs/ardour/session_process.cc @@ -653,7 +653,10 @@ Session::track_slave_state (float slave_speed, framepos_t slave_transport_frame, } else { - _slave_state = Running; + DEBUG_TRACE (DEBUG::Slave, string_compose ("slave stopped -> running at %1\n", slave_transport_frame)); + + memset (delta_accumulator, 0, sizeof (int32_t) * delta_accumulator_size); + average_slave_delta = 0L; Location* al = _locations->auto_loop_location(); @@ -665,6 +668,7 @@ Session::track_slave_state (float slave_speed, framepos_t slave_transport_frame, if (slave_transport_frame != _transport_frame) { locate (slave_transport_frame, false, false); } + _slave_state = Running; } break; @@ -713,9 +717,6 @@ Session::track_slave_state (float slave_speed, framepos_t slave_transport_frame, cerr << "cannot micro-seek\n"; /* XXX what? */ } - - memset (delta_accumulator, 0, sizeof (int32_t) * delta_accumulator_size); - average_slave_delta = 0L; } } @@ -738,7 +739,7 @@ Session::track_slave_state (float slave_speed, framepos_t slave_transport_frame, force_locate (slave_transport_frame, false); } - _slave_state = Stopped; + reset_slave_state(); } } -- cgit v1.2.3