push sorted Stripable order back to PI (for control surfaces)
authorRobin Gareus <robin@gareus.org>
Wed, 18 Jan 2017 04:14:48 +0000 (05:14 +0100)
committerRobin Gareus <robin@gareus.org>
Wed, 18 Jan 2017 04:14:48 +0000 (05:14 +0100)
gtk2_ardour/editor_routes.cc
gtk2_ardour/mixer_ui.cc
gtk2_ardour/route_sorter.h

index 5c32330139d56fe05f87664bb25177e29e50d3cf..fe1e5af62b56405c2ad97a0aa4450441983464cc 100644 (file)
@@ -1079,6 +1079,14 @@ EditorRoutes::sync_presentation_info_from_treeview ()
                                change = true;
                        }
                }
+               if (change) {
+                       n = 0;
+                       for (OrderingKeys::iterator sr = sorted.begin(); sr != sorted.end(); ++sr, ++n) {
+                               if (sr->stripable->presentation_info().order() != n) {
+                                       sr->stripable->set_presentation_order (n, false);
+                               }
+                       }
+               }
        }
 
        if (change) {
index 4f87e04c7a1fd90cfd62d5351b6d2796c330c5e1..766f39ddf3b4010bd2c6cc68c1c7e4703aef40b7 100644 (file)
@@ -761,6 +761,14 @@ Mixer_UI::sync_presentation_info_from_treeview ()
                                change = true;
                        }
                }
+               if (change) {
+                       n = 0;
+                       for (OrderingKeys::iterator sr = sorted.begin(); sr != sorted.end(); ++sr, ++n) {
+                               if (sr->stripable->presentation_info().order() != n) {
+                                       sr->stripable->set_presentation_order (n, false);
+                               }
+                       }
+               }
        }
 
        if (change) {
index bba7424dc1689560f616a2b34179499ad83d22aa..bf054b1ad4ab3f46d7512131588c7ddf78925d27 100644 (file)
@@ -30,9 +30,11 @@ struct OrderKeys {
     uint32_t old_display_order;
     uint32_t new_display_order;
     uint32_t compare_order;
+               boost::shared_ptr<ARDOUR::Stripable> stripable;
 
        OrderKeys (uint32_t ok, boost::shared_ptr<ARDOUR::Stripable> s, uint32_t cmp_max)
                : old_display_order (ok)
+               , stripable (s)
        {
                new_display_order = s->presentation_info().order();
                compare_order = new_display_order;