uint32_t discovered = 0;
for (vector<VSTInfo *>::iterator x = finfos->begin(); x != finfos->end(); ++x) {
VSTInfo* finfo = *x;
- char buf[32];
if (!finfo->canProcessReplacing) {
warning << string_compose (_("VST plugin %1 does not support processReplacing, and cannot be used in %2 at this time"),
continue;
}
- PluginInfoPtr info (new WindowsVSTPluginInfo);
+ PluginInfoPtr info (new WindowsVSTPluginInfo (finfo));
+ info->path = path;
/* what a joke freeware VST is */
-
if (!strcasecmp ("The Unnamed plugin", finfo->name)) {
info->name = PBD::basename_nosuffix (path);
- } else {
- info->name = finfo->name;
}
-
- snprintf (buf, sizeof (buf), "%d", finfo->UniqueID);
- info->unique_id = buf;
- if (finfo->isInstrument) {
- info->category = X_("Instrument");
- } else {
- info->category = finfo->Category;
- }
- info->path = path;
- info->creator = finfo->creator;
- info->index = 0;
- info->n_inputs.set_audio (finfo->numInputs);
- info->n_outputs.set_audio (finfo->numOutputs);
- info->n_inputs.set_midi ((finfo->wantMidi&1) ? 1 : 0);
- info->n_outputs.set_midi ((finfo->wantMidi&2) ? 1 : 0);
- info->type = ARDOUR::Windows_VST;
-
/* if we don't have any tags for this plugin, make some up. */
set_tags (info->type, info->unique_id, info->category, info->name, FromPlug);
uint32_t discovered = 0;
for (vector<VSTInfo *>::iterator x = finfos->begin(); x != finfos->end(); ++x) {
VSTInfo* finfo = *x;
- char buf[32];
if (!finfo->canProcessReplacing) {
warning << string_compose (_("Mac VST plugin %1 does not support processReplacing, and so cannot be used in %2 at this time"),
continue;
}
- PluginInfoPtr info (new MacVSTPluginInfo);
-
- info->name = finfo->name;
-
- snprintf (buf, sizeof (buf), "%d", finfo->UniqueID);
- info->unique_id = buf;
- if (finfo->isInstrument) {
- info->category = X_("Instrument");
- } else {
- info->category = finfo->Category;
- }
+ PluginInfoPtr info (new MacVSTPluginInfo (finfo));
info->path = path;
- info->creator = finfo->creator;
- info->index = 0;
- info->n_inputs.set_audio (finfo->numInputs);
- info->n_outputs.set_audio (finfo->numOutputs);
- info->n_inputs.set_midi ((finfo->wantMidi&1) ? 1 : 0);
- info->n_outputs.set_midi ((finfo->wantMidi&2) ? 1 : 0);
- info->type = ARDOUR::MacVST;
/* if we don't have any tags for this plugin, make some up. */
set_tags (info->type, info->unique_id, info->category, info->name, FromPlug);
uint32_t discovered = 0;
for (vector<VSTInfo *>::iterator x = finfos->begin(); x != finfos->end(); ++x) {
VSTInfo* finfo = *x;
- char buf[32];
if (!finfo->canProcessReplacing) {
warning << string_compose (_("linuxVST plugin %1 does not support processReplacing, and so cannot be used in %2 at this time"),
continue;
}
- PluginInfoPtr info(new LXVSTPluginInfo);
+ PluginInfoPtr info(new LXVSTPluginInfo (finfo));
+ info->path = path;
if (!strcasecmp ("The Unnamed plugin", finfo->name)) {
info->name = PBD::basename_nosuffix (path);
- } else {
- info->name = finfo->name;
}
-
- snprintf (buf, sizeof (buf), "%d", finfo->UniqueID);
- info->unique_id = buf;
- if (finfo->isInstrument) {
- info->category = X_("Instrument");
- } else {
- info->category = finfo->Category;
- }
- info->path = path;
- info->creator = finfo->creator;
- info->index = 0;
- info->n_inputs.set_audio (finfo->numInputs);
- info->n_outputs.set_audio (finfo->numOutputs);
- info->n_inputs.set_midi ((finfo->wantMidi&1) ? 1 : 0);
- info->n_outputs.set_midi ((finfo->wantMidi&2) ? 1 : 0);
- info->type = ARDOUR::LXVST;
-
set_tags (info->type, info->unique_id, info->category, info->name, FromPlug);
/* Make sure we don't find the same plugin in more than one place along
#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"
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 ();
+}