diff options
author | Robin Gareus <robin@gareus.org> | 2018-07-31 22:24:15 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2018-07-31 22:24:45 +0200 |
commit | 465ceb63fa6f7a031774e32be6044e6f49b1b561 (patch) | |
tree | 9c88448f337666e3e24d827cb6bd9fd724eb10fa /libs/ardour | |
parent | 1d55ac1706fe6427252493521fe42293135939ab (diff) |
Prepare for non-bypassable plugins (Mixbus channelstrip)
Diffstat (limited to 'libs/ardour')
-rw-r--r-- | libs/ardour/ardour/plugin_insert.h | 4 | ||||
-rw-r--r-- | libs/ardour/luabindings.cc | 2 | ||||
-rw-r--r-- | libs/ardour/plugin_insert.cc | 9 |
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 |