Skip to content

Commit

Permalink
Merge pull request #90 from ZeroPhone/number_pad
Browse files Browse the repository at this point in the history
Number pad
  • Loading branch information
CRImier committed Jan 26, 2018
2 parents 05961c2 + 94d08da commit 65da23a
Showing 1 changed file with 19 additions and 6 deletions.
25 changes: 19 additions & 6 deletions input/drivers/pygame_input.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,22 @@

logger = setup_logger(__name__, "warning")


mapping = {'KEY_RETURN':'KEY_ENTER',
'KEY_KP_ENTER':'KEY_ENTER',
'KEY_KP_MULTIPLY':'KEY_ASTERISK',
'KEY_KP_DIVIDE':'KEY_HASH',
'KEY_MINUS':'KEY_HANGUP',
'KEY_KP_MINUS':'KEY_HANGUP',
'KEY_EQUALS':'KEY_ANSWER',
'KEY_KP_PLUS':'KEY_ANSWER'
}
USED_KEYS = [
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'UP', 'DOWN', 'LEFT', 'RIGHT', 'RETURN', 'PAGEUP', 'PAGEDOWN'
'KP0', 'KP1', 'KP2', 'KP3', 'KP4', 'KP5', 'KP6', 'KP7', 'KP8', 'KP9',
'UP', 'DOWN', 'LEFT', 'RIGHT', 'RETURN', 'PAGEUP', 'PAGEDOWN',
'ASTERISK', 'HASH', 'PLUS', 'MINUS', 'EQUALS', 'F1', 'F2', 'F5', 'F6',
'KP_MULTIPLY', 'KP_DIVIDE', 'KP_PLUS', 'KP_MINUS',
]

KEY_MAP = dict([
Expand All @@ -19,6 +32,7 @@
])



class InputDevice(InputSkeleton):
""" A driver for pygame-based keyboard key detection."""

Expand All @@ -33,7 +47,6 @@ def runner(self):
"""
Blocking event loop which just calls supplied callbacks in the keymap.
"""

#TODO: debug and fix race condition
while not hasattr(self, "emulator"):
logger.debug("Input emulator not yet ready (a bug, TOFIX)")
Expand All @@ -45,14 +58,14 @@ def runner(self):
continue

key = event['key']

if key not in KEY_MAP:
logger.debug('Ignoring key %s' % key)
continue

key_name = 'KEY_' + KEY_MAP[key]
if key_name == 'KEY_RETURN':
key_name = 'KEY_ENTER'
key_name = mapping.get(key_name, key_name)

if 'KP' in key_name:
key_name = 'KEY_' + KEY_MAP[key].replace('KP', '')
logger.debug('Mapped key %s' % key_name)

self.send_key(key_name)
Expand Down

0 comments on commit 65da23a

Please sign in to comment.