diff options
Diffstat (limited to 'libs/fst')
-rw-r--r-- | libs/fst/fst.h | 1 | ||||
-rw-r--r-- | libs/fst/vstwin.c | 7 |
2 files changed, 7 insertions, 1 deletions
diff --git a/libs/fst/fst.h b/libs/fst/fst.h index 7e2cfec08b..1cecc71d52 100644 --- a/libs/fst/fst.h +++ b/libs/fst/fst.h @@ -82,6 +82,7 @@ struct _FST int destroy; int want_program; + int current_program; float *want_params; float *set_params; diff --git a/libs/fst/vstwin.c b/libs/fst/vstwin.c index 151eedcbdb..82c4d81d68 100644 --- a/libs/fst/vstwin.c +++ b/libs/fst/vstwin.c @@ -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; } |