From 038c391d55ba3f78080c86ab09c3ad909f1b427b Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Fri, 21 Jul 2017 23:07:51 +0200 Subject: More non-rt calls to VCA - fixes VCA automation writing This calls for a unified API to invoke Automatable methods ::transport_located() and ::transport_stopped() on Stripables, rather than indirectly calling it via Route::non_realtime_locate(), Route::nonrealtime_handle_transport_stopped() --- libs/ardour/session_transport.cc | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'libs/ardour/session_transport.cc') diff --git a/libs/ardour/session_transport.cc b/libs/ardour/session_transport.cc index faf6458b16..4ee2945579 100644 --- a/libs/ardour/session_transport.cc +++ b/libs/ardour/session_transport.cc @@ -454,7 +454,10 @@ Session::butler_transport_work () } (*i)->non_realtime_locate (_transport_frame); } - + VCAList v = _vca_manager->vcas (); + for (VCAList::const_iterator i = v.begin(); i != v.end(); ++i) { + (*i)->transport_located (_transport_frame); + } } if (ptw & PostTransportAdjustCaptureBuffering) { @@ -503,6 +506,10 @@ Session::butler_transport_work () goto restart; } } + VCAList v = _vca_manager->vcas (); + for (VCAList::const_iterator i = v.begin(); i != v.end(); ++i) { + (*i)->transport_located (_transport_frame); + } } } @@ -608,6 +615,12 @@ Session::non_realtime_locate () (*i)->non_realtime_locate (_transport_frame); } } + { + VCAList v = _vca_manager->vcas (); + for (VCAList::const_iterator i = v.begin(); i != v.end(); ++i) { + (*i)->transport_located (_transport_frame); + } + } _scene_changer->locate (_transport_frame); @@ -888,6 +901,13 @@ Session::non_realtime_stop (bool abort, int on_entry, bool& finished) } } + { + VCAList v = _vca_manager->vcas (); + for (VCAList::const_iterator i = v.begin(); i != v.end(); ++i) { + (*i)->transport_located (_transport_frame); + } + } + have_looped = false; /* don't bother with this stuff if we're disconnected from the engine, -- cgit v1.2.3