b7b1866ac9
What a short title for such a massive diff. This (heavily squashed) commit adds support for Consumer keys such as volume keys, media play/pause/stop, etc. by exposing four HID devices over a single USB lane (as opposed to just exposing a keyboard). This heavily refactors how HIDHelper works due to the new reporting structure. Many of the media keys were changed (mostly Keycodes.Media section), but many (especially anything regarding Application keys) haven't been touched yet - thus many keycodes may still be wrong. Probably worth updating those soon, but I didn't get around to it yet. The definitive list I refered to was http://www.freebsddiary.org/APC/usb_hid_usages.php, which is basically copy-pasta from the official USB HID spec at https://www.usb.org/sites/default/files/documents/hut1_12v2.pdf (warning: massive PDF, not light reading). The only known regression this introduces is that instead of 6KRO as the USB spec usually supports, we can now only have 5KRO (maybe even 4KRO), for reasons I have yet to fully debug - this seems to be related to the report having to include the device descriptor _and_ not supporting a full 8 bytes as it used to. For now I'm willing to accept this, but it definitely will be great to squash that bug. This adds descriptor support for MOUSE and SYSCONTROL devices, as of yet unimplemented.
11 lines
356 B
INI
11 lines
356 B
INI
[flake8]
|
|
exclude = .git,__pycache__,vendor,.venv
|
|
max_line_length = 99
|
|
ignore = X100, E262
|
|
per-file-ignores =
|
|
user_keymaps/**/*.py: F401,E501
|
|
tests/test_data/keymaps/**/*.py: F401,E501
|
|
|
|
[isort]
|
|
known_third_party = analogio,bitbangio,bleio,board,busio,digitalio,framebuf,gamepad,gc,microcontroller,micropython,pulseio,pyb,pydux,uio,ubluepy,machine,pyb,uos
|