From 0f0de28e945e0cd6b36599f3223fd7447ac4523e Mon Sep 17 00:00:00 2001 From: "Peter F. Patel-Schneider" Date: Sat, 10 Feb 2024 12:19:17 -0500 Subject: [PATCH] device: correctly handle profile button with no action --- lib/logitech_receiver/hidpp20.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/logitech_receiver/hidpp20.py b/lib/logitech_receiver/hidpp20.py index 40f96fe176..4032d1c96c 100644 --- a/lib/logitech_receiver/hidpp20.py +++ b/lib/logitech_receiver/hidpp20.py @@ -1350,6 +1350,8 @@ def from_bytes(cls, bytes): elif mapping_type == ButtonMappingTypes.Consumer_Key: value = ButtonConsumerKeys[(bytes[2] << 8) + bytes[3]] result = cls(behavior=behavior, type=mapping_type, value=value) + elif mapping_type == ButtonMappingTypes.No_Action: + result = cls(behavior=behavior, type=mapping_type) elif behavior == ButtonBehaviors.Function: value = ButtonFunctions[bytes[1]] if ButtonFunctions[bytes[1]] is not None else bytes[1] data = bytes[3] @@ -1372,6 +1374,8 @@ def to_bytes(self): bytes += _int2bytes(self.value, 1) elif self.type == ButtonMappingTypes.Consumer_Key: bytes += _int2bytes(self.value, 2) + elif self.type == ButtonMappingTypes.No_Action: + bytes += b'\xff\xff' elif self.behavior == ButtonBehaviors.Function: bytes += _int2bytes(self.value, 1) + b'\xff' + (_int2bytes(self.data, 1) if self.data else b'\x00') else: