special case [optimize] RT processor reorder.
authorRobin Gareus <robin@gareus.org>
Mon, 27 Apr 2015 03:01:07 +0000 (05:01 +0200)
committerRobin Gareus <robin@gareus.org>
Mon, 27 Apr 2015 15:19:57 +0000 (17:19 +0200)
realtime processor re-ordering does not require
a route resort nor latency compensation update.
(which were done as callback in same thread)

libs/ardour/ardour/types.h
libs/ardour/route.cc
libs/ardour/session_transport.cc

index 3f95d0c2390bc5a2a35d357664eb7d682dcb573c..a43eb0125dc49c36ec064aa5c6ce65abdc2422cd 100644 (file)
@@ -557,7 +557,8 @@ namespace ARDOUR {
        struct RouteProcessorChange {
                enum Type {
                        GeneralChange = 0x0,
-                       MeterPointChange = 0x1
+                       MeterPointChange = 0x1,
+                       RealTimeChange = 0x2
                };
 
                RouteProcessorChange () : type (GeneralChange), meter_visibly_changed (true)
index a6a51c395ea98d7cd37594cfde1972ef9b2cbfcb..5df1be71cb6b634b715b2ae9ff17a15d09479538 100644 (file)
@@ -3407,7 +3407,7 @@ Route::apply_processor_changes_rt ()
                }
        }
        if (changed) {
-               processors_changed (RouteProcessorChange ()); /* EMIT SIGNAL */
+               processors_changed (RouteProcessorChange (RouteProcessorChange::RealTimeChange)); /* EMIT SIGNAL */
                set_processor_positions ();
        }
 }
index b392dabcbf536280c842a7f70b76ba923351d54c..e953271ead967e36a1edbd95a0c884f8a06cd5f1 100644 (file)
@@ -1826,6 +1826,12 @@ Session::route_processors_changed (RouteProcessorChange c)
        }
 
        if (c.type == RouteProcessorChange::MeterPointChange) {
+               set_dirty ();
+               return;
+       }
+
+       if (c.type == RouteProcessorChange::RealTimeChange) {
+               set_dirty ();
                return;
        }