diff options
Diffstat (limited to 'libs/ardour/session_transport.cc')
-rw-r--r-- | libs/ardour/session_transport.cc | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/libs/ardour/session_transport.cc b/libs/ardour/session_transport.cc index de836b79da..52f6346789 100644 --- a/libs/ardour/session_transport.cc +++ b/libs/ardour/session_transport.cc @@ -1248,33 +1248,33 @@ Session::update_latency_compensation (bool with_stop, bool abort) boost::shared_ptr<RouteList> r = routes.reader (); for (RouteList::iterator i = r->begin(); i != r->end(); ++i) { + if (with_stop) { (*i)->handle_transport_stopped (abort, (post_transport_work & PostTransportLocate), (!(post_transport_work & PostTransportLocate) || pending_locate_flush)); } - + nframes_t old_latency = (*i)->signal_latency (); nframes_t track_latency = (*i)->update_total_latency (); - + if (old_latency != track_latency) { + (*i)->update_port_total_latencies (); update_jack = true; } - - if (!(*i)->hidden() && ((*i)->active())) { + + if (!(*i)->hidden() && ((*i)->active())) { _worst_track_latency = max (_worst_track_latency, track_latency); } + } + + if (update_jack) { + _engine.update_total_latencies (); } for (RouteList::iterator i = r->begin(); i != r->end(); ++i) { (*i)->set_latency_delay (_worst_track_latency); } - /* tell JACK to play catch up */ - - if (update_jack) { - _engine.update_total_latencies (); - } - set_worst_io_latencies (); /* reflect any changes in latencies into capture offsets |