hidpp20.py: handle gracefully errors at REPROG_CONTROLS_V4
At least with Anywhere Mouse MX 2, one reprogrammed key fails to read: ERROR [MainThread] logitech_receiver.base: (3) device 3 error on feature request {0829}: 2 = invalid argument That causes "solaar show" to crash. Instead, let's handle errors there gracefully, reporting it as: 7: unknown:00C3 , default: unknown:009C => unknown:00C3 virtual, pos:0, group:4, gmask:0 Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
This commit is contained in:
parent
801bdfa224
commit
a01e4b2efe
|
@ -328,13 +328,19 @@ class KeysArray(object):
|
||||||
if self.keyversion == 1:
|
if self.keyversion == 1:
|
||||||
self.keys[index] = _ReprogrammableKeyInfo(index, ctrl_id_text, ctrl_task_text, flags)
|
self.keys[index] = _ReprogrammableKeyInfo(index, ctrl_id_text, ctrl_task_text, flags)
|
||||||
if self.keyversion == 4:
|
if self.keyversion == 4:
|
||||||
mapped_data = feature_request(self.device, FEATURE.REPROG_CONTROLS_V4, 0x20, key&0xff00, key&0xff)
|
try:
|
||||||
if mapped_data:
|
mapped_data = feature_request(self.device, FEATURE.REPROG_CONTROLS_V4, 0x20, key&0xff00, key&0xff)
|
||||||
remap_key, remap_flag, remapped = _unpack('!HBH', mapped_data[:5])
|
if mapped_data:
|
||||||
# if key not mapped map it to itself for display
|
remap_key, remap_flag, remapped = _unpack('!HBH', mapped_data[:5])
|
||||||
if remapped == 0:
|
# if key not mapped map it to itself for display
|
||||||
remapped = key
|
if remapped == 0:
|
||||||
remapped_text = special_keys.CONTROL[remapped]
|
remapped = key
|
||||||
|
except Exception:
|
||||||
|
remapped = key
|
||||||
|
remap_key = key
|
||||||
|
remap_flag = 0
|
||||||
|
|
||||||
|
remapped_text = special_keys.CONTROL[remapped]
|
||||||
self.keys[index] = _ReprogrammableKeyInfoV4(index, ctrl_id_text, ctrl_task_text, flags, pos, group, gmask, remapped_text)
|
self.keys[index] = _ReprogrammableKeyInfoV4(index, ctrl_id_text, ctrl_task_text, flags, pos, group, gmask, remapped_text)
|
||||||
|
|
||||||
return self.keys[index]
|
return self.keys[index]
|
||||||
|
|
Loading…
Reference in New Issue