diff options
author | Robin Gareus <robin@gareus.org> | 2018-10-29 21:52:47 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2018-10-29 21:52:47 +0100 |
commit | 5bd9bf868f615aed5762deca8d732337763920a6 (patch) | |
tree | a7bc26fa25ce2469c78e48bcd18cffaaea02e718 /libs | |
parent | 7d8b93add17620135eadee5029325a3d22512b12 (diff) |
Safe-guard non-rt-safe sidechain operations
This is required by 7d8b93ad for showing error when actively recording.
It also prevents other UIs (OSC, Lua,..) to change re-configuring
sidechain ports/plugins while recording.
Diffstat (limited to 'libs')
-rw-r--r-- | libs/ardour/route.cc | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc index 746abc6efd..41a14b096e 100644 --- a/libs/ardour/route.cc +++ b/libs/ardour/route.cc @@ -2168,6 +2168,10 @@ Route::reorder_processors (const ProcessorList& new_order, ProcessorStreams* err bool Route::add_remove_sidechain (boost::shared_ptr<Processor> proc, bool add) { + if (_session.actively_recording ()) { + return false; + } + boost::shared_ptr<PluginInsert> pi; if ((pi = boost::dynamic_pointer_cast<PluginInsert>(proc)) == 0) { return false; @@ -2230,6 +2234,10 @@ Route::add_remove_sidechain (boost::shared_ptr<Processor> proc, bool add) bool Route::plugin_preset_output (boost::shared_ptr<Processor> proc, ChanCount outs) { + if (_session.actively_recording ()) { + return false; + } + boost::shared_ptr<PluginInsert> pi; if ((pi = boost::dynamic_pointer_cast<PluginInsert>(proc)) == 0) { return false; @@ -2276,6 +2284,9 @@ Route::reset_plugin_insert (boost::shared_ptr<Processor> proc) bool Route::customize_plugin_insert (boost::shared_ptr<Processor> proc, uint32_t count, ChanCount outs, ChanCount sinks) { + if (_session.actively_recording ()) { + return false; + } boost::shared_ptr<PluginInsert> pi; if ((pi = boost::dynamic_pointer_cast<PluginInsert>(proc)) == 0) { return false; |