From 964c24f8faf7d59bb0dbd28cfb2ef8bd7304b34b Mon Sep 17 00:00:00 2001 From: Luke Date: Tue, 9 Jun 2020 20:46:14 +1200 Subject: [PATCH] Final round of fixes for new version --- CHANGELOG.md | 12 ++ Cargo.lock | 192 ++++++++++-------- Cargo.toml | 8 +- README.md | 9 +- .../asus-fan-p1.patch | 0 .../asus-fan-p2.patch | 0 reverse_eng/ga401/GA401IV.md | 6 + ...rix_lightning_start_and_white_full_on.pcap | Bin 0 -> 453529 bytes .../gm501/lsusbinfo.sysclassname.txt | 0 .../gm501/usb-hid-dump.txt | 0 .../gm501/zephyrusgm501_info.txt | 0 .../airplane-mode-on-off-2.4.3.pcapng | Bin .../fan-button-2.4.3.pcapng | Bin .../screen-bright-2.4.3from.pcapng | Bin .../screen-off-on-button-2.4.3.pcapng | Bin .../screen-out-select-2.4.3-2.4.2.pcapng | Bin .../trackpad-off-on.pcapng | Bin ...e-yellow-green-lblue-blue-mag-black.pcapng | Bin .../gx502-rgb-dark-select-static-red.pcapng | Bin .../gx502-rgb-open-crate.pcapng | Bin .../gx502-rgb-select-breathing.pcapng | Bin .../gx502-rgb-select-rainbow.pcapng | Bin .../gx502-rgb-breathe-to-pulse.pcapng | Bin .../gx502-rgb-breathe.pcapng | Bin .../gx502-rgb-bright-1.pcapng | Bin .../gx502-rgb-bright-2.pcapng | Bin .../gx502-rgb-bright-3.pcapng | Bin .../gx502-rgb-colour-cycle-to-rainbow.pcapng | Bin .../gx502-rgb-pulse-to-colour-cycle.pcapng | Bin .../gx502-rgb-rainbow-to-static.pcapng | Bin .../gx501/per_key_raw_bytes | 0 .../gx501/per_key_raw_bytes.ods | Bin .../gx501/rog-star-colour.pcapng | Bin .../gx501/rog-star-random.pcapng | Bin .../gx501/rog_music_not_playing.pcapng | Bin .../gx501/rog_starry_night.pcapng | Bin .../gx501/rog_starry_night_brighter.pcapng | Bin {wireshark_data => reverse_eng}/hut1_12v2.pdf | Bin {aura => rog-client}/Cargo.toml | 4 +- {aura => rog-client}/examples/animatrix.rs | 2 +- {aura => rog-client}/examples/ball.rs | 2 +- {aura => rog-client}/examples/comet.rs | 2 +- {aura => rog-client}/examples/iterate-keys.rs | 2 +- {aura => rog-client}/examples/non-skewed.bmp | Bin .../examples/non-skewed_r.bmp | Bin .../examples/per-key-effect-2.rs | 2 +- {aura => rog-client}/examples/pulser.rs | 2 +- {aura => rog-client}/examples/rust.bmp | Bin .../examples/test-skinny-45deg.bmp | Bin {aura => rog-client}/examples/test.bmp | Bin {aura => rog-client}/examples/test2.bmp | Bin {aura => rog-client}/src/animatrix_dbus.rs | 0 {aura => rog-client}/src/anime_matrix.rs | 0 {aura => rog-client}/src/aura_dbus.rs | 0 {aura => rog-client}/src/builtins.rs | 68 +++---- {aura => rog-client}/src/cli_options.rs | 16 +- {aura => rog-client}/src/error.rs | 0 {aura => rog-client}/src/fancy.rs | 0 {aura => rog-client}/src/lib.rs | 24 +-- rog-core/Cargo.toml | 4 +- rog-core/src/animatrix_control.rs | 8 +- rog-core/src/config.rs | 2 +- rog-core/src/daemon.rs | 2 +- rog-core/src/laptops.rs | 14 +- rog-core/src/led_control.rs | 2 +- rog-core/src/main.rs | 4 +- rog-core/src/rog_dbus.rs | 2 +- rog-core/src/rogcore.rs | 7 +- 68 files changed, 220 insertions(+), 176 deletions(-) rename {wireshark_data => reverse_eng}/asus-fan-p1.patch (100%) rename {wireshark_data => reverse_eng}/asus-fan-p2.patch (100%) create mode 100644 reverse_eng/ga401/GA401IV.md create mode 100644 reverse_eng/ga401/anime_matrix_lightning_start_and_white_full_on.pcap rename {wireshark_data => reverse_eng}/gm501/lsusbinfo.sysclassname.txt (100%) rename {wireshark_data => reverse_eng}/gm501/usb-hid-dump.txt (100%) rename {wireshark_data => reverse_eng}/gm501/zephyrusgm501_info.txt (100%) rename {wireshark_data => reverse_eng}/gx501/gx502-other-kb-functions/airplane-mode-on-off-2.4.3.pcapng (100%) rename {wireshark_data => reverse_eng}/gx501/gx502-other-kb-functions/fan-button-2.4.3.pcapng (100%) rename {wireshark_data => reverse_eng}/gx501/gx502-other-kb-functions/screen-bright-2.4.3from.pcapng (100%) rename {wireshark_data => reverse_eng}/gx501/gx502-other-kb-functions/screen-off-on-button-2.4.3.pcapng (100%) rename {wireshark_data => reverse_eng}/gx501/gx502-other-kb-functions/screen-out-select-2.4.3-2.4.2.pcapng (100%) rename {wireshark_data => reverse_eng}/gx501/gx502-other-kb-functions/trackpad-off-on.pcapng (100%) rename {wireshark_data => reverse_eng}/gx501/gx502-rgb-selecting/gx502-rgb-black-red-orange-yellow-green-lblue-blue-mag-black.pcapng (100%) rename {wireshark_data => reverse_eng}/gx501/gx502-rgb-selecting/gx502-rgb-dark-select-static-red.pcapng (100%) rename {wireshark_data => reverse_eng}/gx501/gx502-rgb-selecting/gx502-rgb-open-crate.pcapng (100%) rename {wireshark_data => reverse_eng}/gx501/gx502-rgb-selecting/gx502-rgb-select-breathing.pcapng (100%) rename {wireshark_data => reverse_eng}/gx501/gx502-rgb-selecting/gx502-rgb-select-rainbow.pcapng (100%) rename {wireshark_data => reverse_eng}/gx501/gx502-rgb-wireshark/gx502-rgb-breathe-to-pulse.pcapng (100%) rename {wireshark_data => reverse_eng}/gx501/gx502-rgb-wireshark/gx502-rgb-breathe.pcapng (100%) rename {wireshark_data => reverse_eng}/gx501/gx502-rgb-wireshark/gx502-rgb-bright-1.pcapng (100%) rename {wireshark_data => reverse_eng}/gx501/gx502-rgb-wireshark/gx502-rgb-bright-2.pcapng (100%) rename {wireshark_data => reverse_eng}/gx501/gx502-rgb-wireshark/gx502-rgb-bright-3.pcapng (100%) rename {wireshark_data => reverse_eng}/gx501/gx502-rgb-wireshark/gx502-rgb-colour-cycle-to-rainbow.pcapng (100%) rename {wireshark_data => reverse_eng}/gx501/gx502-rgb-wireshark/gx502-rgb-pulse-to-colour-cycle.pcapng (100%) rename {wireshark_data => reverse_eng}/gx501/gx502-rgb-wireshark/gx502-rgb-rainbow-to-static.pcapng (100%) rename {wireshark_data => reverse_eng}/gx501/per_key_raw_bytes (100%) rename {wireshark_data => reverse_eng}/gx501/per_key_raw_bytes.ods (100%) rename {wireshark_data => reverse_eng}/gx501/rog-star-colour.pcapng (100%) rename {wireshark_data => reverse_eng}/gx501/rog-star-random.pcapng (100%) rename {wireshark_data => reverse_eng}/gx501/rog_music_not_playing.pcapng (100%) rename {wireshark_data => reverse_eng}/gx501/rog_starry_night.pcapng (100%) rename {wireshark_data => reverse_eng}/gx501/rog_starry_night_brighter.pcapng (100%) rename {wireshark_data => reverse_eng}/hut1_12v2.pdf (100%) rename {aura => rog-client}/Cargo.toml (92%) rename {aura => rog-client}/examples/animatrix.rs (93%) rename {aura => rog-client}/examples/ball.rs (97%) rename {aura => rog-client}/examples/comet.rs (90%) rename {aura => rog-client}/examples/iterate-keys.rs (96%) rename {aura => rog-client}/examples/non-skewed.bmp (100%) rename {aura => rog-client}/examples/non-skewed_r.bmp (100%) rename {aura => rog-client}/examples/per-key-effect-2.rs (95%) rename {aura => rog-client}/examples/pulser.rs (91%) rename {aura => rog-client}/examples/rust.bmp (100%) rename {aura => rog-client}/examples/test-skinny-45deg.bmp (100%) rename {aura => rog-client}/examples/test.bmp (100%) rename {aura => rog-client}/examples/test2.bmp (100%) rename {aura => rog-client}/src/animatrix_dbus.rs (100%) rename {aura => rog-client}/src/anime_matrix.rs (100%) rename {aura => rog-client}/src/aura_dbus.rs (100%) rename {aura => rog-client}/src/builtins.rs (74%) rename {aura => rog-client}/src/cli_options.rs (95%) rename {aura => rog-client}/src/error.rs (100%) rename {aura => rog-client}/src/fancy.rs (100%) rename {aura => rog-client}/src/lib.rs (92%) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5402a3fb..56812cd1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,18 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.11.0] - 2020-09-05 +### BREAKING CHANGE +- Many of the RGB built-in modes have been renamed to match Armory-Crate names, + this means that the `/etc/rogcore.conf` needs to be removed so it can be + regenerated using the updated names. + +### Changed +- Add better examples for AniMe display, and fix many small issues +- Don't halt app iff AniMe display not found when running on GA14/GA15 laptops +- Rename client crate to better suit +- Added a device reset for both keyboard and AniMe devices before configuring them + ## [0.10.0] - 2020-23-05 ### Changed - Correctly set AMD boost diff --git a/Cargo.lock b/Cargo.lock index 8b72a25e..1436fec9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -37,9 +37,9 @@ dependencies = [ [[package]] name = "bindgen" -version = "0.53.2" +version = "0.53.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bb26d6a69a335b8cb0e7c7e9775cd5666611dc50a37177c3f2cedcfc040e8c8" +checksum = "c72a978d268b1d70b0e963217e60fdabd9523a941457a6c42a7315d15c7e89e5" dependencies = [ "bitflags", "cexpr", @@ -61,18 +61,18 @@ dependencies = [ [[package]] name = "bit-set" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e84c238982c4b1e1ee668d136c510c67a13465279c0cb367ea6baf6310620a80" +checksum = "6e11e16035ea35e4e5997b393eacbf6f63983188f7a2ad25bfb13465f5ad59de" dependencies = [ "bit-vec", ] [[package]] name = "bit-vec" -version = "0.5.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f59bbe95d4e52a6398ec21238d31577f2b28a9d86807f06ca59d191d8440d0bb" +checksum = "5f0dc55f2d8a1a85650ac47858bb001b4c0dd73d79e3c455a842925e68d29cd3" [[package]] name = "bitflags" @@ -88,9 +88,9 @@ checksum = "130aac562c0dd69c56b3b1cc8ffd2e17be31d0b6c25b61c96b76231aa23e39e1" [[package]] name = "cc" -version = "1.0.52" +version = "1.0.54" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d87b23d6a92cd03af510a5ade527033f6aa6fa92161e2d5863a907d4c5e31d" +checksum = "7bbb73db36c1246e9034e307d0fba23f9a2e251faa47ade70c1bd252220c8311" [[package]] name = "cexpr" @@ -120,9 +120,9 @@ dependencies = [ [[package]] name = "clap" -version = "2.33.0" +version = "2.33.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9" +checksum = "bdfa80d47f954d53a35a64987ca1422f495b8d6483c0fe9f7117b36c2a792129" dependencies = [ "ansi_term", "atty", @@ -144,9 +144,9 @@ dependencies = [ [[package]] name = "dbus" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38f8875bb7afbc20dec12db09e18af3dcbd672b08592d2932950326a6437c616" +checksum = "26b17a12ffaff26515889b006fc029493a3e340366a137c13cec2cdd545ea3b8" dependencies = [ "futures", "libc", @@ -213,9 +213,9 @@ dependencies = [ [[package]] name = "filetime" -version = "0.2.9" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f59efc38004c988e4201d11d263b8171f49a2e7ec0bdbb71773433f271504a5e" +checksum = "affc17579b132fc2461adf7c575cc6e8b134ebca52c51f5411388965227dc695" dependencies = [ "cfg-if", "libc", @@ -225,9 +225,9 @@ dependencies = [ [[package]] name = "fnv" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fuchsia-zircon" @@ -247,9 +247,9 @@ checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" [[package]] name = "futures" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c329ae8753502fb44ae4fc2b622fa2a94652c41e795143765ba0927f92ab780" +checksum = "1e05b85ec287aac0dc34db7d4a569323df697f9c55b99b15d6b4ef8cde49f613" dependencies = [ "futures-channel", "futures-core", @@ -262,9 +262,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0c77d04ce8edd9cb903932b608268b3fffec4163dc053b3b402bf47eac1f1a8" +checksum = "f366ad74c28cca6ba456d95e6422883cfb4b252a83bed929c83abfdbbf2967d5" dependencies = [ "futures-core", "futures-sink", @@ -272,15 +272,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f25592f769825e89b92358db00d26f965761e094951ac44d3663ef25b7ac464a" +checksum = "59f5fff90fd5d971f936ad674802482ba441b6f09ba5e15fd8b39145582ca399" [[package]] name = "futures-executor" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f674f3e1bcb15b37284a90cedf55afdba482ab061c407a9c0ebbd0f3109741ba" +checksum = "10d6bb888be1153d3abeb9006b11b02cf5e9b209fda28693c31ae1e4e012e314" dependencies = [ "futures-core", "futures-task", @@ -289,15 +289,15 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a638959aa96152c7a4cddf50fcb1e3fede0583b27157c26e67d6f99904090dc6" +checksum = "de27142b013a8e869c14957e6d2edeef89e97c289e69d042ee3a49acd8b51789" [[package]] name = "futures-macro" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a5081aa3de1f7542a794a397cde100ed903b0630152d0973479018fd85423a7" +checksum = "d0b5a30a4328ab5473878237c447333c093297bded83a4983d10f4deea240d39" dependencies = [ "proc-macro-hack", "proc-macro2", @@ -307,21 +307,24 @@ dependencies = [ [[package]] name = "futures-sink" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3466821b4bc114d95b087b850a724c6f83115e929bc88f1fa98a3304a944c8a6" +checksum = "3f2032893cb734c7a05d85ce0cc8b8c4075278e93b24b66f9de99d6eb0fa8acc" [[package]] name = "futures-task" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b0a34e53cf6cdcd0178aa573aed466b646eb3db769570841fda0c7ede375a27" +checksum = "bdb66b5f09e22019b1ab0830f7785bcea8e7a42148683f99214f73f8ec21a626" +dependencies = [ + "once_cell", +] [[package]] name = "futures-util" -version = "0.3.4" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22766cf25d64306bedf0384da004d05c9974ab104fcc4528f1236181c18004c5" +checksum = "8764574ff08b701a084482c3c7031349104b07ac897393010494beaa18ce32c6" dependencies = [ "futures-channel", "futures-core", @@ -330,6 +333,7 @@ dependencies = [ "futures-sink", "futures-task", "memchr", + "pin-project", "pin-utils", "proc-macro-hack", "proc-macro-nested", @@ -364,9 +368,9 @@ dependencies = [ [[package]] name = "hermit-abi" -version = "0.1.12" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61565ff7aaace3525556587bd2dc31d4a07071957be715e63ce7b1eccf51a8f4" +checksum = "91780f809e750b0a89f5544be56617ff6b1227ee485bcb06ebe10cdf89bd3b71" dependencies = [ "libc", ] @@ -423,9 +427,9 @@ checksum = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f" [[package]] name = "libc" -version = "0.2.69" +version = "0.2.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99e85c08494b21a9054e7fe1374a732aeadaff3980b6990b94bfd3a70f690005" +checksum = "9457b06509d27052635f90d6466700c65095fdf75409b3fbdd903e988b886f49" [[package]] name = "libdbus-sys" @@ -460,9 +464,9 @@ dependencies = [ [[package]] name = "libusb1-sys" -version = "0.3.6" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0318f131edc8211a9a3e40133be6fc93f0b686e14f59c6115eab4e7bd794b34" +checksum = "71d9ddd446b6f233a79ef7e6f73de63a58f3a9047d60c46f15cda31452a8f86e" dependencies = [ "cc", "libc", @@ -555,6 +559,12 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e521b6adefa0b2c1fa5d2abdf9a5216288686fe6146249215d884c0e5ab320b0" +[[package]] +name = "once_cell" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b631f7e854af39a1739f401cf34a8a013dfe09eac4fa4dba91e9768bd28168d" + [[package]] name = "peeking_take_while" version = "0.1.2" @@ -562,10 +572,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" [[package]] -name = "pin-project-lite" -version = "0.1.4" +name = "pin-project" +version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "237844750cfbb86f67afe27eee600dfbbcb6188d734139b534cbfbf4f96792ae" +checksum = "e75373ff9037d112bb19bc61333a06a159eaeb217660dcfbea7d88e1db823919" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "0.4.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10b4b44893d3c370407a1d6a5cfde7c41ae0478e31c516c85f67eb3adc51be6d" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "pin-project-lite" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282adbf10f2698a7a77f8e983a74b2d18176c19a7fd32a45446139ae7b02b715" [[package]] name = "pin-utils" @@ -607,21 +637,21 @@ dependencies = [ [[package]] name = "proc-macro-hack" -version = "0.5.15" +version = "0.5.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d659fe7c6d27f25e9d80a1a094c223f5246f6a6596453e09d7229bf42750b63" +checksum = "7e0456befd48169b9f13ef0f0ad46d492cf9d2dbb918bcf38e01eed4ce3ec5e4" [[package]] name = "proc-macro-nested" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e946095f9d3ed29ec38de908c22f95d9ac008e424c7bcae54c75a79c527c694" +checksum = "0afe1bd463b9e9ed51d0e0f0b50b6b146aec855c56fd182bb242388710a9b6de" [[package]] name = "proc-macro2" -version = "1.0.12" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8872cf6f48eee44265156c111456a700ab3483686b3f96df4cf5481c89157319" +checksum = "beae6331a816b1f65d04c45b078fd8e6c93e8071771f41b8163255bbd8d7c8fa" dependencies = [ "unicode-xid", ] @@ -634,9 +664,9 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" [[package]] name = "quote" -version = "1.0.4" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c1f4b0efa5fc5e8ceb705136bfee52cfdb6a4e3509f770b478cd6ed434232a7" +checksum = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37" dependencies = [ "proc-macro2", ] @@ -649,9 +679,9 @@ checksum = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84" [[package]] name = "regex" -version = "1.3.7" +version = "1.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6020f034922e3194c711b82a627453881bc4682166cabb07134a10c26ba7692" +checksum = "9c3780fcf44b193bc4d09f36d2a3c87b251da4a046c87795a0d35f4f927ad8e6" dependencies = [ "aho-corasick", "memchr", @@ -661,9 +691,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.6.17" +version = "0.6.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fe5bd57d1d7414c6b5ed48563a2c855d995ff777729dcd91c369ec7fea395ae" +checksum = "26412eb97c6b088a6997e05f69403a802a92d520de2f8e63c2b65f9e0f47c4e8" [[package]] name = "rle-decode-fast" @@ -672,8 +702,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cabe4fa914dec5870285fa7f71f602645da47c486e68486d2b4ceb4a343e90ac" [[package]] -name = "rog-aura" -version = "0.10.0" +name = "rog-client" +version = "0.11.0" dependencies = [ "dbus", "gumdrop", @@ -686,7 +716,7 @@ dependencies = [ [[package]] name = "rog-daemon" -version = "0.10.0" +version = "0.11.0" dependencies = [ "dbus", "dbus-tokio", @@ -694,7 +724,7 @@ dependencies = [ "gumdrop", "intel-pstate", "log", - "rog-aura", + "rog-client", "rusb", "serde", "serde_derive", @@ -735,15 +765,15 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.106" +version = "1.0.111" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36df6ac6412072f67cf767ebbde4133a5b2e88e76dc6187fa7104cd16f783399" +checksum = "c9124df5b40cbd380080b2cc6ab894c040a3070d995f5c9dc77e18c34a8ae37d" [[package]] name = "serde_derive" -version = "1.0.106" +version = "1.0.111" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e549e3abf4fb8621bd1609f11dfc9f5e50320802273b12f3811a67e6716ea6c" +checksum = "3f2c3ac8e6ca1e9c80b8be1023940162bf81ae3cffbb1809474152f2ce1eb250" dependencies = [ "proc-macro2", "quote", @@ -781,9 +811,9 @@ checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" [[package]] name = "syn" -version = "1.0.18" +version = "1.0.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "410a7488c0a728c7ceb4ad59b9567eb4053d02e8cc7f5c0e0eeeb39518369213" +checksum = "93a56fabc59dce20fe48b6c832cc249c713e7ed88fa28b0ee0a3bfcaae5fe4e2" dependencies = [ "proc-macro2", "quote", @@ -803,9 +833,9 @@ dependencies = [ [[package]] name = "synstructure" -version = "0.12.3" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67656ea1dc1b41b1451851562ea232ec2e5a80242139f7e679ceccfb5d61f545" +checksum = "b834f2d66f734cb897113e34aaff2f1ab4719ca946f9a7358dba8f8064148701" dependencies = [ "proc-macro2", "quote", @@ -830,9 +860,9 @@ checksum = "f764005d11ee5f36500a149ace24e00e3da98b0158b3e2d53a7495660d3f4d60" [[package]] name = "tar" -version = "0.4.26" +version = "0.4.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3196bfbffbba3e57481b6ea32249fbaf590396a52505a2615adbb79d9d826d3" +checksum = "5c058ad0bd6ccb84faa24cc44d4fc99bee8a5d7ba9ff33aa4d993122d1aeeac2" dependencies = [ "filetime", "libc", @@ -860,18 +890,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.16" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d12a1dae4add0f0d568eebc7bf142f145ba1aa2544cafb195c76f0f409091b60" +checksum = "b13f926965ad00595dd129fa12823b04bbf866e9085ab0a5f2b05b850fbfc344" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.16" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f34e0c1caaa462fd840ec6b768946ea1e7842620d94fe29d5b847138f521269" +checksum = "893582086c2f98cde18f906265a65b5030a074b1046c674ae898be6519a7f479" dependencies = [ "proc-macro2", "quote", @@ -898,9 +928,9 @@ dependencies = [ [[package]] name = "tokio" -version = "0.2.20" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05c1d570eb1a36f0345a5ce9c6c6e665b70b73d11236912c0b477616aeec47b1" +checksum = "d099fa27b9702bed751524694adbe393e18b36b204da91eb1cbbbbb4a5ee2d58" dependencies = [ "bytes", "fnv", @@ -967,21 +997,21 @@ checksum = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c" [[package]] name = "vcpkg" -version = "0.2.8" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fc439f2794e98976c88a2a2dafce96b930fe8010b0a256b3c2199a773933168" +checksum = "55d1e41d56121e07f1e223db0a4def204e45c85425f6a16d462fd07c8d10d74c" [[package]] name = "vec_map" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a" +checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" [[package]] name = "version_check" -version = "0.9.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "078775d0255232fb988e6fccf26ddc9d1ac274299aaedcedce21c6f72cc533ce" +checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed" [[package]] name = "which" diff --git a/Cargo.toml b/Cargo.toml index 37e93e63..3e6af02a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ [workspace] -members = ["rog-core", "aura"] +members = ["rog-core", "rog-client"] [profile.release] lto = true @@ -9,11 +9,9 @@ panic = "abort" [profile.dev] debug = false -opt-level = 2 -#panic = "abort" +opt-level = 1 [profile.bench] lto = true debug = false -opt-level = 3 -#panic = "abort" \ No newline at end of file +opt-level = 3 \ No newline at end of file diff --git a/README.md b/README.md index 4334e89c..ed699a46 100644 --- a/README.md +++ b/README.md @@ -33,17 +33,16 @@ I'm now looking at the kernel source to see if I can add the inputs correctly so + [X] Aura control by Aura keys + [X] Volume + media controls work - [X] Logging - required for journalctl -- [X] AniMatrix display on G14 models (Functional. Needs testing) +- [X] AniMatrix display on G14 models that include it -## Other Laptops - -**Supported:** +## SUPPORTED LAPTOPS - GX502 (product 0x1866) (Tested on GX502GW) +- GA14 *is* supported, including the AniMe display. You will need kernel [patches](https://lab.retarded.farm/zappel/asus-rog-zephyrus-g14/-/tree/master/kernel_patches). **Partial/Inprogress:** +- GA15 appears to have most things working - GM501 (multizone needs testing) -- G14 (no Lid LED support, all other functions appear to work) Both of these laptops appear to have the same USB device ID as the GX502, but with different features enabled. diff --git a/wireshark_data/asus-fan-p1.patch b/reverse_eng/asus-fan-p1.patch similarity index 100% rename from wireshark_data/asus-fan-p1.patch rename to reverse_eng/asus-fan-p1.patch diff --git a/wireshark_data/asus-fan-p2.patch b/reverse_eng/asus-fan-p2.patch similarity index 100% rename from wireshark_data/asus-fan-p2.patch rename to reverse_eng/asus-fan-p2.patch diff --git a/reverse_eng/ga401/GA401IV.md b/reverse_eng/ga401/GA401IV.md new file mode 100644 index 00000000..91f5fb88 --- /dev/null +++ b/reverse_eng/ga401/GA401IV.md @@ -0,0 +1,6 @@ +$ cat /sys/class/dmi/id/product_name +ROG Zephyrus G14 GA401IV_GA401IV +$ cat /sys/class/dmi/id/product_family +ROG Zephyrus G14 +$ cat /sys/class/dmi/id/board_name +GA401IV diff --git a/reverse_eng/ga401/anime_matrix_lightning_start_and_white_full_on.pcap b/reverse_eng/ga401/anime_matrix_lightning_start_and_white_full_on.pcap new file mode 100644 index 0000000000000000000000000000000000000000..c959c8d193a5d1f9ea61c5c9291b0fa9195545b3 GIT binary patch literal 453529 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 z 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"] diff --git a/aura/examples/animatrix.rs b/rog-client/examples/animatrix.rs similarity index 93% rename from aura/examples/animatrix.rs rename to rog-client/examples/animatrix.rs index 52f9d5be..cb1da328 100644 --- a/aura/examples/animatrix.rs +++ b/rog-client/examples/animatrix.rs @@ -1,4 +1,4 @@ -use rog_aura::{AniMeDbusWriter, AniMeMatrix, AniMePacketType, HEIGHT, WIDTH}; +use rog_client::{AniMeDbusWriter, AniMeMatrix, AniMePacketType, HEIGHT, WIDTH}; use tinybmp::{Bmp, Pixel}; fn main() { diff --git a/aura/examples/ball.rs b/rog-client/examples/ball.rs similarity index 97% rename from aura/examples/ball.rs rename to rog-client/examples/ball.rs index e0ede3cb..fa08d3ad 100644 --- a/aura/examples/ball.rs +++ b/rog-client/examples/ball.rs @@ -1,4 +1,4 @@ -use rog_aura::{AuraDbusWriter, GX502Layout, Key, KeyColourArray, KeyLayout}; +use rog_client::{AuraDbusWriter, GX502Layout, Key, KeyColourArray, KeyLayout}; use std::collections::LinkedList; #[derive(Debug, Clone)] diff --git a/aura/examples/comet.rs b/rog-client/examples/comet.rs similarity index 90% rename from aura/examples/comet.rs rename to rog-client/examples/comet.rs index 09d1c4ed..691d013f 100644 --- a/aura/examples/comet.rs +++ b/rog-client/examples/comet.rs @@ -1,4 +1,4 @@ -use rog_aura::{AuraDbusWriter, GX502Layout, KeyColourArray, KeyLayout}; +use rog_client::{AuraDbusWriter, GX502Layout, KeyColourArray, KeyLayout}; fn main() -> Result<(), Box> { let mut writer = AuraDbusWriter::new()?; diff --git a/aura/examples/iterate-keys.rs b/rog-client/examples/iterate-keys.rs similarity index 96% rename from aura/examples/iterate-keys.rs rename to rog-client/examples/iterate-keys.rs index 152bb728..94fef264 100644 --- a/aura/examples/iterate-keys.rs +++ b/rog-client/examples/iterate-keys.rs @@ -1,4 +1,4 @@ -use rog_aura::{AuraDbusWriter, GX502Layout, Key, KeyColourArray, KeyLayout}; +use rog_client::{AuraDbusWriter, GX502Layout, Key, KeyColourArray, KeyLayout}; fn main() -> Result<(), Box> { let mut writer = AuraDbusWriter::new()?; diff --git a/aura/examples/non-skewed.bmp b/rog-client/examples/non-skewed.bmp similarity index 100% rename from aura/examples/non-skewed.bmp rename to rog-client/examples/non-skewed.bmp diff --git a/aura/examples/non-skewed_r.bmp b/rog-client/examples/non-skewed_r.bmp similarity index 100% rename from aura/examples/non-skewed_r.bmp rename to rog-client/examples/non-skewed_r.bmp diff --git a/aura/examples/per-key-effect-2.rs b/rog-client/examples/per-key-effect-2.rs similarity index 95% rename from aura/examples/per-key-effect-2.rs rename to rog-client/examples/per-key-effect-2.rs index 02ada36c..e9c1eb0e 100644 --- a/aura/examples/per-key-effect-2.rs +++ b/rog-client/examples/per-key-effect-2.rs @@ -1,4 +1,4 @@ -use rog_aura::{AuraDbusWriter, Key, KeyColourArray}; +use rog_client::{AuraDbusWriter, Key, KeyColourArray}; fn main() -> Result<(), Box> { let mut writer = AuraDbusWriter::new()?; diff --git a/aura/examples/pulser.rs b/rog-client/examples/pulser.rs similarity index 91% rename from aura/examples/pulser.rs rename to rog-client/examples/pulser.rs index 8c28b88b..7c104624 100644 --- a/aura/examples/pulser.rs +++ b/rog-client/examples/pulser.rs @@ -1,4 +1,4 @@ -use rog_aura::{AuraDbusWriter, GX502Layout, KeyColourArray, KeyLayout}; +use rog_client::{AuraDbusWriter, GX502Layout, KeyColourArray, KeyLayout}; fn main() -> Result<(), Box> { let mut writer = AuraDbusWriter::new()?; diff --git a/aura/examples/rust.bmp b/rog-client/examples/rust.bmp similarity index 100% rename from aura/examples/rust.bmp rename to rog-client/examples/rust.bmp diff --git a/aura/examples/test-skinny-45deg.bmp b/rog-client/examples/test-skinny-45deg.bmp similarity index 100% rename from aura/examples/test-skinny-45deg.bmp rename to rog-client/examples/test-skinny-45deg.bmp diff --git a/aura/examples/test.bmp b/rog-client/examples/test.bmp similarity index 100% rename from aura/examples/test.bmp rename to rog-client/examples/test.bmp diff --git a/aura/examples/test2.bmp b/rog-client/examples/test2.bmp similarity index 100% rename from aura/examples/test2.bmp rename to rog-client/examples/test2.bmp diff --git a/aura/src/animatrix_dbus.rs b/rog-client/src/animatrix_dbus.rs similarity index 100% rename from aura/src/animatrix_dbus.rs rename to rog-client/src/animatrix_dbus.rs diff --git a/aura/src/anime_matrix.rs b/rog-client/src/anime_matrix.rs similarity index 100% rename from aura/src/anime_matrix.rs rename to rog-client/src/anime_matrix.rs diff --git a/aura/src/aura_dbus.rs b/rog-client/src/aura_dbus.rs similarity index 100% rename from aura/src/aura_dbus.rs rename to rog-client/src/aura_dbus.rs diff --git a/aura/src/builtins.rs b/rog-client/src/builtins.rs similarity index 74% rename from aura/src/builtins.rs rename to rog-client/src/builtins.rs index c0f645c9..ffbbb30f 100644 --- a/aura/src/builtins.rs +++ b/rog-client/src/builtins.rs @@ -8,16 +8,16 @@ use serde_derive::{Deserialize, Serialize}; pub struct BuiltInModeBytes { pub stable: [u8; LED_MSG_LEN], pub breathe: [u8; LED_MSG_LEN], - pub cycle: [u8; LED_MSG_LEN], + pub strobe: [u8; LED_MSG_LEN], pub rainbow: [u8; LED_MSG_LEN], + pub star: [u8; LED_MSG_LEN], pub rain: [u8; LED_MSG_LEN], - pub random: [u8; LED_MSG_LEN], pub highlight: [u8; LED_MSG_LEN], pub laser: [u8; LED_MSG_LEN], pub ripple: [u8; LED_MSG_LEN], pub pulse: [u8; LED_MSG_LEN], - pub thinzoomy: [u8; LED_MSG_LEN], - pub widezoomy: [u8; LED_MSG_LEN], + pub comet: [u8; LED_MSG_LEN], + pub flash: [u8; LED_MSG_LEN], pub multi_static: [[u8; LED_MSG_LEN]; 4], } impl BuiltInModeBytes { @@ -28,16 +28,16 @@ impl BuiltInModeBytes { match b { BuiltInModeByte::Single => self.stable.copy_from_slice(bytes), BuiltInModeByte::Breathing => self.breathe.copy_from_slice(bytes), - BuiltInModeByte::Cycle => self.cycle.copy_from_slice(bytes), + BuiltInModeByte::Strobe => self.strobe.copy_from_slice(bytes), BuiltInModeByte::Rainbow => self.rainbow.copy_from_slice(bytes), + BuiltInModeByte::Star => self.star.copy_from_slice(bytes), BuiltInModeByte::Rain => self.rain.copy_from_slice(bytes), - BuiltInModeByte::Random => self.random.copy_from_slice(bytes), BuiltInModeByte::Highlight => self.highlight.copy_from_slice(bytes), BuiltInModeByte::Laser => self.laser.copy_from_slice(bytes), BuiltInModeByte::Ripple => self.ripple.copy_from_slice(bytes), BuiltInModeByte::Pulse => self.pulse.copy_from_slice(bytes), - BuiltInModeByte::ThinZoomy => self.thinzoomy.copy_from_slice(bytes), - BuiltInModeByte::WideZoomy => self.widezoomy.copy_from_slice(bytes), + BuiltInModeByte::Comet => self.comet.copy_from_slice(bytes), + BuiltInModeByte::Flash => self.flash.copy_from_slice(bytes), _ => {} } } @@ -48,16 +48,16 @@ impl BuiltInModeBytes { let bytes = match BuiltInModeByte::from(byte) { BuiltInModeByte::Single => &self.stable, BuiltInModeByte::Breathing => &self.breathe, - BuiltInModeByte::Cycle => &self.cycle, + BuiltInModeByte::Strobe => &self.strobe, BuiltInModeByte::Rainbow => &self.rainbow, + BuiltInModeByte::Star => &self.star, BuiltInModeByte::Rain => &self.rain, - BuiltInModeByte::Random => &self.random, BuiltInModeByte::Highlight => &self.highlight, BuiltInModeByte::Laser => &self.laser, BuiltInModeByte::Ripple => &self.ripple, BuiltInModeByte::Pulse => &self.pulse, - BuiltInModeByte::ThinZoomy => &self.thinzoomy, - BuiltInModeByte::WideZoomy => &self.widezoomy, + BuiltInModeByte::Comet => &self.comet, + BuiltInModeByte::Flash => &self.flash, _ => return None, }; Some(bytes) @@ -68,24 +68,20 @@ impl Default for BuiltInModeBytes { BuiltInModeBytes { stable: <[u8; LED_MSG_LEN]>::from(SetAuraBuiltin::Stable(SingleColour::default())), breathe: <[u8; LED_MSG_LEN]>::from(SetAuraBuiltin::Breathe(TwoColourSpeed::default())), - cycle: <[u8; LED_MSG_LEN]>::from(SetAuraBuiltin::Cycle(SingleSpeed::default())), + strobe: <[u8; LED_MSG_LEN]>::from(SetAuraBuiltin::Strobe(SingleSpeed::default())), rainbow: <[u8; LED_MSG_LEN]>::from(SetAuraBuiltin::Rainbow( SingleSpeedDirection::default(), )), - rain: <[u8; LED_MSG_LEN]>::from(SetAuraBuiltin::Rain(TwoColourSpeed::default())), - random: <[u8; LED_MSG_LEN]>::from(SetAuraBuiltin::Disco(SingleSpeed::default())), + star: <[u8; LED_MSG_LEN]>::from(SetAuraBuiltin::Star(TwoColourSpeed::default())), + rain: <[u8; LED_MSG_LEN]>::from(SetAuraBuiltin::Rain(SingleSpeed::default())), highlight: <[u8; LED_MSG_LEN]>::from(SetAuraBuiltin::Highlight( SingleColourSpeed::default(), )), laser: <[u8; LED_MSG_LEN]>::from(SetAuraBuiltin::Laser(SingleColourSpeed::default())), ripple: <[u8; LED_MSG_LEN]>::from(SetAuraBuiltin::Ripple(SingleColourSpeed::default())), pulse: <[u8; LED_MSG_LEN]>::from(SetAuraBuiltin::Pulse(SingleColour::default())), - thinzoomy: <[u8; LED_MSG_LEN]>::from( - SetAuraBuiltin::ThinZoomy(SingleColour::default()), - ), - widezoomy: <[u8; LED_MSG_LEN]>::from( - SetAuraBuiltin::WideZoomy(SingleColour::default()), - ), + comet: <[u8; LED_MSG_LEN]>::from(SetAuraBuiltin::Comet(SingleColour::default())), + flash: <[u8; LED_MSG_LEN]>::from(SetAuraBuiltin::Flash(SingleColour::default())), multi_static: <[[u8; LED_MSG_LEN]; 4]>::from(SetAuraBuiltin::MultiStatic( MultiColour::default(), )), @@ -97,16 +93,16 @@ impl Default for BuiltInModeBytes { pub enum BuiltInModeByte { Single = 0x00, Breathing = 0x01, - Cycle = 0x02, + Strobe = 0x02, Rainbow = 0x03, - Rain = 0x04, - Random = 0x05, + Star = 0x04, + Rain = 0x05, Highlight = 0x06, Laser = 0x07, Ripple = 0x08, Pulse = 0x0a, - ThinZoomy = 0x0b, - WideZoomy = 0x0c, + Comet = 0x0b, + Flash = 0x0c, MultiStatic, None, } @@ -123,16 +119,16 @@ impl From for BuiltInModeByte { match byte { 0x00 => Self::Single, 0x01 => Self::Breathing, - 0x02 => Self::Cycle, + 0x02 => Self::Strobe, 0x03 => Self::Rainbow, - 0x04 => Self::Rain, - 0x05 => Self::Random, + 0x04 => Self::Star, + 0x05 => Self::Rain, 0x06 => Self::Highlight, 0x07 => Self::Laser, 0x08 => Self::Ripple, 0x0a => Self::Pulse, - 0x0b => Self::ThinZoomy, - 0x0c => Self::WideZoomy, + 0x0b => Self::Comet, + 0x0c => Self::Flash, _ => Self::None, } } @@ -151,16 +147,16 @@ impl From for u8 { match byte { BuiltInModeByte::Single => 0x00, BuiltInModeByte::Breathing => 0x01, - BuiltInModeByte::Cycle => 0x02, + BuiltInModeByte::Strobe => 0x02, BuiltInModeByte::Rainbow => 0x03, - BuiltInModeByte::Rain => 0x04, - BuiltInModeByte::Random => 0x05, + BuiltInModeByte::Star => 0x04, + BuiltInModeByte::Rain => 0x05, BuiltInModeByte::Highlight => 0x06, BuiltInModeByte::Laser => 0x07, BuiltInModeByte::Ripple => 0x08, BuiltInModeByte::Pulse => 0x0a, - BuiltInModeByte::ThinZoomy => 0x0b, - BuiltInModeByte::WideZoomy => 0x0c, + BuiltInModeByte::Comet => 0x0b, + BuiltInModeByte::Flash => 0x0c, BuiltInModeByte::MultiStatic => 0x00, BuiltInModeByte::None => 0xff, } diff --git a/aura/src/cli_options.rs b/rog-client/src/cli_options.rs similarity index 95% rename from aura/src/cli_options.rs rename to rog-client/src/cli_options.rs index b6d94f95..ffbeafa1 100644 --- a/aura/src/cli_options.rs +++ b/rog-client/src/cli_options.rs @@ -181,14 +181,14 @@ pub enum SetAuraBuiltin { Stable(SingleColour), #[options(help = "pulse between one or two colours")] Breathe(TwoColourSpeed), - #[options(help = "cycle through all colours")] - Cycle(SingleSpeed), + #[options(help = "strobe through all colours")] + Strobe(SingleSpeed), #[options(help = "rainbow cycling in one of four directions")] Rainbow(SingleSpeedDirection), - #[options(help = "random pattern mimicking raindrops")] - Rain(TwoColourSpeed), - #[options(help = "random pattern of three preset colours")] - Disco(SingleSpeed), + #[options(help = "rain pattern mimicking raindrops")] + Star(TwoColourSpeed), + #[options(help = "rain pattern of three preset colours")] + Rain(SingleSpeed), #[options(help = "pressed keys are highlighted to fade")] Highlight(SingleColourSpeed), #[options(help = "pressed keys generate horizontal laser")] @@ -198,9 +198,9 @@ pub enum SetAuraBuiltin { #[options(help = "set a rapid pulse")] Pulse(SingleColour), #[options(help = "set a vertical line zooming from left")] - ThinZoomy(SingleColour), + Comet(SingleColour), #[options(help = "set a wide vertical line zooming from left")] - WideZoomy(SingleColour), + Flash(SingleColour), #[options(help = "4-zone multi-colour")] MultiStatic(MultiColour), } diff --git a/aura/src/error.rs b/rog-client/src/error.rs similarity index 100% rename from aura/src/error.rs rename to rog-client/src/error.rs diff --git a/aura/src/fancy.rs b/rog-client/src/fancy.rs similarity index 100% rename from aura/src/fancy.rs rename to rog-client/src/fancy.rs diff --git a/aura/src/lib.rs b/rog-client/src/lib.rs similarity index 92% rename from aura/src/lib.rs rename to rog-client/src/lib.rs index a74ce684..31fea603 100644 --- a/aura/src/lib.rs +++ b/rog-client/src/lib.rs @@ -74,10 +74,10 @@ pub fn aura_brightness_bytes(brightness: u8) -> [u8; 17] { /// Byte 3 sets the mode type: /// - 00 = static /// - 01 = breathe (can set two colours) -/// - 02 = cycle (through all colours) +/// - 02 = strobe (through all colours) /// - 03 = rainbow -/// - 04 = rain (byte 9 sets random colour) -/// - 05 = random keys, red, white, turquoise +/// - 04 = star (byte 9 sets rain colour) +/// - 05 = rain keys, red, white, turquoise /// - 06 = pressed keys light up and fade /// - 07 = pressed key emits laser /// - 08 = pressed key emits water ripple @@ -141,16 +141,16 @@ impl From<&SetAuraBuiltin> for [u8; LED_MSG_LEN] { match mode { SetAuraBuiltin::Stable(_) => msg[3] = 0x00, SetAuraBuiltin::Breathe(_) => msg[3] = 0x01, - SetAuraBuiltin::Cycle(_) => msg[3] = 0x02, + SetAuraBuiltin::Strobe(_) => msg[3] = 0x02, SetAuraBuiltin::Rainbow(_) => msg[3] = 0x03, - SetAuraBuiltin::Rain(_) => msg[3] = 0x04, - SetAuraBuiltin::Disco(_) => msg[3] = 0x05, + SetAuraBuiltin::Star(_) => msg[3] = 0x04, + SetAuraBuiltin::Rain(_) => msg[3] = 0x05, SetAuraBuiltin::Highlight(_) => msg[3] = 0x06, SetAuraBuiltin::Laser(_) => msg[3] = 0x07, SetAuraBuiltin::Ripple(_) => msg[3] = 0x08, SetAuraBuiltin::Pulse(_) => msg[3] = 0x0a, - SetAuraBuiltin::ThinZoomy(_) => msg[3] = 0x0b, - SetAuraBuiltin::WideZoomy(_) => msg[3] = 0x0c, + SetAuraBuiltin::Comet(_) => msg[3] = 0x0b, + SetAuraBuiltin::Flash(_) => msg[3] = 0x0c, _ => panic!("Mode not convertable to array"), } @@ -159,7 +159,7 @@ impl From<&SetAuraBuiltin> for [u8; LED_MSG_LEN] { msg[7] = settings.speed as u8; msg[8] = settings.direction as u8; } - SetAuraBuiltin::Rain(settings) => { + SetAuraBuiltin::Star(settings) => { msg[4] = settings.colour.0; msg[5] = settings.colour.1; msg[6] = settings.colour.2; @@ -175,7 +175,7 @@ impl From<&SetAuraBuiltin> for [u8; LED_MSG_LEN] { msg[11] = settings.colour2.1; msg[12] = settings.colour2.2; } - SetAuraBuiltin::Cycle(settings) | SetAuraBuiltin::Disco(settings) => { + SetAuraBuiltin::Strobe(settings) | SetAuraBuiltin::Rain(settings) => { msg[7] = settings.speed as u8; } SetAuraBuiltin::Highlight(settings) @@ -188,8 +188,8 @@ impl From<&SetAuraBuiltin> for [u8; LED_MSG_LEN] { } SetAuraBuiltin::Stable(settings) | SetAuraBuiltin::Pulse(settings) - | SetAuraBuiltin::ThinZoomy(settings) - | SetAuraBuiltin::WideZoomy(settings) => { + | SetAuraBuiltin::Comet(settings) + | SetAuraBuiltin::Flash(settings) => { msg[4] = settings.colour.0; msg[5] = settings.colour.1; msg[6] = settings.colour.2; diff --git a/rog-core/Cargo.toml b/rog-core/Cargo.toml index 8fe6eff3..ac0609b3 100644 --- a/rog-core/Cargo.toml +++ b/rog-core/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rog-daemon" -version = "0.10.0" +version = "0.11.0" license = "MPL-2.0" readme = "README.md" authors = ["Luke "] @@ -18,7 +18,7 @@ name = "rog-core" path = "src/main.rs" [dependencies] -rog-aura = { path = "../aura" } +rog-client = { path = "../rog-client" } rusb = "^0.5.5" # cli and logging diff --git a/rog-core/src/animatrix_control.rs b/rog-core/src/animatrix_control.rs index f0d34bb2..9d37d97a 100644 --- a/rog-core/src/animatrix_control.rs +++ b/rog-core/src/animatrix_control.rs @@ -9,12 +9,13 @@ const INIT: u8 = 0xc2; const APPLY: u8 = 0xc3; const SET: u8 = 0xc4; -use log::error; -use rog_aura::error::AuraError; +use log::{error, warn}; +use rog_client::error::AuraError; use rusb::DeviceHandle; use std::error::Error; use std::time::Duration; +#[allow(dead_code)] #[derive(Debug)] pub enum AnimatrixCommand { Apply, @@ -33,9 +34,10 @@ impl AniMeWriter { pub fn new() -> Result> { // We don't expect this ID to ever change let mut dev_handle = AniMeWriter::get_device(0x0b05, 0x193b).map_err(|err| { - error!("Could not get AniMe display handle: {:?}", err); + warn!("Could not get AniMe display handle: {:?}", err); err })?; + dev_handle.reset()?; // This config seems to be the required device config for writing dev_handle.set_active_configuration(1).unwrap_or(()); diff --git a/rog-core/src/config.rs b/rog-core/src/config.rs index ba001d88..ef3db6ac 100644 --- a/rog-core/src/config.rs +++ b/rog-core/src/config.rs @@ -1,4 +1,4 @@ -use rog_aura::BuiltInModeBytes; +use rog_client::BuiltInModeBytes; use serde_derive::{Deserialize, Serialize}; use std::fs::{File, OpenOptions}; use std::io::{Read, Write}; diff --git a/rog-core/src/daemon.rs b/rog-core/src/daemon.rs index c28b32c1..fa645d2b 100644 --- a/rog-core/src/daemon.rs +++ b/rog-core/src/daemon.rs @@ -11,7 +11,7 @@ use dbus::{channel::Sender, nonblock::Process}; use dbus_tokio::connection; use log::{error, info, warn}; -use rog_aura::{DBUS_IFACE, DBUS_PATH}; +use rog_client::{DBUS_IFACE, DBUS_PATH}; use std::error::Error; use std::sync::{mpsc, Arc}; use std::time::{Duration, Instant}; diff --git a/rog-core/src/laptops.rs b/rog-core/src/laptops.rs index ea884534..db5d8709 100644 --- a/rog-core/src/laptops.rs +++ b/rog-core/src/laptops.rs @@ -1,5 +1,5 @@ use crate::{config::Config, led_control::AuraCommand, rogcore::RogCore}; -use rog_aura::{error::AuraError, BuiltInModeByte}; +use rog_client::{error::AuraError, BuiltInModeByte}; //use keycode::{KeyMap, KeyMappingId, KeyState, KeyboardState}; use crate::virt_device::ConsumerKeys; use log::{info, warn}; @@ -25,7 +25,7 @@ pub(crate) fn match_laptop() -> LaptopBase { supported_modes: vec![ BuiltInModeByte::Single, BuiltInModeByte::Breathing, - BuiltInModeByte::Cycle, + BuiltInModeByte::Strobe, ], support_animatrix: false, // backlight: Backlight::new("intel_backlight").unwrap(), @@ -61,16 +61,16 @@ fn choose_1866_device(prod: u16) -> LaptopBase { laptop.supported_modes = vec![ BuiltInModeByte::Single, BuiltInModeByte::Breathing, - BuiltInModeByte::Cycle, + BuiltInModeByte::Strobe, BuiltInModeByte::Rainbow, + BuiltInModeByte::Star, BuiltInModeByte::Rain, - BuiltInModeByte::Random, BuiltInModeByte::Highlight, BuiltInModeByte::Laser, BuiltInModeByte::Ripple, BuiltInModeByte::Pulse, - BuiltInModeByte::ThinZoomy, - BuiltInModeByte::WideZoomy, + BuiltInModeByte::Comet, + BuiltInModeByte::Flash, ]; } "GM501" => { @@ -78,7 +78,7 @@ fn choose_1866_device(prod: u16) -> LaptopBase { laptop.supported_modes = vec![ BuiltInModeByte::Single, BuiltInModeByte::Breathing, - BuiltInModeByte::Cycle, + BuiltInModeByte::Strobe, BuiltInModeByte::Rainbow, ]; } diff --git a/rog-core/src/led_control.rs b/rog-core/src/led_control.rs index 550ea8d0..97eb5272 100644 --- a/rog-core/src/led_control.rs +++ b/rog-core/src/led_control.rs @@ -10,7 +10,7 @@ static LED_SET: [u8; 17] = [0x5d, 0xb5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 use crate::config::Config; use log::{error, info, warn}; -use rog_aura::{aura_brightness_bytes, error::AuraError, BuiltInModeByte}; +use rog_client::{aura_brightness_bytes, error::AuraError, BuiltInModeByte}; use rusb::DeviceHandle; use std::marker::PhantomData; use std::ptr::NonNull; diff --git a/rog-core/src/main.rs b/rog-core/src/main.rs index d0ac088a..8cceebaf 100644 --- a/rog-core/src/main.rs +++ b/rog-core/src/main.rs @@ -3,12 +3,12 @@ use daemon::rogcore::FanLevel; use env_logger::{Builder, Target}; use gumdrop::Options; use log::LevelFilter; -use rog_aura::{ +use rog_client::{ cli_options::{LedBrightness, SetAuraBuiltin}, AuraDbusWriter, LED_MSG_LEN, }; -static VERSION: &str = "0.10.0"; +static VERSION: &str = "0.11.0"; #[derive(Debug, Options)] struct CLIStart { diff --git a/rog-core/src/rog_dbus.rs b/rog-core/src/rog_dbus.rs index ca0299e1..7233f4c4 100644 --- a/rog-core/src/rog_dbus.rs +++ b/rog-core/src/rog_dbus.rs @@ -1,7 +1,7 @@ use crate::daemon::{FanModeType, LedMsgType, NestedVecType}; use crate::rogcore::FanLevel; use dbus::tree::{Factory, MTSync, Method, MethodErr, Signal, Tree}; -use rog_aura::{DBUS_IFACE, DBUS_PATH}; +use rog_client::{DBUS_IFACE, DBUS_PATH}; use std::sync::Arc; use tokio::sync::Mutex; diff --git a/rog-core/src/rogcore.rs b/rog-core/src/rogcore.rs index e3e7f713..d94f23a6 100644 --- a/rog-core/src/rogcore.rs +++ b/rog-core/src/rogcore.rs @@ -35,13 +35,14 @@ pub struct RogCore { impl RogCore { pub fn new(vendor: u16, product: u16, led_endpoint: u8) -> Result> { let mut dev_handle = RogCore::get_device(vendor, product).map_err(|err| { - error!("Could not get device handle: {:?}", err); + error!("Could not get keyboard device handle: {:?}", err); err })?; + dev_handle.reset()?; dev_handle.set_active_configuration(0).unwrap_or(()); let dev_config = dev_handle.device().config_descriptor(0).map_err(|err| { - error!("Could not get device config: {:?}", err); + error!("Could not get keyboard device config: {:?}", err); err })?; // Interface with outputs @@ -69,7 +70,7 @@ impl RogCore { err })?; dev_handle.claim_interface(interface).map_err(|err| { - error!("Could not claim device interface: {:?}", err); + error!("Could not claim keyboard device interface: {:?}", err); err })?;