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
This commit is contained in:
Robin Gareus 2012-10-16 20:53:12 +00:00
parent 64b0efdf9f
commit b40b353264

View file

@ -653,7 +653,10 @@ Session::track_slave_state (float slave_speed, framepos_t slave_transport_frame,
} else { } 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(); 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) { if (slave_transport_frame != _transport_frame) {
locate (slave_transport_frame, false, false); locate (slave_transport_frame, false, false);
} }
_slave_state = Running;
} }
break; break;
@ -713,9 +717,6 @@ Session::track_slave_state (float slave_speed, framepos_t slave_transport_frame,
cerr << "cannot micro-seek\n"; cerr << "cannot micro-seek\n";
/* XXX what? */ /* 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); force_locate (slave_transport_frame, false);
} }
_slave_state = Stopped; reset_slave_state();
} }
} }