summaryrefslogtreecommitdiff
path: root/libs/ardour
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2015-11-18 18:11:19 +0100
committerRobin Gareus <robin@gareus.org>2015-11-18 18:11:19 +0100
commit9d867cfd87648e6b441638bda28153f5a9f02092 (patch)
tree7e61975a34588392cfa37891f0f2e58e2525892c /libs/ardour
parentacc36e0053c310b0f6b76a878deef973ac2df183 (diff)
add dedicated API to check plugin class
Diffstat (limited to 'libs/ardour')
-rw-r--r--libs/ardour/ardour/lv2_plugin.h1
-rw-r--r--libs/ardour/ardour/plugin.h1
-rw-r--r--libs/ardour/lv2_plugin.cc11
3 files changed, 13 insertions, 0 deletions
diff --git a/libs/ardour/ardour/lv2_plugin.h b/libs/ardour/ardour/lv2_plugin.h
index 12e079f29c..fcbf8b90cc 100644
--- a/libs/ardour/ardour/lv2_plugin.h
+++ b/libs/ardour/ardour/lv2_plugin.h
@@ -277,6 +277,7 @@ public:
static PluginInfoList* discover ();
PluginPtr load (Session& session);
+ virtual bool in_category (const std::string &c) const;
char * _plugin_uri;
};
diff --git a/libs/ardour/ardour/plugin.h b/libs/ardour/ardour/plugin.h
index 7bef40ab88..063335ccc3 100644
--- a/libs/ardour/ardour/plugin.h
+++ b/libs/ardour/ardour/plugin.h
@@ -68,6 +68,7 @@ class LIBARDOUR_API PluginInfo {
virtual PluginPtr load (Session& session) = 0;
virtual bool is_instrument() const;
+ virtual bool in_category (const std::string &) const { return false; }
/* NOTE: this block of virtual methods looks like the interface
to a Processor, but Plugin does not inherit from Processor.
diff --git a/libs/ardour/lv2_plugin.cc b/libs/ardour/lv2_plugin.cc
index 2d277aa301..47e1053a2c 100644
--- a/libs/ardour/lv2_plugin.cc
+++ b/libs/ardour/lv2_plugin.cc
@@ -2561,6 +2561,17 @@ LV2PluginInfo::load(Session& session)
return PluginPtr();
}
+bool
+LV2PluginInfo::in_category (const std::string &c) const
+{
+ // TODO use untranslated lilv_plugin_get_class()
+ // match gtk2_ardour/plugin_selector.cc
+ if (category == c) {
+ return true;
+ }
+ return false;
+}
+
PluginInfoList*
LV2PluginInfo::discover()
{