From 21afaa661ba00fcf7f41740e957eb8af845e0d88 Mon Sep 17 00:00:00 2001 From: 4yn Date: Sat, 5 Feb 2022 18:00:06 +0800 Subject: [PATCH] brokenithm urls and logging --- public/global.css | 27 +- src-tauri/Cargo.lock | 418 +++------------------------- src-tauri/Cargo.toml | 5 +- src-tauri/icons/icon.ico | Bin 6347 -> 15406 bytes src-tauri/src/main.rs | 29 +- src-tauri/src/{lib.rs => oldlib.rs} | 0 src-tauri/src/slider_io/config.rs | 12 +- src-tauri/src/slider_io/context.rs | 27 +- src-tauri/src/slider_io/mod.rs | 1 + src-tauri/src/slider_io/utils.rs | 11 + src-tauri/tauri.conf.json | 9 +- src/App.svelte | 91 ++++-- src/Link.svelte | 13 + 13 files changed, 218 insertions(+), 425 deletions(-) rename src-tauri/src/{lib.rs => oldlib.rs} (100%) create mode 100644 src/Link.svelte diff --git a/public/global.css b/public/global.css index 7c7a253..d0303e6 100644 --- a/public/global.css +++ b/public/global.css @@ -1,4 +1,5 @@ -html, body { +html, +body { position: relative; width: 100%; height: 100%; @@ -9,11 +10,16 @@ html, body { * { box-sizing: border-box; color: #ddd; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, + Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; font-size: 1rem; user-select: none; } +pre { + font-family: monospace; +} + body { margin: 0; padding: 1rem; @@ -31,7 +37,8 @@ body { font-weight: 500; } -.row, .row-2 { +.row, +.row-2 { margin: 0 0 0.5rem 0; display: flex; flex-flow: row nowrap; @@ -47,7 +54,8 @@ body { flex: 2 2 0; } -input, select { +input, +select { width: 100%; background-color: #444; color: #ddd; @@ -71,6 +79,10 @@ button:active { background: #777; } +button.primary { + background: rgb(35, 67, 211); +} + .preview { width: 100%; display: flex; @@ -84,9 +96,10 @@ button:active { height: 3rem; } -.ground-btn, .ground-led { +.ground-btn, +.ground-led { height: 3rem; - position:absolute; + position: absolute; top: 0; left: 0; width: 100%; @@ -129,4 +142,4 @@ button:active { .ground-data { padding: 0.1rem 0; font-size: 0.8rem; -} \ No newline at end of file +} diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index b0c38c9..2122eb5 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -74,37 +74,12 @@ version = "0.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" -[[package]] -name = "arrayvec" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" - [[package]] name = "arrayvec" version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" -[[package]] -name = "async-io" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a811e6a479f2439f0c04038796b5cfb3d2ad56c230e0f2d3f7b04d68cfee607b" -dependencies = [ - "concurrent-queue", - "futures-lite", - "libc", - "log", - "once_cell", - "parking", - "polling", - "slab", - "socket2", - "waker-fn", - "winapi", -] - [[package]] name = "async-trait" version = "0.1.52" @@ -196,17 +171,6 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" -[[package]] -name = "blake2b_simd" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afa748e348ad3be8263be728124b24a24f268266f6f5d58af9d75f6a40b5c587" -dependencies = [ - "arrayref", - "arrayvec 0.5.2", - "constant_time_eq", -] - [[package]] name = "blake3" version = "1.3.1" @@ -214,7 +178,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a08e53fc5a564bb15bfe6fae56bd71522205f1f91893f9c0116edad6496c183f" dependencies = [ "arrayref", - "arrayvec 0.7.2", + "arrayvec", "cc", "cfg-if 1.0.0", "constant_time_eq", @@ -294,12 +258,6 @@ dependencies = [ "pkg-config", ] -[[package]] -name = "cache-padded" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1db59621ec70f09c5e9b597b220c7a2b43611f4710dc03ceb8748637775692c" - [[package]] name = "cairo-rs" version = "0.14.9" @@ -370,19 +328,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" -[[package]] -name = "chrono" -version = "0.4.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73" -dependencies = [ - "libc", - "num-integer", - "num-traits", - "time", - "winapi", -] - [[package]] name = "cocoa" version = "0.24.0" @@ -445,15 +390,6 @@ dependencies = [ "syn", ] -[[package]] -name = "concurrent-queue" -version = "1.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30ed07550be01594c6026cff2a1d7fe9c8f683caa798e12b68694ac9e88286a3" -dependencies = [ - "cache-padded", -] - [[package]] name = "constant_time_eq" version = "0.1.5" @@ -707,17 +643,6 @@ dependencies = [ "byteorder", ] -[[package]] -name = "derivative" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "derive_more" version = "0.99.17" @@ -761,17 +686,6 @@ dependencies = [ "dirs-sys", ] -[[package]] -name = "dirs" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fd78930633bd1c6e35c4b42b1df7b0cbc6bc191146e512bb3bedf243fcc3901" -dependencies = [ - "libc", - "redox_users 0.3.5", - "winapi", -] - [[package]] name = "dirs-next" version = "2.0.0" @@ -789,7 +703,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "03d86534ed367a67548dc68113a0f5db55432fdfbb6e6f9d77704397d95d5780" dependencies = [ "libc", - "redox_users 0.4.0", + "redox_users", "winapi", ] @@ -800,7 +714,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" dependencies = [ "libc", - "redox_users 0.4.0", + "redox_users", "winapi", ] @@ -837,27 +751,6 @@ version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ef6b89e5b37196644d8796de5268852ff179b44e96276cf4290264843743bb7" -[[package]] -name = "enumflags2" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83c8d82922337cd23a15f88b70d8e4ef5f11da38dd7cdb55e84dd5de99695da0" -dependencies = [ - "enumflags2_derive", - "serde", -] - -[[package]] -name = "enumflags2_derive" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "946ee94e3dbf58fdd324f9ce245c7b238d46a66f00e86a020b71996349e46cce" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "env_logger" version = "0.9.0" @@ -1577,6 +1470,18 @@ dependencies = [ "cfg-if 1.0.0", ] +[[package]] +name = "ipconfig" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "723519edce41262b05d4143ceb95050e4c614f483e78e9fd9e39a8275a84ad98" +dependencies = [ + "socket2", + "widestring", + "winapi", + "winreg", +] + [[package]] name = "itertools" version = "0.10.3" @@ -1736,18 +1641,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4" -[[package]] -name = "mac-notification-sys" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dfb6b71a9a89cd38b395d994214297447e8e63b1ba5708a9a2b0b1048ceda76" -dependencies = [ - "cc", - "chrono", - "dirs", - "objc-foundation", -] - [[package]] name = "mach" version = "0.1.2" @@ -1819,12 +1712,6 @@ dependencies = [ "autocfg", ] -[[package]] -name = "minisign-verify" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db0507fe8e3c68cd62961cf9f87f6c2b21d884d3515a7150a4a3fa9d014e5c12" - [[package]] name = "miniz_oxide" version = "0.3.7" @@ -1884,16 +1771,6 @@ dependencies = [ "tempfile", ] -[[package]] -name = "nb-connect" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1bb540dc6ef51cfe1916ec038ce7a620daf3a111e2502d745197cd53d6bca15" -dependencies = [ - "libc", - "socket2", -] - [[package]] name = "ndk" version = "0.4.0" @@ -1959,39 +1836,12 @@ dependencies = [ "void", ] -[[package]] -name = "nix" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50e4785f2c3b7589a0d0c1dd60285e1188adac4006e8abd6dd578e1567027363" -dependencies = [ - "bitflags", - "cc", - "cfg-if 0.1.10", - "libc", - "void", -] - [[package]] name = "nodrop" version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb" -[[package]] -name = "notify-rust" -version = "4.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca6ebab865e67efdd7182a88d76cadbdd2a8d02d1c7a4e16bb7c234016a12cac" -dependencies = [ - "mac-notification-sys", - "serde", - "winrt-notification", - "zbus", - "zvariant", - "zvariant_derive", -] - [[package]] name = "ntapi" version = "0.3.6" @@ -2146,27 +1996,6 @@ dependencies = [ "vcpkg", ] -[[package]] -name = "os_info" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "198e392be7e882f0c2836f425e430f81d9a0e99651e4646311347417cddbfd43" -dependencies = [ - "log", - "serde", - "winapi", -] - -[[package]] -name = "os_pipe" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb233f06c2307e1f5ce2ecad9f8121cffbbee2c95428f44ea85222e460d0d213" -dependencies = [ - "libc", - "winapi", -] - [[package]] name = "palette" version = "0.6.0" @@ -2458,19 +2287,6 @@ dependencies = [ "miniz_oxide 0.3.7", ] -[[package]] -name = "polling" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "685404d509889fade3e86fe3a5803bca2ec09b0c0778d5ada6ec8bf7a8de5259" -dependencies = [ - "cfg-if 1.0.0", - "libc", - "log", - "wepoll-ffi", - "winapi", -] - [[package]] name = "ppv-lite86" version = "0.2.16" @@ -2700,17 +2516,6 @@ dependencies = [ "bitflags", ] -[[package]] -name = "redox_users" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de0737333e7a9502c789a36d7c7fa6092a49895d4faa31ca5df163857ded2e9d" -dependencies = [ - "getrandom 0.1.16", - "redox_syscall 0.1.57", - "rust-argon2", -] - [[package]] name = "redox_users" version = "0.4.0" @@ -2789,18 +2594,6 @@ dependencies = [ "libusb1-sys", ] -[[package]] -name = "rust-argon2" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b18820d944b33caa75a71378964ac46f58517c92b6ae5f762636247c09e78fb" -dependencies = [ - "base64", - "blake2b_simd", - "constant_time_eq", - "crossbeam-utils", -] - [[package]] name = "rustc_version" version = "0.3.3" @@ -2995,7 +2788,7 @@ dependencies = [ "cfg-if 0.1.10", "libudev", "mach 0.2.3", - "nix 0.16.1", + "nix", "regex", "winapi", ] @@ -3033,13 +2826,14 @@ dependencies = [ ] [[package]] -name = "shared_child" -version = "0.3.5" +name = "simple-logging" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6be9f7d5565b1483af3e72975e2dee33879b3b86bd48c0929fccf6585d79e65a" +checksum = "b00d48e85675326bb182a2286ea7c1a0b264333ae10f27a937a72be08628b542" dependencies = [ - "libc", - "winapi", + "lazy_static", + "log", + "thread-id", ] [[package]] @@ -3064,6 +2858,7 @@ dependencies = [ "futures", "futures-util", "hyper", + "ipconfig", "log", "palette", "path-clean", @@ -3071,6 +2866,7 @@ dependencies = [ "serde", "serde_json", "serialport", + "simple-logging", "tauri", "tauri-build", "tokio", @@ -3127,12 +2923,6 @@ dependencies = [ "loom", ] -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - [[package]] name = "string_cache" version = "0.8.2" @@ -3177,15 +2967,6 @@ version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aaf86bbcfd1fa9670b7a129f64fc0c9fcbbfe4f1bc4210e9e98fe71ffc12cde2" -[[package]] -name = "strum" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7ac893c7d471c8a21f31cfe213ec4f6d9afeed25537c772e08ef3f005f8729e" -dependencies = [ - "strum_macros 0.22.0", -] - [[package]] name = "strum_macros" version = "0.18.0" @@ -3210,18 +2991,6 @@ dependencies = [ "syn", ] -[[package]] -name = "strum_macros" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "339f799d8b549e3744c7ac7feb216383e4005d94bdb22561b3ab8f3b808ae9fb" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "subtle" version = "2.4.1" @@ -3330,7 +3099,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "79a0579dcc6fb883fe90dd3c66d76b8b8f4a1786e1e915e314b2017a500ede09" dependencies = [ "attohttpc", - "base64", "bincode", "cfg_aliases", "dirs-next", @@ -3343,12 +3111,8 @@ dependencies = [ "gtk", "http", "ignore", - "minisign-verify", - "notify-rust", "once_cell", "open", - "os_info", - "os_pipe", "percent-encoding", "rand 0.8.4", "raw-window-handle 0.3.4", @@ -3357,7 +3121,6 @@ dependencies = [ "serde", "serde_json", "serde_repr", - "shared_child", "state", "tar", "tauri-macros", @@ -3553,6 +3316,17 @@ dependencies = [ "syn", ] +[[package]] +name = "thread-id" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7fbf4c9d56b320106cd64fd024dadfa0be7cb4706725fc44a7d7ce952d820c1" +dependencies = [ + "libc", + "redox_syscall 0.1.57", + "winapi", +] + [[package]] name = "thread_local" version = "1.1.4" @@ -4031,15 +3805,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "wepoll-ffi" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d743fdedc5c64377b5fc2bc036b01c7fd642205a0d96356034ae3404d49eb7fb" -dependencies = [ - "cc", -] - [[package]] name = "widestring" version = "0.5.1" @@ -4084,41 +3849,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] -name = "windows" -version = "0.24.0" +name = "winreg" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9f39345ae0c8ab072c0ac7fe8a8b411636aa34f89be19ddd0d9226544f13944" +checksum = "0120db82e8a1e0b9fb3345a539c478767c0048d842860994d96113d5b667bd69" dependencies = [ - "windows_i686_gnu", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_msvc", + "winapi", ] -[[package]] -name = "windows_i686_gnu" -version = "0.24.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0866510a3eca9aed73a077490bbbf03e5eaac4e1fd70849d89539e5830501fd" - -[[package]] -name = "windows_i686_msvc" -version = "0.24.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf0ffed56b7e9369a29078d2ab3aaeceea48eb58999d2cff3aa2494a275b95c6" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.24.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "384a173630588044205a2993b6864a2f56e5a8c1e7668c07b93ec18cf4888dc4" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.24.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bd8f062d8ca5446358159d79a90be12c543b3a965c847c8f3eedf14b321d399" - [[package]] name = "winres" version = "0.1.12" @@ -4128,17 +3866,6 @@ dependencies = [ "toml", ] -[[package]] -name = "winrt-notification" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "007a0353840b23e0c6dc73e5b962ff58ed7f6bc9ceff3ce7fe6fbad8d496edf4" -dependencies = [ - "strum 0.22.0", - "windows", - "xml-rs", -] - [[package]] name = "wry" version = "0.12.2" @@ -4189,47 +3916,6 @@ dependencies = [ "libc", ] -[[package]] -name = "xml-rs" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2d7d3948613f75c98fd9328cfdcc45acc4d360655289d0a7d4ec931392200a3" - -[[package]] -name = "zbus" -version = "1.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2326acc379a3ac4e34b794089f5bdb17086bf29a5fdf619b7b4cc772dc2e9dad" -dependencies = [ - "async-io", - "byteorder", - "derivative", - "enumflags2", - "fastrand", - "futures", - "nb-connect", - "nix 0.17.0", - "once_cell", - "polling", - "scoped-tls", - "serde", - "serde_repr", - "zbus_macros", - "zvariant", -] - -[[package]] -name = "zbus_macros" -version = "1.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a482c56029e48681b89b92b5db3c446db0915e8dd1052c0328a574eda38d5f93" -dependencies = [ - "proc-macro-crate 0.1.5", - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "zip" version = "0.5.13" @@ -4272,29 +3958,3 @@ dependencies = [ "cc", "libc", ] - -[[package]] -name = "zvariant" -version = "2.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a68c7b55f2074489b7e8e07d2d0a6ee6b4f233867a653c664d8020ba53692525" -dependencies = [ - "byteorder", - "enumflags2", - "libc", - "serde", - "static_assertions", - "zvariant_derive", -] - -[[package]] -name = "zvariant_derive" -version = "2.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4ca5e22593eb4212382d60d26350065bf2a02c34b85bc850474a74b589a3de9" -dependencies = [ - "proc-macro-crate 1.1.0", - "proc-macro2", - "quote", - "syn", -] diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index ba75e33..6a8d56e 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -15,12 +15,12 @@ build = "src/build.rs" tauri-build = { version = "1.0.0-beta.4" } [dependencies] - serde_json = "1.0" serde = { version = "1.0", features = ["derive"] } log = "0.4.14" env_logger = "0.9.0" -tauri = { version = "1.0.0-beta.8", features = ["api-all", "system-tray"] } +simple-logging = "2.0.2" +tauri = { version = "1.0.0-beta.8", features = ["shell-open", "system-tray"] } futures = "0.3.19" futures-util = "0.3.19" @@ -34,6 +34,7 @@ serialport = "4.0.1" vigem-client = "0.1.1" palette = "0.6.0" winapi = "0.3.9" +ipconfig = "0.3.0" hyper = { version="0.14.16", features= ["server", "http1", "http2", "tcp", "stream", "runtime"] } path-clean = "0.1.0" diff --git a/src-tauri/icons/icon.ico b/src-tauri/icons/icon.ico index 47e3805592d697f878471e0ca4841ba24c5ccfb8..560691d7994a5e1a6a9afe408266a732c86d25ba 100644 GIT binary patch literal 15406 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 literal 6347 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: &AppHandle) { - handle.emit_all("ackShow", ""); + handle.emit_all("ackShow", "").ok(); handle.get_window("main").unwrap().show().ok(); } fn hide_window(handle: &AppHandle) { - handle.emit_all("ackHide", ""); + handle.emit_all("ackHide", "").ok(); handle.get_window("main").unwrap().hide().ok(); } @@ -33,9 +32,14 @@ fn quit_app() { fn main() { // Setup logger - env_logger::Builder::new() - .filter_level(log::LevelFilter::Debug) - .init(); + // env_logger::Builder::new() + // .filter_level(log::LevelFilter::Debug) + // .init(); + simple_logging::log_to_file( + slider_io::Config::get_log_file_path().unwrap().as_path(), + log::LevelFilter::Debug, + ) + .unwrap(); let config = Arc::new(Mutex::new(Some(slider_io::Config::default()))); let manager = Arc::new(Mutex::new(slider_io::Manager::new())); @@ -105,12 +109,17 @@ fn main() { Some(config_handle.as_ref().unwrap().raw.as_str().to_string()), ) .unwrap(); + + let ips = slider_io::list_ips(); + if let Ok(ips) = ips { + app_handle.emit_all("listIps", &ips).unwrap(); + } }); // UI update event let app_handle = app.handle(); let manager_clone = Arc::clone(&manager); - app.listen_global("queryState", move |event| { + app.listen_global("queryState", move |_| { // app_handle.emit_all("showState", "@@@"); let snapshot = { let manager_handle = manager_clone.lock().unwrap(); @@ -118,7 +127,7 @@ fn main() { }; match snapshot { Some(snapshot) => { - app_handle.emit_all("showState", snapshot); + app_handle.emit_all("showState", snapshot).ok(); } _ => {} } diff --git a/src-tauri/src/lib.rs b/src-tauri/src/oldlib.rs similarity index 100% rename from src-tauri/src/lib.rs rename to src-tauri/src/oldlib.rs diff --git a/src-tauri/src/slider_io/config.rs b/src-tauri/src/slider_io/config.rs index 40f2977..1dc60a2 100644 --- a/src-tauri/src/slider_io/config.rs +++ b/src-tauri/src/slider_io/config.rs @@ -153,8 +153,18 @@ impl Config { .unwrap() } + pub fn get_log_file_path() -> Option> { + let project_dir = ProjectDirs::from("me", "ress.imp", "slidershim").unwrap(); + let config_dir = project_dir.config_dir(); + fs::create_dir_all(config_dir).unwrap(); + + let log_path = config_dir.join("log.txt"); + + return Some(Box::new(log_path)); + } + fn get_saved_path() -> Option> { - let project_dir = ProjectDirs::from("me", "imp.ress", "slidershim").unwrap(); + let project_dir = ProjectDirs::from("me", "ress.imp", "slidershim").unwrap(); let config_dir = project_dir.config_dir(); fs::create_dir_all(config_dir).unwrap(); diff --git a/src-tauri/src/slider_io/context.rs b/src-tauri/src/slider_io/context.rs index cb8f4e6..0b37b8c 100644 --- a/src-tauri/src/slider_io/context.rs +++ b/src-tauri/src/slider_io/context.rs @@ -2,7 +2,7 @@ use log::info; use crate::slider_io::{ brokenithm::BrokenithmJob, - config::{Config, DeviceMode}, + config::{Config, DeviceMode, LedMode, OutputMode}, controller_state::FullState, device::HidDeviceJob, led::LedJob, @@ -16,8 +16,8 @@ pub struct Context { config: Config, device_worker: Option, brokenithm_worker: Option, - output_worker: ThreadWorker, - led_worker: ThreadWorker, + output_worker: Option, + led_worker: Option, } impl Context { @@ -30,6 +30,7 @@ impl Context { let state = FullState::new(); let (device_worker, brokenithm_worker) = match &config.device_mode { + DeviceMode::None => (None, None), DeviceMode::Brokenithm { ground_only } => ( None, Some(AsyncWorker::new( @@ -37,16 +38,28 @@ impl Context { BrokenithmJob::new(&state, ground_only), )), ), - other => ( + _ => ( Some(ThreadWorker::new( "device", - HidDeviceJob::from_config(&state, other), + HidDeviceJob::from_config(&state, &config.device_mode), )), None, ), }; - let output_worker = ThreadWorker::new("output", OutputJob::new(&state, &config.output_mode)); - let led_worker = ThreadWorker::new("led", LedJob::new(&state, &config.led_mode)); + let output_worker = match &config.output_mode { + OutputMode::None => None, + _ => Some(ThreadWorker::new( + "output", + OutputJob::new(&state, &config.output_mode), + )), + }; + let led_worker = match &config.led_mode { + LedMode::None => None, + _ => Some(ThreadWorker::new( + "led", + LedJob::new(&state, &config.led_mode), + )), + }; Self { state, diff --git a/src-tauri/src/slider_io/mod.rs b/src-tauri/src/slider_io/mod.rs index 9469911..f40ac2f 100644 --- a/src-tauri/src/slider_io/mod.rs +++ b/src-tauri/src/slider_io/mod.rs @@ -18,3 +18,4 @@ mod manager; pub use config::Config; pub use manager::Manager; +pub use utils::list_ips; diff --git a/src-tauri/src/slider_io/utils.rs b/src-tauri/src/slider_io/utils.rs index 32f1665..13f6017 100644 --- a/src-tauri/src/slider_io/utils.rs +++ b/src-tauri/src/slider_io/utils.rs @@ -33,3 +33,14 @@ impl Error for ShimError { "shimError" } } + +pub fn list_ips() -> Result, Box> { + let mut ips = vec![]; + for adapter in ipconfig::get_adapters()? { + for ip_address in adapter.ip_addresses() { + ips.push(format!("{}", ip_address)); + } + } + + Ok(ips) +} diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index dc22f70..f05550d 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -13,7 +13,7 @@ "bundle": { "active": true, "targets": "all", - "identifier": "com.tauri.dev", + "identifier": "me.ress.imp.slidershim", "icon": [ "icons/32x32.png", "icons/128x128.png", @@ -51,13 +51,16 @@ "active": false }, "allowlist": { - "all": true + "all": false, + "shell": { + "open": true + } }, "windows": [ { "title": "slidershim", "width": 500, - "height": 400, + "height": 500, "resizable": false, "fullscreen": false } diff --git a/src/App.svelte b/src/App.svelte index ba354eb..3e0f64d 100644 --- a/src/App.svelte +++ b/src/App.svelte @@ -2,6 +2,7 @@ import { onMount } from "svelte"; import { emit, listen } from "@tauri-apps/api/event"; + import Link from "./Link.svelte"; import Preview from "./Preview.svelte"; let deviceMode = "none"; @@ -14,8 +15,15 @@ let ledWebsocketUrl = "http://localhost:3001"; let ledSerialPort = "COM5"; - let debugstr = ""; + let dirty = false; + function markDirty() { + dirty = true; + } + + // let debugstr = ""; + + let ips: Array = []; let polling = null; let tick = 0; let previewData = Array(131).fill(0); @@ -37,7 +45,6 @@ onMount(async () => { // console.log(emit, listen); await listen("showConfig", (event) => { - debugstr = event.payload; const payload: any = JSON.parse(event.payload as any); deviceMode = payload.deviceMode || "none"; outputMode = payload.outputMode || "none"; @@ -51,7 +58,13 @@ }); await listen("showState", (event) => { - previewData = event.payload; + previewData = event.payload as any; + }); + + await listen("listIps", (event) => { + ips = (event.payload as Array).filter( + (x) => x.split(".").length == 4 + ); }); await emit("ready", ""); @@ -82,6 +95,7 @@ ledSerialPort, }) ); + dirty = false; console.log("Done"); } @@ -110,31 +124,53 @@
Input Device
- - +
+ {#if deviceMode.slice(0, 10) === "brokenithm"} +
+
+
+ Brokenithm open at: +
+          {ips.map((x) => `http://${x}:1606/`).join("\n")}
+        
+
+
+ {/if}
Output Mode
- - + +
- {#if outputMode.slice(0, 2) === "kb"} + {#if outputMode === "gamepad-voltex"} +
+
+
+ Gamepad emulation requires ViGEMBus +
+
+ {/if} + {#if outputMode.slice(0, 2) === "kb" && deviceMode.slice(0, 10) !== "brokenithm"}
Sensitivity
@@ -144,6 +180,7 @@ max="255" step="1" bind:value={keyboardSensitivity} + on:change={markDirty} />
@@ -156,6 +193,7 @@ max="255" step="1" bind:value={keyboardSensitivity} + on:change={markDirty} />
@@ -164,27 +202,30 @@
Output URL
- +
{/if}
LED Mode
- - - +
- {#if ledMode.slice(0, 8) === "reactive"} + {#if ledMode.slice(0, 8) === "reactive" && deviceMode.slice(0, 10) !== "brokenithm"}
Sensitivity
@@ -194,6 +235,7 @@ max="255" step="1" bind:value={ledSensitivity} + on:change={markDirty} />
@@ -206,6 +248,7 @@ max="255" step="1" bind:value={ledSensitivity} + on:change={markDirty} /> @@ -214,15 +257,28 @@
LED URL
- +
{/if} {#if ledMode === "serial"} +
+
+
+ Serial LED may require com0com +
+
LED Serial Port
- @@ -237,7 +293,10 @@
{/if}
- +
diff --git a/src/Link.svelte b/src/Link.svelte new file mode 100644 index 0000000..3b83b41 --- /dev/null +++ b/src/Link.svelte @@ -0,0 +1,13 @@ + + + { + e.preventDefault(); + await open(href); + }}>