receiver: gather and show PERSISTENT_REMAPPABLE_ACTION information

This commit is contained in:
Peter F. Patel-Schneider 2020-08-21 16:59:19 -04:00
parent 1deb6c34e4
commit 12ecef004e
3 changed files with 15 additions and 1 deletions

View File

@ -74,6 +74,7 @@ class Device:
self._firmware = None
self._keys = None
self._remap_keys = None
self._gestures = None
self._gestures_lock = _threading.Lock()
self._registers = None
@ -294,6 +295,13 @@ class Device:
self._keys = _hidpp20.get_keys(self) or ()
return self._keys
@property
def remap_keys(self):
if self._remap_keys is None:
if self.online and self.protocol >= 2.0:
self._remap_keys = _hidpp20.get_remap_keys(self) or ()
return self._remap_keys
@property
def gestures(self):
if self._gestures is None:

View File

@ -39,7 +39,6 @@ _IR = _hidpp10.INFO_SUBREGISTERS
#
#
class Receiver:
"""A Unifying Receiver instance.

View File

@ -252,6 +252,13 @@ def _print_device(dev, num=None):
report_fmt = ', '.join(k.mapping_flags)
report_fmt = report_fmt if report_fmt else 'default'
print(' reporting: %s' % (report_fmt))
if dev.online and dev.remap_keys:
print(' Has %d persistent remappable keys:' % len(dev.remap_keys))
for k in dev.remap_keys:
print(
' %2d: %4d %-26s => %s%s' %
(k.index, int(k.key), k.key, k.action, ' (remapped)' if k.cidStatus else '')
)
if dev.online and dev.gestures:
print(
' Has %d gesture(s), %d param(s) and %d spec(s):' %