events.KEY_7: ecodes.KEY_7, events.KEY_8: ecodes.KEY_8, events.KEY_9: ecodes.KEY_9, events.KEY_LEFTBRACE: ecodes.KEY_LEFTBRACE, events.KEY_RIGHTBRACE: ecodes.KEY_RIGHTBRACE, events.KEY_DOT: ecodes.KEY_DOT, events.KEY_LEFT_SHIFT: ecodes.KEY_LEFTSHIFT, events.KEY_ENTER: ecodes.KEY_ENTER, events.KEY_SPACE: ecodes.KEY_SPACE, events.KEY_BACKSPACE: ecodes.KEY_BACKSPACE, events.KEY_CAPS_LOCK: ecodes.KEY_CAPSLOCK } class EventToEcodeTranslator(object): def translate(self, event): global _event_to_ecode_map return _event_to_ecode_map[event] _ecode_to_event_map = invert_dictionary(_event_to_ecode_map) class EcodeToEventTranslator(object): def translate(self, ecode): return _ecode_to_event_map[ecode]
class StringToEventsTranslator(object): def translate(self, string): """ @return: A list of events, corresponding to the translations of the individual characters of the string. """ string = string.lower() events_from_string = [] for char in string: event = _map_string_to_event[char] events_from_string.append(event) return events_from_string _map_event_to_string = invert_dictionary(_map_string_to_event) class EventsToStringTranslator(object): def translate_event(self, event): if isinstance(event, list): event = str(event) return _map_event_to_string[event] def translate_iterable(self, events_iterable): translation = "" for event in events_iterable: translation += self.translate_event(event) return translation