forked from KolibriOS/kolibrios
fix error and add new example
git-svn-id: svn://kolibrios.org@8043 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
860d73816e
commit
ffa28fc962
42
programs/cmm/examples/timers.c
Normal file
42
programs/cmm/examples/timers.c
Normal file
@ -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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -94,9 +94,10 @@ inline fastcall dword CheckEvent()
|
|||||||
$int 0x40
|
$int 0x40
|
||||||
}
|
}
|
||||||
|
|
||||||
inline fastcall dword WaitEventTimeout(EBX)
|
inline dword WaitEventTimeout(dword time)
|
||||||
{
|
{
|
||||||
EAX = 23;
|
EAX = 23;
|
||||||
|
EBX = time;
|
||||||
$int 0x40
|
$int 0x40
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -667,4 +668,4 @@ ______STOP______:
|
|||||||
|
|
||||||
#ifndef INCLUDE_IPC_H
|
#ifndef INCLUDE_IPC_H
|
||||||
#include "../lib/ipc.h"
|
#include "../lib/ipc.h"
|
||||||
#endif
|
#endif
|
||||||
|
@ -12,13 +12,13 @@
|
|||||||
:struct Timers
|
:struct Timers
|
||||||
{
|
{
|
||||||
dword time;
|
dword time;
|
||||||
dword alloc;
|
dword alloc;
|
||||||
dword count;
|
dword count;
|
||||||
dword size;
|
dword size;
|
||||||
void revise(void);
|
void revise(void);
|
||||||
void getTime(void);
|
void getTime(void);
|
||||||
dword set(dword,dword,byte);
|
dword set(dword,dword,byte);
|
||||||
dword clear(dword);
|
dword clear(dword);
|
||||||
};
|
};
|
||||||
void Timers::getTime(void)
|
void Timers::getTime(void)
|
||||||
{
|
{
|
||||||
@ -88,20 +88,20 @@ dword Timers::clear(dword id)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Analogs JS Functions
|
// Analogs JS Functions
|
||||||
:Timers Time = {0};
|
:Timers Timer = {0};
|
||||||
inline dword setTimeout(dword function, time)
|
inline dword setTimeout(dword function, time)
|
||||||
{
|
{
|
||||||
RETURN Time.set(function, time, 0);
|
RETURN Timer.set(function, time, 0);
|
||||||
}
|
}
|
||||||
inline dword setInterval(dword function, time)
|
inline dword setInterval(dword function, time)
|
||||||
{
|
{
|
||||||
RETURN Time.set(function, time, 1);
|
RETURN Timer.set(function, time, 1);
|
||||||
}
|
}
|
||||||
inline dword clearTimeout(dword id)
|
inline dword clearTimeout(dword id)
|
||||||
{
|
{
|
||||||
RETURN Time.clear(id);
|
RETURN Timer.clear(id);
|
||||||
}
|
}
|
||||||
inline dword clearInterval(dword id)
|
inline dword clearInterval(dword id)
|
||||||
{
|
{
|
||||||
RETURN Time.clear(id);
|
RETURN Timer.clear(id);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user