Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <Windows.h>
- typedef struct {
- void (*handler)(char *);
- char parameter[128];
- int interval, last_emitted;
- } Event;
- Event events[128];
- int event_count;
- void add_event(void (*handler)(char *), char parameter[], int interval) {
- events[event_count].handler = handler;
- strcpy(events[event_count].parameter, parameter);
- events[event_count].interval = interval;
- events[event_count].last_emitted = 0;
- ++event_count;
- }
- void run() {
- int now = GetTickCount();
- for (int i = 0; i < event_count; ++i) {
- events[i].last_emitted = now;
- }
- while (1) {
- now = GetTickCount();
- for (int i = 0; i < event_count; ++i) {
- if (now - events[i].last_emitted >= events[i].interval) {
- events[i].handler(events[i].parameter);
- events[i].last_emitted = now;
- }
- }
- Sleep(10);
- }
- }
- void say(char *message) {
- printf("Message: %s\n", message);
- }
- int main() {
- add_event(say, "Hello", 1000);
- add_event(say, "Goodbye", 1500);
- run();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement