From 97e2811354edd2e2d25b211aa815bde5ae251298 Mon Sep 17 00:00:00 2001 From: MattHag <16444067+MattHag@users.noreply.github.com> Date: Tue, 5 Nov 2024 03:08:45 +0100 Subject: [PATCH] Remove NamedInts: Convert HorizontalScroll to enum Related #2273 --- lib/logitech_receiver/hidpp20.py | 13 ++++++++----- lib/logitech_receiver/special_keys.py | 12 ++++++------ 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/lib/logitech_receiver/hidpp20.py b/lib/logitech_receiver/hidpp20.py index 777b831266..7321852374 100644 --- a/lib/logitech_receiver/hidpp20.py +++ b/lib/logitech_receiver/hidpp20.py @@ -407,13 +407,13 @@ def _setCidReporting(self, flags: Dict[NamedInt, bool] = None, remap: int = 0): msg=f'Tried to set mapping flag "{f}" on control "{self.key}" ' + f'which does not support "{key_flag}" on device {self._device}.' ) - bfield |= int(f) if v else 0 - bfield |= int(f) << 1 # The 'Xvalid' bit + bfield |= int(f.value) if v else 0 + bfield |= int(f.value) << 1 # The 'Xvalid' bit if self._mapping_flags: # update flags if already read if v: - self._mapping_flags |= int(f) + self._mapping_flags |= int(f.value) else: - self._mapping_flags &= ~int(f) + self._mapping_flags &= ~int(f.value) if remap != 0 and remap not in self.remappable_to: raise exceptions.FeatureNotSupported( @@ -633,7 +633,10 @@ def _query_key(self, index: int): elif actionId == special_keys.ACTIONID.Mouse: remapped = special_keys.MOUSE_BUTTONS[remapped] elif actionId == special_keys.ACTIONID.Hscroll: - remapped = special_keys.HORIZONTAL_SCROLL[remapped] + try: + remapped = special_keys.HorizontalScroll(remapped) + except ValueError: + remapped = f"unknown horizontal scroll:{remapped:04X}" elif actionId == special_keys.ACTIONID.Consumer: remapped = special_keys.HID_CONSUMERCODES[remapped] elif actionId == special_keys.ACTIONID.Empty: # purge data from empty value diff --git a/lib/logitech_receiver/special_keys.py b/lib/logitech_receiver/special_keys.py index b8be4a22d0..09ac97cb0f 100644 --- a/lib/logitech_receiver/special_keys.py +++ b/lib/logitech_receiver/special_keys.py @@ -1207,11 +1207,11 @@ class CidGroup(IntEnum): ) MOUSE_BUTTONS._fallback = lambda x: f"unknown mouse button:{x:04X}" -HORIZONTAL_SCROLL = NamedInts( - Horizontal_Scroll_Left=0x4000, - Horizontal_Scroll_Right=0x8000, -) -HORIZONTAL_SCROLL._fallback = lambda x: f"unknown horizontal scroll:{x:04X}" + +class HorizontalScroll(IntEnum): + Left = 0x4000 + Right = 0x8000 + # Construct universe for Persistent Remappable Keys setting (only for supported values) KEYS = UnsortedNamedInts() @@ -1246,7 +1246,7 @@ class CidGroup(IntEnum): KEYS[(ACTIONID.Mouse << 24) + (int(code) << 8)] = str(code) # Add Horizontal Scroll -for code in HORIZONTAL_SCROLL: +for code in HorizontalScroll: KEYS[(ACTIONID.Hscroll << 24) + (int(code) << 8)] = str(code)