vstfx->eventProc((void*)event);
}
+static void
+maybe_set_program (VSTState* vstfx)
+{
+ if (vstfx->want_program != -1) {
+ if (vstfx->vst_version >= 2) {
+ vstfx->plugin->dispatcher (vstfx->plugin, 67 /* effBeginSetProgram */, 0, 0, NULL, 0);
+ }
+
+ vstfx->plugin->dispatcher (vstfx->plugin, effSetProgram, 0, vstfx->want_program, NULL, 0);
+
+ if (vstfx->vst_version >= 2) {
+ vstfx->plugin->dispatcher (vstfx->plugin, 68 /* effEndSetProgram */, 0, 0, NULL, 0);
+ }
+
+ vstfx->want_program = -1;
+ }
+
+ if (vstfx->want_chunk == 1) {
+ vstfx->plugin->dispatcher (vstfx->plugin, 24 /* effSetChunk */, 1, vstfx->wanted_chunk_size, vstfx->wanted_chunk, 0);
+ vstfx->want_chunk = 0;
+ }
+}
+
/** This is the main gui event loop for the plugin, we also need to pass
any Xevents to all the UI callbacks plugins 'may' have registered on their
windows, that is if they don't manage their own UIs **/
}
}
- /*Scheduled for setting a new program*/
-
- if (vstfx->want_program != -1 )
- {
- if (vstfx->vst_version >= 2)
- {
- vstfx->plugin->dispatcher (vstfx->plugin, 67 /* effBeginSetProgram */, 0, 0, NULL, 0);
- }
-
- vstfx->plugin->dispatcher (vstfx->plugin, effSetProgram, 0, vstfx->want_program, NULL, 0);
-
- if (vstfx->vst_version >= 2)
- {
- vstfx->plugin->dispatcher (vstfx->plugin, 68 /* effEndSetProgram */, 0, 0, NULL, 0);
- }
-
- vstfx->want_program = -1;
- }
+ maybe_set_program (vstfx);
+ vstfx->want_program = -1;
+ vstfx->want_chunk = 0;
/*scheduled call to dispatcher*/
_plugin->dispatcher (_plugin, effSetSampleRate, 0, 0, NULL, (float) _session.frame_rate());
_plugin->dispatcher (_plugin, effSetBlockSize, 0, _session.get_block_size(), NULL, 0.0f);
-
- /* set program to zero */
-
- _plugin->dispatcher (_plugin, effSetProgram, 0, 0, NULL, 0.0f);
}
void
return false;
- }
- else {
+ } else {
+
for (XMLNodeList::const_iterator j = (*i)->children().begin(); j != (*i)->children().end(); ++j) {
if ((*j)->name() == X_("Parameter")) {
XMLProperty* index = (*j)->property (X_("index"));
p->add_content (string (data));
g_free (data);
- }
- else {
+ } else {
p = new XMLNode (X_("Preset"));
p->add_property (X_("uri"), uri);