summaryrefslogtreecommitdiff
path: root/libs/fst
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2007-02-06 20:09:35 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2007-02-06 20:09:35 +0000
commit27cd4034bdfd6ad0218e275bcf417b5bb8495259 (patch)
tree219c6066f204836870c293e95410d23aa90d4add /libs/fst
parent1161fa8731dfe94b5c75126af8e88ca782ca6d51 (diff)
fix misdesign of VST GUI thread
git-svn-id: svn://localhost/ardour2/trunk@1428 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/fst')
-rw-r--r--libs/fst/fst.h1
-rw-r--r--libs/fst/vstwin.c12
2 files changed, 10 insertions, 3 deletions
diff --git a/libs/fst/fst.h b/libs/fst/fst.h
index 9055eac620..493cb2e572 100644
--- a/libs/fst/fst.h
+++ b/libs/fst/fst.h
@@ -82,6 +82,7 @@ extern "C" {
#endif
extern int fst_init ();
+extern void fst_finish ();
extern FSTHandle* fst_load (const char*);
extern int fst_unload (FSTHandle*);
diff --git a/libs/fst/vstwin.c b/libs/fst/vstwin.c
index 77fdfccd14..0ee34b70b4 100644
--- a/libs/fst/vstwin.c
+++ b/libs/fst/vstwin.c
@@ -326,12 +326,12 @@ DWORD WINAPI gui_event_loop (LPVOID param)
fst_error ("cannot set timer on dummy window");
}
- while (true) {
+ while (1) {
GetMessageA (&msg, NULL, 0,0);
- if (msg.message == WM_QUIT) {
- cerr << "WM QUIT received\n";
+ if (msg.message == WM_SYSTEMERROR) {
+ /* sent when this thread is supposed to exist */
break;
}
@@ -418,6 +418,12 @@ fst_init ()
return 0;
}
+void
+fst_finish ()
+{
+ PostThreadMessageA (gui_thread_id, WM_SYSTEMERROR, 0, 0);
+}
+
int
fst_run_editor (FST* fst)
{