update_latency_compensation() and resort_routes() are expensive and
were called for every individual change.
void
Session::listen_position_changed ()
{
- boost::shared_ptr<RouteList> r = routes.reader ();
-
- for (RouteList::iterator i = r->begin(); i != r->end(); ++i) {
- (*i)->listen_position_changed ();
+ {
+ boost::shared_ptr<RouteList> r = routes.reader ();
+ PBD::Unwinder<bool> uw (ignore_route_processor_changes, true);
+ for (RouteList::iterator i = r->begin(); i != r->end(); ++i) {
+ (*i)->listen_position_changed ();
+ }
}
+ route_processors_changed (RouteProcessorChange ());
}
void