From 465ceb63fa6f7a031774e32be6044e6f49b1b561 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Tue, 31 Jul 2018 22:24:15 +0200 Subject: Prepare for non-bypassable plugins (Mixbus channelstrip) --- libs/ardour/ardour/plugin_insert.h | 4 ++++ libs/ardour/luabindings.cc | 2 ++ libs/ardour/plugin_insert.cc | 9 +++++++++ 3 files changed, 15 insertions(+) (limited to 'libs') 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") 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 -- cgit v1.2.3