From d070ff2f91473f3c527c387466aca070ebde7dcd Mon Sep 17 00:00:00 2001 From: eraden Date: Wed, 3 Jan 2024 12:49:02 +0100 Subject: [PATCH] Init --- .gitignore | 1 + Cargo.lock | 1986 ++++++++++++++++++++++++++++++++++++++++++++++ Cargo.toml | 59 ++ src/backlight.rs | 66 ++ src/keycodes.rs | 1340 +++++++++++++++++++++++++++++++ src/lib.rs | 2 + src/main.rs | 15 + 7 files changed, 3469 insertions(+) create mode 100644 .gitignore create mode 100644 Cargo.lock create mode 100644 Cargo.toml create mode 100644 src/backlight.rs create mode 100644 src/keycodes.rs create mode 100644 src/lib.rs create mode 100644 src/main.rs diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ea8c4bf --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/target diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 0000000..9118042 --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,1986 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "aho-corasick" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +dependencies = [ + "memchr", +] + +[[package]] +name = "arrayvec" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" + +[[package]] +name = "as-slice" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45403b49e3954a4b8428a0ac21a4b7afadccf92bfd96273f1a58cd4812496ae0" +dependencies = [ + "generic-array 0.12.4", + "generic-array 0.13.3", + "generic-array 0.14.7", + "stable_deref_trait", +] + +[[package]] +name = "as-slice" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "516b6b4f0e40d50dcda9365d53964ec74560ad4284da2e7fc97122cd83174516" +dependencies = [ + "stable_deref_trait", +] + +[[package]] +name = "ascii-canvas" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8824ecca2e851cec16968d54a01dd372ef8f95b244fb84b84e70128be347c3c6" +dependencies = [ + "term", +] + +[[package]] +name = "atomic-polyfill" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cf2bce30dfe09ef0bfaef228b9d414faaf7e563035494d7fe092dba54b300f4" +dependencies = [ + "critical-section", +] + +[[package]] +name = "atomic-pool" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58c5fc22e05ec2884db458bf307dc7b278c9428888d2b6e6fad9c0ae7804f5f6" +dependencies = [ + "as-slice 0.1.5", + "as-slice 0.2.1", + "atomic-polyfill", + "stable_deref_trait", +] + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "az" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b7e4c2464d97fe331d41de9d5db0def0a96f4d823b8b32a2efd503578988973" + +[[package]] +name = "bare-metal" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5deb64efa5bd81e31fcd1938615a6d98c82eafcbcd787162b6f63b91d6bac5b3" +dependencies = [ + "rustc_version 0.2.3", +] + +[[package]] +name = "bit-set" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" + +[[package]] +name = "bitfield" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46afbd2983a5d5a7bd740ccb198caf5b82f45c40c09c0eed36052d91cb92e719" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" + +[[package]] +name = "byte-slice-cast" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0a5e3906bcbf133e33c1d4d95afc664ad37fbdb9f6568d8043e7ea8c27d93d3" + +[[package]] +name = "byte-slice-cast" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" + +[[package]] +name = "bytemuck" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6" + +[[package]] +name = "byteorder" +version = "1.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "codespan-reporting" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" +dependencies = [ + "termcolor", + "unicode-width", +] + +[[package]] +name = "cortex-m" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ec610d8f49840a5b376c69663b6369e71f4b34484b9b2eb29fb918d92516cb9" +dependencies = [ + "bare-metal", + "bitfield", + "embedded-hal 0.2.7", + "volatile-register", +] + +[[package]] +name = "cortex-m-rt" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee84e813d593101b1723e13ec38b6ab6abbdbaaa4546553f5395ed274079ddb1" +dependencies = [ + "cortex-m-rt-macros", +] + +[[package]] +name = "cortex-m-rt-macros" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f6f3e36f203cfedbc78b357fb28730aa2c6dc1ab060ee5c2405e843988d3c7" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "crc-any" +version = "2.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c01a5e1f881f6fb6099a7bdf949e946719fd4f1fefa56264890574febf0eb6d0" +dependencies = [ + "debug-helper", +] + +[[package]] +name = "critical-section" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7059fff8937831a9ae6f0fe4d658ffabf58f2ca96aa9dec1c889f936f705f216" + +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + +[[package]] +name = "darling" +version = "0.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0209d94da627ab5605dcccf08bb18afa5009cfbef48d8a8b7d7bdbc79be25c5e" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "177e3443818124b357d8e76f53be906d60937f0d3a90773a664fa63fa253e621" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.46", +] + +[[package]] +name = "darling_macro" +version = "0.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5" +dependencies = [ + "darling_core", + "quote", + "syn 2.0.46", +] + +[[package]] +name = "debug-helper" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f578e8e2c440e7297e008bb5486a3a8a194775224bbc23729b0dbdfaeebf162e" + +[[package]] +name = "defmt" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8a2d011b2fee29fb7d659b83c43fce9a2cb4df453e16d441a51448e448f3f98" +dependencies = [ + "bitflags 1.3.2", + "defmt-macros", +] + +[[package]] +name = "defmt-macros" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54f0216f6c5acb5ae1a47050a6645024e6edafc2ee32d421955eccfef12ef92e" +dependencies = [ + "defmt-parser", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.46", +] + +[[package]] +name = "defmt-parser" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "269924c02afd7f94bc4cecbfa5c379f6ffcf9766b3408fe63d22c728654eccd0" +dependencies = [ + "thiserror", +] + +[[package]] +name = "defmt-rtt" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "609923761264dd99ed9c7d209718cda4631c5fe84668e0f0960124cbb844c49f" +dependencies = [ + "critical-section", + "defmt", +] + +[[package]] +name = "diff" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" + +[[package]] +name = "dirs-next" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" +dependencies = [ + "cfg-if", + "dirs-sys-next", +] + +[[package]] +name = "dirs-sys-next" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + +[[package]] +name = "display-interface" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7517c040926d7b02b111884aa089177db80878533127f7c1b480d852c5fb4112" + +[[package]] +name = "display-interface-spi" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "489378ad054862146fbd1f09f51d585ccbe4bd1e2feadcda2a13ac33f840e1a5" +dependencies = [ + "byte-slice-cast 0.3.5", + "display-interface", + "embedded-hal 0.2.7", +] + +[[package]] +name = "document-features" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef5282ad69563b5fc40319526ba27e0e7363d552a896f0297d54f767717f9b95" +dependencies = [ + "litrs", +] + +[[package]] +name = "either" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" + +[[package]] +name = "embassy-embedded-hal" +version = "0.1.0" +source = "git+https://github.com/embassy-rs/embassy.git#73c85f5981f2348691e713b6f630a9d4465d1344" +dependencies = [ + "defmt", + "embassy-futures", + "embassy-sync", + "embassy-time", + "embedded-hal 0.2.7", + "embedded-hal 1.0.0-rc.3", + "embedded-hal-async", + "embedded-storage", + "embedded-storage-async", + "nb 1.1.0", +] + +[[package]] +name = "embassy-executor" +version = "0.4.0" +source = "git+https://github.com/embassy-rs/embassy.git#73c85f5981f2348691e713b6f630a9d4465d1344" +dependencies = [ + "cortex-m", + "critical-section", + "defmt", + "document-features", + "embassy-executor-macros", + "embassy-time", +] + +[[package]] +name = "embassy-executor-macros" +version = "0.4.0" +source = "git+https://github.com/embassy-rs/embassy.git#73c85f5981f2348691e713b6f630a9d4465d1344" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 2.0.46", +] + +[[package]] +name = "embassy-futures" +version = "0.1.1" +source = "git+https://github.com/embassy-rs/embassy.git#73c85f5981f2348691e713b6f630a9d4465d1344" + +[[package]] +name = "embassy-hal-internal" +version = "0.1.0" +source = "git+https://github.com/embassy-rs/embassy.git#73c85f5981f2348691e713b6f630a9d4465d1344" +dependencies = [ + "cortex-m", + "critical-section", + "defmt", + "num-traits", +] + +[[package]] +name = "embassy-net" +version = "0.2.1" +source = "git+https://github.com/embassy-rs/embassy.git#73c85f5981f2348691e713b6f630a9d4465d1344" +dependencies = [ + "as-slice 0.2.1", + "atomic-pool", + "defmt", + "document-features", + "embassy-net-driver", + "embassy-sync", + "embassy-time", + "embedded-io-async", + "embedded-nal-async", + "futures", + "generic-array 0.14.7", + "heapless 0.8.0", + "managed", + "smoltcp", + "stable_deref_trait", +] + +[[package]] +name = "embassy-net-driver" +version = "0.2.0" +source = "git+https://github.com/embassy-rs/embassy.git#73c85f5981f2348691e713b6f630a9d4465d1344" +dependencies = [ + "defmt", +] + +[[package]] +name = "embassy-net-driver-channel" +version = "0.2.0" +source = "git+https://github.com/embassy-rs/embassy.git#73c85f5981f2348691e713b6f630a9d4465d1344" +dependencies = [ + "embassy-futures", + "embassy-net-driver", + "embassy-sync", +] + +[[package]] +name = "embassy-net-wiznet" +version = "0.1.0" +source = "git+https://github.com/embassy-rs/embassy.git#73c85f5981f2348691e713b6f630a9d4465d1344" +dependencies = [ + "defmt", + "embassy-futures", + "embassy-net-driver-channel", + "embassy-time", + "embedded-hal 1.0.0-rc.3", + "embedded-hal-async", +] + +[[package]] +name = "embassy-rp" +version = "0.1.0" +source = "git+https://github.com/embassy-rs/embassy.git#73c85f5981f2348691e713b6f630a9d4465d1344" +dependencies = [ + "atomic-polyfill", + "cfg-if", + "cortex-m", + "cortex-m-rt", + "critical-section", + "defmt", + "document-features", + "embassy-embedded-hal", + "embassy-futures", + "embassy-hal-internal", + "embassy-sync", + "embassy-time", + "embassy-usb-driver", + "embedded-hal 0.2.7", + "embedded-hal 1.0.0-rc.3", + "embedded-hal-async", + "embedded-hal-nb", + "embedded-io", + "embedded-io-async", + "embedded-storage", + "embedded-storage-async", + "fixed", + "futures", + "nb 1.1.0", + "pio", + "pio-proc", + "rand_core", + "rp-pac", + "rp2040-boot2", +] + +[[package]] +name = "embassy-sync" +version = "0.5.0" +source = "git+https://github.com/embassy-rs/embassy.git#73c85f5981f2348691e713b6f630a9d4465d1344" +dependencies = [ + "cfg-if", + "critical-section", + "defmt", + "embedded-io-async", + "futures-util", + "heapless 0.8.0", +] + +[[package]] +name = "embassy-time" +version = "0.2.0" +source = "git+https://github.com/embassy-rs/embassy.git#73c85f5981f2348691e713b6f630a9d4465d1344" +dependencies = [ + "cfg-if", + "critical-section", + "defmt", + "document-features", + "embedded-hal 0.2.7", + "embedded-hal 1.0.0-rc.3", + "embedded-hal-async", + "futures-util", + "heapless 0.8.0", +] + +[[package]] +name = "embassy-usb" +version = "0.1.0" +source = "git+https://github.com/embassy-rs/embassy.git#73c85f5981f2348691e713b6f630a9d4465d1344" +dependencies = [ + "defmt", + "embassy-futures", + "embassy-net-driver-channel", + "embassy-sync", + "embassy-usb-driver", + "heapless 0.8.0", + "ssmarshal", + "usbd-hid", +] + +[[package]] +name = "embassy-usb-driver" +version = "0.1.0" +source = "git+https://github.com/embassy-rs/embassy.git#73c85f5981f2348691e713b6f630a9d4465d1344" +dependencies = [ + "defmt", +] + +[[package]] +name = "embassy-usb-logger" +version = "0.1.0" +source = "git+https://github.com/embassy-rs/embassy.git#73c85f5981f2348691e713b6f630a9d4465d1344" +dependencies = [ + "embassy-futures", + "embassy-sync", + "embassy-usb", + "futures", + "log", + "static_cell", + "usbd-hid", +] + +[[package]] +name = "embedded-graphics" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "750082c65094fbcc4baf9ba31583ce9a8bb7f52cadfb96f6164b1bc7f922f32b" +dependencies = [ + "az", + "byteorder", + "embedded-graphics-core", + "float-cmp", + "micromath", +] + +[[package]] +name = "embedded-graphics-core" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8b1239db5f3eeb7e33e35bd10bd014e7b2537b17e071f726a09351431337cfa" +dependencies = [ + "az", + "byteorder", +] + +[[package]] +name = "embedded-hal" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35949884794ad573cf46071e41c9b60efb0cb311e3ca01f7af807af1debc66ff" +dependencies = [ + "nb 0.1.3", + "void", +] + +[[package]] +name = "embedded-hal" +version = "1.0.0-rc.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc402f79e1fd22731ca945b4f97b5ff37e7b3f379312595c42bb2e8811c29920" + +[[package]] +name = "embedded-hal-async" +version = "1.0.0-rc.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa1fba2ef2ffb35d614acc6fb323ddf7facc45c069f24544d49ea54e5043626d" +dependencies = [ + "embedded-hal 1.0.0-rc.3", +] + +[[package]] +name = "embedded-hal-bus" +version = "0.1.0-rc.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efb2ecab73461234acd6db8576463c11c315b44ce234f2ced82f87c60831f4f" +dependencies = [ + "critical-section", + "embedded-hal 1.0.0-rc.3", + "embedded-hal-async", +] + +[[package]] +name = "embedded-hal-nb" +version = "1.0.0-rc.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3cde58312a0675b6c0389eb0dceb2bf8c735a697b0b5baa1f23bbaf030636deb" +dependencies = [ + "embedded-hal 1.0.0-rc.3", + "nb 1.1.0", +] + +[[package]] +name = "embedded-io" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d" +dependencies = [ + "defmt", +] + +[[package]] +name = "embedded-io-async" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ff09972d4073aa8c299395be75161d582e7629cd663171d62af73c8d50dba3f" +dependencies = [ + "defmt", + "embedded-io", +] + +[[package]] +name = "embedded-nal" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8a943fad5ed3d3f8a00f1e80f6bba371f1e7f0df28ec38477535eb318dc19cc" +dependencies = [ + "nb 1.1.0", + "no-std-net", +] + +[[package]] +name = "embedded-nal-async" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72229137a4fc12d239b0b7f50f04b30790678da6d782a0f3f1909bf57ec4b759" +dependencies = [ + "embedded-io-async", + "embedded-nal", + "no-std-net", +] + +[[package]] +name = "embedded-storage" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a21dea9854beb860f3062d10228ce9b976da520a73474aed3171ec276bc0c032" + +[[package]] +name = "embedded-storage-async" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1763775e2323b7d5f0aa6090657f5e21cfa02ede71f5dc40eead06d64dcd15cc" +dependencies = [ + "embedded-storage", +] + +[[package]] +name = "ena" +version = "0.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c533630cf40e9caa44bd91aadc88a75d75a4c3a12b4cfde353cbed41daa1e1f1" +dependencies = [ + "log", +] + +[[package]] +name = "encode_unicode" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "errno" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" +dependencies = [ + "libc", + "windows-sys", +] + +[[package]] +name = "fixed" +version = "1.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02c69ce7e7c0f17aa18fdd9d0de39727adb9c6281f2ad12f57cbe54ae6e76e7d" +dependencies = [ + "az", + "bytemuck", + "half", + "typenum", +] + +[[package]] +name = "fixed-macro" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0c48af8cb14e02868f449f8a2187bd78af7a08da201fdc78d518ecb1675bc" +dependencies = [ + "fixed", + "fixed-macro-impl", + "fixed-macro-types", +] + +[[package]] +name = "fixed-macro-impl" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c93086f471c0a1b9c5e300ea92f5cd990ac6d3f8edf27616ef624b8fa6402d4b" +dependencies = [ + "fixed", + "paste", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "fixed-macro-types" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "044a61b034a2264a7f65aa0c3cd112a01b4d4ee58baace51fead3f21b993c7e4" +dependencies = [ + "fixed", + "fixed-macro-impl", +] + +[[package]] +name = "fixedbitset" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" + +[[package]] +name = "float-cmp" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1267f4ac4f343772758f7b1bdcbe767c218bbab93bb432acbf5162bbf85a6c4" +dependencies = [ + "num-traits", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "futures" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" + +[[package]] +name = "futures-io" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" + +[[package]] +name = "futures-macro" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.46", +] + +[[package]] +name = "futures-sink" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" + +[[package]] +name = "futures-task" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" + +[[package]] +name = "futures-util" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +dependencies = [ + "futures-core", + "futures-macro", + "futures-sink", + "futures-task", + "pin-project-lite", + "pin-utils", +] + +[[package]] +name = "generic-array" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bd" +dependencies = [ + "typenum", +] + +[[package]] +name = "generic-array" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f797e67af32588215eaaab8327027ee8e71b9dd0b2b26996aedf20c030fce309" +dependencies = [ + "typenum", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + +[[package]] +name = "half" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc52e53916c08643f1b56ec082790d1e86a32e58dc5268f897f313fbae7b4872" +dependencies = [ + "cfg-if", + "crunchy", +] + +[[package]] +name = "hash32" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67" +dependencies = [ + "byteorder", +] + +[[package]] +name = "hash32" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606" +dependencies = [ + "byteorder", +] + +[[package]] +name = "hashbrown" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" + +[[package]] +name = "heapless" +version = "0.7.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdc6457c0eb62c71aac4bc17216026d8410337c4126773b9c5daba343f17964f" +dependencies = [ + "atomic-polyfill", + "hash32 0.2.1", + "rustc_version 0.4.0", + "spin", + "stable_deref_trait", +] + +[[package]] +name = "heapless" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bfb9eb618601c89945a70e254898da93b13be0388091d42117462b265bb3fad" +dependencies = [ + "defmt", + "hash32 0.3.1", + "stable_deref_trait", +] + +[[package]] +name = "hermit-abi" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "indexmap" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" +dependencies = [ + "equivalent", + "hashbrown", +] + +[[package]] +name = "is-terminal" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bad00257d07be169d870ab665980b06cdb366d792ad690bf2e76876dc503455" +dependencies = [ + "hermit-abi", + "rustix", + "windows-sys", +] + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "lalrpop" +version = "0.19.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a1cbf952127589f2851ab2046af368fd20645491bb4b376f04b7f94d7a9837b" +dependencies = [ + "ascii-canvas", + "bit-set", + "diff", + "ena", + "is-terminal", + "itertools", + "lalrpop-util", + "petgraph", + "regex", + "regex-syntax 0.6.29", + "string_cache", + "term", + "tiny-keccak", + "unicode-xid", +] + +[[package]] +name = "lalrpop-util" +version = "0.19.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3c48237b9604c5a4702de6b824e02006c3214327564636aef27c1028a8fa0ed" +dependencies = [ + "regex", +] + +[[package]] +name = "libc" +version = "0.2.151" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4" + +[[package]] +name = "libredox" +version = "0.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" +dependencies = [ + "bitflags 2.4.1", + "libc", + "redox_syscall", +] + +[[package]] +name = "linux-raw-sys" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456" + +[[package]] +name = "litrs" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4ce301924b7887e9d637144fdade93f9dfff9b60981d4ac161db09720d39aa5" + +[[package]] +name = "lock_api" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" + +[[package]] +name = "managed" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ca88d725a0a943b096803bd34e73a4437208b6077654cc4ecb2947a5f91618d" + +[[package]] +name = "memchr" +version = "2.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" + +[[package]] +name = "micromath" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc4010833aea396656c2f91ee704d51a6f1329ec2ab56ffd00bfd56f7481ea94" + +[[package]] +name = "nb" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "801d31da0513b6ec5214e9bf433a77966320625a37860f910be265be6e18d06f" +dependencies = [ + "nb 1.1.0", +] + +[[package]] +name = "nb" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d5439c4ad607c3c23abf66de8c8bf57ba8adcd1f129e699851a6e43935d339d" + +[[package]] +name = "new_debug_unreachable" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54" + +[[package]] +name = "no-std-net" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43794a0ace135be66a25d3ae77d41b91615fb68ae937f904090203e81f755b65" + +[[package]] +name = "num-traits" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_enum" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" +dependencies = [ + "num_enum_derive", +] + +[[package]] +name = "num_enum_derive" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "once_cell" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" + +[[package]] +name = "panic-probe" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa6fa5645ef5a760cd340eaa92af9c1ce131c8c09e7f8926d8a24b59d26652b9" +dependencies = [ + "cortex-m", + "defmt", +] + +[[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-targets 0.48.5", +] + +[[package]] +name = "paste" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" + +[[package]] +name = "petgraph" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" +dependencies = [ + "fixedbitset", + "indexmap", +] + +[[package]] +name = "phf_shared" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096" +dependencies = [ + "siphasher", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pio" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76e09694b50f89f302ed531c1f2a7569f0be5867aee4ab4f8f729bbeec0078e3" +dependencies = [ + "arrayvec", + "num_enum", + "paste", +] + +[[package]] +name = "pio-parser" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77532c2b8279aef98dfc7207ef15298a5a3d6b6cc76ccc8b65913d69f3a8dd6b" +dependencies = [ + "lalrpop", + "lalrpop-util", + "pio", + "regex-syntax 0.6.29", +] + +[[package]] +name = "pio-proc" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b04dc870fb3a4fd8b3e4ca8c61b53bc8ac4eb78b66805d2b3c2e5c4829e0d7a" +dependencies = [ + "codespan-reporting", + "lalrpop-util", + "pio", + "pio-parser", + "proc-macro-error", + "proc-macro2", + "quote", + "regex-syntax 0.6.29", + "syn 1.0.109", +] + +[[package]] +name = "portable-atomic" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0" +dependencies = [ + "critical-section", +] + +[[package]] +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "1.0.74" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2de98502f212cfcea8d0bb305bd0f49d7ebdd75b64ba0a68f937d888f4e0d6db" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "qbd" +version = "0.1.0" +dependencies = [ + "byte-slice-cast 1.2.2", + "cortex-m", + "cortex-m-rt", + "defmt", + "defmt-rtt", + "display-interface", + "display-interface-spi", + "embassy-embedded-hal", + "embassy-executor", + "embassy-futures", + "embassy-net", + "embassy-net-wiznet", + "embassy-rp", + "embassy-sync", + "embassy-time", + "embassy-usb", + "embassy-usb-logger", + "embedded-graphics", + "embedded-hal 1.0.0-rc.3", + "embedded-hal-async", + "embedded-hal-bus", + "embedded-io-async", + "embedded-storage", + "fixed", + "fixed-macro", + "futures", + "heapless 0.8.0", + "log", + "panic-probe", + "pio", + "pio-proc", + "portable-atomic", + "rand", + "smart-leds", + "st7789", + "static_cell", + "usbd-hid", +] + +[[package]] +name = "quote" +version = "1.0.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" + +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "redox_users" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4" +dependencies = [ + "getrandom", + "libredox", + "thiserror", +] + +[[package]] +name = "regex" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax 0.8.2", +] + +[[package]] +name = "regex-automata" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.8.2", +] + +[[package]] +name = "regex-syntax" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + +[[package]] +name = "regex-syntax" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" + +[[package]] +name = "rgb" +version = "0.8.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05aaa8004b64fd573fc9d002f4e632d51ad4f026c2b5ba95fcb6c2f32c2c47d8" +dependencies = [ + "bytemuck", +] + +[[package]] +name = "rp-pac" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f30f6c4c846269293db805e9c77864ff7b923395b480550df44f0868e3765337" +dependencies = [ + "cortex-m", + "cortex-m-rt", +] + +[[package]] +name = "rp2040-boot2" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c92f344f63f950ee36cf4080050e4dce850839b9175da38f9d2ffb69b4dbb21" +dependencies = [ + "crc-any", +] + +[[package]] +name = "rustc_version" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" +dependencies = [ + "semver 0.9.0", +] + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver 1.0.21", +] + +[[package]] +name = "rustix" +version = "0.38.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316" +dependencies = [ + "bitflags 2.4.1", + "errno", + "libc", + "linux-raw-sys", + "windows-sys", +] + +[[package]] +name = "rustversion" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "semver" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" +dependencies = [ + "semver-parser", +] + +[[package]] +name = "semver" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0" + +[[package]] +name = "semver-parser" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" + +[[package]] +name = "serde" +version = "1.0.194" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b114498256798c94a0689e1a15fec6005dee8ac1f41de56404b67afc2a4b773" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.194" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3385e45322e8f9931410f01b3031ec534c3947d0e94c18049af4d9f9907d4e0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.46", +] + +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + +[[package]] +name = "smallvec" +version = "1.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" + +[[package]] +name = "smart-leds" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38dd45fa275f70b4110eac5f5182611ad384f88bb22b68b9a9c3cafd7015290b" +dependencies = [ + "smart-leds-trait", +] + +[[package]] +name = "smart-leds-trait" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebf6d833fa93f16a1c1874e62c2aebe8567e5bdd436d59bf543ed258b6f7a8e3" +dependencies = [ + "rgb", +] + +[[package]] +name = "smoltcp" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a1a996951e50b5971a2c8c0fa05a381480d70a933064245c4a223ddc87ccc97" +dependencies = [ + "bitflags 1.3.2", + "byteorder", + "cfg-if", + "defmt", + "heapless 0.8.0", + "managed", +] + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +dependencies = [ + "lock_api", +] + +[[package]] +name = "ssmarshal" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3e6ad23b128192ed337dfa4f1b8099ced0c2bf30d61e551b65fda5916dbb850" +dependencies = [ + "encode_unicode", + "serde", +] + +[[package]] +name = "st7789" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cba7306a9ca07ffcafd13ac1eaac2d5cedc8e9fc0d342ef674e0f0d059c8f8a9" +dependencies = [ + "display-interface", + "embedded-graphics-core", + "embedded-hal 0.2.7", + "heapless 0.7.17", + "nb 1.1.0", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "static_cell" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa6ba4cf83bf80d3eb25f098ea5e790a0a1fcb5e357442259b231e412c2d3ca0" +dependencies = [ + "portable-atomic", +] + +[[package]] +name = "string_cache" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b" +dependencies = [ + "new_debug_unreachable", + "once_cell", + "parking_lot", + "phf_shared", + "precomputed-hash", +] + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89456b690ff72fddcecf231caedbe615c59480c93358a93dfae7fc29e3ebbf0e" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "term" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f" +dependencies = [ + "dirs-next", + "rustversion", + "winapi", +] + +[[package]] +name = "termcolor" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff1bc3d3f05aff0403e8ac0d92ced918ec05b666a43f83297ccef5bea8a3d449" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "thiserror" +version = "1.0.56" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.56" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.46", +] + +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unicode-width" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" + +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + +[[package]] +name = "usb-device" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f6cc3adc849b5292b4075fc0d5fdcf2f24866e88e336dd27a8943090a520508" + +[[package]] +name = "usbd-hid" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "975bd411f4a939986751ea09992a24fa47c4d25c6ed108d04b4c2999a4fd0132" +dependencies = [ + "serde", + "ssmarshal", + "usb-device", + "usbd-hid-macros", +] + +[[package]] +name = "usbd-hid-descriptors" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcbee8c6735e90894fba04770bc41e11fd3c5256018856e15dc4dd1e6c8a3dd1" +dependencies = [ + "bitfield", +] + +[[package]] +name = "usbd-hid-macros" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "261079a9ada015fa1acac7cc73c98559f3a92585e15f508034beccf6a2ab75a2" +dependencies = [ + "byteorder", + "proc-macro2", + "quote", + "serde", + "syn 1.0.109", + "usbd-hid-descriptors", +] + +[[package]] +name = "vcell" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77439c1b53d2303b20d9459b1ade71a83c716e3f9c34f3228c00e6f185d6c002" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "void" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" + +[[package]] +name = "volatile-register" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de437e2a6208b014ab52972a27e59b33fa2920d3e00fe05026167a1c509d19cc" +dependencies = [ + "vcell", +] + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" +dependencies = [ + "winapi", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.0", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +dependencies = [ + "windows_aarch64_gnullvm 0.52.0", + "windows_aarch64_msvc 0.52.0", + "windows_i686_gnu 0.52.0", + "windows_i686_msvc 0.52.0", + "windows_x86_64_gnu 0.52.0", + "windows_x86_64_gnullvm 0.52.0", + "windows_x86_64_msvc 0.52.0", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..d927b8b --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,59 @@ +[package] +name = "qbd" +version = "0.1.0" +edition = "2021" + +[features] +backlight = [] +backlight_default_on = ["backlight"] +backlight_on_state = ["backlight"] +backlight_breathing = ["backlight"] +backlight_breathing_default_on = ["backlight", "backlight_breathing"] + +default = ["backlight", "backlight_breathing"] + +[dependencies] +embassy-embedded-hal = { version = "0.1.0", git = "https://github.com/embassy-rs/embassy.git", features = ["defmt"] } +embassy-sync = { version = "0.5.0", git = "https://github.com/embassy-rs/embassy.git", features = ["defmt"] } +embassy-executor = { version = "0.4.0", git = "https://github.com/embassy-rs/embassy.git", features = ["task-arena-size-32768", "arch-cortex-m", "executor-thread", "executor-interrupt", "defmt", "integrated-timers"] } +embassy-time = { version = "0.2", git = "https://github.com/embassy-rs/embassy.git", features = ["defmt", "defmt-timestamp-uptime"] } +embassy-rp = { version = "0.1.0", git = "https://github.com/embassy-rs/embassy.git", features = ["defmt", "unstable-pac", "time-driver", "critical-section-impl"] } +embassy-usb = { version = "0.1.0", git = "https://github.com/embassy-rs/embassy.git", features = ["defmt"] } +embassy-net = { version = "0.2.0", git = "https://github.com/embassy-rs/embassy.git", features = ["defmt", "tcp", "udp", "dhcpv4", "medium-ethernet"] } +embassy-net-wiznet = { version = "0.1.0", git = "https://github.com/embassy-rs/embassy.git", features = ["defmt"] } +embassy-futures = { version = "0.1.0", git = "https://github.com/embassy-rs/embassy.git" } +embassy-usb-logger = { version = "0.1.0", git = "https://github.com/embassy-rs/embassy.git" } + +defmt = "0.3" +defmt-rtt = "0.4" +fixed = "1.23.1" +fixed-macro = "1.2" + +#cortex-m = { version = "0.7.6", features = ["critical-section-single-core"] } +cortex-m = { version = "0.7.6", features = ["inline-asm"] } +cortex-m-rt = "0.7.0" +panic-probe = { version = "0.3", features = ["print-defmt"] } +futures = { version = "0.3.17", default-features = false, features = ["async-await", "cfg-target-has-atomic", "unstable"] } +display-interface-spi = "0.4.1" +embedded-graphics = "0.7.1" +st7789 = "0.6.1" +display-interface = "0.4.1" +byte-slice-cast = { version = "1.2.0", default-features = false } +smart-leds = "0.3.0" +heapless = "0.8" +usbd-hid = "0.6.1" + +embedded-hal-1 = { package = "embedded-hal", version = "=1.0.0-rc.3" } +embedded-hal-async = "1.0.0-rc.3" +embedded-hal-bus = { version = "0.1.0-rc.3", features = ["async"] } +embedded-io-async = { version = "0.6.1", features = ["defmt-03"] } +embedded-storage = { version = "0.3" } +static_cell = "2" +portable-atomic = { version = "1.5", features = ["critical-section"] } +log = "0.4" +pio-proc = "0.2" +pio = "0.2.1" +rand = { version = "0.8.5", default-features = false } + +[profile.release] +debug = 2 diff --git a/src/backlight.rs b/src/backlight.rs new file mode 100644 index 0000000..8448204 --- /dev/null +++ b/src/backlight.rs @@ -0,0 +1,66 @@ +use embassy_rp::gpio::{AnyPin, Output}; + +pub type BacklightLevel = u8; + +#[cfg(feature = "backlight_breathing")] +pub struct BacklightBreathing { + pub enabled: bool, + pub period: std::time::Duration, +} + +pub struct Backlight<'d> { + pub pins: Vec>, + pub on: bool, + pub default_on: bool, + pub lvl: BacklightLevel, + pub default_lvl: BacklightLevel, + #[cfg(feature = "backlight_breathing")] + pub breathing: BacklightBreathing, +} + +impl<'d> Backlight<'d> { + pub fn new(pins: Vec>, default_lvl: BacklightLevel) -> Self { + let mut bl = Self { + pins, + on: cfg!(feature = "backlight_default_on"), + default_on: cfg!(feature = "backlight_default_on"), + lvl: default_lvl, + default_lvl: default_lvl, + #[cfg(feature = "backlight_breathing")] + breathing: BacklightBreathing { + enabled: cfg!(feature = "backlight_breathing_default_on"), + period: std::time::Duration::from_millis(66), + }, + }; + bl.backlight_pins_off(); + bl + } + + fn backlight_pin_on<'d>(pin: &mut Output<'d, AnyPin>) { + if cfg!(feature = "backlight_on_state") { + pin.set_high(); + } else { + pin.set_low(); + } + } + fn backlight_pin_off<'d>(pin: &mut Output<'d, AnyPin>) { + if cfg!(feature = "backlight_on_state") { + pin.set_low(); + } else { + pin.set_high(); + } + } + + pub fn backlight_pins_on<'d>(&mut self) { + for pin in &mut self.pins { + Self::backlight_pin_on(pin); + } + } + pub fn backlight_pins_off<'d>(&mut self) { + for pin in &mut self.pins { + Self::backlight_pin_off(pin); + } + } + + pub fn breathing_task() {} +} diff --git a/src/keycodes.rs b/src/keycodes.rs new file mode 100644 index 0000000..f0628e7 --- /dev/null +++ b/src/keycodes.rs @@ -0,0 +1,1340 @@ +pub enum QkKeycodeRanges { + // Ranges + QkBasic = 0x0000, + QkBasicMax = 0x00FF, + QkMods = 0x0100, + QkModsMax = 0x1FFF, + QkModTap = 0x2000, + QkModTapMax = 0x3FFF, + QkLayerTap = 0x4000, + QkLayerTapMax = 0x4FFF, + QkLayerMod = 0x5000, + QkLayerModMax = 0x51FF, + QkTo = 0x5200, + QkToMax = 0x521F, + QkMomentary = 0x5220, + QkMomentaryMax = 0x523F, + QkDefLayer = 0x5240, + QkDefLayerMax = 0x525F, + QkToggleLayer = 0x5260, + QkToggleLayerMax = 0x527F, + QkOneShotLayer = 0x5280, + QkOneShotLayerMax = 0x529F, + QkOneShotMod = 0x52A0, + QkOneShotModMax = 0x52BF, + QkLayerTapToggle = 0x52C0, + QkLayerTapToggleMax = 0x52DF, + QkSwapHands = 0x5600, + QkSwapHandsMax = 0x56FF, + QkTapDance = 0x5700, + QkTapDanceMax = 0x57FF, + QkMagic = 0x7000, + QkMagicMax = 0x70FF, + QkMidi = 0x7100, + QkMidiMax = 0x71FF, + QkSequencer = 0x7200, + QkSequencerMax = 0x73FF, + QkJoystick = 0x7400, + QkJoystickMax = 0x743F, + QkProgrammableButton = 0x7440, + QkProgrammableButtonMax = 0x747F, + QkAudio = 0x7480, + QkAudioMax = 0x74BF, + QkSteno = 0x74C0, + QkStenoMax = 0x74FF, + QkMacro = 0x7700, + QkMacroMax = 0x777F, + QkLighting = 0x7800, + QkLightingMax = 0x78FF, + QkQuantum = 0x7C00, + QkQuantumMax = 0x7DFF, + QkKb = 0x7E00, + QkKbMax = 0x7E3F, + QkUser = 0x7E40, + QkUserMax = 0x7FFF, + QkUnicodemap = 0x8000, + QkUnicodemapMax = 0xBFFF, + // QkUnicode = 0x8000, + QkUnicodeMax = 0xFFFF, + QkUnicodemapPair = 0xC000, + // QkUnicodemapPairMax = 0xFFFF, +} + +enum QkKeycodeDefines { + // Keycodes + KcNo = 0x0000, + KcTransparent = 0x0001, + KcA = 0x0004, + KcB = 0x0005, + KcC = 0x0006, + KcD = 0x0007, + KcE = 0x0008, + KcF = 0x0009, + KcG = 0x000A, + KcH = 0x000B, + KcI = 0x000C, + KcJ = 0x000D, + KcK = 0x000E, + KcL = 0x000F, + KcM = 0x0010, + KcN = 0x0011, + KcO = 0x0012, + KcP = 0x0013, + KcQ = 0x0014, + KcR = 0x0015, + KcS = 0x0016, + KcT = 0x0017, + KcU = 0x0018, + KcV = 0x0019, + KcW = 0x001A, + KcX = 0x001B, + KcY = 0x001C, + KcZ = 0x001D, + Kc1 = 0x001E, + Kc2 = 0x001F, + Kc3 = 0x0020, + Kc4 = 0x0021, + Kc5 = 0x0022, + Kc6 = 0x0023, + Kc7 = 0x0024, + Kc8 = 0x0025, + Kc9 = 0x0026, + Kc0 = 0x0027, + KcEnter = 0x0028, + KcEscape = 0x0029, + KcBackspace = 0x002A, + KcTab = 0x002B, + KcSpace = 0x002C, + KcMinus = 0x002D, + KcEqual = 0x002E, + KcLeftBracket = 0x002F, + KcRightBracket = 0x0030, + KcBackslash = 0x0031, + KcNonusHash = 0x0032, + KcSemicolon = 0x0033, + KcQuote = 0x0034, + KcGrave = 0x0035, + KcComma = 0x0036, + KcDot = 0x0037, + KcSlash = 0x0038, + KcCapsLock = 0x0039, + KcF1 = 0x003A, + KcF2 = 0x003B, + KcF3 = 0x003C, + KcF4 = 0x003D, + KcF5 = 0x003E, + KcF6 = 0x003F, + KcF7 = 0x0040, + KcF8 = 0x0041, + KcF9 = 0x0042, + KcF10 = 0x0043, + KcF11 = 0x0044, + KcF12 = 0x0045, + KcPrintScreen = 0x0046, + KcScrollLock = 0x0047, + KcPause = 0x0048, + KcInsert = 0x0049, + KcHome = 0x004A, + KcPageUp = 0x004B, + KcDelete = 0x004C, + KcEnd = 0x004D, + KcPageDown = 0x004E, + KcRight = 0x004F, + KcLeft = 0x0050, + KcDown = 0x0051, + KcUp = 0x0052, + KcNumLock = 0x0053, + KcKpSlash = 0x0054, + KcKpAsterisk = 0x0055, + KcKpMinus = 0x0056, + KcKpPlus = 0x0057, + KcKpEnter = 0x0058, + KcKp1 = 0x0059, + KcKp2 = 0x005A, + KcKp3 = 0x005B, + KcKp4 = 0x005C, + KcKp5 = 0x005D, + KcKp6 = 0x005E, + KcKp7 = 0x005F, + KcKp8 = 0x0060, + KcKp9 = 0x0061, + KcKp0 = 0x0062, + KcKpDot = 0x0063, + KcNonusBackslash = 0x0064, + KcApplication = 0x0065, + KcKbPower = 0x0066, + KcKpEqual = 0x0067, + KcF13 = 0x0068, + KcF14 = 0x0069, + KcF15 = 0x006A, + KcF16 = 0x006B, + KcF17 = 0x006C, + KcF18 = 0x006D, + KcF19 = 0x006E, + KcF20 = 0x006F, + KcF21 = 0x0070, + KcF22 = 0x0071, + KcF23 = 0x0072, + KcF24 = 0x0073, + KcExecute = 0x0074, + KcHelp = 0x0075, + KcMenu = 0x0076, + KcSelect = 0x0077, + KcStop = 0x0078, + KcAgain = 0x0079, + KcUndo = 0x007A, + KcCut = 0x007B, + KcCopy = 0x007C, + KcPaste = 0x007D, + KcFind = 0x007E, + KcKbMute = 0x007F, + KcKbVolumeUp = 0x0080, + KcKbVolumeDown = 0x0081, + KcLockingCapsLock = 0x0082, + KcLockingNumLock = 0x0083, + KcLockingScrollLock = 0x0084, + KcKpComma = 0x0085, + KcKpEqualAs400 = 0x0086, + KcInternational1 = 0x0087, + KcInternational2 = 0x0088, + KcInternational3 = 0x0089, + KcInternational4 = 0x008A, + KcInternational5 = 0x008B, + KcInternational6 = 0x008C, + KcInternational7 = 0x008D, + KcInternational8 = 0x008E, + KcInternational9 = 0x008F, + KcLanguage1 = 0x0090, + KcLanguage2 = 0x0091, + KcLanguage3 = 0x0092, + KcLanguage4 = 0x0093, + KcLanguage5 = 0x0094, + KcLanguage6 = 0x0095, + KcLanguage7 = 0x0096, + KcLanguage8 = 0x0097, + KcLanguage9 = 0x0098, + KcAlternateErase = 0x0099, + KcSystemRequest = 0x009A, + KcCancel = 0x009B, + KcClear = 0x009C, + KcPrior = 0x009D, + KcReturn = 0x009E, + KcSeparator = 0x009F, + KcOut = 0x00A0, + KcOper = 0x00A1, + KcClearAgain = 0x00A2, + KcCrsel = 0x00A3, + KcExsel = 0x00A4, + KcSystemPower = 0x00A5, + KcSystemSleep = 0x00A6, + KcSystemWake = 0x00A7, + KcAudioMute = 0x00A8, + KcAudioVolUp = 0x00A9, + KcAudioVolDown = 0x00AA, + KcMediaNextTrack = 0x00AB, + KcMediaPrevTrack = 0x00AC, + KcMediaStop = 0x00AD, + KcMediaPlayPause = 0x00AE, + KcMediaSelect = 0x00AF, + KcMediaEject = 0x00B0, + KcMail = 0x00B1, + KcCalculator = 0x00B2, + KcMyComputer = 0x00B3, + KcWwwSearch = 0x00B4, + KcWwwHome = 0x00B5, + KcWwwBack = 0x00B6, + KcWwwForward = 0x00B7, + KcWwwStop = 0x00B8, + KcWwwRefresh = 0x00B9, + KcWwwFavorites = 0x00BA, + KcMediaFastForward = 0x00BB, + KcMediaRewind = 0x00BC, + KcBrightnessUp = 0x00BD, + KcBrightnessDown = 0x00BE, + KcControlPanel = 0x00BF, + KcAssistant = 0x00C0, + KcMissionControl = 0x00C1, + KcLaunchpad = 0x00C2, + KcMsUp = 0x00CD, + KcMsDown = 0x00CE, + KcMsLeft = 0x00CF, + KcMsRight = 0x00D0, + KcMsBtn1 = 0x00D1, + KcMsBtn2 = 0x00D2, + KcMsBtn3 = 0x00D3, + KcMsBtn4 = 0x00D4, + KcMsBtn5 = 0x00D5, + KcMsBtn6 = 0x00D6, + KcMsBtn7 = 0x00D7, + KcMsBtn8 = 0x00D8, + KcMsWhUp = 0x00D9, + KcMsWhDown = 0x00DA, + KcMsWhLeft = 0x00DB, + KcMsWhRight = 0x00DC, + KcMsAccel0 = 0x00DD, + KcMsAccel1 = 0x00DE, + KcMsAccel2 = 0x00DF, + KcLeftCtrl = 0x00E0, + KcLeftShift = 0x00E1, + KcLeftAlt = 0x00E2, + KcLeftGui = 0x00E3, + KcRightCtrl = 0x00E4, + KcRightShift = 0x00E5, + KcRightAlt = 0x00E6, + KcRightGui = 0x00E7, + QkSwapHandsToggle = 0x56F0, + QkSwapHandsTapToggle = 0x56F1, + QkSwapHandsMomentaryOn = 0x56F2, + QkSwapHandsMomentaryOff = 0x56F3, + QkSwapHandsOff = 0x56F4, + QkSwapHandsOn = 0x56F5, + QkSwapHandsOneShot = 0x56F6, + QkMagicSwapControlCapsLock = 0x7000, + QkMagicUnswapControlCapsLock = 0x7001, + QkMagicToggleControlCapsLock = 0x7002, + QkMagicCapsLockAsControlOff = 0x7003, + QkMagicCapsLockAsControlOn = 0x7004, + QkMagicSwapLaltLgui = 0x7005, + QkMagicUnswapLaltLgui = 0x7006, + QkMagicSwapRaltRgui = 0x7007, + QkMagicUnswapRaltRgui = 0x7008, + QkMagicGuiOn = 0x7009, + QkMagicGuiOff = 0x700A, + QkMagicToggleGui = 0x700B, + QkMagicSwapGraveEsc = 0x700C, + QkMagicUnswapGraveEsc = 0x700D, + QkMagicSwapBackslashBackspace = 0x700E, + QkMagicUnswapBackslashBackspace = 0x700F, + QkMagicToggleBackslashBackspace = 0x7010, + QkMagicNkroOn = 0x7011, + QkMagicNkroOff = 0x7012, + QkMagicToggleNkro = 0x7013, + QkMagicSwapAltGui = 0x7014, + QkMagicUnswapAltGui = 0x7015, + QkMagicToggleAltGui = 0x7016, + QkMagicSwapLctlLgui = 0x7017, + QkMagicUnswapLctlLgui = 0x7018, + QkMagicSwapRctlRgui = 0x7019, + QkMagicUnswapRctlRgui = 0x701A, + QkMagicSwapCtlGui = 0x701B, + QkMagicUnswapCtlGui = 0x701C, + QkMagicToggleCtlGui = 0x701D, + QkMagicEeHandsLeft = 0x701E, + QkMagicEeHandsRight = 0x701F, + QkMagicSwapEscapeCapsLock = 0x7020, + QkMagicUnswapEscapeCapsLock = 0x7021, + QkMagicToggleEscapeCapsLock = 0x7022, + QkMidiOn = 0x7100, + QkMidiOff = 0x7101, + QkMidiToggle = 0x7102, + QkMidiNoteC0 = 0x7103, + QkMidiNoteCSharp0 = 0x7104, + QkMidiNoteD0 = 0x7105, + QkMidiNoteDSharp0 = 0x7106, + QkMidiNoteE0 = 0x7107, + QkMidiNoteF0 = 0x7108, + QkMidiNoteFSharp0 = 0x7109, + QkMidiNoteG0 = 0x710A, + QkMidiNoteGSharp0 = 0x710B, + QkMidiNoteA0 = 0x710C, + QkMidiNoteASharp0 = 0x710D, + QkMidiNoteB0 = 0x710E, + QkMidiNoteC1 = 0x710F, + QkMidiNoteCSharp1 = 0x7110, + QkMidiNoteD1 = 0x7111, + QkMidiNoteDSharp1 = 0x7112, + QkMidiNoteE1 = 0x7113, + QkMidiNoteF1 = 0x7114, + QkMidiNoteFSharp1 = 0x7115, + QkMidiNoteG1 = 0x7116, + QkMidiNoteGSharp1 = 0x7117, + QkMidiNoteA1 = 0x7118, + QkMidiNoteASharp1 = 0x7119, + QkMidiNoteB1 = 0x711A, + QkMidiNoteC2 = 0x711B, + QkMidiNoteCSharp2 = 0x711C, + QkMidiNoteD2 = 0x711D, + QkMidiNoteDSharp2 = 0x711E, + QkMidiNoteE2 = 0x711F, + QkMidiNoteF2 = 0x7120, + QkMidiNoteFSharp2 = 0x7121, + QkMidiNoteG2 = 0x7122, + QkMidiNoteGSharp2 = 0x7123, + QkMidiNoteA2 = 0x7124, + QkMidiNoteASharp2 = 0x7125, + QkMidiNoteB2 = 0x7126, + QkMidiNoteC3 = 0x7127, + QkMidiNoteCSharp3 = 0x7128, + QkMidiNoteD3 = 0x7129, + QkMidiNoteDSharp3 = 0x712A, + QkMidiNoteE3 = 0x712B, + QkMidiNoteF3 = 0x712C, + QkMidiNoteFSharp3 = 0x712D, + QkMidiNoteG3 = 0x712E, + QkMidiNoteGSharp3 = 0x712F, + QkMidiNoteA3 = 0x7130, + QkMidiNoteASharp3 = 0x7131, + QkMidiNoteB3 = 0x7132, + QkMidiNoteC4 = 0x7133, + QkMidiNoteCSharp4 = 0x7134, + QkMidiNoteD4 = 0x7135, + QkMidiNoteDSharp4 = 0x7136, + QkMidiNoteE4 = 0x7137, + QkMidiNoteF4 = 0x7138, + QkMidiNoteFSharp4 = 0x7139, + QkMidiNoteG4 = 0x713A, + QkMidiNoteGSharp4 = 0x713B, + QkMidiNoteA4 = 0x713C, + QkMidiNoteASharp4 = 0x713D, + QkMidiNoteB4 = 0x713E, + QkMidiNoteC5 = 0x713F, + QkMidiNoteCSharp5 = 0x7140, + QkMidiNoteD5 = 0x7141, + QkMidiNoteDSharp5 = 0x7142, + QkMidiNoteE5 = 0x7143, + QkMidiNoteF5 = 0x7144, + QkMidiNoteFSharp5 = 0x7145, + QkMidiNoteG5 = 0x7146, + QkMidiNoteGSharp5 = 0x7147, + QkMidiNoteA5 = 0x7148, + QkMidiNoteASharp5 = 0x7149, + QkMidiNoteB5 = 0x714A, + QkMidiOctaveN2 = 0x714B, + QkMidiOctaveN1 = 0x714C, + QkMidiOctave0 = 0x714D, + QkMidiOctave1 = 0x714E, + QkMidiOctave2 = 0x714F, + QkMidiOctave3 = 0x7150, + QkMidiOctave4 = 0x7151, + QkMidiOctave5 = 0x7152, + QkMidiOctave6 = 0x7153, + QkMidiOctave7 = 0x7154, + QkMidiOctaveDown = 0x7155, + QkMidiOctaveUp = 0x7156, + QkMidiTransposeN6 = 0x7157, + QkMidiTransposeN5 = 0x7158, + QkMidiTransposeN4 = 0x7159, + QkMidiTransposeN3 = 0x715A, + QkMidiTransposeN2 = 0x715B, + QkMidiTransposeN1 = 0x715C, + QkMidiTranspose0 = 0x715D, + QkMidiTranspose1 = 0x715E, + QkMidiTranspose2 = 0x715F, + QkMidiTranspose3 = 0x7160, + QkMidiTranspose4 = 0x7161, + QkMidiTranspose5 = 0x7162, + QkMidiTranspose6 = 0x7163, + QkMidiTransposeDown = 0x7164, + QkMidiTransposeUp = 0x7165, + QkMidiVelocity0 = 0x7166, + QkMidiVelocity1 = 0x7167, + QkMidiVelocity2 = 0x7168, + QkMidiVelocity3 = 0x7169, + QkMidiVelocity4 = 0x716A, + QkMidiVelocity5 = 0x716B, + QkMidiVelocity6 = 0x716C, + QkMidiVelocity7 = 0x716D, + QkMidiVelocity8 = 0x716E, + QkMidiVelocity9 = 0x716F, + QkMidiVelocity10 = 0x7170, + QkMidiVelocityDown = 0x7171, + QkMidiVelocityUp = 0x7172, + QkMidiChannel1 = 0x7173, + QkMidiChannel2 = 0x7174, + QkMidiChannel3 = 0x7175, + QkMidiChannel4 = 0x7176, + QkMidiChannel5 = 0x7177, + QkMidiChannel6 = 0x7178, + QkMidiChannel7 = 0x7179, + QkMidiChannel8 = 0x717A, + QkMidiChannel9 = 0x717B, + QkMidiChannel10 = 0x717C, + QkMidiChannel11 = 0x717D, + QkMidiChannel12 = 0x717E, + QkMidiChannel13 = 0x717F, + QkMidiChannel14 = 0x7180, + QkMidiChannel15 = 0x7181, + QkMidiChannel16 = 0x7182, + QkMidiChannelDown = 0x7183, + QkMidiChannelUp = 0x7184, + QkMidiAllNotesOff = 0x7185, + QkMidiSustain = 0x7186, + QkMidiPortamento = 0x7187, + QkMidiSostenuto = 0x7188, + QkMidiSoft = 0x7189, + QkMidiLegato = 0x718A, + QkMidiModulation = 0x718B, + QkMidiModulationSpeedDown = 0x718C, + QkMidiModulationSpeedUp = 0x718D, + QkMidiPitchBendDown = 0x718E, + QkMidiPitchBendUp = 0x718F, + QkSequencerOn = 0x7200, + QkSequencerOff = 0x7201, + QkSequencerToggle = 0x7202, + QkSequencerTempoDown = 0x7203, + QkSequencerTempoUp = 0x7204, + QkSequencerResolutionDown = 0x7205, + QkSequencerResolutionUp = 0x7206, + QkSequencerStepsAll = 0x7207, + QkSequencerStepsClear = 0x7208, + QkJoystickButton0 = 0x7400, + QkJoystickButton1 = 0x7401, + QkJoystickButton2 = 0x7402, + QkJoystickButton3 = 0x7403, + QkJoystickButton4 = 0x7404, + QkJoystickButton5 = 0x7405, + QkJoystickButton6 = 0x7406, + QkJoystickButton7 = 0x7407, + QkJoystickButton8 = 0x7408, + QkJoystickButton9 = 0x7409, + QkJoystickButton10 = 0x740A, + QkJoystickButton11 = 0x740B, + QkJoystickButton12 = 0x740C, + QkJoystickButton13 = 0x740D, + QkJoystickButton14 = 0x740E, + QkJoystickButton15 = 0x740F, + QkJoystickButton16 = 0x7410, + QkJoystickButton17 = 0x7411, + QkJoystickButton18 = 0x7412, + QkJoystickButton19 = 0x7413, + QkJoystickButton20 = 0x7414, + QkJoystickButton21 = 0x7415, + QkJoystickButton22 = 0x7416, + QkJoystickButton23 = 0x7417, + QkJoystickButton24 = 0x7418, + QkJoystickButton25 = 0x7419, + QkJoystickButton26 = 0x741A, + QkJoystickButton27 = 0x741B, + QkJoystickButton28 = 0x741C, + QkJoystickButton29 = 0x741D, + QkJoystickButton30 = 0x741E, + QkJoystickButton31 = 0x741F, + QkProgrammableButton1 = 0x7440, + QkProgrammableButton2 = 0x7441, + QkProgrammableButton3 = 0x7442, + QkProgrammableButton4 = 0x7443, + QkProgrammableButton5 = 0x7444, + QkProgrammableButton6 = 0x7445, + QkProgrammableButton7 = 0x7446, + QkProgrammableButton8 = 0x7447, + QkProgrammableButton9 = 0x7448, + QkProgrammableButton10 = 0x7449, + QkProgrammableButton11 = 0x744A, + QkProgrammableButton12 = 0x744B, + QkProgrammableButton13 = 0x744C, + QkProgrammableButton14 = 0x744D, + QkProgrammableButton15 = 0x744E, + QkProgrammableButton16 = 0x744F, + QkProgrammableButton17 = 0x7450, + QkProgrammableButton18 = 0x7451, + QkProgrammableButton19 = 0x7452, + QkProgrammableButton20 = 0x7453, + QkProgrammableButton21 = 0x7454, + QkProgrammableButton22 = 0x7455, + QkProgrammableButton23 = 0x7456, + QkProgrammableButton24 = 0x7457, + QkProgrammableButton25 = 0x7458, + QkProgrammableButton26 = 0x7459, + QkProgrammableButton27 = 0x745A, + QkProgrammableButton28 = 0x745B, + QkProgrammableButton29 = 0x745C, + QkProgrammableButton30 = 0x745D, + QkProgrammableButton31 = 0x745E, + QkProgrammableButton32 = 0x745F, + QkAudioOn = 0x7480, + QkAudioOff = 0x7481, + QkAudioToggle = 0x7482, + QkAudioClickyToggle = 0x748A, + QkAudioClickyOn = 0x748B, + QkAudioClickyOff = 0x748C, + QkAudioClickyUp = 0x748D, + QkAudioClickyDown = 0x748E, + QkAudioClickyReset = 0x748F, + QkMusicOn = 0x7490, + QkMusicOff = 0x7491, + QkMusicToggle = 0x7492, + QkMusicModeNext = 0x7493, + QkAudioVoiceNext = 0x7494, + QkAudioVoicePrevious = 0x7495, + QkStenoBolt = 0x74F0, + QkStenoGemini = 0x74F1, + QkStenoComb = 0x74F2, + QkStenoCombMax = 0x74FC, + QkMacro0 = 0x7700, + QkMacro1 = 0x7701, + QkMacro2 = 0x7702, + QkMacro3 = 0x7703, + QkMacro4 = 0x7704, + QkMacro5 = 0x7705, + QkMacro6 = 0x7706, + QkMacro7 = 0x7707, + QkMacro8 = 0x7708, + QkMacro9 = 0x7709, + QkMacro10 = 0x770A, + QkMacro11 = 0x770B, + QkMacro12 = 0x770C, + QkMacro13 = 0x770D, + QkMacro14 = 0x770E, + QkMacro15 = 0x770F, + QkMacro16 = 0x7710, + QkMacro17 = 0x7711, + QkMacro18 = 0x7712, + QkMacro19 = 0x7713, + QkMacro20 = 0x7714, + QkMacro21 = 0x7715, + QkMacro22 = 0x7716, + QkMacro23 = 0x7717, + QkMacro24 = 0x7718, + QkMacro25 = 0x7719, + QkMacro26 = 0x771A, + QkMacro27 = 0x771B, + QkMacro28 = 0x771C, + QkMacro29 = 0x771D, + QkMacro30 = 0x771E, + QkMacro31 = 0x771F, + QkBacklightOn = 0x7800, + QkBacklightOff = 0x7801, + QkBacklightToggle = 0x7802, + QkBacklightDown = 0x7803, + QkBacklightUp = 0x7804, + QkBacklightStep = 0x7805, + QkBacklightToggleBreathing = 0x7806, + RgbTog = 0x7820, + RgbModeForward = 0x7821, + RgbModeReverse = 0x7822, + RgbHui = 0x7823, + RgbHud = 0x7824, + RgbSai = 0x7825, + RgbSad = 0x7826, + RgbVai = 0x7827, + RgbVad = 0x7828, + RgbSpi = 0x7829, + RgbSpd = 0x782A, + RgbModePlain = 0x782B, + RgbModeBreathe = 0x782C, + RgbModeRainbow = 0x782D, + RgbModeSwirl = 0x782E, + RgbModeSnake = 0x782F, + RgbModeKnight = 0x7830, + RgbModeXmas = 0x7831, + RgbModeGradient = 0x7832, + RgbModeRgbtest = 0x7833, + RgbModeTwinkle = 0x7834, + QkBootloader = 0x7C00, + QkReboot = 0x7C01, + QkDebugToggle = 0x7C02, + QkClearEeprom = 0x7C03, + QkMake = 0x7C04, + QkAutoShiftDown = 0x7C10, + QkAutoShiftUp = 0x7C11, + QkAutoShiftReport = 0x7C12, + QkAutoShiftOn = 0x7C13, + QkAutoShiftOff = 0x7C14, + QkAutoShiftToggle = 0x7C15, + QkGraveEscape = 0x7C16, + QkVelocikeyToggle = 0x7C17, + QkSpaceCadetLeftCtrlParenthesisOpen = 0x7C18, + QkSpaceCadetRightCtrlParenthesisClose = 0x7C19, + QkSpaceCadetLeftShiftParenthesisOpen = 0x7C1A, + QkSpaceCadetRightShiftParenthesisClose = 0x7C1B, + QkSpaceCadetLeftAltParenthesisOpen = 0x7C1C, + QkSpaceCadetRightAltParenthesisClose = 0x7C1D, + QkSpaceCadetRightShiftEnter = 0x7C1E, + QkOutputAuto = 0x7C20, + QkOutputUsb = 0x7C21, + QkOutputBluetooth = 0x7C22, + QkUnicodeModeNext = 0x7C30, + QkUnicodeModePrevious = 0x7C31, + QkUnicodeModeMacos = 0x7C32, + QkUnicodeModeLinux = 0x7C33, + QkUnicodeModeWindows = 0x7C34, + QkUnicodeModeBsd = 0x7C35, + QkUnicodeModeWincompose = 0x7C36, + QkUnicodeModeEmacs = 0x7C37, + QkHapticOn = 0x7C40, + QkHapticOff = 0x7C41, + QkHapticToggle = 0x7C42, + QkHapticReset = 0x7C43, + QkHapticFeedbackToggle = 0x7C44, + QkHapticBuzzToggle = 0x7C45, + QkHapticModeNext = 0x7C46, + QkHapticModePrevious = 0x7C47, + QkHapticContinuousToggle = 0x7C48, + QkHapticContinuousUp = 0x7C49, + QkHapticContinuousDown = 0x7C4A, + QkHapticDwellUp = 0x7C4B, + QkHapticDwellDown = 0x7C4C, + QkComboOn = 0x7C50, + QkComboOff = 0x7C51, + QkComboToggle = 0x7C52, + QkDynamicMacroRecordStart1 = 0x7C53, + QkDynamicMacroRecordStart2 = 0x7C54, + QkDynamicMacroRecordStop = 0x7C55, + QkDynamicMacroPlay1 = 0x7C56, + QkDynamicMacroPlay2 = 0x7C57, + QkLeader = 0x7C58, + QkLock = 0x7C59, + QkOneShotOn = 0x7C5A, + QkOneShotOff = 0x7C5B, + QkOneShotToggle = 0x7C5C, + QkKeyOverrideToggle = 0x7C5D, + QkKeyOverrideOn = 0x7C5E, + QkKeyOverrideOff = 0x7C5F, + QkSecureLock = 0x7C60, + QkSecureUnlock = 0x7C61, + QkSecureToggle = 0x7C62, + QkSecureRequest = 0x7C63, + QkDynamicTappingTermPrint = 0x7C70, + QkDynamicTappingTermUp = 0x7C71, + QkDynamicTappingTermDown = 0x7C72, + QkCapsWordToggle = 0x7C73, + QkAutocorrectOn = 0x7C74, + QkAutocorrectOff = 0x7C75, + QkAutocorrectToggle = 0x7C76, + QkTriLayerLower = 0x7C77, + QkTriLayerUpper = 0x7C78, + QkRepeatKey = 0x7C79, + QkAltRepeatKey = 0x7C7A, + QkKb0 = 0x7E00, + QkKb1 = 0x7E01, + QkKb2 = 0x7E02, + QkKb3 = 0x7E03, + QkKb4 = 0x7E04, + QkKb5 = 0x7E05, + QkKb6 = 0x7E06, + QkKb7 = 0x7E07, + QkKb8 = 0x7E08, + QkKb9 = 0x7E09, + QkKb10 = 0x7E0A, + QkKb11 = 0x7E0B, + QkKb12 = 0x7E0C, + QkKb13 = 0x7E0D, + QkKb14 = 0x7E0E, + QkKb15 = 0x7E0F, + QkKb16 = 0x7E10, + QkKb17 = 0x7E11, + QkKb18 = 0x7E12, + QkKb19 = 0x7E13, + QkKb20 = 0x7E14, + QkKb21 = 0x7E15, + QkKb22 = 0x7E16, + QkKb23 = 0x7E17, + QkKb24 = 0x7E18, + QkKb25 = 0x7E19, + QkKb26 = 0x7E1A, + QkKb27 = 0x7E1B, + QkKb28 = 0x7E1C, + QkKb29 = 0x7E1D, + QkKb30 = 0x7E1E, + QkKb31 = 0x7E1F, + QkUser0 = 0x7E40, + QkUser1 = 0x7E41, + QkUser2 = 0x7E42, + QkUser3 = 0x7E43, + QkUser4 = 0x7E44, + QkUser5 = 0x7E45, + QkUser6 = 0x7E46, + QkUser7 = 0x7E47, + QkUser8 = 0x7E48, + QkUser9 = 0x7E49, + QkUser10 = 0x7E4A, + QkUser11 = 0x7E4B, + QkUser12 = 0x7E4C, + QkUser13 = 0x7E4D, + QkUser14 = 0x7E4E, + QkUser15 = 0x7E4F, + QkUser16 = 0x7E50, + QkUser17 = 0x7E51, + QkUser18 = 0x7E52, + QkUser19 = 0x7E53, + QkUser20 = 0x7E54, + QkUser21 = 0x7E55, + QkUser22 = 0x7E56, + QkUser23 = 0x7E57, + QkUser24 = 0x7E58, + QkUser25 = 0x7E59, + QkUser26 = 0x7E5A, + QkUser27 = 0x7E5B, + QkUser28 = 0x7E5C, + QkUser29 = 0x7E5D, + QkUser30 = 0x7E5E, + QkUser31 = 0x7E5F, + + // Alias + XXXXXXX = QkKeycodeDefines::KcNo as isize, + KcTrns = Keycodes::KcTransparent, + KcEnt = Keycodes::KcEnter, + KcEsc = Keycodes::KcEscape, + KcBspc = Keycodes::KcBackspace, + KcSpc = Keycodes::KcSpace, + KcMins = Keycodes::KcMinus, + KcEql = Keycodes::KcEqual, + KcLbrc = Keycodes::KcLeftBracket, + KcRbrc = Keycodes::KcRightBracket, + KcBsls = Keycodes::KcBackslash, + KcNuhs = Keycodes::KcNonusHash, + KcScln = Keycodes::KcSemicolon, + KcQuot = Keycodes::KcQuote, + KcGrv = Keycodes::KcGrave, + KcComm = Keycodes::KcComma, + KcSlsh = Keycodes::KcSlash, + KcCaps = Keycodes::KcCapsLock, + KcPscr = Keycodes::KcPrintScreen, + KcScrl = Keycodes::KcScrollLock, + KcBrmd = Keycodes::KcScrollLock, + KcPaus = Keycodes::KcPause, + KcBrk = Keycodes::KcPause, + KcBrmu = Keycodes::KcPause, + KcIns = Keycodes::KcInsert, + KcPgup = Keycodes::KcPageUp, + KcDel = Keycodes::KcDelete, + KcPgdn = Keycodes::KcPageDown, + KcRght = Keycodes::KcRight, + KcNum = Keycodes::KcNumLock, + KcPsls = Keycodes::KcKpSlash, + KcPast = Keycodes::KcKpAsterisk, + KcPmns = Keycodes::KcKpMinus, + KcPpls = Keycodes::KcKpPlus, + KcPent = Keycodes::KcKpEnter, + KcP1 = Keycodes::KcKp1, + KcP2 = Keycodes::KcKp2, + KcP3 = Keycodes::KcKp3, + KcP4 = Keycodes::KcKp4, + KcP5 = Keycodes::KcKp5, + KcP6 = Keycodes::KcKp6, + KcP7 = Keycodes::KcKp7, + KcP8 = Keycodes::KcKp8, + KcP9 = Keycodes::KcKp9, + KcP0 = Keycodes::KcKp0, + KcPdot = Keycodes::KcKpDot, + KcNubs = Keycodes::KcNonusBackslash, + KcApp = Keycodes::KcApplication, + KcPeql = Keycodes::KcKpEqual, + KcExec = Keycodes::KcExecute, + KcSlct = Keycodes::KcSelect, + KcAgin = Keycodes::KcAgain, + KcPste = Keycodes::KcPaste, + KcLcap = Keycodes::KcLockingCapsLock, + KcLnum = Keycodes::KcLockingNumLock, + KcLscr = Keycodes::KcLockingScrollLock, + KcPcmm = Keycodes::KcKpComma, + KcInt1 = Keycodes::KcInternational1, + KcInt2 = Keycodes::KcInternational2, + KcInt3 = Keycodes::KcInternational3, + KcInt4 = Keycodes::KcInternational4, + KcInt5 = Keycodes::KcInternational5, + KcInt6 = Keycodes::KcInternational6, + KcInt7 = Keycodes::KcInternational7, + KcInt8 = Keycodes::KcInternational8, + KcInt9 = Keycodes::KcInternational9, + KcLng1 = Keycodes::KcLanguage1, + KcLng2 = Keycodes::KcLanguage2, + KcLng3 = Keycodes::KcLanguage3, + KcLng4 = Keycodes::KcLanguage4, + KcLng5 = Keycodes::KcLanguage5, + KcLng6 = Keycodes::KcLanguage6, + KcLng7 = Keycodes::KcLanguage7, + KcLng8 = Keycodes::KcLanguage8, + KcLng9 = Keycodes::KcLanguage9, + KcEras = Keycodes::KcAlternateErase, + KcSyrq = Keycodes::KcSystemEequest, + KcCncl = Keycodes::KcCancel, + KcClr = Keycodes::KcClear, + KcPrir = Keycodes::KcPrior, + KcRetn = Keycodes::KcReturn, + KcSepr = Keycodes::KcSeparator, + KcClag = Keycodes::KcClearAgain, + KcCrsl = Keycodes::KcCrsel, + KcExsl = Keycodes::KcExsel, + KcPwr = Keycodes::KcSystemPower, + KcSlep = Keycodes::KcSystemSleep, + KcWake = Keycodes::KcSystemWake, + KcMute = Keycodes::KcAudioMute, + KcVolu = Keycodes::KcAudioVolUp, + KcVold = Keycodes::KcAudioVolDown, + KcMnxt = Keycodes::KcMediaNextTrack, + KcMprv = Keycodes::KcMediaPrevTrack, + KcMstp = Keycodes::KcMediaStop, + KcMply = Keycodes::KcMediaPlayPause, + KcMsel = Keycodes::KcMediaSelect, + KcEjct = Keycodes::KcMediaEject, + KcCalc = Keycodes::KcCalculator, + KcMycm = Keycodes::KcMyComputer, + KcWsch = Keycodes::KcWwwSearch, + KcWhom = Keycodes::KcWwwHome, + KcWbak = Keycodes::KcWwwBack, + KcWfwd = Keycodes::KcWwwForward, + KcWstp = Keycodes::KcWwwStop, + KcWref = Keycodes::KcWwwRefresh, + KcWfav = Keycodes::KcWwwFavorites, + KcMffd = Keycodes::KcMediaFastForward, + KcMrwd = Keycodes::KcMediaRewind, + KcBriu = Keycodes::KcBrightnessUp, + KcBrid = Keycodes::KcBrightnessDown, + KcCpnl = Keycodes::KcControlPanel, + KcAsst = Keycodes::KcAssistant, + KcMctl = Keycodes::KcMissionControl, + KcLpad = Keycodes::KcLaunchpad, + KcMsU = Keycodes::KcMsUp, + KcMsD = Keycodes::KcMsDown, + KcMsL = Keycodes::KcMsLeft, + KcMsR = Keycodes::KcMsRight, + KcBtn1 = Keycodes::KcMsBtn1, + KcBtn2 = Keycodes::KcMsBtn2, + KcBtn3 = Keycodes::KcMsBtn3, + KcBtn4 = Keycodes::KcMsBtn4, + KcBtn5 = Keycodes::KcMsBtn5, + KcBtn6 = Keycodes::KcMsBtn6, + KcBtn7 = Keycodes::KcMsBtn7, + KcBtn8 = Keycodes::KcMsBtn8, + KcWhU = Keycodes::KcMsWhUp, + KcWhD = Keycodes::KcMsWhDn, + KcWhL = Keycodes::KcMsWhLt, + KcWhR = Keycodes::KcMsWhRt, + KcAcl0 = Keycodes::KcMsAl0, + KcAcl1 = Keycodes::KcMsAl1, + KcAcl2 = Keycodes::KcMsAl2, + KcLctl = Keycodes::KcLeftCl, + KcLsft = Keycodes::KcLeftSt, + KcLalt = Keycodes::KcLeftAt, + KcLopt = Keycodes::KcLeftAt, + KcLgui = Keycodes::KcLeftGi, + KcLcmd = Keycodes::KcLeftGi, + KcLwin = Keycodes::KcLeftGi, + KcRctl = Keycodes::KcRightCl, + KcRsft = Keycodes::KcRightSt, + KcRalt = Keycodes::KcRightAt, + KcRopt = Keycodes::KcRightAt, + KcAlgr = Keycodes::KcRightAt, + KcRgui = Keycodes::KcRightGi, + KcRcmd = Keycodes::KcRightGi, + KcRwin = Keycodes::KcRightGi, + ShTogg = Keycodes::QkSwapHsTe, + ShTt = Keycodes::QkSwapHsTpTe, + ShMon = Keycodes::QkSwapHsMyOn, + ShMoff = Keycodes::QkSwapHsMyOf, + ShOff = Keycodes::QkSwapHsOf, + ShOn = Keycodes::QkSwapHsOn, + ShOs = Keycodes::QkSwapHsOeSt, + ClSwap = Keycodes::QkMagicSpClCsLk, + ClNorm = Keycodes::QkMagicUpClCsLk, + ClTogg = Keycodes::QkMagicTeClCsLk, + ClCaps = Keycodes::QkMagicCsLkAsClOf, + ClCtrl = Keycodes::QkMagicCsLkAsClOn, + AgLswp = Keycodes::QkMagicSpLtLi, + AgLnrm = Keycodes::QkMagicUpLtLi, + AgRswp = Keycodes::QkMagicSpRtRi, + AgRnrm = Keycodes::QkMagicUpRtRi, + GuOn = Keycodes::QkMagicGiOn, + GuOff = Keycodes::QkMagicGiOf, + GuTogg = Keycodes::QkMagicTeGi, + GeSwap = Keycodes::QkMagicSpGeEc, + GeNorm = Keycodes::QkMagicUpGeEc, + BsSwap = Keycodes::QkMagicSpBhBe, + BsNorm = Keycodes::QkMagicUpBhBe, + BsTogg = Keycodes::QkMagicTeBhBe, + NkOn = Keycodes::QkMagicNoOn, + NkOff = Keycodes::QkMagicNoOf, + NkTogg = Keycodes::QkMagicTeNo, + AgSwap = Keycodes::QkMagicSpAtGi, + AgNorm = Keycodes::QkMagicUpAtGi, + AgTogg = Keycodes::QkMagicTeAtGi, + CgLswp = Keycodes::QkMagicSpLlLi, + CgLnrm = Keycodes::QkMagicUpLlLi, + CgRswp = Keycodes::QkMagicSpRlRi, + CgRnrm = Keycodes::QkMagicUpRlRi, + CgSwap = Keycodes::QkMagicSpClGi, + CgNorm = Keycodes::QkMagicUpClGi, + CgTogg = Keycodes::QkMagicTeClGi, + EhLeft = Keycodes::QkMagicEeHsLt, + EhRght = Keycodes::QkMagicEeHsRt, + EcSwap = Keycodes::QkMagicSpEeCsLk, + EcNorm = Keycodes::QkMagicUpEeCsLk, + EcTogg = Keycodes::QkMagicTeEeCsLk, + MiOn = Keycodes::QkMidiOn, + MiOff = Keycodes::QkMidiOf, + MiTogg = Keycodes::QkMidiTe, + MiC = Keycodes::QkMidiNeC0, + MiCs = Keycodes::QkMidiNeCp0, + MiDb = Keycodes::QkMidiNeCp0, + MiD = Keycodes::QkMidiNeD0, + MiDs = Keycodes::QkMidiNeDSp0, + MiEb = Keycodes::QkMidiNeDSp0, + MiE = Keycodes::QkMidiNeE0, + MiF = Keycodes::QkMidiNeF0, + MiFs = Keycodes::QkMidiNeFSp0, + MiGb = Keycodes::QkMidiNeFSp0, + MiG = Keycodes::QkMidiNeG0, + MiGs = Keycodes::QkMidiNeGSp0, + MiAb = Keycodes::QkMidiNeGSp0, + MiA = Keycodes::QkMidiNeA0, + MiAs = Keycodes::QkMidiNeASp0, + MiBb = Keycodes::QkMidiNeASp0, + MiB = Keycodes::QkMidiNeB0, + MiC1 = Keycodes::QkMidiNeC1, + MiCs1 = Keycodes::QkMidiNeCSp1, + MiDb1 = Keycodes::QkMidiNeCSp1, + MiD1 = Keycodes::QkMidiNeD1, + MiDs1 = Keycodes::QkMidiNeDSp1, + MiEb1 = Keycodes::QkMidiNeDSp1, + MiE1 = Keycodes::QkMidiNeE1, + MiF1 = Keycodes::QkMidiNeF1, + MiFs1 = Keycodes::QkMidiNeFSp1, + MiGb1 = Keycodes::QkMidiNeFSp1, + MiG1 = Keycodes::QkMidiNeG1, + MiGs1 = Keycodes::QkMidiNeGSp1, + MiAb1 = Keycodes::QkMidiNeGSp1, + MiA1 = Keycodes::QkMidiNeA1, + MiAs1 = Keycodes::QkMidiNeASp1, + MiBb1 = Keycodes::QkMidiNeASp1, + MiB1 = Keycodes::QkMidiNeB1, + MiC2 = Keycodes::QkMidiNeC2, + MiCs2 = Keycodes::QkMidiNeCSp2, + MiDb2 = Keycodes::QkMidiNeCSp2, + MiD2 = Keycodes::QkMidiNeD2, + MiDs2 = Keycodes::QkMidiNeDSp2, + MiEb2 = Keycodes::QkMidiNeDSp2, + MiE2 = Keycodes::QkMidiNeE2, + MiF2 = Keycodes::QkMidiNeF2, + MiFs2 = Keycodes::QkMidiNeFSp2, + MiGb2 = Keycodes::QkMidiNeFSp2, + MiG2 = Keycodes::QkMidiNeG2, + MiGs2 = Keycodes::QkMidiNeGSp2, + MiAb2 = Keycodes::QkMidiNeGSp2, + MiA2 = Keycodes::QkMidiNeA2, + MiAs2 = Keycodes::QkMidiNeASp2, + MiBb2 = Keycodes::QkMidiNeASp2, + MiB2 = Keycodes::QkMidiNeB2, + MiC3 = Keycodes::QkMidiNeC3, + MiCs3 = Keycodes::QkMidiNeCSp3, + MiDb3 = Keycodes::QkMidiNeCSp3, + MiD3 = Keycodes::QkMidiNeD3, + MiDs3 = Keycodes::QkMidiNeDSp3, + MiEb3 = Keycodes::QkMidiNeDSp3, + MiE3 = Keycodes::QkMidiNeE3, + MiF3 = Keycodes::QkMidiNeF3, + MiFs3 = Keycodes::QkMidiNeFSp3, + MiGb3 = Keycodes::QkMidiNeFSp3, + MiG3 = Keycodes::QkMidiNeG3, + MiGs3 = Keycodes::QkMidiNeGSp3, + MiAb3 = Keycodes::QkMidiNeGSp3, + MiA3 = Keycodes::QkMidiNeA3, + MiAs3 = Keycodes::QkMidiNeASp3, + MiBb3 = Keycodes::QkMidiNeASp3, + MiB3 = Keycodes::QkMidiNeB3, + MiC4 = Keycodes::QkMidiNeC4, + MiCs4 = Keycodes::QkMidiNeCSp4, + MiDb4 = Keycodes::QkMidiNeCSp4, + MiD4 = Keycodes::QkMidiNeD4, + MiDs4 = Keycodes::QkMidiNeDSp4, + MiEb4 = Keycodes::QkMidiNeDSp4, + MiE4 = Keycodes::QkMidiNeE4, + MiF4 = Keycodes::QkMidiNeF4, + MiFs4 = Keycodes::QkMidiNeFSp4, + MiGb4 = Keycodes::QkMidiNeFSp4, + MiG4 = Keycodes::QkMidiNeG4, + MiGs4 = Keycodes::QkMidiNeGSp4, + MiAb4 = Keycodes::QkMidiNeGSp4, + MiA4 = Keycodes::QkMidiNeA4, + MiAs4 = Keycodes::QkMidiNeASp4, + MiBb4 = Keycodes::QkMidiNeASp4, + MiB4 = Keycodes::QkMidiNeB4, + MiC5 = Keycodes::QkMidiNeC5, + MiCs5 = Keycodes::QkMidiNeCSp5, + MiDb5 = Keycodes::QkMidiNeCSp5, + MiD5 = Keycodes::QkMidiNeD5, + MiDs5 = Keycodes::QkMidiNeDSp5, + MiEb5 = Keycodes::QkMidiNeDSp5, + MiE5 = Keycodes::QkMidiNeE5, + MiF5 = Keycodes::QkMidiNeF5, + MiFs5 = Keycodes::QkMidiNeFSp5, + MiGb5 = Keycodes::QkMidiNeFSp5, + MiG5 = Keycodes::QkMidiNeG5, + MiGs5 = Keycodes::QkMidiNeGSp5, + MiAb5 = Keycodes::QkMidiNeGSp5, + MiA5 = Keycodes::QkMidiNeA5, + MiAs5 = Keycodes::QkMidiNeASp5, + MiBb5 = Keycodes::QkMidiNeASp5, + MiB5 = Keycodes::QkMidiNeB5, + MiOcn2 = Keycodes::QkMidiOeN2, + MiOcn1 = Keycodes::QkMidiOeN1, + MiOc0 = Keycodes::QkMidiOe0, + MiOc1 = Keycodes::QkMidiOe1, + MiOc2 = Keycodes::QkMidiOe2, + MiOc3 = Keycodes::QkMidiOe3, + MiOc4 = Keycodes::QkMidiOe4, + MiOc5 = Keycodes::QkMidiOe5, + MiOc6 = Keycodes::QkMidiOe6, + MiOc7 = Keycodes::QkMidiOe7, + MiOctd = Keycodes::QkMidiOeDn, + MiOctu = Keycodes::QkMidiOeUp, + MiTrn6 = Keycodes::QkMidiTeN6, + MiTrn5 = Keycodes::QkMidiTeN5, + MiTrn4 = Keycodes::QkMidiTeN4, + MiTrn3 = Keycodes::QkMidiTeN3, + MiTrn2 = Keycodes::QkMidiTeN2, + MiTrn1 = Keycodes::QkMidiTeN1, + MiTr0 = Keycodes::QkMidiTe0, + MiTr1 = Keycodes::QkMidiTe1, + MiTr2 = Keycodes::QkMidiTe2, + MiTr3 = Keycodes::QkMidiTe3, + MiTr4 = Keycodes::QkMidiTe4, + MiTr5 = Keycodes::QkMidiTe5, + MiTr6 = Keycodes::QkMidiTe6, + MiTrsd = Keycodes::QkMidiTeDn, + MiTrsu = Keycodes::QkMidiTeUp, + MiVl0 = Keycodes::QkMidiVy0, + MiVl1 = Keycodes::QkMidiVy1, + MiVl2 = Keycodes::QkMidiVy2, + MiVl3 = Keycodes::QkMidiVy3, + MiVl4 = Keycodes::QkMidiVy4, + MiVl5 = Keycodes::QkMidiVy5, + MiVl6 = Keycodes::QkMidiVy6, + MiVl7 = Keycodes::QkMidiVy7, + MiVl8 = Keycodes::QkMidiVy8, + MiVl9 = Keycodes::QkMidiVy9, + MiVl10 = Keycodes::QkMidiVy10, + MiVeld = Keycodes::QkMidiVyDn, + MiVelu = Keycodes::QkMidiVyUp, + MiCh1 = Keycodes::QkMidiCl1, + MiCh2 = Keycodes::QkMidiCl2, + MiCh3 = Keycodes::QkMidiCl3, + MiCh4 = Keycodes::QkMidiCl4, + MiCh5 = Keycodes::QkMidiCl5, + MiCh6 = Keycodes::QkMidiCl6, + MiCh7 = Keycodes::QkMidiCl7, + MiCh8 = Keycodes::QkMidiCl8, + MiCh9 = Keycodes::QkMidiCl9, + MiCh10 = Keycodes::QkMidiCl10, + MiCh11 = Keycodes::QkMidiCl11, + MiCh12 = Keycodes::QkMidiCl12, + MiCh13 = Keycodes::QkMidiCl13, + MiCh14 = Keycodes::QkMidiCl14, + MiCh15 = Keycodes::QkMidiCl15, + MiCh16 = Keycodes::QkMidiCl16, + MiChnd = Keycodes::QkMidiClDn, + MiChnu = Keycodes::QkMidiClUp, + MiAoff = Keycodes::QkMidiAlNsOf, + MiSust = Keycodes::QkMidiSn, + MiPort = Keycodes::QkMidiPo, + MiSost = Keycodes::QkMidiSo, + MiSoft = Keycodes::QkMidiSt, + MiLeg = Keycodes::QkMidiLo, + MiMod = Keycodes::QkMidiMn, + MiModd = Keycodes::QkMidiMnSdDn, + MiModu = Keycodes::QkMidiMnSdUp, + MiBndd = Keycodes::QkMidiPhBdDn, + MiBndu = Keycodes::QkMidiPhBdUp, + SqOn = Keycodes::QkSequencerOn, + SqOff = Keycodes::QkSequencerOf, + SqTogg = Keycodes::QkSequencerTe, + SqTmpd = Keycodes::QkSequencerToDn, + SqTmpu = Keycodes::QkSequencerToUp, + SqResd = Keycodes::QkSequencerRnDn, + SqResu = Keycodes::QkSequencerRnUp, + SqSall = Keycodes::QkSequencerSsAl, + SqSclr = Keycodes::QkSequencerSsCr, + Js0 = Keycodes::QkJoystickBn0, + Js1 = Keycodes::QkJoystickBn1, + Js2 = Keycodes::QkJoystickBn2, + Js3 = Keycodes::QkJoystickBn3, + Js4 = Keycodes::QkJoystickBn4, + Js5 = Keycodes::QkJoystickBn5, + Js6 = Keycodes::QkJoystickBn6, + Js7 = Keycodes::QkJoystickBn7, + Js8 = Keycodes::QkJoystickBn8, + Js9 = Keycodes::QkJoystickBn9, + Js10 = Keycodes::QkJoystickBn10, + Js11 = Keycodes::QkJoystickBn11, + Js12 = Keycodes::QkJoystickBn12, + Js13 = Keycodes::QkJoystickBn13, + Js14 = Keycodes::QkJoystickBn14, + Js15 = Keycodes::QkJoystickBn15, + Js16 = Keycodes::QkJoystickBn16, + Js17 = Keycodes::QkJoystickBn17, + Js18 = Keycodes::QkJoystickBn18, + Js19 = Keycodes::QkJoystickBn19, + Js20 = Keycodes::QkJoystickBn20, + Js21 = Keycodes::QkJoystickBn21, + Js22 = Keycodes::QkJoystickBn22, + Js23 = Keycodes::QkJoystickBn23, + Js24 = Keycodes::QkJoystickBn24, + Js25 = Keycodes::QkJoystickBn25, + Js26 = Keycodes::QkJoystickBn26, + Js27 = Keycodes::QkJoystickBn27, + Js28 = Keycodes::QkJoystickBn28, + Js29 = Keycodes::QkJoystickBn29, + Js30 = Keycodes::QkJoystickBn30, + Js31 = Keycodes::QkJoystickBn31, + Pb1 = Keycodes::QkProgrammableBn1, + Pb2 = Keycodes::QkProgrammableBn2, + Pb3 = Keycodes::QkProgrammableBn3, + Pb4 = Keycodes::QkProgrammableBn4, + Pb5 = Keycodes::QkProgrammableBn5, + Pb6 = Keycodes::QkProgrammableBn6, + Pb7 = Keycodes::QkProgrammableBn7, + Pb8 = Keycodes::QkProgrammableBn8, + Pb9 = Keycodes::QkProgrammableBn9, + Pb10 = Keycodes::QkProgrammableBn10, + Pb11 = Keycodes::QkProgrammableBn11, + Pb12 = Keycodes::QkProgrammableBn12, + Pb13 = Keycodes::QkProgrammableBn13, + Pb14 = Keycodes::QkProgrammableBn14, + Pb15 = Keycodes::QkProgrammableBn15, + Pb16 = Keycodes::QkProgrammableBn16, + Pb17 = Keycodes::QkProgrammableBn17, + Pb18 = Keycodes::QkProgrammableBn18, + Pb19 = Keycodes::QkProgrammableBn19, + Pb20 = Keycodes::QkProgrammableBn20, + Pb21 = Keycodes::QkProgrammableBn21, + Pb22 = Keycodes::QkProgrammableBn22, + Pb23 = Keycodes::QkProgrammableBn23, + Pb24 = Keycodes::QkProgrammableBn24, + Pb25 = Keycodes::QkProgrammableBn25, + Pb26 = Keycodes::QkProgrammableBn26, + Pb27 = Keycodes::QkProgrammableBn27, + Pb28 = Keycodes::QkProgrammableBn28, + Pb29 = Keycodes::QkProgrammableBn29, + Pb30 = Keycodes::QkProgrammableBn30, + Pb31 = Keycodes::QkProgrammableBn31, + Pb32 = Keycodes::QkProgrammableBn32, + AuOn = Keycodes::QkAudioOn, + AuOff = Keycodes::QkAudioOf, + AuTogg = Keycodes::QkAudioTe, + CkTogg = Keycodes::QkAudioCyTe, + CkOn = Keycodes::QkAudioCyOn, + CkOff = Keycodes::QkAudioCyOf, + CkUp = Keycodes::QkAudioCyUp, + CkDown = Keycodes::QkAudioCyDn, + CkRst = Keycodes::QkAudioCyRt, + MuOn = Keycodes::QkMusicOn, + MuOff = Keycodes::QkMusicOf, + MuTogg = Keycodes::QkMusicTe, + MuNext = Keycodes::QkMusicMeNt, + AuNext = Keycodes::QkAudioVeNt, + AuPrev = Keycodes::QkAudioVePs, + Mc0 = Keycodes::QkMacro0, + Mc1 = Keycodes::QkMacro1, + Mc2 = Keycodes::QkMacro2, + Mc3 = Keycodes::QkMacro3, + Mc4 = Keycodes::QkMacro4, + Mc5 = Keycodes::QkMacro5, + Mc6 = Keycodes::QkMacro6, + Mc7 = Keycodes::QkMacro7, + Mc8 = Keycodes::QkMacro8, + Mc9 = Keycodes::QkMacro9, + Mc10 = Keycodes::QkMacro10, + Mc11 = Keycodes::QkMacro11, + Mc12 = Keycodes::QkMacro12, + Mc13 = Keycodes::QkMacro13, + Mc14 = Keycodes::QkMacro14, + Mc15 = Keycodes::QkMacro15, + Mc16 = Keycodes::QkMacro16, + Mc17 = Keycodes::QkMacro17, + Mc18 = Keycodes::QkMacro18, + Mc19 = Keycodes::QkMacro19, + Mc20 = Keycodes::QkMacro20, + Mc21 = Keycodes::QkMacro21, + Mc22 = Keycodes::QkMacro22, + Mc23 = Keycodes::QkMacro23, + Mc24 = Keycodes::QkMacro24, + Mc25 = Keycodes::QkMacro25, + Mc26 = Keycodes::QkMacro26, + Mc27 = Keycodes::QkMacro27, + Mc28 = Keycodes::QkMacro28, + Mc29 = Keycodes::QkMacro29, + Mc30 = Keycodes::QkMacro30, + Mc31 = Keycodes::QkMacro31, + BlOn = Keycodes::QkBacklightOn, + BlOff = Keycodes::QkBacklightOf, + BlTogg = Keycodes::QkBacklightToggle, + BlDown = Keycodes::QkBacklightDown, + BlUp = Keycodes::QkBacklightUp, + BlStep = Keycodes::QkBacklightStep, + BlBrtg = Keycodes::QkBacklightToggleBreathing, + RgbMod = Keycodes::RGBMODEFORWARD, + RgbRmod = Keycodes::RGBMODEREVERSE, + RgbMP = Keycodes::RGBMODEPLAIN, + RgbMB = Keycodes::RGBMODEBREATHE, + RgbMR = Keycodes::RGBMODERAINBOW, + RgbMSw = Keycodes::RGBMODESWIRL, + RgbMSn = Keycodes::RGBMODESNAKE, + RgbMK = Keycodes::RGBMODEKNIGHT, + RgbMX = Keycodes::RGBMODEXMAS, + RgbMG = Keycodes::RGBMODEGRADIENT, + RgbMT = Keycodes::RGBMODERGBTEST, + RgbMTw = Keycodes::RGBMODETWINKLE, + QkBoot = Keycodes::QkBootloader, + QkRbt = Keycodes::QkReboot, + DbTogg = Keycodes::QkDebugToggle, + EeClr = Keycodes::QkClearEeprom, + AsDown = Keycodes::QkAutoShiftDown, + AsUp = Keycodes::QkAutoShiftUp, + AsRpt = Keycodes::QkAutoShiftReport, + AsOn = Keycodes::QkAutoShiftOn, + AsOff = Keycodes::QkAutoShiftOff, + AsTogg = Keycodes::QkAutoShiftToggle, + QkGesc = Keycodes::QkGraveEscape, + VkTogg = Keycodes::QkVelocikeyToggle, + ScLcpo = Keycodes::QkSpaceCadetLeftCtrlParenthesisOpen, + ScRcpc = Keycodes::QkSpaceCadetRightCtrlParenthesisClose, + ScLspo = Keycodes::QkSpaceCadetLeftShiftParenthesisOpen, + ScRspc = Keycodes::QkSpaceCadetRightShiftParenthesisClose, + ScLapo = Keycodes::QkSpaceCadetLeftAltParenthesisOpen, + ScRapc = Keycodes::QkSpaceCadetRightAltParenthesisClose, + ScSent = Keycodes::QkSpaceCadetRightShiftEnter, + OuAuto = Keycodes::QkOutputAuto, + OuUsb = Keycodes::QkOutputUsb, + OuBt = Keycodes::QkOutputBluetooth, + UcNext = Keycodes::QkUnicodeModeNext, + UcPrev = Keycodes::QkUnicodeModePrevious, + UcMac = Keycodes::QkUnicodeModeMacos, + UcLinx = Keycodes::QkUnicodeModeLinux, + UcWin = Keycodes::QkUnicodeModeWindows, + UcBsd = Keycodes::QkUnicodeModeBsd, + UcWinc = Keycodes::QkUnicodeModeWincompose, + UcEmac = Keycodes::QkUnicodeModeEmacs, + HfOn = Keycodes::QkHapticOn, + HfOff = Keycodes::QkHapticOff, + HfTogg = Keycodes::QkHapticToggle, + HfRst = Keycodes::QkHapticReset, + HfFdbk = Keycodes::QkHapticFeedbackToggle, + HfBuzz = Keycodes::QkHapticBuzzToggle, + HfNext = Keycodes::QkHapticModeNext, + HfPrev = Keycodes::QkHapticModePrevious, + HfCont = Keycodes::QkHapticContinuousToggle, + HfConu = Keycodes::QkHapticContinuousUp, + HfCond = Keycodes::QkHapticContinuousDown, + HfDwlu = Keycodes::QkHapticDwellUp, + HfDwld = Keycodes::QkHapticDwellDown, + CmOn = Keycodes::QkComboOn, + CmOff = Keycodes::QkComboOff, + CmTogg = Keycodes::QkComboToggle, + DmRec1 = Keycodes::QkDynamicMacroRecordStart1, + DmRec2 = Keycodes::QkDynamicMacroRecordStart2, + DmRstp = Keycodes::QkDynamicMacroRecordStop, + DmPly1 = Keycodes::QkDynamicMacroPlay1, + DmPly2 = Keycodes::QkDynamicMacroPlay2, + QkLead = Keycodes::QkLeader, + OsOn = Keycodes::QkOneShotOn, + OsOff = Keycodes::QkOneShotOff, + OsTogg = Keycodes::QkOneShotToggle, + KoTogg = Keycodes::QkKeyOverrideToggle, + KoOn = Keycodes::QkKeyOverrideOn, + KoOff = Keycodes::QkKeyOverrideOff, + SeLock = Keycodes::QkSecureLock, + SeUnlk = Keycodes::QkSecureUnlock, + SeTogg = Keycodes::QkSecureToggle, + SeReq = Keycodes::QkSecureRequest, + DtPrnt = Keycodes::QkDynamicTappingTermPrint, + DtUp = Keycodes::QkDynamicTappingTermUp, + DtDown = Keycodes::QkDynamicTappingTermDown, + CwTogg = Keycodes::QkCapsWordToggle, + AcOn = Keycodes::QkAutocorrectOn, + AcOff = Keycodes::QkAutocorrectOff, + AcTogg = Keycodes::QkAutocorrectToggle, + TlLowr = Keycodes::QkTriLayerLower, + TlUppr = Keycodes::QkTriLayerUpper, + QkRep = Keycodes::QkRepeatKey, + QkArep = Keycodes::QkAltRepeatKey, +} diff --git a/src/lib.rs b/src/lib.rs new file mode 100644 index 0000000..92d3f21 --- /dev/null +++ b/src/lib.rs @@ -0,0 +1,2 @@ +pub mod backlight; +pub mod keycodes; diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..e3941d0 --- /dev/null +++ b/src/main.rs @@ -0,0 +1,15 @@ +#![no_std] +#![no_main] + +use defmt::*; +use embassy_executor::Spawner; +use embassy_rp::gpio::Pin; +use embassy_rp::{gpio, init}; +use embassy_time::Timer; +use gpio::{Level, Output}; +use {defmt_rtt as _, panic_probe as _}; + +#[embassy_executor::main] +async fn main(_spawner: Spawner) { + let p = init(Default::default()); +}