From 69322ccd1b5b1c7e9633672bb84c2258300f3133 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Wed, 20 Feb 2019 16:26:51 +0100 Subject: [PATCH] Add unified API to select plugins to show on control-surfaces e.g. Mixbus channelstrip should be hidden, also mixbus' built-in effects are exposed as well-known controls --- libs/ardour/ardour/plugin_insert.h | 6 +----- libs/ardour/plugin_insert.cc | 32 +++++++++++++++++++++++------- 2 files changed, 26 insertions(+), 12 deletions(-) diff --git a/libs/ardour/ardour/plugin_insert.h b/libs/ardour/ardour/plugin_insert.h index 64b2bd875d..f4703a5689 100644 --- a/libs/ardour/ardour/plugin_insert.h +++ b/libs/ardour/ardour/plugin_insert.h @@ -113,13 +113,9 @@ public: bool has_midi_thru () const; bool inplace () const { return ! _no_inplace; } -#ifdef MIXBUS bool is_channelstrip () const; bool is_nonbypassable () const; -#else - bool is_channelstrip () const { return false; } - bool is_nonbypassable () const { return false; } -#endif + bool show_on_ctrl_surface () const; void set_input_map (uint32_t, ChanMapping); void set_output_map (uint32_t, ChanMapping); diff --git a/libs/ardour/plugin_insert.cc b/libs/ardour/plugin_insert.cc index 3d7fe164db..2af6e7b262 100644 --- a/libs/ardour/plugin_insert.cc +++ b/libs/ardour/plugin_insert.cc @@ -1580,16 +1580,34 @@ PluginInsert::has_midi_thru () const return false; } +bool +PluginInsert::is_channelstrip () const +{ #ifdef MIXBUS -bool -PluginInsert::is_channelstrip () const { return _plugins.front()->is_channelstrip(); -} -bool -PluginInsert::is_nonbypassable () const { - return _plugins.front()->is_nonbypassable (); -} +#else + return false; #endif +} + +bool +PluginInsert::is_nonbypassable () const +{ +#ifdef MIXBUS + return _plugins.front()->is_nonbypassable (); +#else + return false; +#endif +} + +bool +PluginInsert::show_on_ctrl_surface () const +{ + if (is_channelstrip () || !is_nonbypassable ()) { + return false; + } + return true; +} bool PluginInsert::check_inplace ()