2013-04-20 19:46:44 -04:00
|
|
|
import linux_uinput, ctypes, fcntl, os, sys
|
2013-04-19 19:10:16 -04:00
|
|
|
from cinput import *
|
2013-04-21 06:42:51 -04:00
|
|
|
from mapper import KeyMapper, parse_conf
|
|
|
|
from example_conf import config
|
2013-05-09 10:10:28 -04:00
|
|
|
from linux_input import timeval, input_event
|
2013-04-20 19:46:44 -04:00
|
|
|
|
|
|
|
|
2013-05-09 10:10:28 -04:00
|
|
|
try:
|
|
|
|
import cPickle as pickle
|
|
|
|
except ImportError:
|
|
|
|
import pickle
|
2013-04-20 19:46:44 -04:00
|
|
|
|
2013-05-09 10:10:28 -04:00
|
|
|
f = pickle.Unpickler(sys.stdin)
|
2013-04-20 19:46:44 -04:00
|
|
|
|
2013-05-09 10:10:28 -04:00
|
|
|
conf = f.load()
|
|
|
|
m = KeyMapper(conf)
|
2013-04-20 19:46:44 -04:00
|
|
|
|
2013-05-09 10:10:28 -04:00
|
|
|
d = UInputDevice()
|
|
|
|
m.expose(d)
|
|
|
|
d.setup('Example input device')
|
2013-04-20 19:46:44 -04:00
|
|
|
|
|
|
|
|
|
|
|
while True:
|
2013-05-09 10:10:28 -04:00
|
|
|
ev = f.load()
|
|
|
|
# Use code below rather than the line above if you use an old python
|
|
|
|
# version (also edit read.py)
|
|
|
|
|
|
|
|
#ev_p = f.load()
|
|
|
|
#ti = timeval(ev_p[0], ev_p[1])
|
|
|
|
#ev = input_event(ti, ev_p[2], ev_p[3], ev_p[4])
|
2013-04-18 19:11:56 -04:00
|
|
|
|
2013-04-21 06:42:51 -04:00
|
|
|
ev = m.map_event(ev)
|
2013-04-18 19:11:56 -04:00
|
|
|
|
2013-04-20 19:46:44 -04:00
|
|
|
d.fire_event(ev)
|
2013-04-18 19:11:56 -04:00
|
|
|
|
2013-04-21 06:42:51 -04:00
|
|
|
#try:
|
|
|
|
# print ev.time.tv_sec, ev.time.tv_usec
|
|
|
|
# s = '%s %s %d' % (rev_events[ev.type], rev_event_keys[ev.type][ev.code], ev.value)
|
|
|
|
# print 'Event type:', s
|
2013-04-19 18:51:46 -04:00
|
|
|
|
2013-04-21 06:42:51 -04:00
|
|
|
#except KeyError:
|
|
|
|
# pass
|