summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2018-01-29 23:55:20 +0100
committerRobin Gareus <robin@gareus.org>2018-01-30 01:33:48 +0100
commitb8491014a53e236255f5803fc876f848cfc82750 (patch)
tree346bbc463e0121f3866d2aa819e2761b1c621e70 /libs/ardour/ardour
parent4d173d604896c80c99f7e4cdaa3908b55b0fdb81 (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.h5
-rw-r--r--libs/ardour/ardour/ladspa_plugin.h7
-rw-r--r--libs/ardour/ardour/luaproc.h6
-rw-r--r--libs/ardour/ardour/lv2_plugin.h2
-rw-r--r--libs/ardour/ardour/plugin.h12
-rw-r--r--libs/ardour/ardour/plugin_insert.h2
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)