aboutsummaryrefslogtreecommitdiff
path: root/externals/grill/flext/source/flstdc.h
diff options
context:
space:
mode:
Diffstat (limited to 'externals/grill/flext/source/flstdc.h')
-rw-r--r--externals/grill/flext/source/flstdc.h16
1 files changed, 12 insertions, 4 deletions
diff --git a/externals/grill/flext/source/flstdc.h b/externals/grill/flext/source/flstdc.h
index 7d912090..75e17d57 100644
--- a/externals/grill/flext/source/flstdc.h
+++ b/externals/grill/flext/source/flstdc.h
@@ -281,25 +281,33 @@ typedef t_symbol *t_symptr;
// ----- set message queue mode -----
-#undef FLEXT_QTHR
-
#if FLEXT_SYS == FLEXT_SYS_PD && PD_MINOR_VERSION >= 37
// for PD version >= 0.37test10 FLEXT_PDLOCK is standard
#undef FLEXT_PDLOCK
#define FLEXT_PDLOCK
#endif
-#ifdef FLEXT_PDLOCK
+#if FLEXT_SYS == FLEXT_SYS_PD && PD_MINOR_VERSION >= 38 && defined(PD_DEVEL_VERSION)
+ // use idle callback
+ #define FLEXT_QMODE 1
+#elif defined(FLEXT_PDLOCK)
// new PD thread locking functionality shall be used
#if FLEXT_SYS == FLEXT_SYS_PD
#ifdef FLEXT_THREADS
// can only be used with PD and threaded build
- #define FLEXT_QTHR
+ #define FLEXT_QMODE 2
+ #else
+ #define FLEXT_QMODE 0
#endif
#else
#error FLEXT_PDLOCK can only be defined with PD
#endif
+#else
+ #define FLEXT_QMODE 0
#endif
+#ifndef FLEXT_QMODE
+#error Internal error: Queueing mode not defined
+#endif
#endif