From 771bef794b7edb7ef6cbe78acf2ee93b39f10f74 Mon Sep 17 00:00:00 2001 From: Thomas Grill Date: Fri, 11 Feb 2005 04:56:07 +0000 Subject: Max: use high-priority click instead of qelem for message-posting fixed flext::Timer::At method svn path=/trunk/; revision=2566 --- externals/grill/flext/changes.txt | 1 + externals/grill/flext/source/flinternal.h | 4 ++-- externals/grill/flext/source/fltimer.cpp | 8 +++++--- 3 files changed, 8 insertions(+), 5 deletions(-) (limited to 'externals/grill/flext') diff --git a/externals/grill/flext/changes.txt b/externals/grill/flext/changes.txt index d6ffec1e..845e5c8d 100644 --- a/externals/grill/flext/changes.txt +++ b/externals/grill/flext/changes.txt @@ -31,6 +31,7 @@ Version history: - in ToOut check if we are inside dsp (and use ToQueue then...) - some restructuring and use symbols (rather the char *) natively for AddMethod* and AddAttrib* functions - added some more SIMD functionality +- fixes to flext::Timer::At method 0.4.7: - added flext::GetBool (just because flext::GetInt has been there for a while) diff --git a/externals/grill/flext/source/flinternal.h b/externals/grill/flext/source/flinternal.h index 82c3b0fe..d0d76eba 100644 --- a/externals/grill/flext/source/flinternal.h +++ b/externals/grill/flext/source/flinternal.h @@ -59,8 +59,8 @@ typedef t_perfroutine t_dspmethod; #define qelem_new clock_new #define qelem_free clock_free -#define qelem_set clock_set -#define qelem_front clock_set +#define qelem_set clock_delay +#define qelem_front clock_delay #define qelem_unset clock_unset #define CRITON() diff --git a/externals/grill/flext/source/fltimer.cpp b/externals/grill/flext/source/fltimer.cpp index c317df45..294da438 100755 --- a/externals/grill/flext/source/fltimer.cpp +++ b/externals/grill/flext/source/fltimer.cpp @@ -162,9 +162,11 @@ bool flext::Timer::At(double tm,void *data,bool dopast) userdata = data; period = 0; #if FLEXT_SYS == FLEXT_SYS_PD - const double ms = tm*1000.; - if(dopast || clock_gettimesince(ms) <= 0) - clock_set(clk,ms); + const double systm = clock_gettimesince(0); + double df = tm*1000.-systm; + if(dopast && df < 0) df = 0; + if(df >= 0) + clock_delay(clk,df); #elif FLEXT_SYS == FLEXT_SYS_MAX const double ms = tm*1000.; double cur; -- cgit v1.2.1