diff options
author | Robin Gareus <robin@gareus.org> | 2015-04-27 05:01:07 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2015-04-27 17:19:57 +0200 |
commit | 36ee1681fe87d3f1d39fa52727e1dee5e2dd1322 (patch) | |
tree | a7594a7e1dd09e783d095992cc4e1cabbf1218f0 /libs/ardour | |
parent | b7a711e385a6a8cbd4d170bae449b4785f890b23 (diff) |
special case [optimize] RT processor reorder.
realtime processor re-ordering does not require
a route resort nor latency compensation update.
(which were done as callback in same thread)
Diffstat (limited to 'libs/ardour')
-rw-r--r-- | libs/ardour/ardour/types.h | 3 | ||||
-rw-r--r-- | libs/ardour/route.cc | 2 | ||||
-rw-r--r-- | libs/ardour/session_transport.cc | 6 |
3 files changed, 9 insertions, 2 deletions
diff --git a/libs/ardour/ardour/types.h b/libs/ardour/ardour/types.h index 3f95d0c239..a43eb0125d 100644 --- a/libs/ardour/ardour/types.h +++ b/libs/ardour/ardour/types.h @@ -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) diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc index a6a51c395e..5df1be71cb 100644 --- a/libs/ardour/route.cc +++ b/libs/ardour/route.cc @@ -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 (); } } diff --git a/libs/ardour/session_transport.cc b/libs/ardour/session_transport.cc index b392dabcbf..e953271ead 100644 --- a/libs/ardour/session_transport.cc +++ b/libs/ardour/session_transport.cc @@ -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; } |