summaryrefslogtreecommitdiff
path: root/libs/ardour/vst_plugin.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2018-11-07 23:37:10 +0100
committerRobin Gareus <robin@gareus.org>2018-11-07 23:37:10 +0100
commit41abf75077921766f25aae45c87aca927244e520 (patch)
treeaa16ca6d967b706e5c03479d25bc70910cc9b138 /libs/ardour/vst_plugin.cc
parentbc83e6f75334e3493d70635ff1060a1798430456 (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.cc30
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 ();
+}