30#if defined OS_MAC || defined OS_IOS
31#include <CoreFoundation/CoreFoundation.h>
33#include <emscripten/html5.h>
45 using ITimerFunction = std::function<void(
Timer& t)>;
47 static Timer* Create(ITimerFunction func, uint32_t intervalMs);
49 virtual void Stop() = 0;
52#if defined OS_MAC || defined OS_IOS
54class Timer_impl :
public Timer
58 Timer_impl(ITimerFunction func, uint32_t intervalMs);
62 static void TimerProc(CFRunLoopTimerRef timer,
void *info);
65 CFRunLoopTimerRef mOSTimer;
66 ITimerFunction mTimerFunc;
70class Timer_impl :
public Timer
73 Timer_impl(ITimerFunction func, uint32_t intervalMs);
76 static void CALLBACK TimerProc(HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime);
79 static WDL_Mutex sMutex;
80 static WDL_PtrList<Timer_impl> sTimers;
82 ITimerFunction mTimerFunc;
86class Timer_impl :
public Timer
89 Timer_impl(ITimerFunction func, uint32_t intervalMs);
92 static void TimerProc(
void *userData);
96 ITimerFunction mTimerFunc;
99 #error NOT IMPLEMENTED