Lines Matching +full:0 +full:- +full:15
2 # SPDX-License-Identifier: GPL-2.0
3 # -*- coding: utf-8 -*-
43 https://docs.microsoft.com/en-us/windows-hardware/design/component-guidelines/windows-pen-states
66 def from_evdev(cls, evdev, test_button) -> "PenState":
99 ) -> "PenState":
146 def valid_transitions(self) -> Tuple["PenState", ...]:
206 def historically_tolerated_transitions(self) -> Tuple["PenState", ...]:
208 for skipping the in-range state, due to historical reasons.
271 def legal_transitions() -> Dict[str, Tuple["PenState", ...]]:
273 we don't have Invert nor Erase bits, so just move in/out-of-range or proximity.
274 … https://docs.microsoft.com/en-us/windows-hardware/design/component-guidelines/windows-pen-states
277 "in-range": (PenState.PEN_IS_IN_RANGE,),
278 "in-range -> out-of-range": (
282 "in-range -> touch": (PenState.PEN_IS_IN_RANGE, PenState.PEN_IS_IN_CONTACT),
283 "in-range -> touch -> release": (
288 "in-range -> touch -> release -> out-of-range": (
297 def legal_transitions_with_invert() -> Dict[str, Tuple["PenState", ...]]:
301 … https://docs.microsoft.com/en-us/windows-hardware/design/component-guidelines/windows-pen-states
304 "hover-erasing": (PenState.PEN_IS_IN_RANGE_WITH_ERASING_INTENT,),
305 "hover-erasing -> out-of-range": (
309 "hover-erasing -> erase": (
313 "hover-erasing -> erase -> release": (
318 "hover-erasing -> erase -> release -> out-of-range": (
324 "hover-erasing -> in-range": (
328 "in-range -> hover-erasing": (
335 def legal_transitions_with_button() -> Dict[str, Tuple["PenState", ...]]:
340 "hover-button": (PenState.PEN_IS_IN_RANGE_WITH_BUTTON,),
341 "hover-button -> out-of-range": (
345 "in-range -> button-press": (
349 "in-range -> button-press -> button-release": (
354 "in-range -> touch -> button-press -> button-release": (
360 "in-range -> touch -> button-press -> release -> button-release": (
367 "in-range -> button-press -> touch -> release -> button-release": (
374 "in-range -> button-press -> touch -> button-release -> release": (
384 def tolerated_transitions() -> Dict[str, Tuple["PenState", ...]]:
389 "direct-in-contact": (PenState.PEN_IS_IN_CONTACT,),
390 "direct-in-contact -> out-of-range": (
397 def tolerated_transitions_with_invert() -> Dict[str, Tuple["PenState", ...]]:
401 … https://docs.microsoft.com/en-us/windows-hardware/design/component-guidelines/windows-pen-states
404 "direct-erase": (PenState.PEN_IS_ERASING,),
405 "direct-erase -> out-of-range": (
412 def broken_transitions() -> Dict[str, Tuple["PenState", ...]]:
419 "in-range -> touch -> erase -> hover-erase": (
425 "in-range -> erase -> hover-erase": (
430 "hover-erase -> erase -> touch -> in-range": (
436 "hover-erase -> touch -> in-range": (
441 "touch -> erase -> touch -> erase": (
455 self.tippressure = 15
456 self.azimuth = 0
551 pen.x = 0
552 pen.y = 0
554 pen.tippressure = 0
555 pen.azimuth = 0
557 pen.width = 0
558 pen.height = 0
561 pen.xtilt = 0
562 pen.ytilt = 0
563 pen.twist = 0
708 p.y -= 1
717 p.y -= 1
731 we don't have Invert nor Erase bits, so just move in/out-of-range or proximity.
732 … https://docs.microsoft.com/en-us/windows-hardware/design/component-guidelines/windows-pen-states
829 … https://docs.microsoft.com/en-us/windows-hardware/design/component-guidelines/windows-pen-states
849 … https://docs.microsoft.com/en-us/windows-hardware/design/component-guidelines/windows-pen-states
879 # surface, in-range stays to 1, but when
880 # the pen moves in-range gets reverted to 0
913 input_info=(BusType.USB, 0x28BD, 0x095B),
930 pen.x = 0
931 pen.y = 0
933 pen.tippressure = 0
934 pen.azimuth = 0
936 pen.width = 0
937 pen.height = 0
940 pen.xtilt = 0
941 pen.ytilt = 0
942 pen.twist = 0
994 if pen_copy.xtilt != 0:
996 if pen_copy.ytilt != 0:
1014 input_info=(BusType.USB, 0x28BD, 0x093A),
1034 pen.tippressure = 0
1035 pen.azimuth = 0
1037 pen.width = 0
1038 pen.height = 0
1041 pen.xtilt = 0
1042 pen.ytilt = 0
1043 pen.twist = 0
1082 # the pen reliably sends in-range events in a normal case (non emulation of eraser mode)
1150 input_info=(BusType.USB, 0x256C, 0x006B),
1171 pen.tippressure = 0
1172 pen.azimuth = 0
1174 pen.width = 0
1175 pen.height = 0
1178 pen.xtilt = 0
1179 pen.ytilt = 0
1180 pen.twist = 0
1231 if report[0] == 0x0a:
1233 report[1] &= 0xdf
1236 if report[1] & 0x40:
1237 report[1] |= 0x80
1250 # going out-of-prox: the eraser mode is activated by presenting
1301 # return PenDigitizer('uhid test egalax-capacitive_0eef_7224',
1302 …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…
1303 # input_info=(BusType.USB, 0x0eef, 0x7224),
1309 # return PenDigitizer('uhid test egalax-capacitive_0eef_72fa',
1310 …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…
1311 # input_info=(BusType.USB, 0x0eef, 0x72fa),
1317 # return PenDigitizer('uhid test egalax-capacitive_0eef_7336',
1318 …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…
1319 # input_info=(BusType.USB, 0x0eef, 0x7336),
1325 # return PenDigitizer('uhid test egalax-capacitive_0eef_7337',
1326 …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…
1327 # input_info=(BusType.USB, 0x0eef, 0x7337),
1333 # return PenDigitizer('uhid test egalax-capacitive_0eef_7349',
1334 …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…
1335 # input_info=(BusType.USB, 0x0eef, 0x7349),
1341 # return PenDigitizer('uhid test egalax-capacitive_0eef_73f4',
1342 …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…
1343 # input_info=(BusType.USB, 0x0eef, 0x73f4),
1350 …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…
1351 # input_info=(BusType.USB, 0x6615, 0x0070))
1358 …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…
1359 input_info=(BusType.USB, 0x1870, 0x0100),
1367 …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…
1368 input_info=(BusType.USB, 0x1870, 0x010D),
1376 …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…
1377 input_info=(BusType.USB, 0x1870, 0x0119),
1390 …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…
1397 …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…
1405 …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…
1413 …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…
1421 …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…
1429 …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…
1437 …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…
1445 …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…
1460 …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…
1461 input_info=(BusType.I2C, 0x04F3, 0x2A49),
1469 …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…
1470 input_info=(BusType.I2C, 0x27C6, 0x0E00),
1480 …0d 09 02 a1 01 85 07 09 20 a1 00 09 42 09 44 09 45 09 3c 15 00 25 01 75 01 95 04 81 02 95 01 81 03…
1481 input_info=(BusType.USB, 0x28BD, 0x095B),
1492 …0d 09 02 a1 01 85 07 09 20 a1 00 09 42 09 44 09 45 15 00 25 01 75 01 95 03 81 02 95 02 81 03 09 32…
1493 input_info=(BusType.USB, 0x28BD, 0x093A),
1498 hid_bpfs = [("Huion__Kamvas-Pro-19.bpf.o", True)]
1503 …0d 09 02 a1 01 85 0a 09 20 a1 01 09 42 09 44 09 43 09 3c 09 45 15 00 25 01 75 01 95 06 81 02 09 32…
1504 input_info=(BusType.USB, 0x256C, 0x006B),