@@ -130,15 +130,23 @@ def __repr__(s):
130130class RelEvent (object ):
131131 '''A relative axis event (e.g moving the mouse 5 units to the left).'''
132132
133- __slots__ = 'event'
133+ __slots__ = 'event' , 'keycode'
134+
135+ def __init__ (self , event , allow_unknown = False ):
136+ try :
137+ self .keycode = REL [event .code ]
138+ except KeyError :
139+ if allow_unknown :
140+ self .keycode = '0x{:02X}' .format (event .code )
141+ else :
142+ raise
134143
135- def __init__ (self , event ):
136144 #: Reference to an :class:`InputEvent` instance.
137145 self .event = event
138146
139147 def __str__ (self ):
140- msg = 'relative axis event at {:f}, {} '
141- return msg .format (self .event .timestamp (), REL [ self .event .code ] )
148+ msg = 'relative axis event at {:f}, {} {} '
149+ return msg .format (self .event .timestamp (), self .keycode , self . event .value )
142150
143151 def __repr__ (s ):
144152 return '{}({!r})' .format (s .__class__ .__name__ , s .event )
@@ -147,15 +155,23 @@ def __repr__(s):
147155class AbsEvent (object ):
148156 '''An absolute axis event (e.g the coordinates of a tap on a touchscreen).'''
149157
150- __slots__ = 'event'
158+ __slots__ = 'event' , 'keycode'
159+
160+ def __init__ (self , event , allow_unknown = False ):
161+ try :
162+ self .keycode = ABS [event .code ]
163+ except KeyError :
164+ if allow_unknown :
165+ self .keycode = '0x{:02X}' .format (event .code )
166+ else :
167+ raise
151168
152- def __init__ (self , event ):
153169 #: Reference to an :class:`InputEvent` instance.
154170 self .event = event
155171
156172 def __str__ (self ):
157- msg = 'absolute axis event at {:f}, {} '
158- return msg .format (self .event .timestamp (), ABS [ self .event .code ] )
173+ msg = 'absolute axis event at {:f}, {} {} '
174+ return msg .format (self .event .timestamp (), self .keycode , self . event .value )
159175
160176 def __repr__ (s ):
161177 return '{}({!r})' .format (s .__class__ .__name__ , s .event )
@@ -169,15 +185,23 @@ class SynEvent(object):
169185 the multitouch protocol.
170186 '''
171187
172- __slots__ = 'event'
188+ __slots__ = 'event' , 'keycode'
189+
190+ def __init__ (self , event , allow_known ):
191+ try :
192+ self .keycode = SYN [event .code ]
193+ except KeyError :
194+ if allow_unknown :
195+ self .keycode = '0x{:02X}' .format (event .code )
196+ else :
197+ raise
173198
174- def __init__ (self , event ):
175199 #: Reference to an :class:`InputEvent` instance.
176200 self .event = event
177201
178202 def __str__ (self ):
179203 msg = 'synchronization event at {:f}, {} '
180- return msg .format (self .event .timestamp (), SYN [ self .event . code ] )
204+ return msg .format (self .event .timestamp (), self .keycode )
181205
182206 def __repr__ (s ):
183207 return '{}({!r})' .format (s .__class__ .__name__ , s .event )
0 commit comments