/programs/cmm/examples/timers.c |
---|
0,0 → 1,42 |
#define MEMSIZE 4096*10 |
#include "../lib/io.h" |
#include "../lib/window.h" |
#include "../lib/timers.h" |
window win1=0; |
dword timeID = 0; |
int t = 0; |
void intervalTest() |
{ |
t++; |
if (t==10) clearInterval(timeID); |
DrawBar(100, 70, 100, 100, 0xDED7CE); |
WriteText(100,70,0x90,0,itoa(t)); |
} |
void main() |
{ |
word id=0; |
timeID = setInterval(#intervalTest, 100); // 100 => 1s |
loop() |
{ |
switch(WaitEventTimeout(1)) |
{ |
case evButton: |
id=GetButtonID(); |
IF (id==1) ExitProcess(); |
break; |
case evKey: |
GetKeys(); |
break; |
case evReDraw: |
DefineAndDrawWindow(20,30,500,600,WINDOW_NORMAL,0xDED7CE,"Window",0); |
if (!t) WriteText(100,70,0x90,0,"Start!"); |
break; |
} |
Timer.revise(); |
} |
} |
/programs/cmm/lib/kolibri.h |
---|
94,9 → 94,10 |
$int 0x40 |
} |
inline fastcall dword WaitEventTimeout(EBX) |
inline dword WaitEventTimeout(dword time) |
{ |
EAX = 23; |
EBX = time; |
$int 0x40 |
} |
/programs/cmm/lib/timers.h |
---|
88,20 → 88,20 |
} |
// Analogs JS Functions |
:Timers Time = {0}; |
:Timers Timer = {0}; |
inline dword setTimeout(dword function, time) |
{ |
RETURN Time.set(function, time, 0); |
RETURN Timer.set(function, time, 0); |
} |
inline dword setInterval(dword function, time) |
{ |
RETURN Time.set(function, time, 1); |
RETURN Timer.set(function, time, 1); |
} |
inline dword clearTimeout(dword id) |
{ |
RETURN Time.clear(id); |
RETURN Timer.clear(id); |
} |
inline dword clearInterval(dword id) |
{ |
RETURN Time.clear(id); |
RETURN Timer.clear(id); |
} |