Lines Matching +full:c +full:- +full:45
2 # SPDX-License-Identifier: GPL-2.0
3 # -*- coding: utf-8 -*-
5 # Copyright (c) 2021 Benjamin Tissoires <benjamin.tissoires@gmail.com>
6 # Copyright (c) 2021 Red Hat, Inc.
42 https://docs.microsoft.com/en-us/windows-hardware/design/component-guidelines/windows-pen-states
95 def from_evdev(cls, evdev) -> "PenState":
127 def apply(self, events: List[libevdev.InputEvent], strict: bool) -> "PenState":
177 def valid_transitions(self) -> Tuple["PenState", ...]:
256 def historically_tolerated_transitions(self) -> Tuple["PenState", ...]:
258 for skipping the in-range state, due to historical reasons.
341 def legal_transitions() -> Dict[str, Tuple["PenState", ...]]:
343 we don't have Invert nor Erase bits, so just move in/out-of-range or proximity.
344 … https://docs.microsoft.com/en-us/windows-hardware/design/component-guidelines/windows-pen-states
347 "in-range": (PenState.PEN_IS_IN_RANGE,),
348 "in-range -> out-of-range": (
352 "in-range -> touch": (PenState.PEN_IS_IN_RANGE, PenState.PEN_IS_IN_CONTACT),
353 "in-range -> touch -> release": (
358 "in-range -> touch -> release -> out-of-range": (
367 def legal_transitions_with_invert() -> Dict[str, Tuple["PenState", ...]]:
371 … https://docs.microsoft.com/en-us/windows-hardware/design/component-guidelines/windows-pen-states
374 "hover-erasing": (PenState.PEN_IS_IN_RANGE_WITH_ERASING_INTENT,),
375 "hover-erasing -> out-of-range": (
379 "hover-erasing -> erase": (
383 "hover-erasing -> erase -> release": (
388 "hover-erasing -> erase -> release -> out-of-range": (
394 "hover-erasing -> in-range": (
398 "in-range -> hover-erasing": (
405 def legal_transitions_with_primary_button() -> Dict[str, Tuple["PenState", ...]]:
410 "hover-button": (PenState.PEN_IS_IN_RANGE_WITH_BUTTON,),
411 "hover-button -> out-of-range": (
415 "in-range -> button-press": (
419 "in-range -> button-press -> button-release": (
424 "in-range -> touch -> button-press -> button-release": (
430 "in-range -> touch -> button-press -> release -> button-release": (
437 "in-range -> button-press -> touch -> release -> button-release": (
444 "in-range -> button-press -> touch -> button-release -> release": (
454 def legal_transitions_with_secondary_button() -> Dict[str, Tuple["PenState", ...]]:
460 "hover-button": (PenState.PEN_IS_IN_RANGE_WITH_SECOND_BUTTON,),
461 "hover-button -> out-of-range": (
465 "in-range -> button-press": (
469 "in-range -> button-press -> button-release": (
474 "in-range -> touch -> button-press -> button-release": (
480 "in-range -> touch -> button-press -> release -> button-release": (
487 "in-range -> button-press -> touch -> release -> button-release": (
494 "in-range -> button-press -> touch -> button-release -> release": (
504 def tolerated_transitions() -> Dict[str, Tuple["PenState", ...]]:
509 "direct-in-contact": (PenState.PEN_IS_IN_CONTACT,),
510 "direct-in-contact -> out-of-range": (
517 def tolerated_transitions_with_invert() -> Dict[str, Tuple["PenState", ...]]:
521 … https://docs.microsoft.com/en-us/windows-hardware/design/component-guidelines/windows-pen-states
524 "direct-erase": (PenState.PEN_IS_ERASING,),
525 "direct-erase -> out-of-range": (
532 def broken_transitions() -> Dict[str, Tuple["PenState", ...]]:
539 "in-range -> touch -> erase -> hover-erase": (
545 "in-range -> erase -> hover-erase": (
550 "hover-erase -> erase -> touch -> in-range": (
556 "hover-erase -> touch -> in-range": (
561 "touch -> erase -> touch -> erase": (
826 p.y -= 1
835 p.y -= 1
849 we don't have Invert nor Erase bits, so just move in/out-of-range or proximity.
850 … https://docs.microsoft.com/en-us/windows-hardware/design/component-guidelines/windows-pen-states
916 … https://docs.microsoft.com/en-us/windows-hardware/design/component-guidelines/windows-pen-states
936 … https://docs.microsoft.com/en-us/windows-hardware/design/component-guidelines/windows-pen-states
966 # surface, in-range stays to 1, but when
967 # the pen moves in-range gets reverted to 0
994 # return PenDigitizer('uhid test egalax-capacitive_0eef_7224',
1002 # return PenDigitizer('uhid test egalax-capacitive_0eef_72fa',
1010 # return PenDigitizer('uhid test egalax-capacitive_0eef_7336',
1018 # return PenDigitizer('uhid test egalax-capacitive_0eef_7337',
1026 # return PenDigitizer('uhid test egalax-capacitive_0eef_7349',
1034 # return PenDigitizer('uhid test egalax-capacitive_0eef_73f4',
1035 …c 26 ff 7f 81 02 05 0d 09 55 25 08 75 08 95 01 b1 02 c0 c0 05 01 09 01 a1 01 85 01 09 01 a1 00 05 …
1083 …a1 01 85 03 09 20 a1 00 15 00 25 01 75 01 95 01 09 42 81 02 09 44 81 02 09 45 81 02 81 03 09 32 81…
1090 …a1 01 85 03 09 20 a1 00 15 00 25 01 75 01 95 01 09 42 81 02 09 44 81 02 09 45 81 02 81 03 09 32 81…
1098 …c 85 2c b1 02 96 fe 01 09 2d 85 2d b1 02 95 02 09 48 85 48 b1 02 95 0f 09 2e 85 2e 81 02 95 1f 09 …
1106 …c 85 2c b1 02 96 fe 01 09 2d 85 2d b1 02 95 02 09 48 85 48 b1 02 95 0f 09 2e 85 2e 81 02 95 1f 09 …
1114 …c 85 2c b1 02 96 fe 01 09 2d 85 2d b1 02 95 02 09 48 85 48 b1 02 95 0f 09 2e 85 2e 81 02 95 1f 09 …
1122 …c 85 2c b1 02 96 fe 01 09 2d 85 2d b1 02 95 02 09 48 85 48 b1 02 95 0f 09 2e 85 2e 81 02 95 1f 09 …
1130 …c 85 2c b1 02 96 fe 01 09 2d 85 2d b1 02 95 02 09 48 85 48 b1 02 95 0f 09 2e 85 2e 81 02 95 1f 09 …
1138 …c 46 77 04 09 31 81 02 05 0d c0 09 22 a1 02 09 42 25 01 75 01 95 01 81 02 95 07 81 01 95 01 75 08 …
1153 …45 ff 09 48 81 02 09 49 81 02 09 30 81 02 95 01 05 01 a4 26 cf 0f 75 10 55 0f 65 11 09 30 35 00 46…
1162 …45 ff 09 48 81 42 09 49 81 42 55 0e c0 09 22 a1 02 09 42 25 01 75 01 95 01 81 02 25 7f 09 30 75 07…