refactoring

This commit is contained in:
Maxim Devaev 2025-01-10 23:04:12 +02:00
parent 72c9ae3aa0
commit e7c06643b4
5 changed files with 26 additions and 12 deletions

View File

@ -36,3 +36,13 @@ class MouseRange:
@classmethod @classmethod
def normalize(cls, value: int) -> int: def normalize(cls, value: int) -> int:
return min(max(cls.MIN, value), cls.MAX) return min(max(cls.MIN, value), cls.MAX)
class MouseDelta:
MIN = -127
MAX = 127
RANGE = (MIN, MAX)
@classmethod
def normalize(cls, value: int) -> int:
return min(max(cls.MIN, value), cls.MAX)

View File

@ -26,6 +26,7 @@ import struct
from ....keyboard.mappings import KEYMAP from ....keyboard.mappings import KEYMAP
from ....mouse import MouseRange from ....mouse import MouseRange
from ....mouse import MouseDelta
from .... import tools from .... import tools
from .... import bitbang from .... import bitbang
@ -162,8 +163,8 @@ class MouseRelativeEvent(BaseEvent):
delta_y: int delta_y: int
def __post_init__(self) -> None: def __post_init__(self) -> None:
assert -127 <= self.delta_x <= 127 assert MouseDelta.MIN <= self.delta_x <= MouseDelta.MAX
assert -127 <= self.delta_y <= 127 assert MouseDelta.MIN <= self.delta_y <= MouseDelta.MAX
def make_request(self) -> bytes: def make_request(self) -> bytes:
return _make_request(struct.pack(">Bbbxx", 0x15, self.delta_x, self.delta_y)) return _make_request(struct.pack(">Bbbxx", 0x15, self.delta_x, self.delta_y))
@ -175,8 +176,8 @@ class MouseWheelEvent(BaseEvent):
delta_y: int delta_y: int
def __post_init__(self) -> None: def __post_init__(self) -> None:
assert -127 <= self.delta_x <= 127 assert MouseDelta.MIN <= self.delta_x <= MouseDelta.MAX
assert -127 <= self.delta_y <= 127 assert MouseDelta.MIN <= self.delta_y <= MouseDelta.MAX
def make_request(self) -> bytes: def make_request(self) -> bytes:
# Горизонтальная прокрутка пока не поддерживается # Горизонтальная прокрутка пока не поддерживается

View File

@ -23,6 +23,7 @@
import math import math
from ....mouse import MouseRange from ....mouse import MouseRange
from ....mouse import MouseDelta
# ===== # =====
@ -79,7 +80,7 @@ class Mouse: # pylint: disable=too-many-instance-attributes
def process_wheel(self, delta_x: int, delta_y: int) -> bytes: def process_wheel(self, delta_x: int, delta_y: int) -> bytes:
_ = delta_x _ = delta_x
assert -127 <= delta_y <= 127 assert MouseDelta.MIN <= delta_y <= MouseDelta.MAX
self.__wheel_y = (1 if delta_y > 0 else 255) self.__wheel_y = (1 if delta_y > 0 else 255)
if not self.__absolute: if not self.__absolute:
return self.__make_relative_cmd() return self.__make_relative_cmd()
@ -110,6 +111,6 @@ class Mouse: # pylint: disable=too-many-instance-attributes
]) ])
def __fix_relative(self, value: int) -> int: def __fix_relative(self, value: int) -> int:
assert -127 <= value <= 127 assert MouseDelta.MIN <= value <= MouseDelta.MAX
value = math.ceil(value / 3) value = math.ceil(value / 3)
return (value if value >= 0 else (255 + value)) return (value if value >= 0 else (255 + value))

View File

@ -27,6 +27,7 @@ from ....keyboard.mappings import UsbKey
from ....keyboard.mappings import KEYMAP from ....keyboard.mappings import KEYMAP
from ....mouse import MouseRange from ....mouse import MouseRange
from ....mouse import MouseDelta
# ===== # =====
@ -144,8 +145,8 @@ class MouseRelativeEvent(BaseEvent):
delta_y: int delta_y: int
def __post_init__(self) -> None: def __post_init__(self) -> None:
assert -127 <= self.delta_x <= 127 assert MouseDelta.MIN <= self.delta_x <= MouseDelta.MAX
assert -127 <= self.delta_y <= 127 assert MouseDelta.MIN <= self.delta_y <= MouseDelta.MAX
@dataclasses.dataclass(frozen=True) @dataclasses.dataclass(frozen=True)
@ -154,8 +155,8 @@ class MouseWheelEvent(BaseEvent):
delta_y: int delta_y: int
def __post_init__(self) -> None: def __post_init__(self) -> None:
assert -127 <= self.delta_x <= 127 assert MouseDelta.MIN <= self.delta_x <= MouseDelta.MAX
assert -127 <= self.delta_y <= 127 assert MouseDelta.MIN <= self.delta_y <= MouseDelta.MAX
def make_mouse_report( def make_mouse_report(

View File

@ -25,6 +25,7 @@ from typing import Any
from ..keyboard.mappings import KEYMAP from ..keyboard.mappings import KEYMAP
from ..mouse import MouseRange from ..mouse import MouseRange
from ..mouse import MouseDelta
from . import check_string_in_list from . import check_string_in_list
@ -46,7 +47,7 @@ def valid_hid_key(arg: Any) -> str:
def valid_hid_mouse_move(arg: Any) -> int: def valid_hid_mouse_move(arg: Any) -> int:
arg = valid_number(arg, name="Mouse move") arg = valid_number(arg, name="Mouse move")
return min(max(MouseRange.MIN, arg), MouseRange.MAX) return MouseRange.normalize(arg)
def valid_hid_mouse_button(arg: Any) -> str: def valid_hid_mouse_button(arg: Any) -> str:
@ -55,4 +56,4 @@ def valid_hid_mouse_button(arg: Any) -> str:
def valid_hid_mouse_delta(arg: Any) -> int: def valid_hid_mouse_delta(arg: Any) -> int:
arg = valid_number(arg, name="Mouse delta") arg = valid_number(arg, name="Mouse delta")
return min(max(-127, arg), 127) return MouseDelta.normalize(arg)