summaryrefslogtreecommitdiff
path: root/libs/ardour
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2018-07-31 22:24:15 +0200
committerRobin Gareus <robin@gareus.org>2018-07-31 22:24:45 +0200
commit465ceb63fa6f7a031774e32be6044e6f49b1b561 (patch)
tree9c88448f337666e3e24d827cb6bd9fd724eb10fa /libs/ardour
parent1d55ac1706fe6427252493521fe42293135939ab (diff)
Prepare for non-bypassable plugins (Mixbus channelstrip)
Diffstat (limited to 'libs/ardour')
-rw-r--r--libs/ardour/ardour/plugin_insert.h4
-rw-r--r--libs/ardour/luabindings.cc2
-rw-r--r--libs/ardour/plugin_insert.cc9
3 files changed, 15 insertions, 0 deletions
diff --git a/libs/ardour/ardour/plugin_insert.h b/libs/ardour/ardour/plugin_insert.h
index bec49616a2..a0dd8618f4 100644
--- a/libs/ardour/ardour/plugin_insert.h
+++ b/libs/ardour/ardour/plugin_insert.h
@@ -115,6 +115,10 @@ public:
#ifdef MIXBUS
bool is_channelstrip () const;
+ bool is_nonbypassable () const;
+#else
+ bool is_channelstrip () const { return false; }
+ bool is_nonbypassable () const { return false; }
#endif
void set_input_map (uint32_t, ChanMapping);
diff --git a/libs/ardour/luabindings.cc b/libs/ardour/luabindings.cc
index 544ba05037..8b88007b9b 100644
--- a/libs/ardour/luabindings.cc
+++ b/libs/ardour/luabindings.cc
@@ -1462,6 +1462,8 @@ LuaBindings::common (lua_State* L)
.addFunction ("type", &PluginInsert::type)
.addFunction ("signal_latency", &PluginInsert::signal_latency)
.addFunction ("get_count", &PluginInsert::get_count)
+ .addFunction ("is_channelstrip", &PluginInsert::is_channelstrip)
+ .addFunction ("is_nonbypassable", &PluginInsert::is_channelstrip)
.endClass ()
.deriveWSPtrClass <ReadOnlyControl, PBD::StatefulDestructible> ("ReadOnlyControl")
diff --git a/libs/ardour/plugin_insert.cc b/libs/ardour/plugin_insert.cc
index 7ce8ea547f..0ad1de02a9 100644
--- a/libs/ardour/plugin_insert.cc
+++ b/libs/ardour/plugin_insert.cc
@@ -639,6 +639,11 @@ PluginInsert::activate ()
void
PluginInsert::deactivate ()
{
+#ifdef MIXBUS
+ if (is_nonbypassable ()) {
+ return;
+ }
+#endif
_timing_stats.reset ();
Processor::deactivate ();
@@ -1551,6 +1556,10 @@ bool
PluginInsert::is_channelstrip () const {
return _plugins.front()->is_channelstrip();
}
+bool
+PluginInsert::is_nonbypassable () const {
+ return _plugins.front()->is_nonbypassable ();
+}
#endif
bool