import fcntl
import os
import select
+import logging
from inevent.Constants import *
from inevent import ioctl
from inevent.EventState import EventState
+log = logging.getLogger('inevent')
+
EVIOCGRAB = ioctl._IOW(ord('E'), 0x90, "i") # Grab/Release device
event.decode(s)
return event
- except: pass
+ except Exception as e:
+ log.warning('Reading event: %s' % e)
def __enter__(self): return self
def process_udev_event(self):
action, device = self.udevMon.receive_device()
+ if device is None: return
match = re.search(r"/dev/input/event([0-9]+)", str(device.device_node))
devIndex = match and match.group(1)
log.info('Added %s[%d]', devType, devIndex)
except OSError as e:
- if e.errno in [errno.EPERM, errno.EACCES]:
- log.warning('Failed to add %s[%d]: %s', devType, devIndex, e)
- else: raise e
+ log.warning('Failed to add %s[%d]: %s', devType, devIndex, e)
def remove_stream(self, devIndex):
if stream.devIndex == devIndex:
self.streams.remove(stream)
self.ioloop.remove_handler(stream.filehandle)
+ stream.release()
log.info('Removed %s[%d]', stream.devType, devIndex)