Lines Matching +full:0 +full:- +full:15
2 # SPDX-License-Identifier: GPL-2.0
3 # -*- coding: utf-8 -*-
23 https://docs.microsoft.com/en-us/windows-hardware/design/component-guidelines/windows-pen-states
37 def from_evdev(cls, evdev) -> "PenState":
58 def apply(self, events) -> "PenState":
91 def valid_transitions(self) -> Tuple["PenState", ...]:
93 for skipping the in-range state, due to historical reasons.
145 self.tippressure = 15
146 self.azimuth = 0
153 self.x_tilt = 0
154 self.y_tilt = 0
155 self.twist = 0
183 self.x = 0
184 self.y = 0
186 self.tippressure = 0
187 self.azimuth = 0
189 self.width = 0
190 self.height = 0
193 self.x_tilt = 0
194 self.y_tilt = 0
195 self.twist = 0
236 def legal_transitions() -> Dict[str, Tuple[PenState, ...]]:
238 we don't have Invert nor Erase bits, so just move in/out-of-range or proximity.
239 … https://docs.microsoft.com/en-us/windows-hardware/design/component-guidelines/windows-pen-states
242 "in-range": (PenState.PEN_IS_IN_RANGE,),
243 "in-range -> out-of-range": (
247 "in-range -> touch": (PenState.PEN_IS_IN_RANGE, PenState.PEN_IS_IN_CONTACT),
248 "in-range -> touch -> release": (
253 "in-range -> touch -> release -> out-of-range": (
262 def legal_transitions_with_invert() -> Dict[str, Tuple[PenState, ...]]:
266 … https://docs.microsoft.com/en-us/windows-hardware/design/component-guidelines/windows-pen-states
269 "hover-erasing": (PenState.PEN_IS_IN_RANGE_WITH_ERASING_INTENT,),
270 "hover-erasing -> out-of-range": (
274 "hover-erasing -> erase": (
278 "hover-erasing -> erase -> release": (
283 "hover-erasing -> erase -> release -> out-of-range": (
289 "hover-erasing -> in-range": (
293 "in-range -> hover-erasing": (
300 def tolerated_transitions() -> Dict[str, Tuple[PenState, ...]]:
305 "direct-in-contact": (PenState.PEN_IS_IN_CONTACT,),
306 "direct-in-contact -> out-of-range": (
313 def tolerated_transitions_with_invert() -> Dict[str, Tuple[PenState, ...]]:
317 … https://docs.microsoft.com/en-us/windows-hardware/design/component-guidelines/windows-pen-states
320 "direct-erase": (PenState.PEN_IS_ERASING,),
321 "direct-erase -> out-of-range": (
328 def broken_transitions() -> Dict[str, Tuple[PenState, ...]]:
335 "in-range -> touch -> erase -> hover-erase": (
341 "in-range -> erase -> hover-erase": (
346 "hover-erase -> erase -> touch -> in-range": (
352 "hover-erase -> touch -> in-range": (
357 "touch -> erase -> touch -> erase": (
478 p.y -= 1
485 p.y -= 1
497 we don't have Invert nor Erase bits, so just move in/out-of-range or proximity.
498 … https://docs.microsoft.com/en-us/windows-hardware/design/component-guidelines/windows-pen-states
529 … https://docs.microsoft.com/en-us/windows-hardware/design/component-guidelines/windows-pen-states
549 … https://docs.microsoft.com/en-us/windows-hardware/design/component-guidelines/windows-pen-states
577 { 0, 0, 1 } <- hover
578 { 0, 1, 1 } <- primary button pressed
579 { 0, 1, 1 } <- liftoff
580 { 0, 0, 0 } <- leaves
599 p.y -= 1
607 assert libevdev.InputEvent(libevdev.EV_KEY.BTN_STYLUS, 0) in events
611 assert libevdev.InputEvent(libevdev.EV_KEY.BTN_TOOL_PEN, 0) in events
620 { 0, 0, 1 } <- hover
621 { 0, 1, 1 } <- primary button pressed
622 { 1, 1, 1 } <- touch-down
623 { 1, 1, 1 } <- still touch, scribble on the screen
624 { 0, 1, 1 } <- liftoff
625 { 0, 0, 0 } <- leaves
649 p.y -= 1
657 assert libevdev.InputEvent(libevdev.EV_KEY.BTN_TOUCH, 0) in events
662 assert libevdev.InputEvent(libevdev.EV_KEY.BTN_TOOL_PEN, 0) in events
663 assert libevdev.InputEvent(libevdev.EV_KEY.BTN_STYLUS, 0) in events
674 # surface, in-range stays to 1, but when
675 # the pen moves in-range gets reverted to 0
702 # return PenDigitizer('uhid test egalax-capacitive_0eef_7224',
703 …0d 09 04 a1 01 85 04 09 22 a1 00 09 42 15 00 25 01 75 01 95 01 81 02 09 32 15 00 25 01 81 02 09 51…
704 # input_info=(BusType.USB, 0x0eef, 0x7224),
710 # return PenDigitizer('uhid test egalax-capacitive_0eef_72fa',
711 …0d 09 04 a1 01 85 04 09 22 a1 00 09 42 15 00 25 01 75 01 95 01 81 02 09 32 15 00 25 01 81 02 09 51…
712 # input_info=(BusType.USB, 0x0eef, 0x72fa),
718 # return PenDigitizer('uhid test egalax-capacitive_0eef_7336',
719 …0d 09 04 a1 01 85 04 09 22 a1 00 09 42 15 00 25 01 75 01 95 01 81 02 09 32 15 00 25 01 81 02 09 51…
720 # input_info=(BusType.USB, 0x0eef, 0x7336),
726 # return PenDigitizer('uhid test egalax-capacitive_0eef_7337',
727 …0d 09 04 a1 01 85 04 09 22 a1 00 09 42 15 00 25 01 75 01 95 01 81 02 09 32 15 00 25 01 81 02 09 51…
728 # input_info=(BusType.USB, 0x0eef, 0x7337),
734 # return PenDigitizer('uhid test egalax-capacitive_0eef_7349',
735 …0d 09 04 a1 01 85 04 09 22 a1 00 09 42 15 00 25 01 75 01 95 01 81 02 09 32 15 00 25 01 81 02 09 51…
736 # input_info=(BusType.USB, 0x0eef, 0x7349),
742 # return PenDigitizer('uhid test egalax-capacitive_0eef_73f4',
743 …0d 09 04 a1 01 85 04 09 22 a1 00 09 42 15 00 25 01 75 01 95 01 81 02 09 32 15 00 25 01 81 02 09 51…
744 # input_info=(BusType.USB, 0x0eef, 0x73f4),
751 …15 00 25 01 95 02 75 01 81 02 95 06 81 03 05 01 09 30 09 31 15 00 26 ff 7f 75 10 95 02 81 02 c0 c0…
752 # input_info=(BusType.USB, 0x6615, 0x0070))
759 …0d 09 04 a1 01 85 01 09 22 a1 02 09 42 15 00 25 01 75 01 95 01 81 02 09 32 81 02 95 06 81 03 75 08…
760 input_info=(BusType.USB, 0x1870, 0x0100),
768 …0d 09 04 a1 01 85 01 09 22 a1 02 09 42 15 00 25 01 75 01 95 01 81 02 09 32 81 02 95 06 81 03 75 08…
769 input_info=(BusType.USB, 0x1870, 0x010D),
777 …0d 09 04 a1 01 85 01 09 22 a1 02 09 42 15 00 25 01 75 01 95 01 81 02 09 32 81 02 95 06 81 03 75 08…
778 input_info=(BusType.USB, 0x1870, 0x0119),
791 …0d 09 04 a1 01 85 01 09 22 a1 02 09 42 15 00 25 01 75 01 95 01 81 02 95 01 81 03 95 01 81 03 25 1f…
798 …0d 09 04 a1 01 85 01 09 22 a1 02 09 42 15 00 25 01 75 01 95 01 81 02 95 01 81 03 95 01 81 03 25 1f…
806 …15 00 26 ff 00 06 0b ff 09 0b a1 01 95 0f 09 29 85 29 b1 02 95 1f 09 2a 85 2a b1 02 95 3e 09 2b 85…
814 …15 00 26 ff 00 06 0b ff 09 0b a1 01 95 0f 09 29 85 29 b1 02 95 1f 09 2a 85 2a b1 02 95 3e 09 2b 85…
822 …15 00 26 ff 00 06 0b ff 09 0b a1 01 95 0f 09 29 85 29 b1 02 95 1f 09 2a 85 2a b1 02 95 3e 09 2b 85…
830 …15 00 26 ff 00 06 0b ff 09 0b a1 01 95 0f 09 29 85 29 b1 02 95 1f 09 2a 85 2a b1 02 95 3e 09 2b 85…
838 …15 00 26 ff 00 06 0b ff 09 0b a1 01 95 0f 09 29 85 29 b1 02 95 1f 09 2a 85 2a b1 02 95 3e 09 2b 85…
846 …0d 09 04 a1 01 85 01 09 22 a1 02 55 0e 65 11 35 00 15 00 09 42 25 01 75 01 95 01 81 02 95 07 81 01…
861 …0d 09 04 a1 01 85 01 09 22 a1 02 09 42 15 00 25 01 75 01 95 01 81 02 75 01 81 03 75 06 09 51 25 3f…
862 input_info=(BusType.I2C, 0x04F3, 0x2A49),
870 …0d 09 04 a1 01 85 01 09 22 a1 02 55 0e 65 11 35 00 15 00 09 42 25 01 75 01 95 01 81 02 25 7f 09 30…
871 input_info=(BusType.I2C, 0x27C6, 0x0E00),