-void
-Session::follow_slave_silently (pframes_t nframes, float slave_speed)
-{
- if (slave_speed && _transport_speed) {
-
- /* something isn't right, but we should move with the master
- for now.
- */
-
- bool need_butler = false;
-
- silent_process_routes (nframes, need_butler);
-
- get_track_statistics ();
-
- if (need_butler) {
- DEBUG_TRACE (DEBUG::Butler, "f-slave-silently: session needs butler, call it\n");
- _butler->summon ();
- }
-
- int32_t frames_moved;
-
- if (locate_pending()) {
- frames_moved = 0;
- } else {
- frames_moved = (int32_t) floor (_transport_speed * nframes);
- }
-
- if (frames_moved < 0) {
- decrement_transport_position (-frames_moved);
- } else if (frames_moved) {
- increment_transport_position (frames_moved);
- }
-
- framepos_t const stop_limit = compute_stop_limit ();
- maybe_stop (stop_limit);
- }
-}
-