diff options
author | Robin Gareus <robin@gareus.org> | 2015-12-10 17:20:08 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2015-12-10 17:20:08 +0100 |
commit | 699f9b097d51344058eaa623e564452534dfdb2f (patch) | |
tree | 539c3d5752bc60d29669dbd8ccc59218e1dcad07 /libs | |
parent | 939808a712c448140db9d384f17075d4d7fe82db (diff) |
LV2 specific instrument-plugin check
Diffstat (limited to 'libs')
-rw-r--r-- | libs/ardour/ardour/lv2_plugin.h | 1 | ||||
-rw-r--r-- | libs/ardour/lv2_plugin.cc | 17 |
2 files changed, 18 insertions, 0 deletions
diff --git a/libs/ardour/ardour/lv2_plugin.h b/libs/ardour/ardour/lv2_plugin.h index a0572b5af7..145b48a24b 100644 --- a/libs/ardour/ardour/lv2_plugin.h +++ b/libs/ardour/ardour/lv2_plugin.h @@ -280,6 +280,7 @@ public: PluginPtr load (Session& session); virtual bool in_category (const std::string &c) const; + virtual bool is_instrument() const; char * _plugin_uri; }; diff --git a/libs/ardour/lv2_plugin.cc b/libs/ardour/lv2_plugin.cc index 940ec8ae03..7c9e901ebb 100644 --- a/libs/ardour/lv2_plugin.cc +++ b/libs/ardour/lv2_plugin.cc @@ -2602,6 +2602,23 @@ LV2PluginInfo::in_category (const std::string &c) const return false; } +bool +LV2PluginInfo::is_instrument () const +{ + if (category == "Instrument") { + return true; + } +#if 1 + /* until we make sure that category remains untranslated in the lv2.ttl spec + * and until most instruments also classify themselves as such, there's a 2nd check: + */ + if (n_inputs.n_midi() > 0 && n_inputs.n_audio() == 0 && n_outputs.n_audio() > 0) { + return true; + } +#endif + return false; +} + PluginInfoList* LV2PluginInfo::discover() { |