summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2018-10-29 21:52:47 +0100
committerRobin Gareus <robin@gareus.org>2018-10-29 21:52:47 +0100
commit5bd9bf868f615aed5762deca8d732337763920a6 (patch)
treea7bc26fa25ce2469c78e48bcd18cffaaea02e718 /libs
parent7d8b93add17620135eadee5029325a3d22512b12 (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.cc11
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;