initial key handling

This commit is contained in:
chrys 2016-07-07 21:40:10 +02:00
parent f7fa100173
commit 5ee9dca99e
4 changed files with 32 additions and 5 deletions

View File

@ -2,9 +2,10 @@
runtime = { runtime = {
'running':True, 'running':True,
'debug':None,
'columns': 0, 'columns': 0,
'lines': 0, 'lines': 0,
'screenDriver': '/dev/vcsa', 'screenDriver': None,
'delta': '', 'delta': '',
'oldCursor':{'x':0,'y':0}, 'oldCursor':{'x':0,'y':0},
'oldContentBytes': b'', 'oldContentBytes': b'',
@ -22,6 +23,7 @@ runtime = {
'screenDriver': None, 'screenDriver': None,
'soundDriverString': '', 'soundDriverString': '',
'soundDriver': None, 'soundDriver': None,
'inputManager': None
} }
settings = { settings = {

View File

@ -1,9 +1,24 @@
#!/bin/python #!/bin/python
import evdev
from evdev import InputDevice
from select import select
class inputManager(): class inputManager():
def __init__(self): def __init__(self):
pass self.devices = map(evdev.InputDevice, (evdev.list_devices()))
self.devices = {dev.fd: dev for dev in self.devices}
for dev in self.devices.values(): print(dev)
def getCommandQueue(self, runtime): def getShortcutCommand(self, runtime, shortcuts):
return[] if not shortcuts:
return ''
return ''
def getKeyPressed(self, runtime):
r, w, x = select(self.devices, [], [])
for fd in r:
for event in self.devices[fd].read():
if event.type == evdev.ecodes.EV_KEY:
print(evdev.categorize(event))

View File

@ -5,12 +5,16 @@
import os, sys import os, sys
DEBUG = False
if not os.getcwd() in sys.path: if not os.getcwd() in sys.path:
sys.path.append(os.getcwd()) sys.path.append(os.getcwd())
from core import environment from core import environment
from core import inputManager
from utils import debug from utils import debug
from speech import espeak as es from speech import espeak as es
from speech import speechd as sd from speech import speechd as sd
from screen import linux as lx from screen import linux as lx
@ -18,11 +22,15 @@ from screen import linux as lx
class fenrir(): class fenrir():
def __init__(self): def __init__(self):
self.runtime = environment.runtime self.runtime = environment.runtime
self.runtime['inputManager'] = inputManager.inputManager()
if DEBUG:
self.runtime['debug'] = debug.debug()
self.settings = environment.settings self.settings = environment.settings
self.bindings = {} self.bindings = {}
self.autospeak = [] self.autospeak = []
self.soundIcons = {} self.soundIcons = {}
# the following hard coded, in future we have a config loader
self.runtime['speechDriverString'] = 'speechd' self.runtime['speechDriverString'] = 'speechd'
self.runtime['speechDriver'] = sd.speech() self.runtime['speechDriver'] = sd.speech()
self.runtime['screenDriverString'] = 'linux' self.runtime['screenDriverString'] = 'linux'
@ -31,6 +39,7 @@ class fenrir():
def proceed(self): def proceed(self):
while(self.runtime['running']): while(self.runtime['running']):
self.runtime = self.runtime['screenDriver'].analyzeScreen(self.runtime) self.runtime = self.runtime['screenDriver'].analyzeScreen(self.runtime)
self.runtime['inputManager'].getKeyPressed(self.runtime)
def shutdown(self): def shutdown(self):
pass pass

View File

@ -1,6 +1,7 @@
#!/usr/bin/python #!/usr/bin/python
# Debugger module for the Fenrir screen reader. # Debugger module for the Fenrir screen reader.
ERROR = 0 ERROR = 0
WARNING = 1 WARNING = 1
INFO = 2 INFO = 2