49 lines
794 B
C
49 lines
794 B
C
#ifndef EVENT_H
|
|
#define EVENT_H
|
|
|
|
// general event struct
|
|
typedef struct event_t {
|
|
unsigned char type;
|
|
unsigned char subtype;
|
|
union {
|
|
struct {
|
|
char repeat;
|
|
char code;
|
|
} keyevent;
|
|
struct {
|
|
short code;
|
|
} timerevent;
|
|
};
|
|
} event_t;
|
|
|
|
// event types
|
|
#define EVENT_TYPE_KEYBOARD 1
|
|
#define EVENT_TYPE_KEYBOARD_PRESS 1
|
|
#define EVENT_TYPE_KEYBOARD_RELEASE 2
|
|
|
|
#define EVENT_TYPE_TIMER 2
|
|
|
|
// reads event queue length
|
|
int Event_count();
|
|
|
|
// read an event immediately
|
|
int Event_get(event_t *event);
|
|
|
|
// wait for an event
|
|
int Event_wait(event_t *event);
|
|
|
|
// reads an event immediately without removing it
|
|
int Event_peek(event_t *event);
|
|
|
|
// push an event
|
|
int Event_put(event_t *event);
|
|
|
|
// clean event queue
|
|
int Event_clean();
|
|
|
|
// init and quit
|
|
int Event_init();
|
|
int Event_quit();
|
|
|
|
#endif
|