mirror of
https://gitlab.com/asus-linux/asusctl.git
synced 2026-02-06 00:15:04 +01:00
Compare commits
22 Commits
6.3.0
...
31939f41ba
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
31939f41ba | ||
|
|
d006837198 | ||
|
|
6e83884c0a | ||
|
|
7edb77b41f | ||
|
|
737ffa522c | ||
|
|
0311cfb1f9 | ||
|
|
b0ee27fb74 | ||
|
|
d4eca0c93e | ||
|
|
a9f4aac875 | ||
|
|
8377056580 | ||
|
|
d541581012 | ||
|
|
72ef6dea07 | ||
|
|
bfadc39400 | ||
|
|
754d82d031 | ||
|
|
8ae072ea82 | ||
|
|
cec2168591 | ||
|
|
8d6acc5975 | ||
|
|
b20ecf5378 | ||
|
|
ade839e981 | ||
|
|
d625c279a6 | ||
|
|
5ea14be3fa | ||
|
|
64c2e55db4 |
@@ -90,7 +90,7 @@ pages:
|
|||||||
- rm -rf public
|
- rm -rf public
|
||||||
- mkdir public
|
- mkdir public
|
||||||
- cp -R ci-target/doc/* public
|
- cp -R ci-target/doc/* public
|
||||||
- cp extra/index.html public
|
- if [ -f extra/index.html ]; then cp extra/index.html public; else echo "no extra/index.html to copy"; fi
|
||||||
artifacts:
|
artifacts:
|
||||||
paths:
|
paths:
|
||||||
- public
|
- public
|
||||||
|
|||||||
14
CHANGELOG.md
14
CHANGELOG.md
@@ -1,5 +1,19 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## [6.3.2]
|
||||||
|
|
||||||
|
### Changes
|
||||||
|
- Improve the notification area, @shevchenko0013 strikes again!
|
||||||
|
- Improve firmware attributes handling
|
||||||
|
|
||||||
|
## [6.3.1]
|
||||||
|
|
||||||
|
### Changes
|
||||||
|
- Removed a lighting mode that is unavailable in windows to G835L: thanks to @shevchenko0013 again!
|
||||||
|
- Added translations for Ukranian language, thanks @shevchenko0013!
|
||||||
|
- Added LEDs definition for G615LR, thanks @btnrv
|
||||||
|
- Fix improper usage of Quiet when only LowPower is available
|
||||||
|
|
||||||
## [6.3.0]
|
## [6.3.0]
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|||||||
133
Cargo.lock
generated
133
Cargo.lock
generated
@@ -212,7 +212,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "asusctl"
|
name = "asusctl"
|
||||||
version = "6.3.0"
|
version = "6.3.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"argh",
|
"argh",
|
||||||
"dmi_id",
|
"dmi_id",
|
||||||
@@ -232,7 +232,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "asusd"
|
name = "asusd"
|
||||||
version = "6.3.0"
|
version = "6.3.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cargo-husky",
|
"cargo-husky",
|
||||||
"concat-idents",
|
"concat-idents",
|
||||||
@@ -259,7 +259,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "asusd-user"
|
name = "asusd-user"
|
||||||
version = "6.3.0"
|
version = "6.3.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"config-traits",
|
"config-traits",
|
||||||
"dirs",
|
"dirs",
|
||||||
@@ -816,9 +816,9 @@ checksum = "7b02b629252fe8ef6460461409564e2c21d0c8e77e0944f3d189ff06c4e932ad"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cc"
|
name = "cc"
|
||||||
version = "1.2.52"
|
version = "1.2.53"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "cd4932aefd12402b36c60956a4fe0035421f544799057659ff86f923657aada3"
|
checksum = "755d2fce177175ffca841e9a06afdb2c4ab0f593d53b4dee48147dfaade85932"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"find-msvc-tools",
|
"find-msvc-tools",
|
||||||
"jobserver",
|
"jobserver",
|
||||||
@@ -864,9 +864,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "chrono"
|
name = "chrono"
|
||||||
version = "0.4.42"
|
version = "0.4.43"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2"
|
checksum = "fac4744fb15ae8337dc853fee7fb3f4e48c0fbaa23d0afe49c447b4fab126118"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"iana-time-zone",
|
"iana-time-zone",
|
||||||
"js-sys",
|
"js-sys",
|
||||||
@@ -938,7 +938,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "config-traits"
|
name = "config-traits"
|
||||||
version = "6.3.0"
|
version = "6.3.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"log",
|
"log",
|
||||||
"ron",
|
"ron",
|
||||||
@@ -987,7 +987,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "const-field-offset"
|
name = "const-field-offset"
|
||||||
version = "0.1.5"
|
version = "0.1.5"
|
||||||
source = "git+https://github.com/slint-ui/slint.git#f181d5e7b200b8986ba856fa0574425e0d6389aa"
|
source = "git+https://github.com/slint-ui/slint.git#75fb4125d8082c5c64b4ce8220c6fe607c8caac0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"const-field-offset-macro",
|
"const-field-offset-macro",
|
||||||
"field-offset",
|
"field-offset",
|
||||||
@@ -996,7 +996,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "const-field-offset-macro"
|
name = "const-field-offset-macro"
|
||||||
version = "0.1.5"
|
version = "0.1.5"
|
||||||
source = "git+https://github.com/slint-ui/slint.git#f181d5e7b200b8986ba856fa0574425e0d6389aa"
|
source = "git+https://github.com/slint-ui/slint.git#75fb4125d8082c5c64b4ce8220c6fe607c8caac0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
@@ -1274,7 +1274,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "dmi_id"
|
name = "dmi_id"
|
||||||
version = "6.3.0"
|
version = "6.3.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"log",
|
"log",
|
||||||
"udev 0.8.0",
|
"udev 0.8.0",
|
||||||
@@ -1545,9 +1545,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "find-msvc-tools"
|
name = "find-msvc-tools"
|
||||||
version = "0.1.7"
|
version = "0.1.8"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "f449e6c6c08c865631d4890cfacf252b3d396c9bcc83adb6623cdb02a8336c41"
|
checksum = "8591b0bcc8a98a64310a2fae1bb3e9b8564dd10e381e6e28010fde8e8e8568db"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "flate2"
|
name = "flate2"
|
||||||
@@ -2246,7 +2246,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "i-slint-backend-linuxkms"
|
name = "i-slint-backend-linuxkms"
|
||||||
version = "1.15.0"
|
version = "1.15.0"
|
||||||
source = "git+https://github.com/slint-ui/slint.git#f181d5e7b200b8986ba856fa0574425e0d6389aa"
|
source = "git+https://github.com/slint-ui/slint.git#75fb4125d8082c5c64b4ce8220c6fe607c8caac0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"calloop 0.14.3",
|
"calloop 0.14.3",
|
||||||
"drm",
|
"drm",
|
||||||
@@ -2264,7 +2264,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "i-slint-backend-selector"
|
name = "i-slint-backend-selector"
|
||||||
version = "1.15.0"
|
version = "1.15.0"
|
||||||
source = "git+https://github.com/slint-ui/slint.git#f181d5e7b200b8986ba856fa0574425e0d6389aa"
|
source = "git+https://github.com/slint-ui/slint.git#75fb4125d8082c5c64b4ce8220c6fe607c8caac0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cfg-if",
|
"cfg-if",
|
||||||
"i-slint-backend-linuxkms",
|
"i-slint-backend-linuxkms",
|
||||||
@@ -2277,7 +2277,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "i-slint-backend-winit"
|
name = "i-slint-backend-winit"
|
||||||
version = "1.15.0"
|
version = "1.15.0"
|
||||||
source = "git+https://github.com/slint-ui/slint.git#f181d5e7b200b8986ba856fa0574425e0d6389aa"
|
source = "git+https://github.com/slint-ui/slint.git#75fb4125d8082c5c64b4ce8220c6fe607c8caac0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"block2 0.6.2",
|
"block2 0.6.2",
|
||||||
"cfg-if",
|
"cfg-if",
|
||||||
@@ -2316,7 +2316,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "i-slint-common"
|
name = "i-slint-common"
|
||||||
version = "1.15.0"
|
version = "1.15.0"
|
||||||
source = "git+https://github.com/slint-ui/slint.git#f181d5e7b200b8986ba856fa0574425e0d6389aa"
|
source = "git+https://github.com/slint-ui/slint.git#75fb4125d8082c5c64b4ce8220c6fe607c8caac0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"fontique",
|
"fontique",
|
||||||
"ttf-parser 0.25.1",
|
"ttf-parser 0.25.1",
|
||||||
@@ -2325,7 +2325,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "i-slint-compiler"
|
name = "i-slint-compiler"
|
||||||
version = "1.15.0"
|
version = "1.15.0"
|
||||||
source = "git+https://github.com/slint-ui/slint.git#f181d5e7b200b8986ba856fa0574425e0d6389aa"
|
source = "git+https://github.com/slint-ui/slint.git#75fb4125d8082c5c64b4ce8220c6fe607c8caac0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"annotate-snippets",
|
"annotate-snippets",
|
||||||
"by_address",
|
"by_address",
|
||||||
@@ -2353,7 +2353,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "i-slint-core"
|
name = "i-slint-core"
|
||||||
version = "1.15.0"
|
version = "1.15.0"
|
||||||
source = "git+https://github.com/slint-ui/slint.git#f181d5e7b200b8986ba856fa0574425e0d6389aa"
|
source = "git+https://github.com/slint-ui/slint.git#75fb4125d8082c5c64b4ce8220c6fe607c8caac0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"auto_enums",
|
"auto_enums",
|
||||||
"bitflags 2.10.0",
|
"bitflags 2.10.0",
|
||||||
@@ -2402,7 +2402,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "i-slint-core-macros"
|
name = "i-slint-core-macros"
|
||||||
version = "1.15.0"
|
version = "1.15.0"
|
||||||
source = "git+https://github.com/slint-ui/slint.git#f181d5e7b200b8986ba856fa0574425e0d6389aa"
|
source = "git+https://github.com/slint-ui/slint.git#75fb4125d8082c5c64b4ce8220c6fe607c8caac0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"quote",
|
"quote",
|
||||||
"serde_json",
|
"serde_json",
|
||||||
@@ -2412,7 +2412,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "i-slint-renderer-femtovg"
|
name = "i-slint-renderer-femtovg"
|
||||||
version = "1.15.0"
|
version = "1.15.0"
|
||||||
source = "git+https://github.com/slint-ui/slint.git#f181d5e7b200b8986ba856fa0574425e0d6389aa"
|
source = "git+https://github.com/slint-ui/slint.git#75fb4125d8082c5c64b4ce8220c6fe607c8caac0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cfg-if",
|
"cfg-if",
|
||||||
"const-field-offset",
|
"const-field-offset",
|
||||||
@@ -2434,7 +2434,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "i-slint-renderer-skia"
|
name = "i-slint-renderer-skia"
|
||||||
version = "1.15.0"
|
version = "1.15.0"
|
||||||
source = "git+https://github.com/slint-ui/slint.git#f181d5e7b200b8986ba856fa0574425e0d6389aa"
|
source = "git+https://github.com/slint-ui/slint.git#75fb4125d8082c5c64b4ce8220c6fe607c8caac0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bytemuck",
|
"bytemuck",
|
||||||
"cfg-if",
|
"cfg-if",
|
||||||
@@ -2469,7 +2469,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "i-slint-renderer-software"
|
name = "i-slint-renderer-software"
|
||||||
version = "1.15.0"
|
version = "1.15.0"
|
||||||
source = "git+https://github.com/slint-ui/slint.git#f181d5e7b200b8986ba856fa0574425e0d6389aa"
|
source = "git+https://github.com/slint-ui/slint.git#75fb4125d8082c5c64b4ce8220c6fe607c8caac0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bytemuck",
|
"bytemuck",
|
||||||
"clru",
|
"clru",
|
||||||
@@ -2632,8 +2632,8 @@ dependencies = [
|
|||||||
"rayon",
|
"rayon",
|
||||||
"rgb",
|
"rgb",
|
||||||
"tiff",
|
"tiff",
|
||||||
"zune-core 0.5.0",
|
"zune-core 0.5.1",
|
||||||
"zune-jpeg 0.5.8",
|
"zune-jpeg 0.5.9",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
@@ -2819,9 +2819,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "js-sys"
|
name = "js-sys"
|
||||||
version = "0.3.83"
|
version = "0.3.85"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "464a3709c7f55f1f721e5389aa6ea4e3bc6aba669353300af094b29ffbdde1d8"
|
checksum = "8c942ebf8e95485ca0d52d97da7c5a2c387d0e7f0ba4c35e93bfcaee045955b3"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"once_cell",
|
"once_cell",
|
||||||
"wasm-bindgen",
|
"wasm-bindgen",
|
||||||
@@ -4482,7 +4482,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rog-control-center"
|
name = "rog-control-center"
|
||||||
version = "6.3.0"
|
version = "6.3.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"asusd",
|
"asusd",
|
||||||
"concat-idents",
|
"concat-idents",
|
||||||
@@ -4513,7 +4513,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rog_anime"
|
name = "rog_anime"
|
||||||
version = "6.3.0"
|
version = "6.3.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"dmi_id",
|
"dmi_id",
|
||||||
"gif 0.12.0",
|
"gif 0.12.0",
|
||||||
@@ -4527,7 +4527,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rog_aura"
|
name = "rog_aura"
|
||||||
version = "6.3.0"
|
version = "6.3.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"dmi_id",
|
"dmi_id",
|
||||||
"log",
|
"log",
|
||||||
@@ -4538,7 +4538,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rog_dbus"
|
name = "rog_dbus"
|
||||||
version = "6.3.0"
|
version = "6.3.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"asusd",
|
"asusd",
|
||||||
"rog_anime",
|
"rog_anime",
|
||||||
@@ -4552,7 +4552,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rog_platform"
|
name = "rog_platform"
|
||||||
version = "6.3.0"
|
version = "6.3.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"concat-idents",
|
"concat-idents",
|
||||||
"inotify",
|
"inotify",
|
||||||
@@ -4565,7 +4565,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rog_profiles"
|
name = "rog_profiles"
|
||||||
version = "6.3.0"
|
version = "6.3.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"log",
|
"log",
|
||||||
"rog_platform",
|
"rog_platform",
|
||||||
@@ -4576,7 +4576,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rog_scsi"
|
name = "rog_scsi"
|
||||||
version = "6.3.0"
|
version = "6.3.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"ron",
|
"ron",
|
||||||
"serde",
|
"serde",
|
||||||
@@ -4586,7 +4586,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rog_simulators"
|
name = "rog_simulators"
|
||||||
version = "6.3.0"
|
version = "6.3.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"log",
|
"log",
|
||||||
"rog_anime",
|
"rog_anime",
|
||||||
@@ -4596,7 +4596,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rog_slash"
|
name = "rog_slash"
|
||||||
version = "6.3.0"
|
version = "6.3.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"dmi_id",
|
"dmi_id",
|
||||||
"serde",
|
"serde",
|
||||||
@@ -4975,7 +4975,7 @@ checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589"
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "slint"
|
name = "slint"
|
||||||
version = "1.15.0"
|
version = "1.15.0"
|
||||||
source = "git+https://github.com/slint-ui/slint.git#f181d5e7b200b8986ba856fa0574425e0d6389aa"
|
source = "git+https://github.com/slint-ui/slint.git#75fb4125d8082c5c64b4ce8220c6fe607c8caac0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"const-field-offset",
|
"const-field-offset",
|
||||||
"i-slint-backend-selector",
|
"i-slint-backend-selector",
|
||||||
@@ -4995,7 +4995,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "slint-build"
|
name = "slint-build"
|
||||||
version = "1.15.0"
|
version = "1.15.0"
|
||||||
source = "git+https://github.com/slint-ui/slint.git#f181d5e7b200b8986ba856fa0574425e0d6389aa"
|
source = "git+https://github.com/slint-ui/slint.git#75fb4125d8082c5c64b4ce8220c6fe607c8caac0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"derive_more",
|
"derive_more",
|
||||||
"i-slint-compiler",
|
"i-slint-compiler",
|
||||||
@@ -5006,7 +5006,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "slint-macros"
|
name = "slint-macros"
|
||||||
version = "1.15.0"
|
version = "1.15.0"
|
||||||
source = "git+https://github.com/slint-ui/slint.git#f181d5e7b200b8986ba856fa0574425e0d6389aa"
|
source = "git+https://github.com/slint-ui/slint.git#75fb4125d8082c5c64b4ce8220c6fe607c8caac0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"i-slint-compiler",
|
"i-slint-compiler",
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
@@ -5778,9 +5778,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "typed-index-collections"
|
name = "typed-index-collections"
|
||||||
version = "3.4.0"
|
version = "3.5.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "5318ee4ce62a4e948a33915574021a7a953d83e84fba6e25c72ffcfd7dad35ff"
|
checksum = "898160f1dfd383b4e92e17f0512a7d62f3c51c44937b23b6ffc3a1614a8eaccd"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bincode",
|
"bincode",
|
||||||
"serde",
|
"serde",
|
||||||
@@ -6030,7 +6030,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "vtable"
|
name = "vtable"
|
||||||
version = "0.3.0"
|
version = "0.3.0"
|
||||||
source = "git+https://github.com/slint-ui/slint.git#f181d5e7b200b8986ba856fa0574425e0d6389aa"
|
source = "git+https://github.com/slint-ui/slint.git#75fb4125d8082c5c64b4ce8220c6fe607c8caac0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"const-field-offset",
|
"const-field-offset",
|
||||||
"portable-atomic",
|
"portable-atomic",
|
||||||
@@ -6041,7 +6041,7 @@ dependencies = [
|
|||||||
[[package]]
|
[[package]]
|
||||||
name = "vtable-macro"
|
name = "vtable-macro"
|
||||||
version = "0.3.0"
|
version = "0.3.0"
|
||||||
source = "git+https://github.com/slint-ui/slint.git#f181d5e7b200b8986ba856fa0574425e0d6389aa"
|
source = "git+https://github.com/slint-ui/slint.git#75fb4125d8082c5c64b4ce8220c6fe607c8caac0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
"quote",
|
"quote",
|
||||||
@@ -6075,18 +6075,18 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wasip2"
|
name = "wasip2"
|
||||||
version = "1.0.1+wasi-0.2.4"
|
version = "1.0.2+wasi-0.2.9"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7"
|
checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"wit-bindgen",
|
"wit-bindgen",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wasm-bindgen"
|
name = "wasm-bindgen"
|
||||||
version = "0.2.106"
|
version = "0.2.108"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "0d759f433fa64a2d763d1340820e46e111a7a5ab75f993d1852d70b03dbb80fd"
|
checksum = "64024a30ec1e37399cf85a7ffefebdb72205ca1c972291c51512360d90bd8566"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cfg-if",
|
"cfg-if",
|
||||||
"once_cell",
|
"once_cell",
|
||||||
@@ -6097,11 +6097,12 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wasm-bindgen-futures"
|
name = "wasm-bindgen-futures"
|
||||||
version = "0.4.56"
|
version = "0.4.58"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "836d9622d604feee9e5de25ac10e3ea5f2d65b41eac0d9ce72eb5deae707ce7c"
|
checksum = "70a6e77fd0ae8029c9ea0063f87c46fde723e7d887703d74ad2616d792e51e6f"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"cfg-if",
|
"cfg-if",
|
||||||
|
"futures-util",
|
||||||
"js-sys",
|
"js-sys",
|
||||||
"once_cell",
|
"once_cell",
|
||||||
"wasm-bindgen",
|
"wasm-bindgen",
|
||||||
@@ -6110,9 +6111,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wasm-bindgen-macro"
|
name = "wasm-bindgen-macro"
|
||||||
version = "0.2.106"
|
version = "0.2.108"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "48cb0d2638f8baedbc542ed444afc0644a29166f1595371af4fecf8ce1e7eeb3"
|
checksum = "008b239d9c740232e71bd39e8ef6429d27097518b6b30bdf9086833bd5b6d608"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"quote",
|
"quote",
|
||||||
"wasm-bindgen-macro-support",
|
"wasm-bindgen-macro-support",
|
||||||
@@ -6120,9 +6121,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wasm-bindgen-macro-support"
|
name = "wasm-bindgen-macro-support"
|
||||||
version = "0.2.106"
|
version = "0.2.108"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "cefb59d5cd5f92d9dcf80e4683949f15ca4b511f4ac0a6e14d4e1ac60c6ecd40"
|
checksum = "5256bae2d58f54820e6490f9839c49780dff84c65aeab9e772f15d5f0e913a55"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bumpalo",
|
"bumpalo",
|
||||||
"proc-macro2",
|
"proc-macro2",
|
||||||
@@ -6133,9 +6134,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wasm-bindgen-shared"
|
name = "wasm-bindgen-shared"
|
||||||
version = "0.2.106"
|
version = "0.2.108"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "cbc538057e648b67f72a982e708d485b2efa771e1ac05fec311f9f63e5800db4"
|
checksum = "1f01b580c9ac74c8d8f0c0e4afb04eeef2acf145458e52c03845ee9cd23e3d12"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"unicode-ident",
|
"unicode-ident",
|
||||||
]
|
]
|
||||||
@@ -6277,9 +6278,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "web-sys"
|
name = "web-sys"
|
||||||
version = "0.3.83"
|
version = "0.3.85"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "9b32828d774c412041098d182a8b38b16ea816958e07cf40eec2bc080ae137ac"
|
checksum = "312e32e551d92129218ea9a2452120f4aabc03529ef03e4d0d82fb2780608598"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"js-sys",
|
"js-sys",
|
||||||
"wasm-bindgen",
|
"wasm-bindgen",
|
||||||
@@ -6980,9 +6981,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wit-bindgen"
|
name = "wit-bindgen"
|
||||||
version = "0.46.0"
|
version = "0.51.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59"
|
checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "write-fonts"
|
name = "write-fonts"
|
||||||
@@ -7293,9 +7294,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "zmij"
|
name = "zmij"
|
||||||
version = "1.0.14"
|
version = "1.0.15"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "bd8f3f50b848df28f887acb68e41201b5aea6bc8a8dacc00fb40635ff9a72fea"
|
checksum = "94f63c051f4fe3c1509da62131a678643c5b6fbdc9273b2b79d4378ebda003d2"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "zune-core"
|
name = "zune-core"
|
||||||
@@ -7305,9 +7306,9 @@ checksum = "3f423a2c17029964870cfaabb1f13dfab7d092a62a29a89264f4d36990ca414a"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "zune-core"
|
name = "zune-core"
|
||||||
version = "0.5.0"
|
version = "0.5.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "111f7d9820f05fd715df3144e254d6fc02ee4088b0644c0ffd0efc9e6d9d2773"
|
checksum = "cb8a0807f7c01457d0379ba880ba6322660448ddebc890ce29bb64da71fb40f9"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "zune-inflate"
|
name = "zune-inflate"
|
||||||
@@ -7329,11 +7330,11 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "zune-jpeg"
|
name = "zune-jpeg"
|
||||||
version = "0.5.8"
|
version = "0.5.9"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "e35aee689668bf9bd6f6f3a6c60bb29ba1244b3b43adfd50edd554a371da37d5"
|
checksum = "87c86acb70a85b2c16f071f171847d1945e8f44812630463cd14ec83900ad01c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"zune-core 0.5.0",
|
"zune-core 0.5.1",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
[workspace.package]
|
[workspace.package]
|
||||||
version = "6.3.0"
|
version = "6.3.1"
|
||||||
rust-version = "1.82"
|
rust-version = "1.82"
|
||||||
license = "MPL-2.0"
|
license = "MPL-2.0"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
|
|||||||
@@ -13,9 +13,7 @@ Now includes a GUI, `rog-control-center`.
|
|||||||
|
|
||||||
Due to on-going driver work the minimum suggested kernel version is always **the latest*, as improvements and fixes are continuous.
|
Due to on-going driver work the minimum suggested kernel version is always **the latest*, as improvements and fixes are continuous.
|
||||||
|
|
||||||
Support for some new features is not avilable unless you run a patched kernel with the work I am doing [in this github repo](https://github.com/flukejones/linux/tree/wip/ally-6.13). Use the linked branch, or `wip/ally-6.12`. Everything that is done here is upstreamed eventually (a long process).
|
Support for TDP is tied to the new asus-armoury driver: available mainline since linux 6.19: everything older is not supported.
|
||||||
|
|
||||||
Z13 devices will need [these](https://lore.kernel.org/linux-input/20240416090402.31057-1-luke@ljones.dev/T/#t)
|
|
||||||
|
|
||||||
## X11 support
|
## X11 support
|
||||||
|
|
||||||
@@ -180,3 +178,7 @@ Reference to any ASUS products, services, processes, or other information and/or
|
|||||||
The use of ROG and ASUS trademarks within this website and associated tools and libraries is only to provide a recognisable identifier to users to enable them to associate that these tools will work with ASUS ROG laptops.
|
The use of ROG and ASUS trademarks within this website and associated tools and libraries is only to provide a recognisable identifier to users to enable them to associate that these tools will work with ASUS ROG laptops.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## AI Disaclaimer
|
||||||
|
|
||||||
|
Portions of this code have been written by various AI tools and reviewed by the maintainer exaclty as with every other contribution.
|
||||||
|
|||||||
@@ -2,7 +2,9 @@ use std::sync::Arc;
|
|||||||
|
|
||||||
use config_traits::StdConfig;
|
use config_traits::StdConfig;
|
||||||
use log::{debug, error, info, warn};
|
use log::{debug, error, info, warn};
|
||||||
use rog_platform::asus_armoury::{AttrValue, Attribute, FirmwareAttribute, FirmwareAttributes};
|
use rog_platform::asus_armoury::{
|
||||||
|
AttrValue, Attribute, FirmwareAttribute, FirmwareAttributeType, FirmwareAttributes,
|
||||||
|
};
|
||||||
use rog_platform::platform::{PlatformProfile, RogPlatform};
|
use rog_platform::platform::{PlatformProfile, RogPlatform};
|
||||||
use rog_platform::power::AsusPower;
|
use rog_platform::power::AsusPower;
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
@@ -168,82 +170,64 @@ impl ArmouryAttributeRegistry {
|
|||||||
impl crate::Reloadable for AsusArmouryAttribute {
|
impl crate::Reloadable for AsusArmouryAttribute {
|
||||||
async fn reload(&mut self) -> Result<(), RogError> {
|
async fn reload(&mut self) -> Result<(), RogError> {
|
||||||
info!("Reloading {}", self.attr.name());
|
info!("Reloading {}", self.attr.name());
|
||||||
let name: FirmwareAttribute = self.attr.name().into();
|
let attribute: FirmwareAttribute = self.attr.name().into();
|
||||||
|
let name = self.attr.name();
|
||||||
|
|
||||||
// Treat dGPU attributes the same as PPT attributes for power-profile
|
let config = self.config.lock().await;
|
||||||
// behaviour so they follow AC/DC tuning groups.
|
let apply_value = match attribute.property_type() {
|
||||||
if name.is_ppt() || name.is_dgpu() {
|
FirmwareAttributeType::Ppt => {
|
||||||
let profile: PlatformProfile = self.platform.get_platform_profile()?.into();
|
let profile: PlatformProfile = self.platform.get_platform_profile()?.into();
|
||||||
let power_plugged = self
|
let power_plugged = self
|
||||||
.power
|
.power
|
||||||
.get_online()
|
.get_online()
|
||||||
.map_err(|e| {
|
.map_err(|e| {
|
||||||
error!("Could not get power status: {e:?}");
|
error!("Could not get power status: {e:?}");
|
||||||
e
|
e
|
||||||
})
|
|
||||||
.unwrap_or_default()
|
|
||||||
== 1;
|
|
||||||
|
|
||||||
let apply_value = {
|
|
||||||
let config = self.config.lock().await;
|
|
||||||
config
|
|
||||||
.select_tunings_ref(power_plugged, profile)
|
|
||||||
.and_then(|tuning| {
|
|
||||||
if tuning.enabled {
|
|
||||||
tuning.group.get(&self.name()).copied()
|
|
||||||
} else {
|
|
||||||
None
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
};
|
.unwrap_or_default()
|
||||||
|
== 1;
|
||||||
|
|
||||||
if let Some(tune) = apply_value {
|
let apply_value = {
|
||||||
self.attr
|
config.select_tunings_ref(power_plugged, profile).and_then(
|
||||||
.set_current_value(&AttrValue::Integer(tune))
|
|tuning| match tuning.enabled {
|
||||||
.map_err(|e| {
|
true => tuning.group.get(&self.name()).copied(),
|
||||||
error!("Could not set {} value: {e:?}", self.attr.name());
|
false => None,
|
||||||
self.attr.base_path_exists();
|
},
|
||||||
e
|
)
|
||||||
})?;
|
};
|
||||||
info!(
|
|
||||||
"Restored PPT armoury setting {} to {:?}",
|
apply_value.map_or(AttrValue::None, AttrValue::Integer)
|
||||||
self.attr.name(),
|
|
||||||
tune
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
info!("Ignored restoring PPT armoury setting {} as tuning group is disabled or no saved value", self.attr.name());
|
|
||||||
}
|
}
|
||||||
} else {
|
FirmwareAttributeType::Gpu => {
|
||||||
// Handle non-PPT attributes (boolean and other settings)
|
info!("Reload called on GPU attribute {name}: doing nothing");
|
||||||
if let Some(saved_value) = self.config.lock().await.armoury_settings.get(&name) {
|
AttrValue::None
|
||||||
self.attr
|
|
||||||
.set_current_value(&AttrValue::Integer(*saved_value))
|
|
||||||
.map_err(|e| {
|
|
||||||
error!(
|
|
||||||
"Error restoring armoury setting {}: {e:?}",
|
|
||||||
self.attr.name()
|
|
||||||
);
|
|
||||||
self.attr.base_path_exists();
|
|
||||||
e
|
|
||||||
})?;
|
|
||||||
info!(
|
|
||||||
"Restored armoury setting {} to {:?}",
|
|
||||||
self.attr.name(),
|
|
||||||
saved_value
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
info!(
|
|
||||||
"No saved armoury setting for {}: skipping restore",
|
|
||||||
self.attr.name()
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
_ => {
|
||||||
|
info!("Reload called on firmware attribute {name}");
|
||||||
|
match config.armoury_settings.get(&attribute) {
|
||||||
|
Some(saved_value) => AttrValue::Integer(*saved_value),
|
||||||
|
None => AttrValue::None,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
self.attr.set_current_value(&apply_value).map_err(|e| {
|
||||||
|
error!("Could not set {} value: {e:?}", self.attr.name());
|
||||||
|
self.attr.base_path_exists();
|
||||||
|
e
|
||||||
|
})?;
|
||||||
|
|
||||||
|
info!(
|
||||||
|
"Restored asus-armoury setting {} to {:?}",
|
||||||
|
self.attr.name(),
|
||||||
|
apply_value
|
||||||
|
);
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// If return is `-1` on a property then there is avilable value for that
|
/// If return is `-1` on a property then there is available value for that
|
||||||
/// property
|
/// property
|
||||||
#[interface(name = "xyz.ljones.AsusArmoury")]
|
#[interface(name = "xyz.ljones.AsusArmoury")]
|
||||||
impl AsusArmouryAttribute {
|
impl AsusArmouryAttribute {
|
||||||
@@ -293,7 +277,7 @@ impl AsusArmouryAttribute {
|
|||||||
|
|
||||||
async fn restore_default(&self) -> fdo::Result<()> {
|
async fn restore_default(&self) -> fdo::Result<()> {
|
||||||
self.attr.restore_default()?;
|
self.attr.restore_default()?;
|
||||||
if self.name().is_ppt() || self.name().is_dgpu() {
|
if self.name().property_type() == FirmwareAttributeType::Ppt {
|
||||||
let profile: PlatformProfile = self.platform.get_platform_profile()?.into();
|
let profile: PlatformProfile = self.platform.get_platform_profile()?.into();
|
||||||
let power_plugged = self
|
let power_plugged = self
|
||||||
.power
|
.power
|
||||||
@@ -352,7 +336,7 @@ impl AsusArmouryAttribute {
|
|||||||
|
|
||||||
#[zbus(property)]
|
#[zbus(property)]
|
||||||
async fn current_value(&self) -> fdo::Result<i32> {
|
async fn current_value(&self) -> fdo::Result<i32> {
|
||||||
if self.name().is_ppt() || self.name().is_dgpu() {
|
if self.name().property_type() == FirmwareAttributeType::Ppt {
|
||||||
let profile: PlatformProfile = self.platform.get_platform_profile()?.into();
|
let profile: PlatformProfile = self.platform.get_platform_profile()?.into();
|
||||||
let power_plugged = self
|
let power_plugged = self
|
||||||
.power
|
.power
|
||||||
@@ -387,66 +371,62 @@ impl AsusArmouryAttribute {
|
|||||||
|
|
||||||
#[zbus(property)]
|
#[zbus(property)]
|
||||||
async fn set_current_value(&mut self, value: i32) -> fdo::Result<()> {
|
async fn set_current_value(&mut self, value: i32) -> fdo::Result<()> {
|
||||||
if self.name().is_ppt() || self.name().is_dgpu() {
|
let name = self.attr.name();
|
||||||
let profile: PlatformProfile = self.platform.get_platform_profile()?.into();
|
let apply_value = match self.name().property_type() {
|
||||||
let power_plugged = self
|
FirmwareAttributeType::Ppt => {
|
||||||
.power
|
let profile: PlatformProfile = self.platform.get_platform_profile()?.into();
|
||||||
.get_online()
|
let power_plugged = self
|
||||||
.map_err(|e| {
|
.power
|
||||||
error!("Could not get power status: {e:?}");
|
.get_online()
|
||||||
e
|
|
||||||
})
|
|
||||||
.unwrap_or_default();
|
|
||||||
|
|
||||||
let mut config = self.config.lock().await;
|
|
||||||
let tuning = config.select_tunings(power_plugged == 1, profile);
|
|
||||||
|
|
||||||
if let Some(tune) = tuning.group.get_mut(&self.name()) {
|
|
||||||
*tune = value;
|
|
||||||
} else {
|
|
||||||
tuning.group.insert(self.name(), value);
|
|
||||||
debug!("Store tuning config for {} = {:?}", self.attr.name(), value);
|
|
||||||
}
|
|
||||||
if tuning.enabled {
|
|
||||||
self.attr
|
|
||||||
.set_current_value(&AttrValue::Integer(value))
|
|
||||||
.map_err(|e| {
|
.map_err(|e| {
|
||||||
error!(
|
error!("Could not get power status: {e:?}");
|
||||||
"Could not set value to PPT property {}: {e:?}",
|
|
||||||
self.attr.name()
|
|
||||||
);
|
|
||||||
e
|
e
|
||||||
})?;
|
})
|
||||||
} else {
|
.unwrap_or_default();
|
||||||
warn!(
|
|
||||||
"Tuning group is disabled: skipping setting value to PPT property {}",
|
|
||||||
self.attr.name()
|
|
||||||
);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
self.attr
|
|
||||||
.set_current_value(&AttrValue::Integer(value))
|
|
||||||
.map_err(|e| {
|
|
||||||
error!(
|
|
||||||
"Could not set value {value} to attribute {}: {e:?}",
|
|
||||||
self.attr.name()
|
|
||||||
);
|
|
||||||
e
|
|
||||||
})?;
|
|
||||||
|
|
||||||
let mut settings = self.config.lock().await;
|
let mut config = self.config.lock().await;
|
||||||
settings
|
let tuning = config.select_tunings(power_plugged == 1, profile);
|
||||||
.armoury_settings
|
|
||||||
.entry(self.name())
|
if let Some(tune) = tuning.group.get_mut(&self.name()) {
|
||||||
.and_modify(|setting| {
|
*tune = value;
|
||||||
debug!("Set config for {} = {value}", self.attr.name());
|
} else {
|
||||||
*setting = value;
|
tuning.group.insert(self.name(), value);
|
||||||
})
|
debug!("Store tuning config for {name} = {:?}", value);
|
||||||
.or_insert_with(|| {
|
}
|
||||||
debug!("Adding config for {} = {value}", self.attr.name());
|
|
||||||
value
|
match tuning.enabled {
|
||||||
});
|
true => {
|
||||||
}
|
debug!("Tuning is enabled: setting value to PPT property {name} = {value}");
|
||||||
|
AttrValue::Integer(value)
|
||||||
|
}
|
||||||
|
false => {
|
||||||
|
warn!("Tuning is disabled: skipping setting value to PPT property {name}");
|
||||||
|
AttrValue::None
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_ => {
|
||||||
|
let mut settings = self.config.lock().await;
|
||||||
|
settings
|
||||||
|
.armoury_settings
|
||||||
|
.entry(self.name())
|
||||||
|
.and_modify(|setting| {
|
||||||
|
debug!("Set config for {name} = {value}");
|
||||||
|
*setting = value;
|
||||||
|
})
|
||||||
|
.or_insert_with(|| {
|
||||||
|
debug!("Adding config for {name} = {value}");
|
||||||
|
value
|
||||||
|
});
|
||||||
|
|
||||||
|
AttrValue::Integer(value)
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
self.attr.set_current_value(&apply_value).map_err(|e| {
|
||||||
|
error!("Could not set value {value} to attribute {name}: {e:?}");
|
||||||
|
e
|
||||||
|
})?;
|
||||||
|
|
||||||
// write config after setting value
|
// write config after setting value
|
||||||
self.config.lock().await.write();
|
self.config.lock().await.write();
|
||||||
@@ -515,7 +495,7 @@ pub async fn set_config_or_default(
|
|||||||
) {
|
) {
|
||||||
for attr in attrs.attributes().iter() {
|
for attr in attrs.attributes().iter() {
|
||||||
let name: FirmwareAttribute = attr.name().into();
|
let name: FirmwareAttribute = attr.name().into();
|
||||||
if name.is_ppt() || name.is_dgpu() {
|
if name.property_type() == FirmwareAttributeType::Ppt {
|
||||||
let tuning = config.select_tunings(power_plugged, profile);
|
let tuning = config.select_tunings(power_plugged, profile);
|
||||||
if !tuning.enabled {
|
if !tuning.enabled {
|
||||||
debug!("Tuning group is not enabled, skipping");
|
debug!("Tuning group is not enabled, skipping");
|
||||||
|
|||||||
@@ -4,7 +4,9 @@ use std::sync::Arc;
|
|||||||
|
|
||||||
use config_traits::StdConfig;
|
use config_traits::StdConfig;
|
||||||
use log::{debug, error, info, warn};
|
use log::{debug, error, info, warn};
|
||||||
use rog_platform::asus_armoury::{AttrValue, FirmwareAttribute, FirmwareAttributes};
|
use rog_platform::asus_armoury::{
|
||||||
|
AttrValue, FirmwareAttribute, FirmwareAttributeType, FirmwareAttributes,
|
||||||
|
};
|
||||||
use rog_platform::cpu::{CPUControl, CPUGovernor, CPUEPP};
|
use rog_platform::cpu::{CPUControl, CPUGovernor, CPUEPP};
|
||||||
use rog_platform::platform::{PlatformProfile, Properties, RogPlatform};
|
use rog_platform::platform::{PlatformProfile, Properties, RogPlatform};
|
||||||
use rog_platform::power::AsusPower;
|
use rog_platform::power::AsusPower;
|
||||||
@@ -459,8 +461,18 @@ impl CtrlPlatform {
|
|||||||
#[zbus(signal_context)] ctxt: SignalEmitter<'_>,
|
#[zbus(signal_context)] ctxt: SignalEmitter<'_>,
|
||||||
policy: PlatformProfile,
|
policy: PlatformProfile,
|
||||||
) -> Result<(), FdoErr> {
|
) -> Result<(), FdoErr> {
|
||||||
self.config.lock().await.platform_profile_on_battery = policy;
|
// If the requested profile isn't available on this platform, and it's
|
||||||
self.set_platform_profile(ctxt, policy).await?;
|
// `Quiet`, fall back to `LowPower` so we don't write an unavailable
|
||||||
|
// profile into the config file.
|
||||||
|
let mut chosen = policy;
|
||||||
|
if let Ok(choices) = self.platform.get_platform_profile_choices() {
|
||||||
|
if chosen == PlatformProfile::Quiet && !choices.contains(&PlatformProfile::Quiet) {
|
||||||
|
chosen = PlatformProfile::LowPower;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
self.config.lock().await.platform_profile_on_battery = chosen;
|
||||||
|
self.set_platform_profile(ctxt, chosen).await?;
|
||||||
self.config.lock().await.write();
|
self.config.lock().await.write();
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
@@ -488,8 +500,16 @@ impl CtrlPlatform {
|
|||||||
#[zbus(signal_context)] ctxt: SignalEmitter<'_>,
|
#[zbus(signal_context)] ctxt: SignalEmitter<'_>,
|
||||||
policy: PlatformProfile,
|
policy: PlatformProfile,
|
||||||
) -> Result<(), FdoErr> {
|
) -> Result<(), FdoErr> {
|
||||||
self.config.lock().await.platform_profile_on_ac = policy;
|
// Mirror the same fallback behavior for AC profile changes.
|
||||||
self.set_platform_profile(ctxt, policy).await?;
|
let mut chosen = policy;
|
||||||
|
if let Ok(choices) = self.platform.get_platform_profile_choices() {
|
||||||
|
if chosen == PlatformProfile::Quiet && !choices.contains(&PlatformProfile::Quiet) {
|
||||||
|
chosen = PlatformProfile::LowPower;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
self.config.lock().await.platform_profile_on_ac = chosen;
|
||||||
|
self.set_platform_profile(ctxt, chosen).await?;
|
||||||
self.config.lock().await.write();
|
self.config.lock().await.write();
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
@@ -599,7 +619,7 @@ impl CtrlPlatform {
|
|||||||
|
|
||||||
for attr in self.attributes.attributes() {
|
for attr in self.attributes.attributes() {
|
||||||
let name: FirmwareAttribute = attr.name().into();
|
let name: FirmwareAttribute = attr.name().into();
|
||||||
if name.is_ppt() {
|
if name.property_type() == FirmwareAttributeType::Ppt {
|
||||||
// reset stored value
|
// reset stored value
|
||||||
if let Some(tune) = self
|
if let Some(tune) = self
|
||||||
.config
|
.config
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
%global debug_package %{nil}
|
%global debug_package %{nil}
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%define version 6.3.0
|
%define version 6.3.1
|
||||||
%define specrelease %{?dist}
|
%define specrelease %{?dist}
|
||||||
%define pkg_release 1%{specrelease}
|
%define pkg_release 1%{specrelease}
|
||||||
|
|
||||||
|
|||||||
23
extra/index.html
Normal file
23
extra/index.html
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||||
|
<title>asusctl docs</title>
|
||||||
|
<!-- Redirect to the generated crate docs -->
|
||||||
|
<meta http-equiv="refresh" content="0;url=asusctl/index.html">
|
||||||
|
<link rel="canonical" href="asusctl/index.html">
|
||||||
|
<style>
|
||||||
|
body { font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial; color:#222; display:flex; align-items:center; justify-content:center; height:100vh; margin:0 }
|
||||||
|
.box { text-align:center }
|
||||||
|
a { color: #0366d6 }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="box">
|
||||||
|
<h1>asusctl documentation</h1>
|
||||||
|
<p>Redirecting to the generated docs — if your browser doesn't redirect automatically, <a href="asusctl/index.html">click here</a>.</p>
|
||||||
|
<p>If you expected a different landing page, update <code>extra/index.html</code> accordingly.</p>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -100,8 +100,10 @@ impl AnimeType {
|
|||||||
AnimeType::GA402
|
AnimeType::GA402
|
||||||
} else if board_name.contains("GU604V") {
|
} else if board_name.contains("GU604V") {
|
||||||
AnimeType::GU604
|
AnimeType::GU604
|
||||||
} else if board_name.contains("G635L") || board_name.contains("G635L") {
|
} else if board_name.contains("G635L") {
|
||||||
AnimeType::G635L
|
AnimeType::G635L
|
||||||
|
} else if board_name.contains("G835L") {
|
||||||
|
AnimeType::G835L
|
||||||
} else {
|
} else {
|
||||||
AnimeType::Unsupported
|
AnimeType::Unsupported
|
||||||
}
|
}
|
||||||
@@ -111,7 +113,9 @@ impl AnimeType {
|
|||||||
pub fn width(&self) -> usize {
|
pub fn width(&self) -> usize {
|
||||||
match self {
|
match self {
|
||||||
AnimeType::GU604 => 70,
|
AnimeType::GU604 => 70,
|
||||||
AnimeType::G835L => 74,
|
// TODO: Find G635L W*H
|
||||||
|
// AnimeType::G635L => 68
|
||||||
|
AnimeType::G835L => 68,
|
||||||
_ => 74,
|
_ => 74,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -121,7 +125,8 @@ impl AnimeType {
|
|||||||
match self {
|
match self {
|
||||||
AnimeType::GA401 => 36,
|
AnimeType::GA401 => 36,
|
||||||
AnimeType::GU604 => 43,
|
AnimeType::GU604 => 43,
|
||||||
AnimeType::G835L => 39,
|
// AnimeType::G635L => 34,
|
||||||
|
AnimeType::G835L => 34,
|
||||||
_ => 39,
|
_ => 39,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,6 +44,8 @@ impl AnimeDiagonal {
|
|||||||
/// Generate the base image from inputs. The result can be displayed as is
|
/// Generate the base image from inputs. The result can be displayed as is
|
||||||
/// or updated via scale, position, or angle then displayed again after
|
/// or updated via scale, position, or angle then displayed again after
|
||||||
/// `update()`.
|
/// `update()`.
|
||||||
|
///
|
||||||
|
/// TODO: G835L and G635L only supports grayscale
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn from_png(
|
pub fn from_png(
|
||||||
path: &Path,
|
path: &Path,
|
||||||
@@ -381,4 +383,50 @@ impl AnimeDiagonal {
|
|||||||
|
|
||||||
AnimeDataBuffer::from_vec(crate::AnimeType::GA402, buf)
|
AnimeDataBuffer::from_vec(crate::AnimeType::GA402, buf)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: Implement `to_g635l_packets` and `to_g835l_packets` functions
|
||||||
|
// IMPORTANT NOTE: G635L and G835L ONLY SUPPORT GRAYSCALE
|
||||||
|
//
|
||||||
|
// fn to_g835l_packets(buf: &[u8]) -> Result<AnimeDataBuffer> {
|
||||||
|
// let mut buf = vec![0u8; AnimeType::GU604.data_length()];
|
||||||
|
|
||||||
|
// let mut start_index: usize = 0;
|
||||||
|
|
||||||
|
// fn copy_slice(
|
||||||
|
// buf: &mut [u8],
|
||||||
|
// anime: &AnimeDiagonal,
|
||||||
|
// x: usize,
|
||||||
|
// y: usize,
|
||||||
|
// start_index: &mut usize,
|
||||||
|
// len: usize,
|
||||||
|
// ) {
|
||||||
|
// buf[*start_index..*start_index + len].copy_from_slice(&anime.get_row(x, y, len));
|
||||||
|
// *start_index += len;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// let b = &mut buf;
|
||||||
|
// let a = &self;
|
||||||
|
|
||||||
|
// copy_slice(b, a, 40, 0, &mut start_index, 21);
|
||||||
|
// copy_slice(b, a, 41, 0, &mut start_index, 21);
|
||||||
|
// copy_slice(b, a, 42, 0, &mut start_index, 20);
|
||||||
|
// copy_slice(b, a, 43, 0, &mut start_index, 20);
|
||||||
|
// copy_slice(b, a, 44, 0, &mut start_index, 19);
|
||||||
|
// copy_slice(b, a, 45, 0, &mut start_index, 19);
|
||||||
|
// copy_slice(b, a, 46, 0, &mut start_index, 18);
|
||||||
|
// copy_slice(b, a, 47, 0, &mut start_index, 18);
|
||||||
|
// copy_slice(b, a, 48, 0, &mut start_index, 17);
|
||||||
|
// copy_slice(b, a, 49, 0, &mut start_index, 17);
|
||||||
|
// copy_slice(b, a, 50, 0, &mut start_index, 16);
|
||||||
|
// copy_slice(b, a, 51, 0, &mut start_index, 16);
|
||||||
|
// copy_slice(b, a, 52, 0, &mut start_index, 15);
|
||||||
|
// copy_slice(b, a, 53, 0, &mut start_index, 15);
|
||||||
|
// copy_slice(b, a, 54, 0, &mut start_index, 14);
|
||||||
|
// copy_slice(b, a, 55, 0, &mut start_index, 14);
|
||||||
|
// copy_slice(b, a, 56, 0, &mut start_index, 13);
|
||||||
|
// copy_slice(b, a, 57, 0, &mut start_index, 13);
|
||||||
|
// copy_slice(b, a, 58, 0, &mut start_index, 12);
|
||||||
|
|
||||||
|
// AnimeDataBuffer::from_vec(crate::AnimeType::G835L, buf)
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -138,6 +138,10 @@ impl AnimeImage {
|
|||||||
match anime_type {
|
match anime_type {
|
||||||
AnimeType::GA401 => 0.3,
|
AnimeType::GA401 => 0.3,
|
||||||
AnimeType::GU604 => 0.28,
|
AnimeType::GU604 => 0.28,
|
||||||
|
// TODO: Calculate correct values for G635L and G835L.
|
||||||
|
// Known values for G835L W*H is 34*68
|
||||||
|
AnimeType::G635L => 0.28,
|
||||||
|
AnimeType::G835L => 0.28,
|
||||||
_ => 0.283,
|
_ => 0.283,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -162,6 +166,20 @@ impl AnimeImage {
|
|||||||
/// ^ ------+
|
/// ^ ------+
|
||||||
/// first_x
|
/// first_x
|
||||||
/// ```
|
/// ```
|
||||||
|
///
|
||||||
|
/// TODO: add the cases for G635L and G835L
|
||||||
|
/// This is how it looks like, but calculation may be a bit more complex
|
||||||
|
/// ```text
|
||||||
|
/// |\
|
||||||
|
/// | \
|
||||||
|
/// | \
|
||||||
|
/// | \
|
||||||
|
/// \ \
|
||||||
|
/// \ \
|
||||||
|
/// \ \
|
||||||
|
/// \ \
|
||||||
|
/// \____\
|
||||||
|
/// ```
|
||||||
fn first_x(anime_type: AnimeType, y: u32) -> u32 {
|
fn first_x(anime_type: AnimeType, y: u32) -> u32 {
|
||||||
match anime_type {
|
match anime_type {
|
||||||
AnimeType::GA401 => {
|
AnimeType::GA401 => {
|
||||||
@@ -221,6 +239,19 @@ impl AnimeImage {
|
|||||||
}
|
}
|
||||||
38 - Self::first_x(anime_type, y) + y % 2
|
38 - Self::first_x(anime_type, y) + y % 2
|
||||||
}
|
}
|
||||||
|
// TODO: Implement this
|
||||||
|
// AnimeType::G635L => {
|
||||||
|
// if y <= 11 {
|
||||||
|
// return 34;
|
||||||
|
// }
|
||||||
|
// 39 - y / 2
|
||||||
|
// }
|
||||||
|
// AnimeType::G635E => {
|
||||||
|
// if y <= 11 {
|
||||||
|
// return 34;
|
||||||
|
// }
|
||||||
|
// 39 - y / 2
|
||||||
|
// }
|
||||||
_ => {
|
_ => {
|
||||||
if y <= 11 {
|
if y <= 11 {
|
||||||
return 34;
|
return 34;
|
||||||
@@ -235,8 +266,10 @@ impl AnimeImage {
|
|||||||
match anime_type {
|
match anime_type {
|
||||||
// 33.0 = Longest row LED count (physical) plus half-pixel offset
|
// 33.0 = Longest row LED count (physical) plus half-pixel offset
|
||||||
AnimeType::GA401 => (33.0 + 0.5) * Self::scale_x(anime_type),
|
AnimeType::GA401 => (33.0 + 0.5) * Self::scale_x(anime_type),
|
||||||
|
|
||||||
AnimeType::GU604 => (38.0 + 0.5) * Self::scale_x(anime_type),
|
AnimeType::GU604 => (38.0 + 0.5) * Self::scale_x(anime_type),
|
||||||
|
// TODO: Implement this
|
||||||
|
// AnimeType::G635L => (34.0 + 0.5) * Self::scale_x(anime_type),
|
||||||
|
// AnimeType::G835L => (34.0 + 0.5) * Self::scale_x(anime_type),
|
||||||
_ => (35.0 + 0.5) * Self::scale_x(anime_type),
|
_ => (35.0 + 0.5) * Self::scale_x(anime_type),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -246,6 +279,9 @@ impl AnimeImage {
|
|||||||
match anime_type {
|
match anime_type {
|
||||||
AnimeType::GA401 => 55,
|
AnimeType::GA401 => 55,
|
||||||
AnimeType::GU604 => 62,
|
AnimeType::GU604 => 62,
|
||||||
|
// TODO: Implement this
|
||||||
|
// AnimeType::G635L => 68,
|
||||||
|
// AnimeType::G835L => 68,
|
||||||
_ => 61,
|
_ => 61,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -256,6 +292,11 @@ impl AnimeImage {
|
|||||||
// 54.0 = End column LED count (physical) plus one dead pixel
|
// 54.0 = End column LED count (physical) plus one dead pixel
|
||||||
AnimeType::GA401 => (54.0 + 1.0) * Self::scale_y(anime_type),
|
AnimeType::GA401 => (54.0 + 1.0) * Self::scale_y(anime_type),
|
||||||
AnimeType::GU604 => 62.0 * Self::scale_y(anime_type),
|
AnimeType::GU604 => 62.0 * Self::scale_y(anime_type),
|
||||||
|
|
||||||
|
// TODO: Implement this
|
||||||
|
// AnimeType::G635L => (34.0 + 0.5) * Self::scale_y(anime_type),
|
||||||
|
// AnimeType::G835L => (34.0 + 0.5) * Self::scale_y(anime_type),
|
||||||
|
|
||||||
// GA402 may not have dead pixels and require only the physical LED count
|
// GA402 may not have dead pixels and require only the physical LED count
|
||||||
_ => 61.0 * Self::scale_y(anime_type),
|
_ => 61.0 * Self::scale_y(anime_type),
|
||||||
}
|
}
|
||||||
@@ -269,7 +310,18 @@ impl AnimeImage {
|
|||||||
1 | 3 => 35, // Some rows are padded
|
1 | 3 => 35, // Some rows are padded
|
||||||
_ => 36 - y / 2,
|
_ => 36 - y / 2,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// TODO: Implement this
|
||||||
|
// AnimeType::G635L => match y {
|
||||||
|
|
||||||
|
// },
|
||||||
|
// AnimeType::G835L => match y {
|
||||||
|
|
||||||
|
// },
|
||||||
|
|
||||||
|
// This seems redundant
|
||||||
AnimeType::GU604 => AnimeImage::width(anime_type, y),
|
AnimeType::GU604 => AnimeImage::width(anime_type, y),
|
||||||
|
|
||||||
// GA402 does not have padding, equivalent to width
|
// GA402 does not have padding, equivalent to width
|
||||||
_ => AnimeImage::width(anime_type, y),
|
_ => AnimeImage::width(anime_type, y),
|
||||||
}
|
}
|
||||||
|
|||||||
240
rog-anime/tests/g635l.rs
Normal file
240
rog-anime/tests/g635l.rs
Normal file
@@ -0,0 +1,240 @@
|
|||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use std::path::PathBuf;
|
||||||
|
|
||||||
|
use rog_anime::*;
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn g635l_image_edge_packet_check() {
|
||||||
|
let pkt0_check = [
|
||||||
|
0x5e, 0xc0, 0x02, 0x01, 0x00, 0x73, 0x02, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
];
|
||||||
|
let pkt1_check = [
|
||||||
|
0x5e, 0xc0, 0x02, 0x74, 0x02, 0x73, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
];
|
||||||
|
|
||||||
|
let mut matrix = AnimeImage::new(
|
||||||
|
Vec2::new(1.0, 1.0),
|
||||||
|
0.0,
|
||||||
|
Vec2::default(),
|
||||||
|
0.0,
|
||||||
|
vec![Pixel::default(); 1000],
|
||||||
|
100,
|
||||||
|
AnimeType::G635L,
|
||||||
|
)
|
||||||
|
.unwrap();
|
||||||
|
matrix.edge_outline();
|
||||||
|
let data = AnimeDataBuffer::try_from(&matrix).unwrap();
|
||||||
|
let pkt = AnimePacketType::try_from(data).unwrap();
|
||||||
|
|
||||||
|
// print!("left: '[");
|
||||||
|
// for b in pkt[1] {
|
||||||
|
// print!("{b:#02x},");
|
||||||
|
// }
|
||||||
|
// print!("]'");
|
||||||
|
|
||||||
|
assert_eq!(pkt[0], pkt0_check);
|
||||||
|
assert_eq!(pkt[1], pkt1_check);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn g635l_diagonal_packet_check() {
|
||||||
|
let pkt0_check = [
|
||||||
|
0x5e, 0xc0, 0x02, 0x1, 0x00, 0x73, 0x02, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff,
|
||||||
|
0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff,
|
||||||
|
0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff,
|
||||||
|
0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
];
|
||||||
|
let pkt1_check = [
|
||||||
|
0x5e, 0xc0, 0x02, 0x74, 0x02, 0x73, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00,
|
||||||
|
0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00,
|
||||||
|
0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00,
|
||||||
|
0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00,
|
||||||
|
0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00,
|
||||||
|
0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
];
|
||||||
|
|
||||||
|
let mut path = PathBuf::from(env!("CARGO_MANIFEST_DIR"));
|
||||||
|
// TODO: create a png file for G635L
|
||||||
|
path.push("tests/data/ga401-diagonal.png");
|
||||||
|
|
||||||
|
let matrix = AnimeDiagonal::from_png(&path, None, 255.0, AnimeType::G635L).unwrap();
|
||||||
|
let data = matrix.into_data_buffer(AnimeType::G635L).unwrap();
|
||||||
|
let pkt = AnimePacketType::try_from(data).unwrap();
|
||||||
|
|
||||||
|
assert_eq!(pkt[0], pkt0_check);
|
||||||
|
assert_eq!(pkt[1], pkt1_check);
|
||||||
|
}
|
||||||
|
}
|
||||||
240
rog-anime/tests/g835l.rs
Normal file
240
rog-anime/tests/g835l.rs
Normal file
@@ -0,0 +1,240 @@
|
|||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use std::path::PathBuf;
|
||||||
|
|
||||||
|
use rog_anime::*;
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn g835l_image_edge_packet_check() {
|
||||||
|
let pkt0_check = [
|
||||||
|
0x5e, 0xc0, 0x02, 0x01, 0x00, 0x73, 0x02, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
];
|
||||||
|
let pkt1_check = [
|
||||||
|
0x5e, 0xc0, 0x02, 0x74, 0x02, 0x73, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
];
|
||||||
|
|
||||||
|
let mut matrix = AnimeImage::new(
|
||||||
|
Vec2::new(1.0, 1.0),
|
||||||
|
0.0,
|
||||||
|
Vec2::default(),
|
||||||
|
0.0,
|
||||||
|
vec![Pixel::default(); 1000],
|
||||||
|
100,
|
||||||
|
AnimeType::G835L,
|
||||||
|
)
|
||||||
|
.unwrap();
|
||||||
|
matrix.edge_outline();
|
||||||
|
let data = AnimeDataBuffer::try_from(&matrix).unwrap();
|
||||||
|
let pkt = AnimePacketType::try_from(data).unwrap();
|
||||||
|
|
||||||
|
// print!("left: '[");
|
||||||
|
// for b in pkt[1] {
|
||||||
|
// print!("{b:#02x},");
|
||||||
|
// }
|
||||||
|
// print!("]'");
|
||||||
|
|
||||||
|
assert_eq!(pkt[0], pkt0_check);
|
||||||
|
assert_eq!(pkt[1], pkt1_check);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn g835l_diagonal_packet_check() {
|
||||||
|
let pkt0_check = [
|
||||||
|
0x5e, 0xc0, 0x02, 0x1, 0x00, 0x73, 0x02, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xff, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff,
|
||||||
|
0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff,
|
||||||
|
0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff,
|
||||||
|
0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
];
|
||||||
|
let pkt1_check = [
|
||||||
|
0x5e, 0xc0, 0x02, 0x74, 0x02, 0x73, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00,
|
||||||
|
0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00,
|
||||||
|
0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00,
|
||||||
|
0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00,
|
||||||
|
0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00,
|
||||||
|
0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00,
|
||||||
|
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
];
|
||||||
|
|
||||||
|
let mut path = PathBuf::from(env!("CARGO_MANIFEST_DIR"));
|
||||||
|
// TODO: create a png file for G835L
|
||||||
|
path.push("tests/data/ga401-diagonal.png");
|
||||||
|
|
||||||
|
let matrix = AnimeDiagonal::from_png(&path, None, 255.0, AnimeType::G835L).unwrap();
|
||||||
|
let data = matrix.into_data_buffer(AnimeType::G835L).unwrap();
|
||||||
|
let pkt = AnimePacketType::try_from(data).unwrap();
|
||||||
|
|
||||||
|
assert_eq!(pkt[0], pkt0_check);
|
||||||
|
assert_eq!(pkt[1], pkt1_check);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -332,6 +332,15 @@
|
|||||||
advanced_type: r#None,
|
advanced_type: r#None,
|
||||||
power_zones: [Keyboard, Lightbar],
|
power_zones: [Keyboard, Lightbar],
|
||||||
),
|
),
|
||||||
|
(
|
||||||
|
device_name: "G615LR",
|
||||||
|
product_id: "",
|
||||||
|
layout_name: "g634j-per-key",
|
||||||
|
basic_modes: [Static, Breathe, RainbowCycle, RainbowWave],
|
||||||
|
basic_zones: [Key1, Key2, Key3, Key4],
|
||||||
|
advanced_type: r#None,
|
||||||
|
power_zones: [Keyboard, Lightbar],
|
||||||
|
),
|
||||||
(
|
(
|
||||||
device_name: "G634J",
|
device_name: "G634J",
|
||||||
product_id: "",
|
product_id: "",
|
||||||
@@ -570,7 +579,7 @@
|
|||||||
device_name: "G835L",
|
device_name: "G835L",
|
||||||
product_id: "",
|
product_id: "",
|
||||||
layout_name: "g814ji-per-key",
|
layout_name: "g814ji-per-key",
|
||||||
basic_modes: [Static, Breathe, RainbowCycle, RainbowWave, Star, Rain, Highlight, Laser, Ripple, Pulse, Comet, Flash],
|
basic_modes: [Static, Breathe, RainbowCycle, RainbowWave, Star, Rain, Highlight, Laser, Ripple, Comet, Flash],
|
||||||
basic_zones: [],
|
basic_zones: [],
|
||||||
advanced_type: PerKey,
|
advanced_type: PerKey,
|
||||||
power_zones: [Keyboard, Lightbar, Logo],
|
power_zones: [Keyboard, Lightbar, Logo],
|
||||||
|
|||||||
@@ -102,8 +102,9 @@ pub fn setup_window(config: Arc<Mutex<Config>>) -> MainWindow {
|
|||||||
available.contains(&"xyz.ljones.Aura".to_string()),
|
available.contains(&"xyz.ljones.Aura".to_string()),
|
||||||
available.contains(&"xyz.ljones.Anime".to_string()),
|
available.contains(&"xyz.ljones.Anime".to_string()),
|
||||||
available.contains(&"xyz.ljones.FanCurves".to_string()),
|
available.contains(&"xyz.ljones.FanCurves".to_string()),
|
||||||
true,
|
true, // GPU Configuration
|
||||||
true,
|
true, // App Settings
|
||||||
|
true, // About
|
||||||
]
|
]
|
||||||
.into(),
|
.into(),
|
||||||
);
|
);
|
||||||
|
|||||||
Binary file not shown.
810
rog-control-center/translations/uk_UA/rog-control-center.po
Normal file
810
rog-control-center/translations/uk_UA/rog-control-center.po
Normal file
@@ -0,0 +1,810 @@
|
|||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: rog-control-center\n"
|
||||||
|
"POT-Creation-Date: 2026-01-16 22:25+0000\n"
|
||||||
|
"PO-Revision-Date: 2024-07-28 12:00+0300\n"
|
||||||
|
"Last-Translator: Mykola Shevchenko\n"
|
||||||
|
"Language-Team: Ukrainian\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Language: uk_UA\n"
|
||||||
|
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/main_window.slint:55
|
||||||
|
msgctxt "MainWindow"
|
||||||
|
msgid "ROG"
|
||||||
|
msgstr "ROG"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/main_window.slint:57
|
||||||
|
msgctxt "Menu1"
|
||||||
|
msgid "System Control"
|
||||||
|
msgstr "Системні"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/main_window.slint:58
|
||||||
|
msgctxt "Menu2"
|
||||||
|
msgid "Keyboard Aura"
|
||||||
|
msgstr "Aura клавіатури"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/main_window.slint:59
|
||||||
|
msgctxt "Menu3"
|
||||||
|
msgid "AniMe Matrix"
|
||||||
|
msgstr "AniMe матриця"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/main_window.slint:60
|
||||||
|
msgctxt "Menu4"
|
||||||
|
msgid "Fan Curves"
|
||||||
|
msgstr "Криві вентиляторів"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/main_window.slint:61
|
||||||
|
msgctxt "Menu5"
|
||||||
|
msgid "App Settings"
|
||||||
|
msgstr "Налаштування"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/main_window.slint:62
|
||||||
|
msgctxt "Menu6"
|
||||||
|
msgid "About"
|
||||||
|
msgstr "Про додаток"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/main_window.slint:74
|
||||||
|
msgctxt "MainWindow"
|
||||||
|
msgid "Quit App"
|
||||||
|
msgstr "Вийти"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/anime.slint:6
|
||||||
|
msgctxt "Anime Brightness"
|
||||||
|
msgid "Off"
|
||||||
|
msgstr "Вимкнено"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/anime.slint:7
|
||||||
|
msgctxt "Anime Brightness"
|
||||||
|
msgid "Low"
|
||||||
|
msgstr "Низька"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/anime.slint:8
|
||||||
|
msgctxt "Anime Brightness"
|
||||||
|
msgid "Med"
|
||||||
|
msgstr "Середня"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/anime.slint:9
|
||||||
|
msgctxt "Anime Brightness"
|
||||||
|
msgid "High"
|
||||||
|
msgstr "Висока"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/anime.slint:23
|
||||||
|
msgctxt "AnimePageData"
|
||||||
|
msgid "Glitch Construction"
|
||||||
|
msgstr "Збій конструкції"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/anime.slint:23
|
||||||
|
msgctxt "AnimePageData"
|
||||||
|
msgid "Static Emergence"
|
||||||
|
msgstr "Статична поява"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/anime.slint:25
|
||||||
|
msgctxt "AnimePageData"
|
||||||
|
msgid "Binary Banner Scroll"
|
||||||
|
msgstr "Прокрутка бінарного банера"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/anime.slint:25
|
||||||
|
msgctxt "AnimePageData"
|
||||||
|
msgid "Rog Logo Glitch"
|
||||||
|
msgstr "Збій логотипу Rog"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/anime.slint:27
|
||||||
|
msgctxt "AnimePageData"
|
||||||
|
msgid "Banner Swipe"
|
||||||
|
msgstr "Прогортання банера"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/anime.slint:27
|
||||||
|
msgctxt "AnimePageData"
|
||||||
|
msgid "Starfield"
|
||||||
|
msgstr "Зоряне поле"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/anime.slint:29
|
||||||
|
msgctxt "AnimePageData"
|
||||||
|
msgid "Glitch Out"
|
||||||
|
msgstr "Збій"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/anime.slint:29
|
||||||
|
msgctxt "AnimePageData"
|
||||||
|
msgid "See Ya"
|
||||||
|
msgstr "Бувай"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/anime.slint:50
|
||||||
|
msgctxt "Anime Brightness"
|
||||||
|
msgid "Brightness"
|
||||||
|
msgstr "Яскравість"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/anime.slint:66
|
||||||
|
msgctxt "PageAnime"
|
||||||
|
msgid "Enable display"
|
||||||
|
msgstr "Увімкнути показ"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/anime.slint:74 rog-control-center/ui/pages/anime.slint:97
|
||||||
|
msgctxt "PageAnime"
|
||||||
|
msgid "Advanced"
|
||||||
|
msgstr "Розширені"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/anime.slint:89
|
||||||
|
msgctxt "PageAnime"
|
||||||
|
msgid "Use built-in animations"
|
||||||
|
msgstr "Використовувати вбудовані анімації"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/anime.slint:146
|
||||||
|
msgctxt "PageAnime"
|
||||||
|
msgid "Set which builtin animations are played"
|
||||||
|
msgstr "Встановити, які вбудовані анімації відтворювати"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/anime.slint:150
|
||||||
|
msgctxt "Anime built-in selection"
|
||||||
|
msgid "Boot Animation"
|
||||||
|
msgstr "Анімація завантаження"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/anime.slint:160
|
||||||
|
msgctxt "Anime built-in selection"
|
||||||
|
msgid "Running Animation"
|
||||||
|
msgstr "Анімація роботи"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/anime.slint:170
|
||||||
|
msgctxt "Anime built-in selection"
|
||||||
|
msgid "Sleep Animation"
|
||||||
|
msgstr "Анімація сну"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/anime.slint:180
|
||||||
|
msgctxt "Anime built-in selection"
|
||||||
|
msgid "Shutdown Animation"
|
||||||
|
msgstr "Анімація вимкнення"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/anime.slint:220
|
||||||
|
msgctxt "PageAnime"
|
||||||
|
msgid "Advanced Display Settings"
|
||||||
|
msgstr "Розширені налаштування показу"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/anime.slint:225
|
||||||
|
msgctxt "PageAnime"
|
||||||
|
msgid "Off when lid closed"
|
||||||
|
msgstr "Вимикати при закритій кришці"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/anime.slint:234
|
||||||
|
msgctxt "PageAnime"
|
||||||
|
msgid "Off when suspended"
|
||||||
|
msgstr "Вимикати в режимі сну"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/anime.slint:243
|
||||||
|
msgctxt "PageAnime"
|
||||||
|
msgid "Off when on battery"
|
||||||
|
msgstr "Вимикати при роботі від батареї"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/system.slint:20
|
||||||
|
msgctxt "SystemPageData"
|
||||||
|
msgid "Balanced"
|
||||||
|
msgstr "Збалансований"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/system.slint:20 rog-control-center/ui/pages/system.slint:27
|
||||||
|
msgctxt "SystemPageData"
|
||||||
|
msgid "Performance"
|
||||||
|
msgstr "Продуктивний"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/system.slint:20
|
||||||
|
msgctxt "SystemPageData"
|
||||||
|
msgid "Quiet"
|
||||||
|
msgstr "Тихий"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/system.slint:20
|
||||||
|
msgctxt "SystemPageData"
|
||||||
|
msgid "LowPower"
|
||||||
|
msgstr "Низьке споживання"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/system.slint:26
|
||||||
|
msgctxt "SystemPageData"
|
||||||
|
msgid "Default"
|
||||||
|
msgstr "За замовчуванням"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/system.slint:28
|
||||||
|
msgctxt "SystemPageData"
|
||||||
|
msgid "BalancePerformance"
|
||||||
|
msgstr "Баланс-Продуктивність"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/system.slint:29
|
||||||
|
msgctxt "SystemPageData"
|
||||||
|
msgid "BalancePower"
|
||||||
|
msgstr "Баланс-Енергозбереження"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/system.slint:30
|
||||||
|
msgctxt "SystemPageData"
|
||||||
|
msgid "Power"
|
||||||
|
msgstr "Енергозбереження"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/system.slint:159
|
||||||
|
msgctxt "PageSystem"
|
||||||
|
msgid "Power settings"
|
||||||
|
msgstr "Налаштування живлення"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/system.slint:164
|
||||||
|
msgctxt "PageSystem"
|
||||||
|
msgid "Charge limit"
|
||||||
|
msgstr "Ліміт заряду"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/system.slint:179
|
||||||
|
msgctxt "PageSystem"
|
||||||
|
msgid "Platform Profile"
|
||||||
|
msgstr "Профіль платформи"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/system.slint:189
|
||||||
|
msgctxt "PageSystem"
|
||||||
|
msgid "Advanced"
|
||||||
|
msgstr "Розширені"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/system.slint:209
|
||||||
|
msgctxt "PageSystem"
|
||||||
|
msgid "Screenpad brightness"
|
||||||
|
msgstr "Яскравість екранної панелі"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/system.slint:233
|
||||||
|
msgctxt "PageSystem"
|
||||||
|
msgid "Sync with primary"
|
||||||
|
msgstr "Синхронізувати з основним"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/system.slint:253
|
||||||
|
msgctxt "PageSystem"
|
||||||
|
msgid "Armoury settings"
|
||||||
|
msgstr "Налаштування Armoury"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/system.slint:253
|
||||||
|
msgctxt "PageSystem"
|
||||||
|
msgid "Keyboard Power Management"
|
||||||
|
msgstr "Керування живленням клавіатури"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/system.slint:263
|
||||||
|
msgctxt "no_asus_armoury_driver_1"
|
||||||
|
msgid "The asus-armoury driver is not loaded"
|
||||||
|
msgstr "Драйвер asus-armoury не завантажено"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/system.slint:269
|
||||||
|
msgctxt "no_asus_armoury_driver_2"
|
||||||
|
msgid "For advanced features you will require a kernel with this driver added."
|
||||||
|
msgstr "Для розширених функцій вам знадобиться ядро з доданим цим драйвером."
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/system.slint:280
|
||||||
|
msgctxt "PageSystem"
|
||||||
|
msgid "Panel Overdrive"
|
||||||
|
msgstr "Розгін матриці"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/system.slint:288
|
||||||
|
msgctxt "PageSystem"
|
||||||
|
msgid "MiniLED Mode"
|
||||||
|
msgstr "Режим MiniLED"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/system.slint:296
|
||||||
|
msgctxt "PageSystem"
|
||||||
|
msgid "POST boot sound"
|
||||||
|
msgstr "Звук при завантаженні"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/system.slint:312
|
||||||
|
msgctxt "ppt_warning"
|
||||||
|
msgid "The following settings are not applied until the toggle is enabled."
|
||||||
|
msgstr "Наступні налаштування не застосовуються, доки перемикач не буде увімкнено."
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/system.slint:317 rog-control-center/ui/pages/system.slint:324
|
||||||
|
msgctxt "ppt_group_enabled"
|
||||||
|
msgid "Enable Tuning"
|
||||||
|
msgstr "Увімкнути налаштування"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/system.slint:334 rog-control-center/ui/pages/system.slint:335
|
||||||
|
msgctxt "ppt_pl1_spl"
|
||||||
|
msgid "CPU Sustained Power Limit"
|
||||||
|
msgstr "Тривалий ліміт потужності CPU"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/system.slint:336
|
||||||
|
msgctxt "ppt_pl1_spl_help"
|
||||||
|
msgid ""
|
||||||
|
"Long-term CPU power limit that affects sustained workload performance. "
|
||||||
|
"Higher values may increase heat and power consumption."
|
||||||
|
msgstr ""
|
||||||
|
"Довготривалий ліміт потужності CPU, що впливає на продуктивність при тривалих навантаженнях."
|
||||||
|
"Вищі значення можуть збільшити нагрівання та споживання енергії."
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/system.slint:352 rog-control-center/ui/pages/system.slint:353
|
||||||
|
msgctxt "ppt_pl2_sppt"
|
||||||
|
msgid "CPU Turbo Power Limit"
|
||||||
|
msgstr "Турбо ліміт потужності CPU"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/system.slint:354
|
||||||
|
msgctxt "ppt_pl2_sppt_help"
|
||||||
|
msgid ""
|
||||||
|
"Short-term CPU power limit for boost periods. Controls maximum power during "
|
||||||
|
"brief high-performance bursts."
|
||||||
|
msgstr ""
|
||||||
|
"Короткочасний ліміт потужності CPU для періодів прискорення. Контролює максимальну"
|
||||||
|
"потужність під час коротких сплесків високої продуктивності."
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/system.slint:370 rog-control-center/ui/pages/system.slint:371
|
||||||
|
msgctxt "ppt_pl3_fppt"
|
||||||
|
msgid "CPU Fast Burst Power Limit"
|
||||||
|
msgstr "Швидкий ліміт потужності CPU"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/system.slint:372
|
||||||
|
msgctxt "ppt_pl3_fppt_help"
|
||||||
|
msgid ""
|
||||||
|
"Ultra-short duration power limit for instantaneous CPU bursts. Affects "
|
||||||
|
"responsiveness during sudden workload spikes."
|
||||||
|
msgstr ""
|
||||||
|
"Надкороткий ліміт потужності для миттєвих сплесків CPU."
|
||||||
|
"Впливає на чутливість під час раптових піків навантаження."
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/system.slint:387 rog-control-center/ui/pages/system.slint:388
|
||||||
|
msgctxt "ppt_fppt"
|
||||||
|
msgid "Fast Package Power Limit"
|
||||||
|
msgstr "Швидкий ліміт потужності пакета"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/system.slint:389
|
||||||
|
msgctxt "ppt_fppt_help"
|
||||||
|
msgid ""
|
||||||
|
"Ultra-short duration power limit for system package. Controls maximum power "
|
||||||
|
"during millisecond-scale load spikes."
|
||||||
|
msgstr ""
|
||||||
|
"Надкороткий ліміт потужності для системного пакета. Контролює максимальну"
|
||||||
|
"потужність під час пікових навантажень мілісекундного масштабу."
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/system.slint:405 rog-control-center/ui/pages/system.slint:406
|
||||||
|
msgctxt "ppt_apu_sppt"
|
||||||
|
msgid "APU Sustained Power Limit"
|
||||||
|
msgstr "Тривалий ліміт потужності APU"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/system.slint:407
|
||||||
|
msgctxt "ppt_apu_sppt_help"
|
||||||
|
msgid ""
|
||||||
|
"Long-term power limit for integrated graphics and CPU combined. Affects "
|
||||||
|
"sustained performance of APU-based workloads."
|
||||||
|
msgstr ""
|
||||||
|
"Довготривалий ліміт потужності для інтегрованої графіки та CPU разом."
|
||||||
|
"Впливає на тривалу продуктивність навантажень на базі APU."
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/system.slint:423 rog-control-center/ui/pages/system.slint:424
|
||||||
|
msgctxt "ppt_platform_sppt"
|
||||||
|
msgid "Platform Sustained Power Limit"
|
||||||
|
msgstr "Тривалий ліміт потужності платформи"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/system.slint:425
|
||||||
|
msgctxt "ppt_platform_sppt_help"
|
||||||
|
msgid ""
|
||||||
|
"Overall system power limit for sustained operations. Controls total platform "
|
||||||
|
"power consumption over extended periods."
|
||||||
|
msgstr ""
|
||||||
|
"Загальний ліміт потужності системи для тривалих операцій. Контролює загальне"
|
||||||
|
"споживання енергії платформою протягом тривалих періодів."
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/system.slint:441 rog-control-center/ui/pages/system.slint:442
|
||||||
|
msgctxt "nv_dynamic_boost"
|
||||||
|
msgid "GPU Power Boost"
|
||||||
|
msgstr "Прискорення потужності GPU"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/system.slint:443
|
||||||
|
msgctxt "nv_dynamic_boost_help"
|
||||||
|
msgid ""
|
||||||
|
"Additional power allocation for GPU dynamic boost. Higher values increase "
|
||||||
|
"GPU performance but generate more heat."
|
||||||
|
msgstr ""
|
||||||
|
"Додаткове виділення потужності для динамічного прискорення GPU. Вищі значення"
|
||||||
|
"збільшують продуктивність GPU, але генерують більше тепла."
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/system.slint:459 rog-control-center/ui/pages/system.slint:460
|
||||||
|
msgctxt "nv_temp_target"
|
||||||
|
msgid "GPU Temperature Limit"
|
||||||
|
msgstr "Ліміт температури GPU"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/system.slint:461
|
||||||
|
msgctxt "nv_temp_target_help"
|
||||||
|
msgid ""
|
||||||
|
"Maximum GPU temperature threshold in Celsius. GPU will throttle to maintain "
|
||||||
|
"temperature below this limit."
|
||||||
|
msgstr ""
|
||||||
|
"Максимальний поріг температури GPU у градусах Цельсія. GPU буде знижувати"
|
||||||
|
"частоту для підтримки температури нижче цього ліміту."
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/system.slint:513
|
||||||
|
msgctxt "PageSystem"
|
||||||
|
msgid "Energy Performance Preference linked to Throttle Policy"
|
||||||
|
msgstr "Перевага енергоефективності пов'язана з Політикою Тротлінгу"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/system.slint:517
|
||||||
|
msgctxt "PageSystem"
|
||||||
|
msgid "Change EPP based on Throttle Policy"
|
||||||
|
msgstr "Змінювати EPP на основі Політики Тротлінгу"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/system.slint:525
|
||||||
|
msgctxt "PageSystem"
|
||||||
|
msgid "EPP for Balanced Policy"
|
||||||
|
msgstr "EPP для Збалансованої Політики"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/system.slint:535
|
||||||
|
msgctxt "PageSystem"
|
||||||
|
msgid "EPP for Performance Policy"
|
||||||
|
msgstr "EPP для Політики Продуктивності"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/system.slint:545
|
||||||
|
msgctxt "PageSystem"
|
||||||
|
msgid "EPP for Quiet Policy"
|
||||||
|
msgstr "EPP для Тихої Політики"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/system.slint:563
|
||||||
|
msgctxt "PageSystem"
|
||||||
|
msgid "Throttle Policy for power state"
|
||||||
|
msgstr "Політика Тротлінгу для стану живлення"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/system.slint:569
|
||||||
|
msgctxt "PageSystem"
|
||||||
|
msgid "Throttle Policy on Battery"
|
||||||
|
msgstr "Політика Тротлінгу при живленні від батареї"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/system.slint:579 rog-control-center/ui/pages/system.slint:600
|
||||||
|
msgctxt "PageSystem"
|
||||||
|
msgid "Enabled"
|
||||||
|
msgstr "Увімкнено"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/system.slint:590
|
||||||
|
msgctxt "PageSystem"
|
||||||
|
msgid "Throttle Policy on AC"
|
||||||
|
msgstr "Політика Тротлінгу при живленні від мережі"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/aura.slint:28
|
||||||
|
msgctxt "PageAura"
|
||||||
|
msgid "Brightness"
|
||||||
|
msgstr "Яскравість"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/aura.slint:39
|
||||||
|
msgctxt "PageAura"
|
||||||
|
msgid "Aura mode"
|
||||||
|
msgstr "Режим Aura"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/aura.slint:59
|
||||||
|
msgctxt "PageAura"
|
||||||
|
msgid "Colour 1"
|
||||||
|
msgstr "Колір 1"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/aura.slint:85
|
||||||
|
msgctxt "PageAura"
|
||||||
|
msgid "Colour 2"
|
||||||
|
msgstr "Колір 2"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/aura.slint:119
|
||||||
|
msgctxt "PageAura"
|
||||||
|
msgid "Zone"
|
||||||
|
msgstr "Зона"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/aura.slint:142
|
||||||
|
msgctxt "PageAura"
|
||||||
|
msgid "Direction"
|
||||||
|
msgstr "Напрямок"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/aura.slint:164
|
||||||
|
msgctxt "PageAura"
|
||||||
|
msgid "Speed"
|
||||||
|
msgstr "Швидкість"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/aura.slint:185
|
||||||
|
msgctxt "PageAura"
|
||||||
|
msgid "Power Settings"
|
||||||
|
msgstr "Налаштування живлення"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/aura.slint:270
|
||||||
|
msgctxt "PageAura"
|
||||||
|
msgid "Power Zones"
|
||||||
|
msgstr "Зони живлення"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/app_settings.slint:26
|
||||||
|
msgctxt "PageAppSettings"
|
||||||
|
msgid "Run in background after closing"
|
||||||
|
msgstr "Працювати у фоні після закриття"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/app_settings.slint:34
|
||||||
|
msgctxt "PageAppSettings"
|
||||||
|
msgid "Start app in background (UI closed)"
|
||||||
|
msgstr "Запускати у фоні (без інтерфейсу)"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/app_settings.slint:42
|
||||||
|
msgctxt "PageAppSettings"
|
||||||
|
msgid "Enable system tray icon"
|
||||||
|
msgstr "Увімкнути іконку в треї"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/app_settings.slint:50
|
||||||
|
msgctxt "PageAppSettings"
|
||||||
|
msgid "Enable dGPU notifications"
|
||||||
|
msgstr "Увімкнути сповіщення про dGPU"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/fans.slint:26
|
||||||
|
msgctxt "FanTab"
|
||||||
|
msgid "This fan is not avilable on this machine"
|
||||||
|
msgstr "Цей вентилятор недоступний на цьому пристрої"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/fans.slint:34
|
||||||
|
msgctxt "FanTab"
|
||||||
|
msgid "Enabled"
|
||||||
|
msgstr "Увімкнено"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/fans.slint:43
|
||||||
|
msgctxt "FanTab"
|
||||||
|
msgid "Apply"
|
||||||
|
msgstr "Застосувати"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/fans.slint:51
|
||||||
|
msgctxt "FanTab"
|
||||||
|
msgid "Cancel"
|
||||||
|
msgstr "Скасувати"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/fans.slint:59
|
||||||
|
msgctxt "FanTab"
|
||||||
|
msgid "Factory Default (all fans)"
|
||||||
|
msgstr "Заводські налаштування (всі вентилятори)"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/fans.slint:72
|
||||||
|
msgctxt "PageFans"
|
||||||
|
msgid "Balanced"
|
||||||
|
msgstr "Збалансований"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/fans.slint:75 rog-control-center/ui/pages/fans.slint:134 rog-control-center/ui/pages/fans.slint:193
|
||||||
|
msgctxt "PageFans"
|
||||||
|
msgid "CPU"
|
||||||
|
msgstr "CPU"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/fans.slint:93 rog-control-center/ui/pages/fans.slint:152 rog-control-center/ui/pages/fans.slint:211
|
||||||
|
msgctxt "PageFans"
|
||||||
|
msgid "Mid"
|
||||||
|
msgstr "Середній"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/fans.slint:111 rog-control-center/ui/pages/fans.slint:170 rog-control-center/ui/pages/fans.slint:229
|
||||||
|
msgctxt "PageFans"
|
||||||
|
msgid "GPU"
|
||||||
|
msgstr "GPU"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/fans.slint:131
|
||||||
|
msgctxt "PageFans"
|
||||||
|
msgid "Performance"
|
||||||
|
msgstr "Продуктивний"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/pages/fans.slint:190
|
||||||
|
msgctxt "PageFans"
|
||||||
|
msgid "Quiet"
|
||||||
|
msgstr "Тихий"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/widgets/common.slint:126
|
||||||
|
msgctxt "confirm_reset"
|
||||||
|
msgid "Are you sure you want to reset this?"
|
||||||
|
msgstr "Ви впевнені, що хочете скинути це?"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/widgets/aura_power.slint:33
|
||||||
|
msgctxt "AuraPowerGroup"
|
||||||
|
msgid "Boot"
|
||||||
|
msgstr "Запуск"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/widgets/aura_power.slint:43
|
||||||
|
msgctxt "AuraPowerGroup"
|
||||||
|
msgid "Awake"
|
||||||
|
msgstr "Робота"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/widgets/aura_power.slint:53
|
||||||
|
msgctxt "AuraPowerGroup"
|
||||||
|
msgid "Sleep"
|
||||||
|
msgstr "Сон"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/widgets/aura_power.slint:63
|
||||||
|
msgctxt "AuraPowerGroup"
|
||||||
|
msgid "Shutdown"
|
||||||
|
msgstr "Вимкнення"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/widgets/aura_power.slint:102
|
||||||
|
msgctxt "AuraPowerGroupOld"
|
||||||
|
msgid "Zone Selection"
|
||||||
|
msgstr "Вибір зони"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/widgets/aura_power.slint:114
|
||||||
|
msgctxt "AuraPowerGroupOld"
|
||||||
|
msgid "Boot"
|
||||||
|
msgstr "Завантаження"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/widgets/aura_power.slint:124
|
||||||
|
msgctxt "AuraPowerGroupOld"
|
||||||
|
msgid "Awake"
|
||||||
|
msgstr "Робота"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/widgets/aura_power.slint:134
|
||||||
|
msgctxt "AuraPowerGroupOld"
|
||||||
|
msgid "Sleep"
|
||||||
|
msgstr "Сон"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/types/aura_types.slint:52
|
||||||
|
msgctxt "Aura power zone"
|
||||||
|
msgid "Logo"
|
||||||
|
msgstr "Логотип"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/types/aura_types.slint:53 rog-control-center/ui/types/aura_types.slint:63
|
||||||
|
msgctxt "Aura power zone"
|
||||||
|
msgid "Keyboard"
|
||||||
|
msgstr "Клавіатура"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/types/aura_types.slint:54 rog-control-center/ui/types/aura_types.slint:64
|
||||||
|
msgctxt "Aura power zone"
|
||||||
|
msgid "Lightbar"
|
||||||
|
msgstr "Світлова панель"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/types/aura_types.slint:55
|
||||||
|
msgctxt "Aura power zone"
|
||||||
|
msgid "Lid"
|
||||||
|
msgstr "Кришка"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/types/aura_types.slint:56
|
||||||
|
msgctxt "Aura power zone"
|
||||||
|
msgid "Rear Glow"
|
||||||
|
msgstr "Заднє світіння"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/types/aura_types.slint:57 rog-control-center/ui/types/aura_types.slint:65
|
||||||
|
msgctxt "Aura power zone"
|
||||||
|
msgid "Keyboard and Lightbar"
|
||||||
|
msgstr "Клавіатура та світлова панель"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/types/aura_types.slint:58
|
||||||
|
msgctxt "Aura power zone"
|
||||||
|
msgid "Ally"
|
||||||
|
msgstr "Ally"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/types/aura_types.slint:68
|
||||||
|
msgctxt "Aura brightness"
|
||||||
|
msgid "Off"
|
||||||
|
msgstr "Вимкнено"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/types/aura_types.slint:69
|
||||||
|
msgctxt "Aura brightness"
|
||||||
|
msgid "Low"
|
||||||
|
msgstr "Низька"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/types/aura_types.slint:70
|
||||||
|
msgctxt "Aura brightness"
|
||||||
|
msgid "Med"
|
||||||
|
msgstr "Середня"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/types/aura_types.slint:71
|
||||||
|
msgctxt "Aura brightness"
|
||||||
|
msgid "High"
|
||||||
|
msgstr "Висока"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/types/aura_types.slint:76 rog-control-center/ui/types/aura_types.slint:91
|
||||||
|
msgctxt "Basic aura mode"
|
||||||
|
msgid "Static"
|
||||||
|
msgstr "Статичний"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/types/aura_types.slint:77 rog-control-center/ui/types/aura_types.slint:92
|
||||||
|
msgctxt "Basic aura mode"
|
||||||
|
msgid "Breathe"
|
||||||
|
msgstr "Дихання"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/types/aura_types.slint:78 rog-control-center/ui/types/aura_types.slint:93
|
||||||
|
msgctxt "Basic aura mode"
|
||||||
|
msgid "Strobe"
|
||||||
|
msgstr "Стробоскоп"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/types/aura_types.slint:79
|
||||||
|
msgctxt "Basic aura mode"
|
||||||
|
msgid "Rainbow"
|
||||||
|
msgstr "Веселка"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/types/aura_types.slint:80
|
||||||
|
msgctxt "Basic aura mode"
|
||||||
|
msgid "Star"
|
||||||
|
msgstr "Зірка"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/types/aura_types.slint:81
|
||||||
|
msgctxt "Basic aura mode"
|
||||||
|
msgid "Rain"
|
||||||
|
msgstr "Дощ"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/types/aura_types.slint:82
|
||||||
|
msgctxt "Basic aura mode"
|
||||||
|
msgid "Highlight"
|
||||||
|
msgstr "Підсвічування"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/types/aura_types.slint:83
|
||||||
|
msgctxt "Basic aura mode"
|
||||||
|
msgid "Laser"
|
||||||
|
msgstr "Лазер"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/types/aura_types.slint:84
|
||||||
|
msgctxt "Basic aura mode"
|
||||||
|
msgid "Ripple"
|
||||||
|
msgstr "Хвиля"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/types/aura_types.slint:85
|
||||||
|
msgctxt "Basic aura mode"
|
||||||
|
msgid "Nothing"
|
||||||
|
msgstr "Нічого"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/types/aura_types.slint:86
|
||||||
|
msgctxt "Basic aura mode"
|
||||||
|
msgid "Pulse"
|
||||||
|
msgstr "Пульс"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/types/aura_types.slint:87
|
||||||
|
msgctxt "Basic aura mode"
|
||||||
|
msgid "Comet"
|
||||||
|
msgstr "Комета"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/types/aura_types.slint:88
|
||||||
|
msgctxt "Basic aura mode"
|
||||||
|
msgid "Flash"
|
||||||
|
msgstr "Спалах"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/types/aura_types.slint:100
|
||||||
|
msgctxt "Aura zone"
|
||||||
|
msgid "None"
|
||||||
|
msgstr "Немає"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/types/aura_types.slint:101
|
||||||
|
msgctxt "Aura zone"
|
||||||
|
msgid "Key1"
|
||||||
|
msgstr "Клавіша 1"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/types/aura_types.slint:102
|
||||||
|
msgctxt "Aura zone"
|
||||||
|
msgid "Key2"
|
||||||
|
msgstr "Клавіша 2"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/types/aura_types.slint:103
|
||||||
|
msgctxt "Aura zone"
|
||||||
|
msgid "Key3"
|
||||||
|
msgstr "Клавіша 3"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/types/aura_types.slint:104
|
||||||
|
msgctxt "Aura zone"
|
||||||
|
msgid "Key4"
|
||||||
|
msgstr "Клавіша 4"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/types/aura_types.slint:105
|
||||||
|
msgctxt "Aura zone"
|
||||||
|
msgid "Logo"
|
||||||
|
msgstr "Логотип"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/types/aura_types.slint:106
|
||||||
|
msgctxt "Aura zone"
|
||||||
|
msgid "Lightbar Left"
|
||||||
|
msgstr "Світлова панель зліва"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/types/aura_types.slint:107
|
||||||
|
msgctxt "Aura zone"
|
||||||
|
msgid "Lightbar Right"
|
||||||
|
msgstr "Світлова панель справа"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/types/aura_types.slint:111
|
||||||
|
msgctxt "Aura direction"
|
||||||
|
msgid "Right"
|
||||||
|
msgstr "Вправо"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/types/aura_types.slint:112
|
||||||
|
msgctxt "Aura direction"
|
||||||
|
msgid "Left"
|
||||||
|
msgstr "Вліво"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/types/aura_types.slint:113
|
||||||
|
msgctxt "Aura direction"
|
||||||
|
msgid "Up"
|
||||||
|
msgstr "Вгору"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/types/aura_types.slint:114
|
||||||
|
msgctxt "Aura direction"
|
||||||
|
msgid "Down"
|
||||||
|
msgstr "Вниз"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/types/aura_types.slint:118
|
||||||
|
msgctxt "Aura speed"
|
||||||
|
msgid "Low"
|
||||||
|
msgstr "Низька"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/types/aura_types.slint:119
|
||||||
|
msgctxt "Aura speed"
|
||||||
|
msgid "Medium"
|
||||||
|
msgstr "Середня"
|
||||||
|
|
||||||
|
#: rog-control-center/ui/types/aura_types.slint:120
|
||||||
|
msgctxt "Aura speed"
|
||||||
|
msgid "High"
|
||||||
|
msgstr "Висока"
|
||||||
|
|
||||||
@@ -7,6 +7,7 @@ import { PageFans } from "pages/fans.slint";
|
|||||||
import { PageAnime, AnimePageData } from "pages/anime.slint";
|
import { PageAnime, AnimePageData } from "pages/anime.slint";
|
||||||
import { RogItem } from "widgets/common.slint";
|
import { RogItem } from "widgets/common.slint";
|
||||||
import { PageAura } from "pages/aura.slint";
|
import { PageAura } from "pages/aura.slint";
|
||||||
|
import { PageGPU } from "pages/gpu.slint";
|
||||||
import { Node } from "widgets/graph.slint";
|
import { Node } from "widgets/graph.slint";
|
||||||
export { Node }
|
export { Node }
|
||||||
import { FanPageData, FanType, Profile } from "types/fan_types.slint";
|
import { FanPageData, FanType, Profile } from "types/fan_types.slint";
|
||||||
@@ -24,7 +25,15 @@ export component MainWindow inherits Window {
|
|||||||
default-font-size: 14px;
|
default-font-size: 14px;
|
||||||
default-font-weight: 400;
|
default-font-weight: 400;
|
||||||
icon: @image-url("../data/rog-control-center.png");
|
icon: @image-url("../data/rog-control-center.png");
|
||||||
in property <[bool]> sidebar_items_avilable: [true, true, true, true, true, true];
|
in property <[bool]> sidebar_items_avilable: [
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
true, // GPU Configuration
|
||||||
|
true, // App Settings
|
||||||
|
true, // About
|
||||||
|
];
|
||||||
private property <bool> show_notif;
|
private property <bool> show_notif;
|
||||||
private property <bool> fade_cover;
|
private property <bool> fade_cover;
|
||||||
private property <bool> toast: false;
|
private property <bool> toast: false;
|
||||||
@@ -58,8 +67,9 @@ export component MainWindow inherits Window {
|
|||||||
@tr("Menu2" => "Keyboard Aura"),
|
@tr("Menu2" => "Keyboard Aura"),
|
||||||
@tr("Menu3" => "AniMe Matrix"),
|
@tr("Menu3" => "AniMe Matrix"),
|
||||||
@tr("Menu4" => "Fan Curves"),
|
@tr("Menu4" => "Fan Curves"),
|
||||||
@tr("Menu5" => "App Settings"),
|
@tr("Menu5" => "GPU Configuration"),
|
||||||
@tr("Menu6" => "About"),
|
@tr("Menu6" => "App Settings"),
|
||||||
|
@tr("Menu7" => "About"),
|
||||||
];
|
];
|
||||||
available: root.sidebar_items_avilable;
|
available: root.sidebar_items_avilable;
|
||||||
}
|
}
|
||||||
@@ -89,26 +99,61 @@ export component MainWindow inherits Window {
|
|||||||
height: root.height + 12px;
|
height: root.height + 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
aura := PageAura {
|
/*if(side-bar.current-item == 1):*/ aura := PageAura {
|
||||||
width: root.width - side-bar.width;
|
width: root.width - side-bar.width;
|
||||||
visible: side-bar.current-item == 1;
|
visible: side-bar.current-item == 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(side-bar.current-item == 2): PageAnime {
|
if(side-bar.current-item == 2): PageAnime {
|
||||||
width: root.width - side-bar.width;
|
width: root.width - side-bar.width;
|
||||||
|
visible: side-bar.current-item == 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
fans := PageFans {
|
if(side-bar.current-item == 3): fans := PageFans {
|
||||||
width: root.width - side-bar.width;
|
width: root.width - side-bar.width;
|
||||||
visible: side-bar.current-item == 3;
|
visible: side-bar.current-item == 3;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(side-bar.current-item == 4): PageAppSettings {
|
if(side-bar.current-item == 4): PageGPU {
|
||||||
width: root.width - side-bar.width;
|
width: root.width - side-bar.width;
|
||||||
|
visible: side-bar.current-item == 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(side-bar.current-item == 5): PageAbout {
|
if(side-bar.current-item == 5): PageAppSettings {
|
||||||
width: root.width - side-bar.width;
|
width: root.width - side-bar.width;
|
||||||
|
visible: side-bar.current-item == 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(side-bar.current-item == 6): PageAbout {
|
||||||
|
width: root.width - side-bar.width;
|
||||||
|
visible: side-bar.current-item == 6;
|
||||||
|
}
|
||||||
|
|
||||||
|
if toast: Rectangle {
|
||||||
|
x: 0px;
|
||||||
|
y: root.height - self.height;
|
||||||
|
width: root.width - side-bar.width;
|
||||||
|
height: 40px;
|
||||||
|
opacity: 1.0;
|
||||||
|
background: Palette.selection-background;
|
||||||
|
clip: true;
|
||||||
|
TouchArea {
|
||||||
|
height: 100%;
|
||||||
|
width: 100%;
|
||||||
|
clicked => {
|
||||||
|
toast = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
height: 100%;
|
||||||
|
width: 100%;
|
||||||
|
background: Palette.control-background;
|
||||||
|
Text {
|
||||||
|
color: Palette.control-foreground;
|
||||||
|
text: root.toast_text;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -133,31 +178,6 @@ export component MainWindow inherits Window {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if toast: Rectangle {
|
|
||||||
x: 0px;
|
|
||||||
y: 0px;
|
|
||||||
width: root.width;
|
|
||||||
height: 32px;
|
|
||||||
opacity: 1.0;
|
|
||||||
background: Colors.grey;
|
|
||||||
TouchArea {
|
|
||||||
height: 100%;
|
|
||||||
width: 100%;
|
|
||||||
clicked => {
|
|
||||||
toast = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Rectangle {
|
|
||||||
height: 100%;
|
|
||||||
width: 100%;
|
|
||||||
background: Palette.control-background;
|
|
||||||
Text {
|
|
||||||
color: Palette.control-foreground;
|
|
||||||
text: root.toast_text;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// // TODO: or use Dialogue
|
// // TODO: or use Dialogue
|
||||||
if show_notif: Rectangle {
|
if show_notif: Rectangle {
|
||||||
@@ -190,7 +210,7 @@ export component MainWindow inherits Window {
|
|||||||
y: 0px;
|
y: 0px;
|
||||||
width: root.width;
|
width: root.width;
|
||||||
height: root.height;
|
height: root.height;
|
||||||
|
|
||||||
//padding only has effect on layout elements
|
//padding only has effect on layout elements
|
||||||
//padding: 10px;
|
//padding: 10px;
|
||||||
|
|
||||||
|
|||||||
102
rog-control-center/ui/pages/gpu.slint
Normal file
102
rog-control-center/ui/pages/gpu.slint
Normal file
@@ -0,0 +1,102 @@
|
|||||||
|
import { Palette, TabWidget, Button, CheckBox } from "std-widgets.slint";
|
||||||
|
import { Graph, Node } from "../widgets/graph.slint";
|
||||||
|
import { SystemToggle } from "../widgets/common.slint";
|
||||||
|
import { Profile, FanType, FanPageData } from "../types/fan_types.slint";
|
||||||
|
import { Palette, HorizontalBox , VerticalBox, ScrollView, Slider, Button, Switch, ComboBox, GroupBox, StandardButton} from "std-widgets.slint";
|
||||||
|
|
||||||
|
export global GPUPageData {
|
||||||
|
// GPU mode and device state
|
||||||
|
in-out property <int> gpu_mux_mode: 1; // 0 = Ultra/Discreet, 1 = Integrated/Optimus
|
||||||
|
in-out property <int> dgpu_disabled: 0; // 1 == dGPU disabled
|
||||||
|
in-out property <int> egpu_enabled: 0; // 1 == eGPU (XGMobile) enabled
|
||||||
|
callback cb_gpu_mux_mode(int);
|
||||||
|
callback cb_dgpu_disabled(int);
|
||||||
|
callback cb_egpu_enabled(int);
|
||||||
|
}
|
||||||
|
|
||||||
|
export component PageGPU inherits Rectangle {
|
||||||
|
|
||||||
|
clip: true;
|
||||||
|
ScrollView {
|
||||||
|
VerticalLayout {
|
||||||
|
padding: 10px;
|
||||||
|
spacing: 10px;
|
||||||
|
alignment: LayoutAlignment.start;
|
||||||
|
Rectangle {
|
||||||
|
background: Palette.alternate-background;
|
||||||
|
border-color: Palette.accent-background;
|
||||||
|
border-width: 3px;
|
||||||
|
border-radius: 10px;
|
||||||
|
height: 40px;
|
||||||
|
Text {
|
||||||
|
font-size: 18px;
|
||||||
|
color: Palette.control-foreground;
|
||||||
|
horizontal-alignment: TextHorizontalAlignment.center;
|
||||||
|
text: @tr("GPU Configuration");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
GroupBox {
|
||||||
|
HorizontalLayout {
|
||||||
|
spacing: 10px;
|
||||||
|
|
||||||
|
// Ultra (discreet) mode button - disabled if dGPU is marked disabled
|
||||||
|
Rectangle {
|
||||||
|
width: 120px;
|
||||||
|
height: 36px;
|
||||||
|
border-radius: 6px;
|
||||||
|
border-color: Palette.border;
|
||||||
|
border-width: 2px;
|
||||||
|
background: GPUPageData.gpu_mux_mode == 0 ? Palette.accent-background : Palette.control-background;
|
||||||
|
opacity: GPUPageData.dgpu_disabled == 1 ? 0.5 : 1.0;
|
||||||
|
|
||||||
|
Text {
|
||||||
|
color: Palette.control-foreground;
|
||||||
|
horizontal-alignment: TextHorizontalAlignment.center;
|
||||||
|
vertical-alignment: TextVerticalAlignment.center;
|
||||||
|
text: @tr("Ultra");
|
||||||
|
}
|
||||||
|
|
||||||
|
TouchArea {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
clicked => {
|
||||||
|
if (GPUPageData.dgpu_disabled != 1 && GPUPageData.gpu_mux_mode != 0) {
|
||||||
|
GPUPageData.cb_gpu_mux_mode(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Integrated (Optimus) mode button
|
||||||
|
Rectangle {
|
||||||
|
width: 120px;
|
||||||
|
height: 36px;
|
||||||
|
border-radius: 6px;
|
||||||
|
border-color: Palette.border;
|
||||||
|
border-width: 2px;
|
||||||
|
background: GPUPageData.gpu_mux_mode == 1 ? Palette.accent-background : Palette.control-background;
|
||||||
|
|
||||||
|
Text {
|
||||||
|
color: Palette.control-foreground;
|
||||||
|
horizontal-alignment: TextHorizontalAlignment.center;
|
||||||
|
vertical-alignment: TextVerticalAlignment.center;
|
||||||
|
text: @tr("Integrated");
|
||||||
|
}
|
||||||
|
|
||||||
|
TouchArea {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
clicked => {
|
||||||
|
if (GPUPageData.gpu_mux_mode != 1) {
|
||||||
|
GPUPageData.cb_gpu_mux_mode(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -253,6 +253,66 @@ export component PageSystem inherits Rectangle {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if SystemPageData.kbd_leds_awake != -1 ||
|
||||||
|
SystemPageData.kbd_leds_sleep != -1 ||
|
||||||
|
SystemPageData.kbd_leds_boot != -1 ||
|
||||||
|
SystemPageData.kbd_leds_shutdown != -1: VerticalLayout {
|
||||||
|
padding: 0px;
|
||||||
|
spacing: 0px;
|
||||||
|
alignment: LayoutAlignment.start;
|
||||||
|
Rectangle {
|
||||||
|
background: Palette.alternate-background;
|
||||||
|
border-color: Palette.accent-background;
|
||||||
|
border-width: 3px;
|
||||||
|
border-radius: 10px;
|
||||||
|
height: 40px;
|
||||||
|
Text {
|
||||||
|
font-size: 18px;
|
||||||
|
color: Palette.control-foreground;
|
||||||
|
horizontal-alignment: TextHorizontalAlignment.center;
|
||||||
|
text: @tr("Keyboard Power Management");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
GroupBox {
|
||||||
|
|
||||||
|
HorizontalLayout {
|
||||||
|
spacing: 10px;
|
||||||
|
if SystemPageData.kbd_leds_awake != -1: SystemToggleInt {
|
||||||
|
text: @tr("Keyboard Awake Effect");
|
||||||
|
checked_int <=> SystemPageData.kbd_leds_awake;
|
||||||
|
toggled => {
|
||||||
|
SystemPageData.cb_kbd_leds_awake(SystemPageData.kbd_leds_awake)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if SystemPageData.kbd_leds_sleep != -1: SystemToggleInt {
|
||||||
|
text: @tr("Keyboard Sleep Effect");
|
||||||
|
checked_int <=> SystemPageData.kbd_leds_sleep;
|
||||||
|
toggled => {
|
||||||
|
SystemPageData.cb_kbd_leds_sleep(SystemPageData.kbd_leds_sleep)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if SystemPageData.kbd_leds_boot != -1: SystemToggleInt {
|
||||||
|
text: @tr("Keyboard Boot Effect");
|
||||||
|
checked_int <=> SystemPageData.kbd_leds_boot;
|
||||||
|
toggled => {
|
||||||
|
SystemPageData.cb_kbd_leds_boot(SystemPageData.kbd_leds_boot)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if SystemPageData.kbd_leds_shutdown != -1: SystemToggleInt {
|
||||||
|
text: @tr("Keyboard Shutdown Effect");
|
||||||
|
checked_int <=> SystemPageData.kbd_leds_shutdown;
|
||||||
|
toggled => {
|
||||||
|
SystemPageData.cb_kbd_leds_shutdown(SystemPageData.kbd_leds_shutdown)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
background: Palette.alternate-background;
|
background: Palette.alternate-background;
|
||||||
border-color: Palette.accent-background;
|
border-color: Palette.accent-background;
|
||||||
@@ -286,44 +346,6 @@ export component PageSystem inherits Rectangle {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
GroupBox {
|
|
||||||
title: @tr("Keyboard Power Management");
|
|
||||||
HorizontalLayout {
|
|
||||||
spacing: 10px;
|
|
||||||
if SystemPageData.kbd_leds_awake != -1: SystemToggleInt {
|
|
||||||
text: @tr("Keyboard Awake Effect");
|
|
||||||
checked_int <=> SystemPageData.kbd_leds_awake;
|
|
||||||
toggled => {
|
|
||||||
SystemPageData.cb_kbd_leds_awake(SystemPageData.kbd_leds_awake)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if SystemPageData.kbd_leds_sleep != -1: SystemToggleInt {
|
|
||||||
text: @tr("Keyboard Sleep Effect");
|
|
||||||
checked_int <=> SystemPageData.kbd_leds_sleep;
|
|
||||||
toggled => {
|
|
||||||
SystemPageData.cb_kbd_leds_sleep(SystemPageData.kbd_leds_sleep)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if SystemPageData.kbd_leds_boot != -1: SystemToggleInt {
|
|
||||||
text: @tr("Keyboard Boot Effect");
|
|
||||||
checked_int <=> SystemPageData.kbd_leds_boot;
|
|
||||||
toggled => {
|
|
||||||
SystemPageData.cb_kbd_leds_boot(SystemPageData.kbd_leds_boot)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if SystemPageData.kbd_leds_shutdown != -1: SystemToggleInt {
|
|
||||||
text: @tr("Keyboard Shutdown Effect");
|
|
||||||
checked_int <=> SystemPageData.kbd_leds_shutdown;
|
|
||||||
toggled => {
|
|
||||||
SystemPageData.cb_kbd_leds_shutdown(SystemPageData.kbd_leds_shutdown)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
HorizontalBox {
|
HorizontalBox {
|
||||||
padding: 0px;
|
padding: 0px;
|
||||||
spacing: 10px;
|
spacing: 10px;
|
||||||
|
|||||||
@@ -253,8 +253,19 @@ impl FirmwareAttributes {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Clone, Copy, Debug, PartialEq, Eq, Default)]
|
||||||
|
pub enum FirmwareAttributeType {
|
||||||
|
#[default]
|
||||||
|
Immediate,
|
||||||
|
TUFKeyboard,
|
||||||
|
Ppt,
|
||||||
|
Gpu,
|
||||||
|
Bios,
|
||||||
|
}
|
||||||
|
|
||||||
macro_rules! define_attribute_getters {
|
macro_rules! define_attribute_getters {
|
||||||
($($attr:ident),*) => {
|
// Accept a list of attribute idents and an optional `types { .. }` block
|
||||||
|
( $( $attr:ident ),* $(,)? $( ; types { $( $tattr:ident : $ptype:ident ),* $(,)? } )? ) => {
|
||||||
impl FirmwareAttributes {
|
impl FirmwareAttributes {
|
||||||
$(
|
$(
|
||||||
pub fn $attr(&self) -> Option<&Attribute> {
|
pub fn $attr(&self) -> Option<&Attribute> {
|
||||||
@@ -268,6 +279,17 @@ macro_rules! define_attribute_getters {
|
|||||||
});
|
});
|
||||||
)*
|
)*
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl FirmwareAttribute {
|
||||||
|
pub fn property_type(&self) -> FirmwareAttributeType {
|
||||||
|
match <&str>::from(*self) {
|
||||||
|
$(
|
||||||
|
$( stringify!($tattr) => FirmwareAttributeType::$ptype, )*
|
||||||
|
)?
|
||||||
|
_ => FirmwareAttributeType::Immediate,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -299,6 +321,38 @@ define_attribute_getters!(
|
|||||||
gpu_mux_mode,
|
gpu_mux_mode,
|
||||||
mini_led_mode,
|
mini_led_mode,
|
||||||
screen_auto_brightness
|
screen_auto_brightness
|
||||||
|
; types {
|
||||||
|
ppt_pl1_spl: Ppt,
|
||||||
|
ppt_pl2_sppt: Ppt,
|
||||||
|
ppt_apu_sppt: Ppt,
|
||||||
|
ppt_platform_sppt: Ppt,
|
||||||
|
ppt_fppt: Ppt,
|
||||||
|
nv_dynamic_boost: Ppt,
|
||||||
|
nv_temp_target: Ppt,
|
||||||
|
dgpu_base_tgp: Ppt,
|
||||||
|
dgpu_tgp: Ppt,
|
||||||
|
|
||||||
|
gpu_mux_mode: Gpu,
|
||||||
|
egpu_connected: Gpu,
|
||||||
|
egpu_enable: Gpu,
|
||||||
|
dgpu_disable: Gpu,
|
||||||
|
|
||||||
|
boot_sound: Bios,
|
||||||
|
|
||||||
|
mcu_powersave: Immediate,
|
||||||
|
|
||||||
|
screen_auto_brightness: Immediate,
|
||||||
|
mini_led_mode: Immediate,
|
||||||
|
panel_hd_mode: Immediate,
|
||||||
|
panel_od: Immediate,
|
||||||
|
|
||||||
|
kbd_leds_awake: TUFKeyboard,
|
||||||
|
kbd_leds_sleep: TUFKeyboard,
|
||||||
|
kbd_leds_boot: TUFKeyboard,
|
||||||
|
kbd_leds_shutdown: TUFKeyboard,
|
||||||
|
|
||||||
|
charge_mode: Immediate,
|
||||||
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
/// CamelCase names of the properties. Intended for use with DBUS
|
/// CamelCase names of the properties. Intended for use with DBUS
|
||||||
@@ -352,29 +406,6 @@ pub enum FirmwareAttribute {
|
|||||||
KbdLedsShutdown = 30,
|
KbdLedsShutdown = 30,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl FirmwareAttribute {
|
|
||||||
pub fn is_ppt(&self) -> bool {
|
|
||||||
matches!(
|
|
||||||
self,
|
|
||||||
FirmwareAttribute::PptPl1Spl
|
|
||||||
| FirmwareAttribute::PptPl2Sppt
|
|
||||||
| FirmwareAttribute::PptPl3Fppt
|
|
||||||
| FirmwareAttribute::PptFppt
|
|
||||||
| FirmwareAttribute::PptApuSppt
|
|
||||||
| FirmwareAttribute::PptPlatformSppt
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn is_dgpu(&self) -> bool {
|
|
||||||
matches!(
|
|
||||||
self,
|
|
||||||
FirmwareAttribute::NvDynamicBoost
|
|
||||||
| FirmwareAttribute::NvTempTarget
|
|
||||||
| FirmwareAttribute::DgpuTgp
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl From<&str> for FirmwareAttribute {
|
impl From<&str> for FirmwareAttribute {
|
||||||
fn from(s: &str) -> Self {
|
fn from(s: &str) -> Self {
|
||||||
match s {
|
match s {
|
||||||
|
|||||||
1
rust-toolchain
Normal file
1
rust-toolchain
Normal file
@@ -0,0 +1 @@
|
|||||||
|
stable
|
||||||
70
simulators/src/animatrix/map_g635l.rs
Normal file
70
simulators/src/animatrix/map_g635l.rs
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
use super::Row;
|
||||||
|
|
||||||
|
// TODO: This is a placeholder for G635L map
|
||||||
|
pub const G635L: [Row; 63] = [
|
||||||
|
Row(0x01, 7, 32, 0),
|
||||||
|
Row(0x01, 7 + 34, 32, 0),
|
||||||
|
Row(0x01, 7 + 68, 32, 0),
|
||||||
|
Row(0x01, 7 + 102, 32, 0), // 34 len
|
||||||
|
Row(0x01, 7 + 136, 32, 0),
|
||||||
|
Row(0x01, 7 + 170, 34, 0),
|
||||||
|
Row(0x01, 7 + 204, 34, 0),
|
||||||
|
Row(0x01, 7 + 238, 34, 0),
|
||||||
|
Row(0x01, 7 + 272, 34, 0),
|
||||||
|
Row(0x01, 7 + 306, 34, 0),
|
||||||
|
Row(0x01, 7 + 340, 34, 0),
|
||||||
|
Row(0x01, 7 + 374, 34, 0),
|
||||||
|
Row(0x01, 7 + 408, 33, 1),
|
||||||
|
Row(0x01, 7 + 441, 33, 1),
|
||||||
|
Row(0x01, 7 + 474, 32, 2),
|
||||||
|
Row(0x01, 7 + 506, 32, 2),
|
||||||
|
Row(0x01, 7 + 538, 31, 3),
|
||||||
|
Row(0x01, 7 + 569, 31, 3),
|
||||||
|
Row(0x01, 7 + 600, 28, 4),
|
||||||
|
//
|
||||||
|
Row(0x74, 7 + 1, 3, 28 + 4), // adds to end of previous
|
||||||
|
Row(0x74, 7 + 3, 30, 4),
|
||||||
|
Row(0x74, 7 + 33, 29, 5),
|
||||||
|
Row(0x74, 7 + 62, 29, 5),
|
||||||
|
Row(0x74, 7 + 91, 28, 6),
|
||||||
|
Row(0x74, 7 + 119, 28, 6),
|
||||||
|
Row(0x74, 7 + 147, 27, 7),
|
||||||
|
Row(0x74, 7 + 174, 27, 7),
|
||||||
|
Row(0x74, 7 + 202, 26, 9),
|
||||||
|
Row(0x74, 7 + 228, 26, 9),
|
||||||
|
Row(0x74, 7 + 254, 25, 10),
|
||||||
|
Row(0x74, 7 + 278, 25, 9), // WEIRD OFFSET
|
||||||
|
Row(0x74, 7 + 303, 24, 10),
|
||||||
|
Row(0x74, 7 + 327, 24, 10),
|
||||||
|
Row(0x74, 7 + 351, 23, 11),
|
||||||
|
Row(0x74, 7 + 374, 23, 11),
|
||||||
|
Row(0x74, 7 + 397, 22, 12),
|
||||||
|
Row(0x74, 7 + 419, 22, 12),
|
||||||
|
Row(0x74, 7 + 441, 21, 13),
|
||||||
|
Row(0x74, 7 + 462, 21, 13),
|
||||||
|
Row(0x74, 7 + 483, 20, 14),
|
||||||
|
Row(0x74, 7 + 503, 20, 14),
|
||||||
|
Row(0x74, 7 + 523, 19, 15),
|
||||||
|
Row(0x74, 7 + 542, 19, 15),
|
||||||
|
Row(0x74, 7 + 561, 18, 16),
|
||||||
|
Row(0x74, 7 + 579, 18, 16),
|
||||||
|
Row(0x74, 7 + 597, 17, 17),
|
||||||
|
Row(0x74, 7 + 614, 13, 17),
|
||||||
|
//
|
||||||
|
Row(0xe7, 7 + 1, 4, 13 + 18), // adds to end of previous
|
||||||
|
Row(0xe7, 7 + 4, 16, 18),
|
||||||
|
Row(0xe7, 7 + 20, 16, 18),
|
||||||
|
Row(0xe7, 7 + 36, 15, 19),
|
||||||
|
Row(0xe7, 7 + 51, 15, 19),
|
||||||
|
Row(0xe7, 7 + 66, 14, 20),
|
||||||
|
Row(0xe7, 7 + 80, 12, 20), // too long? 14
|
||||||
|
Row(0xe7, 7 + 94, 13, 21),
|
||||||
|
Row(0xe7, 7 + 107, 13, 21),
|
||||||
|
Row(0xe7, 7 + 120, 12, 12), // Actual display end
|
||||||
|
Row(0xe7, 7 + 132, 12, 22),
|
||||||
|
Row(0xe7, 7 + 144, 11, 23),
|
||||||
|
Row(0xe7, 7 + 155, 11, 23),
|
||||||
|
Row(0xe7, 7 + 166, 10, 24),
|
||||||
|
Row(0xe7, 7 + 176, 10, 24),
|
||||||
|
Row(0xe7, 7 + 186, 9, 25),
|
||||||
|
];
|
||||||
70
simulators/src/animatrix/map_g835l.rs
Normal file
70
simulators/src/animatrix/map_g835l.rs
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
use super::Row;
|
||||||
|
|
||||||
|
// TODO: This is a placeholder for G835L map
|
||||||
|
pub const G835L: [Row; 63] = [
|
||||||
|
Row(0x01, 7, 32, 0),
|
||||||
|
Row(0x01, 7 + 34, 32, 0),
|
||||||
|
Row(0x01, 7 + 68, 32, 0),
|
||||||
|
Row(0x01, 7 + 102, 32, 0), // 34 len
|
||||||
|
Row(0x01, 7 + 136, 32, 0),
|
||||||
|
Row(0x01, 7 + 170, 34, 0),
|
||||||
|
Row(0x01, 7 + 204, 34, 0),
|
||||||
|
Row(0x01, 7 + 238, 34, 0),
|
||||||
|
Row(0x01, 7 + 272, 34, 0),
|
||||||
|
Row(0x01, 7 + 306, 34, 0),
|
||||||
|
Row(0x01, 7 + 340, 34, 0),
|
||||||
|
Row(0x01, 7 + 374, 34, 0),
|
||||||
|
Row(0x01, 7 + 408, 33, 1),
|
||||||
|
Row(0x01, 7 + 441, 33, 1),
|
||||||
|
Row(0x01, 7 + 474, 32, 2),
|
||||||
|
Row(0x01, 7 + 506, 32, 2),
|
||||||
|
Row(0x01, 7 + 538, 31, 3),
|
||||||
|
Row(0x01, 7 + 569, 31, 3),
|
||||||
|
Row(0x01, 7 + 600, 28, 4),
|
||||||
|
//
|
||||||
|
Row(0x74, 7 + 1, 3, 28 + 4), // adds to end of previous
|
||||||
|
Row(0x74, 7 + 3, 30, 4),
|
||||||
|
Row(0x74, 7 + 33, 29, 5),
|
||||||
|
Row(0x74, 7 + 62, 29, 5),
|
||||||
|
Row(0x74, 7 + 91, 28, 6),
|
||||||
|
Row(0x74, 7 + 119, 28, 6),
|
||||||
|
Row(0x74, 7 + 147, 27, 7),
|
||||||
|
Row(0x74, 7 + 174, 27, 7),
|
||||||
|
Row(0x74, 7 + 202, 26, 9),
|
||||||
|
Row(0x74, 7 + 228, 26, 9),
|
||||||
|
Row(0x74, 7 + 254, 25, 10),
|
||||||
|
Row(0x74, 7 + 278, 25, 9), // WEIRD OFFSET
|
||||||
|
Row(0x74, 7 + 303, 24, 10),
|
||||||
|
Row(0x74, 7 + 327, 24, 10),
|
||||||
|
Row(0x74, 7 + 351, 23, 11),
|
||||||
|
Row(0x74, 7 + 374, 23, 11),
|
||||||
|
Row(0x74, 7 + 397, 22, 12),
|
||||||
|
Row(0x74, 7 + 419, 22, 12),
|
||||||
|
Row(0x74, 7 + 441, 21, 13),
|
||||||
|
Row(0x74, 7 + 462, 21, 13),
|
||||||
|
Row(0x74, 7 + 483, 20, 14),
|
||||||
|
Row(0x74, 7 + 503, 20, 14),
|
||||||
|
Row(0x74, 7 + 523, 19, 15),
|
||||||
|
Row(0x74, 7 + 542, 19, 15),
|
||||||
|
Row(0x74, 7 + 561, 18, 16),
|
||||||
|
Row(0x74, 7 + 579, 18, 16),
|
||||||
|
Row(0x74, 7 + 597, 17, 17),
|
||||||
|
Row(0x74, 7 + 614, 13, 17),
|
||||||
|
//
|
||||||
|
Row(0xe7, 7 + 1, 4, 13 + 18), // adds to end of previous
|
||||||
|
Row(0xe7, 7 + 4, 16, 18),
|
||||||
|
Row(0xe7, 7 + 20, 16, 18),
|
||||||
|
Row(0xe7, 7 + 36, 15, 19),
|
||||||
|
Row(0xe7, 7 + 51, 15, 19),
|
||||||
|
Row(0xe7, 7 + 66, 14, 20),
|
||||||
|
Row(0xe7, 7 + 80, 12, 20), // too long? 14
|
||||||
|
Row(0xe7, 7 + 94, 13, 21),
|
||||||
|
Row(0xe7, 7 + 107, 13, 21),
|
||||||
|
Row(0xe7, 7 + 120, 12, 12), // Actual display end
|
||||||
|
Row(0xe7, 7 + 132, 12, 22),
|
||||||
|
Row(0xe7, 7 + 144, 11, 23),
|
||||||
|
Row(0xe7, 7 + 155, 11, 23),
|
||||||
|
Row(0xe7, 7 + 166, 10, 24),
|
||||||
|
Row(0xe7, 7 + 176, 10, 24),
|
||||||
|
Row(0xe7, 7 + 186, 9, 25),
|
||||||
|
];
|
||||||
@@ -1,9 +1,13 @@
|
|||||||
use rog_anime::AnimeType;
|
use rog_anime::AnimeType;
|
||||||
|
|
||||||
|
use self::map_g635l::G635L;
|
||||||
|
use self::map_g835l::G835L;
|
||||||
use self::map_ga401::GA401;
|
use self::map_ga401::GA401;
|
||||||
use self::map_ga402::GA402;
|
use self::map_ga402::GA402;
|
||||||
use self::map_gu604::GU604;
|
use self::map_gu604::GU604;
|
||||||
|
|
||||||
|
mod map_g635l;
|
||||||
|
mod map_g835l;
|
||||||
mod map_ga401;
|
mod map_ga401;
|
||||||
mod map_ga402;
|
mod map_ga402;
|
||||||
mod map_gu604;
|
mod map_gu604;
|
||||||
@@ -39,6 +43,8 @@ pub struct AniMatrix {
|
|||||||
impl AniMatrix {
|
impl AniMatrix {
|
||||||
pub fn new(model: AnimeType) -> Self {
|
pub fn new(model: AnimeType) -> Self {
|
||||||
let led_shape = match model {
|
let led_shape = match model {
|
||||||
|
// TODO: Verify how this reacts on G635L and G835L
|
||||||
|
// These are all doing the same thing. Can be simplified
|
||||||
AnimeType::GA401 => LedShape {
|
AnimeType::GA401 => LedShape {
|
||||||
vertical: 2,
|
vertical: 2,
|
||||||
horizontal: 5,
|
horizontal: 5,
|
||||||
@@ -58,10 +64,10 @@ impl AniMatrix {
|
|||||||
// Do a hard mapping of each (derived from wireshardk captures)
|
// Do a hard mapping of each (derived from wireshardk captures)
|
||||||
let rows = match model {
|
let rows = match model {
|
||||||
AnimeType::GA401 => GA401.to_vec(),
|
AnimeType::GA401 => GA401.to_vec(),
|
||||||
AnimeType::GA402 | AnimeType::G635L | AnimeType::G835L | AnimeType::Unsupported => {
|
AnimeType::GA402 | AnimeType::Unsupported => GA402.to_vec(),
|
||||||
GA402.to_vec()
|
|
||||||
}
|
|
||||||
AnimeType::GU604 => GU604.to_vec(),
|
AnimeType::GU604 => GU604.to_vec(),
|
||||||
|
AnimeType::G635L => G635L.to_vec(),
|
||||||
|
AnimeType::G835L => G835L.to_vec(),
|
||||||
};
|
};
|
||||||
|
|
||||||
Self { rows, led_shape }
|
Self { rows, led_shape }
|
||||||
|
|||||||
Reference in New Issue
Block a user