-
Notifications
You must be signed in to change notification settings - Fork 1
/
dummyrawinputreader.py
55 lines (47 loc) · 1.35 KB
/
dummyrawinputreader.py
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
class rawinputreader:
def __init__(self):
self.raw_mouse_events = []
def pollEvents(self):
return_list = self.raw_mouse_events
self.raw_mouse_events = []
return return_list
def __del__(self):
pass
def stop(self):
pass
def eventTupleToButton(event_tuple):
id, usflags, ulbuttons, usbuttonflags, usbuttondata, ulrawbuttons, x, y, extra = event_tuple
if usbuttonflags == 0x400:
if usbuttondata & 0x8000:
return (SCROLL, SCROLL_DOWN)
else:
return (SCROLL, SCROLL_UP)
if usbuttonflags != 0:
button = 1
while usbuttonflags != 0:
if usbuttonflags & 1:
return (BUTTON_DOWN, button)
elif usbuttonflags & 2:
return (BUTTON_UP, button)
usbuttonflags >>= 2
button += 1
return (NO_BUTTON, NO_BUTTON)
LEFT_BUTTON = 1
RIGHT_BUTTON = 2
MIDDLE_BUTTON = 5
NO_BUTTON = 0
SCROLL_UP = -1
SCROLL_DOWN = -2
BUTTON_DOWN = 1
BUTTON_UP = 2
SCROLL = 3
if __name__=='__main__':
print "I will show all events for 5 seconds, polled once a second"
import time
import pprint
rir = rawinputreader()
for i in range(5):
time.sleep(1)
print i
pprint.pprint(rir.pollEvents())
rir.stop()