slave_speed = 0.0f;
}
-#if 0
+#ifdef DEBUG_SLAVES
+ if (slave_speed != 0.0)
cerr << "delta = " << (int) (dir * this_delta)
<< " speed = " << slave_speed
<< " ts = " << _transport_speed
} else {
average_dir = 1;
}
- // cerr << "avgdelta = " << average_slave_delta*average_dir << endl;
}
}
if (slave_state == Waiting) {
- // cerr << "waiting at " << slave_transport_frame << endl;
+#ifdef DEBUG_SLAVES
+ cerr << "waiting at " << slave_transport_frame << endl;
+#endif
if (slave_transport_frame >= slave_wait_end) {
- // cerr << "\tstart at " << _transport_frame << endl;
-
+#ifdef DEBUG_SLAVES
+ cerr << "\tstart at " << _transport_frame << endl;
+#endif
slave_state = Running;
bool ok = true;
_transport_frame += frame_delta;
} else {
- // cerr << "cannot micro-seek\n";
+ cerr << "cannot micro-seek\n";
/* XXX what? */
}
if (slave_state == Running && _transport_speed == 0.0f) {
- // cerr << "slave starts transport\n";
-
+#ifdef DEBUG_SLAVES
+ cerr << "slave starts transport\n";
+#endif
start_transport ();
}
if (_transport_speed != 0.0f) {
- // cerr << "slave stops transport: " << slave_speed << " frame: " << slave_transport_frame
- // << " tf = " << _transport_frame
- // << endl;
+#ifdef DEBUG_SLAVES
+ cerr << "slave stops transport: " << slave_speed << " frame: " << slave_transport_frame
+ << " tf = " << _transport_frame << endl;
+#endif
if (Config->get_slave_source() == JACK) {
last_stop_frame = _transport_frame;
}
if (slave_transport_frame != _transport_frame) {
- // cerr << "slave stopped, move to " << slave_transport_frame << endl;
+#ifdef DEBUG_SLAVES
+ cerr << "slave stopped, move to " << slave_transport_frame << endl;
+#endif
force_locate (slave_transport_frame, false);
}
float adjusted_speed = slave_speed +
(delta / (adjust_seconds * _current_frame_rate));
-#if 0
+#ifdef DEBUG_DELAY_LOCKED_LOOP
cerr << "adjust using " << delta
- << " towards " << adjusted_speed
- << " ratio = " << adjusted_speed / slave_speed
- << " current = " << _transport_speed
- << " slave @ " << slave_speed
- << endl;
-#endif
+ << " towards " << adjusted_speed
+ << " ratio = " << adjusted_speed / slave_speed
+ << " current = " << _transport_speed
+ << " slave @ " << slave_speed
+ << endl;
+#endif
+
request_transport_speed (adjusted_speed);
-#if 1
if (abs(average_slave_delta) > (long) _slave->resolution()) {
cerr << "average slave delta greater than slave resolution, going to silent motion\n";
goto silent_motion;
}
-#endif
}
}
}
silent_motion:
-
+#ifdef DEBUG_SLAVES
+ cerr << "reached silent_motion:" <<endl;
+#endif
+
if (slave_speed && _transport_speed) {
/* something isn't right, but we should move with the master
noroll:
/* don't move at all */
- cerr << "********* noroll" << endl;
+#ifdef DEBUG_SLAVES
+ cerr << "reached no_roll:" <<endl;
+#endif
no_roll (nframes, 0);
return false;
}