fix behaviour when opening up a gap to insert new Stripables.
authorPaul Davis <paul@linuxaudiosystems.com>
Sun, 3 Jul 2016 17:22:47 +0000 (13:22 -0400)
committerPaul Davis <paul@linuxaudiosystems.com>
Sun, 3 Jul 2016 17:22:52 +0000 (13:22 -0400)
Need to include all stripables, not just routes, and need to include master since editor (and maybe others) opt
to use the presentation_info().order() value for it

libs/ardour/session.cc

index 8ec63f57141916973273ed910bc5f92b668a2910..2218ef5810e8904a430b78db0122692d08cdd358 100644 (file)
@@ -2938,17 +2938,18 @@ Session::ensure_route_presentation_info_gap (PresentationInfo::order_t first_new
        /* create a gap in the presentation info to accomodate @param how_many
         * new objects.
         */
-       boost::shared_ptr <RouteList> rd = routes.reader();
+       StripableList sl;
+       get_stripables (sl);
 
-       for (RouteList::iterator ri = rd->begin(); ri != rd->end(); ++ri) {
-               boost::shared_ptr<Route> rt (*ri);
+       for (StripableList::iterator si = sl.begin(); si != sl.end(); ++si) {
+               boost::shared_ptr<Stripable> s (*si);
 
-               if (rt->presentation_info().special()) {
+               if (s->is_monitor() || s->is_auditioner()) {
                        continue;
                }
 
-               if (rt->presentation_info().order () >= first_new_order) {
-                       rt->set_presentation_order (rt->presentation_info().order () + how_many);
+               if (s->presentation_info().order () >= first_new_order) {
+                       s->set_presentation_order (s->presentation_info().order () + how_many);
                }
        }
 }