}
void
-Session::track_slave_state(
- float slave_speed,
- nframes_t slave_transport_frame,
- nframes_t this_delta,
- bool starting)
+Session::track_slave_state (float slave_speed, nframes_t slave_transport_frame, nframes_t this_delta, bool starting)
{
if (slave_speed != 0.0f) {
case Stopped:
if (_slave->requires_seekahead()) {
slave_wait_end = slave_transport_frame + _current_frame_rate;
+ DEBUG_TRACE (DEBUG::Slave, string_compose ("slave stopped, but running, requires seekahead to %1\n", slave_wait_end));
locate (slave_wait_end, false, false);
slave_state = Waiting;
starting = true;
break;
case Waiting:
- break;
-
- default:
- break;
+ DEBUG_TRACE (DEBUG::Slave, string_compose ("slave waiting at %1\n", slave_transport_frame));
- }
+ if (slave_transport_frame >= slave_wait_end) {
- if (slave_state == Waiting) {
+ DEBUG_TRACE (DEBUG::Slave, string_compose ("slave start at %1 vs %2\n", slave_transport_frame, _transport_frame));
- #ifdef DEBUG_SLAVES
- cerr << "waiting at " << slave_transport_frame << endl;
- #endif
- if (slave_transport_frame >= slave_wait_end) {
-#ifdef DEBUG_SLAVES
- cerr << "\tstart at " << _transport_frame << endl;
-#endif
slave_state = Running;
bool ok = true;
average_slave_delta = 0L;
this_delta = 0;
}
+ break;
+
+ default:
+ break;
}
if (slave_state == Running && _transport_speed == 0.0f) {