Add API to allow querying plugin-presets without instantiating the plugin

This commit is contained in:
Robin Gareus 2016-01-07 17:17:49 +01:00
parent 8a84caf4a4
commit d5dbdc9ea5
2 changed files with 12 additions and 0 deletions

View file

@ -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

View file

@ -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)