parent
51e44052b0
commit
8f6e8eef4c
|
@ -36,6 +36,25 @@ _R = hidpp10_constants.REGISTERS
|
|||
_IR = hidpp10_constants.INFO_SUBREGISTERS
|
||||
|
||||
|
||||
class DeviceFactory:
|
||||
@staticmethod
|
||||
def create_device(device_info, setting_callback=None):
|
||||
"""Opens a Logitech Device found attached to the machine, by Linux device path.
|
||||
:returns: An open file handle for the found receiver, or None.
|
||||
"""
|
||||
try:
|
||||
handle = base.open_path(device_info.path)
|
||||
if handle:
|
||||
# a direct connected device might not be online (as reported by user)
|
||||
return Device(None, None, None, handle=handle, device_info=device_info, setting_callback=setting_callback)
|
||||
except OSError as e:
|
||||
logger.exception("open %s", device_info)
|
||||
if e.errno == _errno.EACCES:
|
||||
raise
|
||||
except Exception:
|
||||
logger.exception("open %s", device_info)
|
||||
|
||||
|
||||
class Device:
|
||||
instances = []
|
||||
read_register = hidpp10.read_register
|
||||
|
@ -418,23 +437,6 @@ class Device:
|
|||
def notify_devices(self): # no need to notify, as there are none
|
||||
pass
|
||||
|
||||
@classmethod
|
||||
def open(self, device_info, setting_callback=None):
|
||||
"""Opens a Logitech Device found attached to the machine, by Linux device path.
|
||||
:returns: An open file handle for the found receiver, or None.
|
||||
"""
|
||||
try:
|
||||
handle = base.open_path(device_info.path)
|
||||
if handle:
|
||||
# a direct connected device might not be online (as reported by user)
|
||||
return Device(None, None, None, handle=handle, device_info=device_info, setting_callback=setting_callback)
|
||||
except OSError as e:
|
||||
logger.exception("open %s", device_info)
|
||||
if e.errno == _errno.EACCES:
|
||||
raise
|
||||
except Exception:
|
||||
logger.exception("open %s", device_info)
|
||||
|
||||
def close(self):
|
||||
handle, self.handle = self.handle, None
|
||||
if self in Device.instances:
|
||||
|
|
|
@ -126,7 +126,7 @@ def _receivers_and_devices(dev_path=None):
|
|||
continue
|
||||
try:
|
||||
if dev_info.isDevice:
|
||||
d = _device.Device.open(dev_info)
|
||||
d = _device.DeviceFactory.create_device(dev_info)
|
||||
else:
|
||||
d = _receiver.ReceiverFactory.create_receiver(dev_info)
|
||||
|
||||
|
|
|
@ -246,7 +246,7 @@ def _start(device_info):
|
|||
if not isDevice:
|
||||
receiver = _receiver.ReceiverFactory.create_receiver(device_info, _setting_callback)
|
||||
else:
|
||||
receiver = _device.Device.open(device_info, _setting_callback)
|
||||
receiver = _device.DeviceFactory.create_device(device_info, _setting_callback)
|
||||
configuration.attach_to(receiver)
|
||||
|
||||
if receiver:
|
||||
|
|
Loading…
Reference in New Issue