diff options
author | Robin Gareus <robin@gareus.org> | 2018-11-07 23:37:10 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2018-11-07 23:37:10 +0100 |
commit | 41abf75077921766f25aae45c87aca927244e520 (patch) | |
tree | aa16ca6d967b706e5c03479d25bc70910cc9b138 /libs/ardour/vst_plugin.cc | |
parent | bc83e6f75334e3493d70635ff1060a1798430456 (diff) |
Consolidate VST Plugin Info
This unifies common PluginManager VST code to construct *VSTPluginInfo
and also provides a dedicated is_instrument() method for VST plugins.
Diffstat (limited to 'libs/ardour/vst_plugin.cc')
-rw-r--r-- | libs/ardour/vst_plugin.cc | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/libs/ardour/vst_plugin.cc b/libs/ardour/vst_plugin.cc index cbd88877cd..4183283bff 100644 --- a/libs/ardour/vst_plugin.cc +++ b/libs/ardour/vst_plugin.cc @@ -27,10 +27,10 @@ #include "pbd/floating.h" #include "pbd/locale_guard.h" +#include "ardour/vst_types.h" #include "ardour/vst_plugin.h" #include "ardour/vestige/vestige.h" #include "ardour/session.h" -#include "ardour/vst_types.h" #include "ardour/filesystem_paths.h" #include "ardour/audio_buffer.h" @@ -923,3 +923,31 @@ VSTPlugin::presets_file () const return string("vst-") + unique_id (); } + +VSTPluginInfo::VSTPluginInfo (VSTInfo* nfo) +{ + + char buf[32]; + snprintf (buf, sizeof (buf), "%d", nfo->UniqueID); + unique_id = buf; + + index = 0; + + name = nfo->name; + creator = nfo->creator; + n_inputs.set_audio (nfo->numInputs); + n_outputs.set_audio (nfo->numOutputs); + n_inputs.set_midi ((nfo->wantMidi & 1) ? 1 : 0); + n_outputs.set_midi ((nfo->wantMidi & 2) ? 1 : 0); + + _is_instrument = nfo->isInstrument; +} + +bool +VSTPluginInfo::is_instrument () const +{ + if (_is_instrument) { + return true; + } + return PluginInfo::is_instrument (); +} |