-
Notifications
You must be signed in to change notification settings - Fork 84
Expand file tree
/
Copy pathtimer.cc
More file actions
39 lines (33 loc) · 1.13 KB
/
Copy pathtimer.cc
File metadata and controls
39 lines (33 loc) · 1.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include "timer.h"
#include "nbind/api.h"
gboolean glib_timeout_cb(TimeoutHandle *timeoutHandle) {
CALL_JSCB(timeoutHandle);
timeoutHandle->destroy();
return FALSE;
}
gboolean glib_interval_cb(TimeoutHandle *timeoutHandle) {
CALL_JSCB(timeoutHandle);
return TRUE;
}
TimeoutHandle *setTimeout(nbind::cbFunction &cb, unsigned int timeout) {
nbind::cbFunction *callbackJs = new nbind::cbFunction(cb);
TimeoutHandle *timeoutHandle = new TimeoutHandle(callbackJs);
timeoutHandle->handle =
g_timeout_add(timeout, (GSourceFunc)glib_timeout_cb, timeoutHandle);
return timeoutHandle;
}
void clearTimeout(TimeoutHandle *timeoutHandle) {
g_source_remove(timeoutHandle->handle);
timeoutHandle->destroy();
}
TimeoutHandle *setInterval(nbind::cbFunction &cb, unsigned int timeout) {
nbind::cbFunction *callbackJs = new nbind::cbFunction(cb);
TimeoutHandle *timeoutHandle = new TimeoutHandle(callbackJs);
timeoutHandle->handle =
g_timeout_add(timeout, (GSourceFunc)glib_interval_cb, timeoutHandle);
return timeoutHandle;
}
void clearInterval(TimeoutHandle *timeoutHandle) {
g_source_remove(timeoutHandle->handle);
timeoutHandle->destroy();
}