some totally untested FST/VST changes
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@4916 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
95114e89ad
commit
75119176e3
|
@ -167,7 +167,12 @@ VSTPluginUI::create_preset_store ()
|
|||
CellRenderer* renderer = manage (new CellRendererText());
|
||||
vst_preset_combo.pack_start (*renderer, true);
|
||||
vst_preset_combo.add_attribute (*renderer, "text", 0);
|
||||
vst_preset_combo.set_active (0);
|
||||
|
||||
if (vst->fst()->current_program != -1) {
|
||||
vst_preset_combo.set_active (vst->fst()->current_program);
|
||||
} else {
|
||||
vst_preset_combo.set_active (0);
|
||||
}
|
||||
}
|
||||
|
||||
typedef int (*error_handler_t)( Display *, XErrorEvent *);
|
||||
|
|
|
@ -222,7 +222,11 @@ VSTPlugin::set_state(const XMLNode& node)
|
|||
}
|
||||
}
|
||||
|
||||
_fst->current_program = _plugin->dispatcher (_plugin, 3, /* effGetProgram */, 0, NULL, NULL, 0);
|
||||
cerr << name() << ": current program is " << _fst->current_program << endl;
|
||||
|
||||
return 0;
|
||||
|
||||
} else if ((child = find_named_node (node, X_("parameters"))) != 0) {
|
||||
|
||||
XMLPropertyList::const_iterator i;
|
||||
|
@ -238,9 +242,15 @@ VSTPlugin::set_state(const XMLNode& node)
|
|||
_plugin->setParameter (_plugin, param, val);
|
||||
}
|
||||
|
||||
/* program number is not knowable */
|
||||
|
||||
_fst->current_program = -1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
|
|
@ -82,6 +82,7 @@ struct _FST
|
|||
int destroy;
|
||||
|
||||
int want_program;
|
||||
int current_program;
|
||||
float *want_params;
|
||||
float *set_params;
|
||||
|
||||
|
|
|
@ -71,6 +71,7 @@ fst_new ()
|
|||
pthread_cond_init (&fst->window_status_change, NULL);
|
||||
pthread_cond_init (&fst->plugin_dispatcher_called, NULL);
|
||||
fst->want_program = -1;
|
||||
fst->current_program = -1;
|
||||
return fst;
|
||||
}
|
||||
|
||||
|
@ -165,7 +166,11 @@ again:
|
|||
}
|
||||
|
||||
if (fst->want_program != -1 ) {
|
||||
fst->plugin->dispatcher (fst->plugin, effSetProgram, 0, fst->want_program, NULL, 0);
|
||||
fst->plugin->dispatcher (fst->plugin, 67 /* effBeginSetProgram */, 0, 0, NULL, 0);
|
||||
fst->plugin->dispatcher (fst->plugin, effSetProgram, 0, fst->want_program, NULL, 0))
|
||||
fst->plugin->dispatcher (fst->plugin, 68 /* effEndSetProgram */, 0, 0, NULL, 0);
|
||||
/* assume it worked */
|
||||
fst->current_program = fst->want_program;
|
||||
fst->want_program = -1;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue