66 lines
1.7 KiB
Python
66 lines
1.7 KiB
Python
#
|
|
#
|
|
#
|
|
|
|
from __future__ import absolute_import, division, print_function, unicode_literals
|
|
|
|
from collections import namedtuple
|
|
|
|
from .common import NamedInts as _NamedInts
|
|
from . import hidpp10
|
|
|
|
#
|
|
#
|
|
#
|
|
|
|
_DeviceDescriptor = namedtuple('_DeviceDescriptor',
|
|
['name', 'kind', 'codename', 'registers', 'settings'])
|
|
|
|
DEVICES = {}
|
|
|
|
def _D(name, codename=None, kind=None, registers=None, settings=None):
|
|
if kind is None:
|
|
kind = (hidpp10.DEVICE_KIND.mouse if 'Mouse' in name
|
|
else hidpp10.DEVICE_KIND.keyboard if 'Keyboard' in name
|
|
else hidpp10.DEVICE_KIND.touchpad if 'Touchpad' in name
|
|
else hidpp10.DEVICE_KIND.trackball if 'Trackball' in name
|
|
else None)
|
|
assert kind is not None
|
|
|
|
if codename is None:
|
|
codename = name.split(' ')[-1]
|
|
assert codename is not None
|
|
|
|
DEVICES[codename] = _DeviceDescriptor(name, kind, codename, registers, settings)
|
|
|
|
|
|
_D('Wireless Mouse M315')
|
|
_D('Wireless Mouse M325')
|
|
_D('Wireless Mouse M505')
|
|
_D('Wireless Mouse M510')
|
|
_D('Couch Mouse M515')
|
|
_D('Wireless Mouse M525')
|
|
_D('Wireless Trackball M570')
|
|
_D('Touch Mouse M600')
|
|
_D('Marathon Mouse M705',
|
|
registers=_NamedInts(battery=0x0D),
|
|
settings=[hidpp10.SmoothScroll_Setting(0x01)]
|
|
)
|
|
_D('Wireless Keyboard K270')
|
|
_D('Wireless Keyboard K350')
|
|
_D('Wireless Keyboard K360')
|
|
_D('Wireless Touch Keyboard K400')
|
|
_D('Wireless Solar Keyboard K750')
|
|
_D('Wireless Illuminated Keyboard K800')
|
|
_D('Zone Touch Mouse T400')
|
|
_D('Wireless Rechargeable Touchpad T650')
|
|
_D('Logitech Cube', kind='mouse')
|
|
_D('Anywhere Mouse MX', codename='Anywhere MX')
|
|
_D('Performance Mouse MX', codename='Performance MX',
|
|
settings=[
|
|
hidpp10.MouseDPI_Setting(0x63, _NamedInts(**dict((str(x * 100), 0x80 + x) for x in range(1, 16)))),
|
|
]
|
|
)
|
|
|
|
del namedtuple
|