diff options
author | Robin Gareus <robin@gareus.org> | 2018-01-29 23:55:20 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2018-01-30 01:33:48 +0100 |
commit | b8491014a53e236255f5803fc876f848cfc82750 (patch) | |
tree | 346bbc463e0121f3866d2aa819e2761b1c621e70 /libs/ardour/ardour | |
parent | 4d173d604896c80c99f7e4cdaa3908b55b0fdb81 (diff) |
Update plugin classification
* dedicated API for classes (effect, instrument, util)
* prepare for tags (rather than categories)
* prepare removal of per-plugin in_category() API
Diffstat (limited to 'libs/ardour/ardour')
-rw-r--r-- | libs/ardour/ardour/audio_unit.h | 5 | ||||
-rw-r--r-- | libs/ardour/ardour/ladspa_plugin.h | 7 | ||||
-rw-r--r-- | libs/ardour/ardour/luaproc.h | 6 | ||||
-rw-r--r-- | libs/ardour/ardour/lv2_plugin.h | 2 | ||||
-rw-r--r-- | libs/ardour/ardour/plugin.h | 12 | ||||
-rw-r--r-- | libs/ardour/ardour/plugin_insert.h | 2 |
6 files changed, 23 insertions, 11 deletions
diff --git a/libs/ardour/ardour/audio_unit.h b/libs/ardour/ardour/audio_unit.h index 2e44e6ec63..407be7a6dc 100644 --- a/libs/ardour/ardour/audio_unit.h +++ b/libs/ardour/ardour/audio_unit.h @@ -251,10 +251,13 @@ class LIBARDOUR_API AUPluginInfo : public PluginInfo { std::vector<Plugin::PresetRecord> get_presets (bool user_only) const; bool needs_midi_input () const; - bool is_effect () const; bool is_effect_without_midi_input () const; bool is_effect_with_midi_input () const; + + /* note: AU's have an explicit way to prompt for instrument/fx category */ + bool is_effect () const; bool is_instrument () const; + bool is_utility () const; AUPluginCachedInfo cache; diff --git a/libs/ardour/ardour/ladspa_plugin.h b/libs/ardour/ardour/ladspa_plugin.h index 0dca9bd5a6..97744abc34 100644 --- a/libs/ardour/ardour/ladspa_plugin.h +++ b/libs/ardour/ardour/ladspa_plugin.h @@ -151,6 +151,13 @@ class LIBARDOUR_API LadspaPluginInfo : public PluginInfo { LadspaPluginInfo (); ~LadspaPluginInfo () { }; + bool is_instrument () const { return false; } /* ladspa's are never instruments */ +#ifdef MIXBUS + /* for mixbus, relegate ladspa's to the Utils folder. */ + bool is_effect () const { return false; } + bool is_utility () const { return true; } +#endif + PluginPtr load (Session& session); std::vector<Plugin::PresetRecord> get_presets (bool user_only) const; }; diff --git a/libs/ardour/ardour/luaproc.h b/libs/ardour/ardour/luaproc.h index 6404944fbb..8ac27095ab 100644 --- a/libs/ardour/ardour/luaproc.h +++ b/libs/ardour/ardour/luaproc.h @@ -208,13 +208,7 @@ class LIBARDOUR_API LuaPluginInfo : public PluginInfo PluginPtr load (Session& session); std::vector<Plugin::PresetRecord> get_presets (bool user_only) const; - bool in_category (const std::string &c) const { - return (category == c); - } - bool is_instrument () const { return _is_instrument; } bool reconfigurable_io() const { return true; } - - bool _is_instrument; }; typedef boost::shared_ptr<LuaPluginInfo> LuaPluginInfoPtr; diff --git a/libs/ardour/ardour/lv2_plugin.h b/libs/ardour/ardour/lv2_plugin.h index 25fda7400a..01dbaf4adc 100644 --- a/libs/ardour/ardour/lv2_plugin.h +++ b/libs/ardour/ardour/lv2_plugin.h @@ -364,8 +364,6 @@ public: PluginPtr load (Session& session); std::vector<Plugin::PresetRecord> get_presets (bool user_only) const; - virtual bool in_category (const std::string &c) const; - virtual bool is_instrument() const; char * _plugin_uri; }; diff --git a/libs/ardour/ardour/plugin.h b/libs/ardour/ardour/plugin.h index e9738a61f1..fae35c33e1 100644 --- a/libs/ardour/ardour/plugin.h +++ b/libs/ardour/ardour/plugin.h @@ -425,9 +425,17 @@ class LIBARDOUR_API PluginInfo { std::string unique_id; virtual PluginPtr load (Session& session) = 0; - virtual bool is_instrument() const; + + /* NOTE: it is possible for a plugin to be an effect AND an instrument. + * override these funcs as necessary to support that. + */ + virtual bool is_effect () const; + virtual bool is_instrument () const; + virtual bool is_utility () const; //this includes things like "generators" and "midi filters" + virtual bool is_analyzer () const; + virtual bool needs_midi_input() const; - virtual bool in_category (const std::string &) const { return false; } + virtual bool in_category (const std::string &) const { return false; } // deprecated virtual std::vector<Plugin::PresetRecord> get_presets (bool user_only) const = 0; diff --git a/libs/ardour/ardour/plugin_insert.h b/libs/ardour/ardour/plugin_insert.h index e54816a00b..05d0d4043c 100644 --- a/libs/ardour/ardour/plugin_insert.h +++ b/libs/ardour/ardour/plugin_insert.h @@ -176,7 +176,9 @@ public: bool has_no_inputs() const; bool has_no_audio_inputs() const; + bool is_instrument () const; + bool has_output_presets ( ChanCount in = ChanCount (DataType::MIDI, 1), ChanCount out = ChanCount (DataType::AUDIO, 2) |