diff options
author | Valeriy Kamyshniy <vkamyshniy@wavesglobal.com> | 2015-04-02 21:51:23 +0300 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2015-04-02 16:32:41 -0400 |
commit | 21193c6fcab5160f4514b8f071e6cd288add033c (patch) | |
tree | 669c179074fd7e222be22f06c958e99f74360bd3 /libs/ardour/ardour/session_route.h | |
parent | 5001a680fc23469698c914cdd85372f19f81f25c (diff) |
[Summary] Adding option to avoid sorting the routs in Session::foreach method. Now ARDOUR_UI::every_second do not spend time for unnecessary sorting when calling update_disk_space().
[Reviewed] Paul Davis
[Required review] YPozdnyakov, GZharun
Diffstat (limited to 'libs/ardour/ardour/session_route.h')
-rw-r--r-- | libs/ardour/ardour/session_route.h | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/libs/ardour/ardour/session_route.h b/libs/ardour/ardour/session_route.h index 19d8614d1b..61a5737afa 100644 --- a/libs/ardour/ardour/session_route.h +++ b/libs/ardour/ardour/session_route.h @@ -30,27 +30,29 @@ namespace ARDOUR { template<class T> void -Session::foreach_route (T *obj, void (T::*func)(Route&)) +Session::foreach_route (T *obj, void (T::*func)(Route&), bool sort) { boost::shared_ptr<RouteList> r = routes.reader(); RouteList public_order (*r); - RoutePublicOrderSorter cmp; - - public_order.sort (cmp); - + + if (sort) { + public_order.sort (RoutePublicOrderSorter()); + } + for (RouteList::iterator i = public_order.begin(); i != public_order.end(); i++) { (obj->*func) (**i); } } template<class T> void -Session::foreach_route (T *obj, void (T::*func)(boost::shared_ptr<Route>)) +Session::foreach_route (T *obj, void (T::*func)(boost::shared_ptr<Route>), bool sort) { boost::shared_ptr<RouteList> r = routes.reader(); RouteList public_order (*r); - RoutePublicOrderSorter cmp; - public_order.sort (cmp); + if (sort) { + public_order.sort (RoutePublicOrderSorter()); + } for (RouteList::iterator i = public_order.begin(); i != public_order.end(); i++) { (obj->*func) (*i); @@ -58,13 +60,14 @@ Session::foreach_route (T *obj, void (T::*func)(boost::shared_ptr<Route>)) } template<class T, class A> void -Session::foreach_route (T *obj, void (T::*func)(Route&, A), A arg1) +Session::foreach_route (T *obj, void (T::*func)(Route&, A), A arg1, bool sort) { boost::shared_ptr<RouteList> r = routes.reader(); RouteList public_order (*r); - RoutePublicOrderSorter cmp; - - public_order.sort (cmp); + + if (sort) { + public_order.sort (RoutePublicOrderSorter()); + } for (RouteList::iterator i = public_order.begin(); i != public_order.end(); i++) { (obj->*func) (**i, arg1); |