summaryrefslogtreecommitdiff
path: root/apps/plugins/rockboy/events.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugins/rockboy/events.c')
-rw-r--r--apps/plugins/rockboy/events.c45
1 files changed, 15 insertions, 30 deletions
diff --git a/apps/plugins/rockboy/events.c b/apps/plugins/rockboy/events.c
index 5a34ce81e5..c018f7ce53 100644
--- a/apps/plugins/rockboy/events.c
+++ b/apps/plugins/rockboy/events.c
@@ -8,10 +8,6 @@
8#include "rockmacros.h" 8#include "rockmacros.h"
9#include "input.h" 9#include "input.h"
10 10
11
12char keystates[MAX_KEYS];
13int nkeysdown;
14
15#define MAX_EVENTS 32 11#define MAX_EVENTS 32
16 12
17static event_t eventqueue[MAX_EVENTS]; 13static event_t eventqueue[MAX_EVENTS];
@@ -20,34 +16,23 @@ static int eventhead, eventpos;
20 16
21int ev_postevent(event_t *ev) 17int ev_postevent(event_t *ev)
22{ 18{
23 int nextevent; 19 int nextevent;
24 nextevent = (eventhead+1)%MAX_EVENTS; 20 nextevent = (eventhead+1)%MAX_EVENTS;
25 if (nextevent == eventpos) 21 if (nextevent == eventpos)
26 return 0; 22 return 0;
27 eventqueue[eventhead] = *ev; 23 eventqueue[eventhead] = *ev;
28 eventhead = nextevent; 24 eventhead = nextevent;
29 return 1; 25 return 1;
30} 26}
31 27
32int ev_getevent(event_t *ev) 28int ev_getevent(event_t *ev)
33{ 29{
34 if (eventpos == eventhead) 30 if (eventpos == eventhead)
35 { 31 {
36 ev->type = EV_NONE; 32 ev->type = EV_NONE;
37 return 0; 33 return 0;
38 } 34 }
39 *ev = eventqueue[eventpos]; 35 *ev = eventqueue[eventpos];
40 eventpos = (eventpos+1)%MAX_EVENTS; 36 eventpos = (eventpos+1)%MAX_EVENTS;
41 if (ev->type == EV_PRESS) 37 return 1;
42 {
43 keystates[ev->code] = 1;
44 nkeysdown++;
45 }
46 if (ev->type == EV_RELEASE)
47 {
48 keystates[ev->code] = 0;
49 nkeysdown--;
50 if (nkeysdown < 0) nkeysdown = 0;
51 }
52 return 1;
53} 38}