VST report audioMasterPinConnected according to Pin Management

This commit is contained in:
Robin Gareus 2016-04-13 00:52:47 +02:00
parent e8366dbd83
commit e77729125e
2 changed files with 20 additions and 0 deletions

View File

@ -2437,6 +2437,11 @@ PluginInsert::add_plugin (boost::shared_ptr<Plugin> plugin)
}
}
}
boost::shared_ptr<VSTPlugin> vst = boost::dynamic_pointer_cast<VSTPlugin> (plugin);
if (vst) {
vst->set_insert (this, _plugins.size ());
}
_plugins.push_back (plugin);
}

View File

@ -26,6 +26,7 @@
#include "ardour/debug.h"
#include "ardour/session.h"
#include "ardour/tempo.h"
#include "ardour/plugin_insert.h"
#include "ardour/windows_vst_plugin.h"
#include "ardour/vestige/aeffectx.h"
#include "ardour/vst_types.h"
@ -124,11 +125,25 @@ intptr_t Session::vst_callback (
}
switch (value) {
case 0:
if (plug->plugin_insert ()) {
bool valid;
const ChanMapping& map (plug->plugin_insert ()->input_map (plug->plugin_number ()));
map.get (DataType::AUDIO, index, &valid);
return valid ? 0 : 1;
}
if (index < plug->plugin()->numInputs) {
return 0;
}
break;
case 1:
#if 0 // investigate, the outputs *are* connected to scratch buffers
if (plug->plugin_insert ()) {
bool valid;
const ChanMapping& map (plug->plugin_insert ()->output_map (plug->plugin_number ()));
map.get (DataType::AUDIO, index, &valid);
return valid ? 0 : 1;
}
#endif
if (index < plug->plugin()->numOutputs) {
return 0;
}