summaryrefslogtreecommitdiff
path: root/libs/fst
diff options
context:
space:
mode:
Diffstat (limited to 'libs/fst')
-rw-r--r--libs/fst/fst.h1
-rw-r--r--libs/fst/vstwin.c7
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;
}