add oversampler
This commit is contained in:
73
oversampling/WDL/eel2/eel_misc.h
Normal file
73
oversampling/WDL/eel2/eel_misc.h
Normal file
@@ -0,0 +1,73 @@
|
||||
#ifndef _EEL_MISC_H_
|
||||
#define _EEL_MISC_H_
|
||||
|
||||
|
||||
#ifndef _WIN32
|
||||
#include <sys/time.h>
|
||||
#endif
|
||||
#include <time.h>
|
||||
// some generic EEL functions for things like time
|
||||
|
||||
#ifndef EEL_MISC_NO_SLEEP
|
||||
static EEL_F NSEEL_CGEN_CALL _eel_sleep(void *opaque, EEL_F *amt)
|
||||
{
|
||||
if (*amt >= 0.0)
|
||||
{
|
||||
#ifdef _WIN32
|
||||
if (*amt > 30000000.0) Sleep(30000000);
|
||||
else Sleep((DWORD)(*amt+0.5));
|
||||
#else
|
||||
if (*amt > 30000000.0) usleep(((useconds_t)30000000)*1000);
|
||||
else usleep((useconds_t)(*amt*1000.0+0.5));
|
||||
#endif
|
||||
}
|
||||
return 0.0;
|
||||
}
|
||||
#endif
|
||||
|
||||
static EEL_F * NSEEL_CGEN_CALL _eel_time(void *opaque, EEL_F *v)
|
||||
{
|
||||
*v = (EEL_F) time(NULL);
|
||||
return v;
|
||||
}
|
||||
|
||||
static EEL_F * NSEEL_CGEN_CALL _eel_time_precise(void *opaque, EEL_F *v)
|
||||
{
|
||||
#ifdef _WIN32
|
||||
LARGE_INTEGER freq,now;
|
||||
QueryPerformanceFrequency(&freq);
|
||||
QueryPerformanceCounter(&now);
|
||||
*v = (double)now.QuadPart / (double)freq.QuadPart;
|
||||
// *v = (EEL_F)timeGetTime() * 0.001;
|
||||
#else
|
||||
struct timeval tm={0,};
|
||||
gettimeofday(&tm,NULL);
|
||||
*v = tm.tv_sec + tm.tv_usec*0.000001;
|
||||
#endif
|
||||
return v;
|
||||
}
|
||||
|
||||
|
||||
void EEL_misc_register()
|
||||
{
|
||||
#ifndef EEL_MISC_NO_SLEEP
|
||||
NSEEL_addfunc_retval("sleep",1,NSEEL_PProc_THIS,&_eel_sleep);
|
||||
#endif
|
||||
NSEEL_addfunc_retptr("time",1,NSEEL_PProc_THIS,&_eel_time);
|
||||
NSEEL_addfunc_retptr("time_precise",1,NSEEL_PProc_THIS,&_eel_time_precise);
|
||||
}
|
||||
|
||||
#ifdef EEL_WANT_DOCUMENTATION
|
||||
static const char *eel_misc_function_reference =
|
||||
#ifndef EEL_MISC_NO_SLEEP
|
||||
"sleep\tms\tYields the CPU for the millisecond count specified, calling Sleep() on Windows or usleep() on other platforms.\0"
|
||||
#endif
|
||||
"time\t[&val]\tSets the parameter (or a temporary buffer if omitted) to the number of seconds since January 1, 1970, and returns a reference to that value. "
|
||||
"The granularity of the value returned is 1 second.\0"
|
||||
"time_precise\t[&val]\tSets the parameter (or a temporary buffer if omitted) to a system-local timestamp in seconds, and returns a reference to that value. "
|
||||
"The granularity of the value returned is system defined (but generally significantly smaller than one second).\0"
|
||||
;
|
||||
#endif
|
||||
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user