diff options
author | Robin Gareus <robin@gareus.org> | 2016-01-07 17:17:49 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2016-01-07 17:23:39 +0100 |
commit | d5dbdc9ea5c3d1a34b2b1809e28931a864f55c3e (patch) | |
tree | 38d9a4b1279251545d04565b2615d74d3e142a70 /libs | |
parent | 8a84caf4a449bde38624b5d27598011fcb73648e (diff) |
Add API to allow querying plugin-presets without instantiating the plugin
Diffstat (limited to 'libs')
-rw-r--r-- | libs/ardour/ardour/plugin.h | 2 | ||||
-rw-r--r-- | libs/ardour/plugin.cc | 10 |
2 files changed, 12 insertions, 0 deletions
diff --git a/libs/ardour/ardour/plugin.h b/libs/ardour/ardour/plugin.h index 9f4ec85746..de7637ef2f 100644 --- a/libs/ardour/ardour/plugin.h +++ b/libs/ardour/ardour/plugin.h @@ -336,6 +336,8 @@ class LIBARDOUR_API PluginInfo { virtual bool is_instrument() const; virtual bool in_category (const std::string &) const { return false; } + virtual std::vector<Plugin::PresetRecord> get_presets(Session& session); + /* NOTE: this block of virtual methods looks like the interface to a Processor, but Plugin does not inherit from Processor. It is therefore not required that these precisely match diff --git a/libs/ardour/plugin.cc b/libs/ardour/plugin.cc index d6c9a48805..92fe289e0c 100644 --- a/libs/ardour/plugin.cc +++ b/libs/ardour/plugin.cc @@ -86,6 +86,16 @@ PluginInfo::is_instrument () const return (n_inputs.n_midi() != 0) && (n_outputs.n_audio() > 0); } +std::vector<Plugin::PresetRecord> +PluginInfo::get_presets(Session& session) { + PluginPtr plugin = load (session); + if (plugin) { + return plugin->get_presets(); + } else { + return std::vector<Plugin::PresetRecord> (); + } +} + Plugin::Plugin (AudioEngine& e, Session& s) : _engine (e) , _session (s) |