#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"
}
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;
}
_timeInfo.flags |= (kVstSmpteValid);
}
+ //ToDo:
+ //if this is found to be burdensome to plugins,
+ //we should cache the previous state at a global level,
+ //and only set this flag when the transport changes state
+ _timeInfo.flags |= (kVstTransportChanged);
+
if (session->transport_speed() != 0.0f) {
_timeInfo.flags |= (kVstTransportPlaying);
}
if (session->get_play_loop()) {
+ _timeInfo.flags |= (kVstTransportCycleActive);
}
} else {
case audioMasterSizeWindow:
SHOW_CALLBACK ("audioMasterSizeWindow");
- // index: width, value: height
+ if (plug && plug->state()) {
+ plug->state()->width = index;
+ plug->state()->height = value;
+ plug->state()->want_resize = 1;
+ }
return 0;
case audioMasterGetSampleRate: