From 815720cebc5058c6e74234ec5c5b78a649d5d356 Mon Sep 17 00:00:00 2001 From: reng Date: Wed, 27 Aug 2025 19:21:24 +0800 Subject: [PATCH] update --- package-lock.json | 10 + package.json | 1 + public/assets/bg-01 (小束袋)_pause.mp3 | Bin 0 -> 130569 bytes public/cuelist.json | 16 +- src-tauri/2 | 7 + src-tauri/Cargo.lock | 302 ++++++++++++++++++++ src-tauri/Cargo.toml | 2 + src-tauri/capabilities/default.json | 9 +- src-tauri/src/lib.rs | 80 +++++- src/App.jsx | 188 ++++++------ src/utils/constant.js | 12 + src/utils/settings.js | 0 12 files changed, 509 insertions(+), 118 deletions(-) create mode 100644 public/assets/bg-01 (小束袋)_pause.mp3 create mode 100644 src-tauri/2 create mode 100644 src/utils/constant.js create mode 100644 src/utils/settings.js diff --git a/package-lock.json b/package-lock.json index aeff80c..44b582c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,6 +10,7 @@ "dependencies": { "@tailwindcss/vite": "^4.1.12", "@tauri-apps/api": "^2", + "@tauri-apps/plugin-log": "^2.6.0", "@tauri-apps/plugin-opener": "^2", "howler": "^2.2.4", "react": "^19.1.0", @@ -1547,6 +1548,15 @@ "node": ">= 10" } }, + "node_modules/@tauri-apps/plugin-log": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-log/-/plugin-log-2.6.0.tgz", + "integrity": "sha512-gVp3l31akA1Jk2bZsTA0hMFD5/gLe49Nw1btu5lViau0QqgC2XyT79LSwvy7a44ewtQbSexchqIg7oTJKMIbXQ==", + "license": "MIT OR Apache-2.0", + "dependencies": { + "@tauri-apps/api": "^2.6.0" + } + }, "node_modules/@tauri-apps/plugin-opener": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-opener/-/plugin-opener-2.4.0.tgz", diff --git a/package.json b/package.json index c87dd08..299609c 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ "dependencies": { "@tailwindcss/vite": "^4.1.12", "@tauri-apps/api": "^2", + "@tauri-apps/plugin-log": "^2.6.0", "@tauri-apps/plugin-opener": "^2", "howler": "^2.2.4", "react": "^19.1.0", diff --git a/public/assets/bg-01 (小束袋)_pause.mp3 b/public/assets/bg-01 (小束袋)_pause.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..c9cd875a63c7e4b3108c0bc45cb1b0cbfa360ce8 GIT binary patch literal 130569 zcmdRUWmH?iw{L&|0fGm&;K7~Z8rGD3)n9m*V z^`nL7UmUh#9ZhOJ-7i~<0gyUPEkor)g(SoC5N6b7)6@Ny^%6G z6c7%}cK$Ybpps+XAW29VPbjK<=>9&IPqodAUorcyJo}zY%c)!|r?LaCU&7z3jg2yq2QOOt)yfrcdQNcref4%74}SEY|FMcb3J>%{E6}~+JHK;4RJa3YS^+qke&1dcv_Q*(X4` zfeZ;Bh2v#f>!#Cxb!V-A9cDecxb_v@CDU+dWlaodb`>}hx?AC?Wpoe7?=%|SK9D#5 zQ}Tsu_X3TK++w+B(|&;)M#S4AY5)MiX<`(?k=hzL+6$Xv9n${wvJ2>C$E>$0BjPV@G|V4T>HA_FCRA;u@!eJRsOsCXP0qPcfrG+1;23r^k9 zLW711nHTVvC6tqMnq=72FyFZRk~Dy15ham${Q1#7x#sf~hllOM8%k1EUWeCBjg}Cw z)QczpRzXJ~Uh_v9nKYDggRzK&zRfkDR8RtxJYTPz|%jimqV=MMmXne^;?2k5ie#r?Ji zKq6D}d~tPz-7f&Jd-IH6RWYQ{Q`<1sdcmdahi*$ZIUeIbv8(KR0O!rxzi(IWQ5nU1 zzPu}|6*j%Gd+K}8U#q-Qu*;EbisNvWLc*tBh<`QB^Z>Q8^AsD3qFJmkrGZoCdH#9*!~56;p2(aE7eXE4YoPZ{v<@% zN}m7AE+|js*E#u*79%pR!~REzJzmiX(YDyfgM^r^D|pve~Dt$bIa#}1RV z&{;Jg)GTV&WolL$vLYSwBp5*9k&+HF9ZpmnfJR2j!DTV}H5*{6ESZ>SSjapf>DKH* zPxmF(7YL$}m)iGTO20{@90JLXk%&q?)qb=iU`|M7ZTSFTj(MTiHWnfOV1knlEBk0N z^*3?T!Uex!TGSX6DNGQjMWcu^56@@~}!(Z-)_y4hS^4j7Kfuw_GsEg9z^K6~}H8f036mnk65W

vi$ZYu5dlC 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 literal 0 HcmV?d00001 diff --git a/public/cuelist.json b/public/cuelist.json index 583427c..22fe148 100644 --- a/public/cuelist.json +++ b/public/cuelist.json @@ -5,8 +5,7 @@ "name": "Q1", "type": "bg", "description": "preset bg", - "audioFile": "assets/bg-02.mp3", - "loop": true, + "audioCue": "Q0", "clientCue":"Q1" }, { @@ -14,8 +13,7 @@ "name": "Q2", "type": "announce", "description": "announce", - "audioFile": "assets/bg-01 (小束袋).mp3", - "loop": true, + "audioCue": "Q2", "status":"reset" }, @@ -24,8 +22,7 @@ "name": "Q3", "type": "bg", "description": "during bg", - "loop": true, - "audioFile": "assets/bg-04.mp3", + "audioCue": "Q3", "clientCue":"Q2" }, { @@ -33,16 +30,17 @@ "name": "Q3.1", "type": "light", "description": "fade out light", - "callback": "fade_out_light" + "lightCue": "fade_out_light" }, { "id": 4, "name": "Q4", "type": "bg", "description": "Ending", - "audioFile": "assets/record-05.mp3", + "audioCue": "Q6", "status":"end", - "callback":"fade_in_light" + "lightCue":"fade_in_light", + "clientCue":"Q6" } ] } diff --git a/src-tauri/2 b/src-tauri/2 new file mode 100644 index 0000000..2dc9b3c --- /dev/null +++ b/src-tauri/2 @@ -0,0 +1,7 @@ + +added 1 package, and audited 166 packages in 3s + +23 packages are looking for funding + run `npm fund` for details + +found 0 vulnerabilities diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index edca882..1447aa2 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -17,6 +17,17 @@ version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" +[[package]] +name = "ahash" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" +dependencies = [ + "getrandom 0.2.16", + "once_cell", + "version_check", +] + [[package]] name = "aho-corasick" version = "1.1.3" @@ -47,6 +58,23 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" +[[package]] +name = "android_log-sys" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84521a3cf562bc62942e294181d9eef17eb38ceb8c68677bc49f144e4c3d4f8d" + +[[package]] +name = "android_logger" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbb4e440d04be07da1f1bf44fb4495ebd58669372fe0cffa6e48595ac5bd88a3" +dependencies = [ + "android_log-sys", + "env_filter", + "log", +] + [[package]] name = "android_system_properties" version = "0.1.5" @@ -62,6 +90,12 @@ version = "1.0.99" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100" +[[package]] +name = "arrayvec" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" + [[package]] name = "async-broadcast" version = "0.7.2" @@ -270,6 +304,18 @@ dependencies = [ "serde", ] +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + [[package]] name = "block-buffer" version = "0.10.4" @@ -310,6 +356,29 @@ dependencies = [ "piper", ] +[[package]] +name = "borsh" +version = "1.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad8646f98db542e39fc66e68a20b2144f6a732636df7c2354e74645faaa433ce" +dependencies = [ + "borsh-derive", + "cfg_aliases", +] + +[[package]] +name = "borsh-derive" +version = "1.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdd1d3c0c2f5833f22386f252fe8ed005c7f59fdcddeef025c01b4c3b9fd9ac3" +dependencies = [ + "once_cell", + "proc-macro-crate 3.3.0", + "proc-macro2", + "quote", + "syn 2.0.106", +] + [[package]] name = "brotli" version = "8.0.2" @@ -337,6 +406,39 @@ version = "3.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" +[[package]] +name = "byte-unit" +version = "5.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1cd29c3c585209b0cbc7309bfe3ed7efd8c84c21b7af29c8bfae908f8777174" +dependencies = [ + "rust_decimal", + "serde", + "utf8-width", +] + +[[package]] +name = "bytecheck" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23cdc57ce23ac53c931e88a43d06d070a6fd142f2617be5855eb75efc9beb1c2" +dependencies = [ + "bytecheck_derive", + "ptr_meta", + "simdutf8", +] + +[[package]] +name = "bytecheck_derive" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "bytemuck" version = "1.23.2" @@ -510,11 +612,13 @@ name = "control-panel" version = "0.1.0" dependencies = [ "dotenv", + "log", "rosc", "serde", "serde_json", "tauri", "tauri-build", + "tauri-plugin-log", "tauri-plugin-opener", "tokio", ] @@ -883,6 +987,16 @@ dependencies = [ "syn 2.0.106", ] +[[package]] +name = "env_filter" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "186e05a59d4c50738528153b83b0b0194d3a29507dfec16eccd4b342903397d0" +dependencies = [ + "log", + "regex", +] + [[package]] name = "equivalent" version = "1.0.2" @@ -945,6 +1059,15 @@ dependencies = [ "simd-adler32", ] +[[package]] +name = "fern" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4316185f709b23713e41e3195f90edef7fb00c3ed4adc79769cf09cc762a3b29" +dependencies = [ + "log", +] + [[package]] name = "field-offset" version = "0.3.6" @@ -1007,6 +1130,12 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + [[package]] name = "futf" version = "0.1.5" @@ -1413,6 +1542,9 @@ name = "hashbrown" version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +dependencies = [ + "ahash", +] [[package]] name = "hashbrown" @@ -1954,6 +2086,9 @@ name = "log" version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" +dependencies = [ + "value-bag", +] [[package]] name = "mac" @@ -2163,6 +2298,15 @@ dependencies = [ "syn 2.0.106", ] +[[package]] +name = "num_threads" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9" +dependencies = [ + "libc", +] + [[package]] name = "objc-sys" version = "0.3.5" @@ -2809,6 +2953,26 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "ptr_meta" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1" +dependencies = [ + "ptr_meta_derive", +] + +[[package]] +name = "ptr_meta_derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "quick-xml" version = "0.38.1" @@ -2833,6 +2997,12 @@ version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + [[package]] name = "rand" version = "0.7.3" @@ -2989,6 +3159,15 @@ version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" +[[package]] +name = "rend" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71fe3824f5629716b1589be05dacd749f6aa084c87e00e016714a8cdfccc997c" +dependencies = [ + "bytecheck", +] + [[package]] name = "reqwest" version = "0.12.23" @@ -3024,6 +3203,35 @@ dependencies = [ "web-sys", ] +[[package]] +name = "rkyv" +version = "0.7.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9008cd6385b9e161d8229e1f6549dd23c3d022f132a2ea37ac3a10ac4935779b" +dependencies = [ + "bitvec", + "bytecheck", + "bytes", + "hashbrown 0.12.3", + "ptr_meta", + "rend", + "rkyv_derive", + "seahash", + "tinyvec", + "uuid", +] + +[[package]] +name = "rkyv_derive" +version = "0.7.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "503d1d27590a2b0a3a4ca4c94755aa2875657196ecbf401a42eff41d7de532c0" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "rosc" version = "0.11.4" @@ -3035,6 +3243,22 @@ dependencies = [ "time", ] +[[package]] +name = "rust_decimal" +version = "1.37.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b203a6425500a03e0919c42d3c47caca51e79f1132046626d2c8871c5092035d" +dependencies = [ + "arrayvec", + "borsh", + "bytes", + "num-traits", + "rand 0.8.5", + "rkyv", + "serde", + "serde_json", +] + [[package]] name = "rustc-demangle" version = "0.1.26" @@ -3141,6 +3365,12 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" +[[package]] +name = "seahash" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" + [[package]] name = "selectors" version = "0.24.0" @@ -3359,6 +3589,12 @@ version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" +[[package]] +name = "simdutf8" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" + [[package]] name = "siphasher" version = "0.3.11" @@ -3601,6 +3837,12 @@ dependencies = [ "syn 2.0.106", ] +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + [[package]] name = "target-lexicon" version = "0.12.16" @@ -3739,6 +3981,28 @@ dependencies = [ "walkdir", ] +[[package]] +name = "tauri-plugin-log" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a59139183e0907cec1499dddee4e085f5a801dc659efa0848ee224f461371426" +dependencies = [ + "android_logger", + "byte-unit", + "fern", + "log", + "objc2 0.6.2", + "objc2-foundation 0.3.1", + "serde", + "serde_json", + "serde_repr", + "swift-rs", + "tauri", + "tauri-plugin", + "thiserror 2.0.15", + "time", +] + [[package]] name = "tauri-plugin-opener" version = "2.4.0" @@ -3933,7 +4197,9 @@ checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40" dependencies = [ "deranged", "itoa", + "libc", "num-conv", + "num_threads", "powerfmt", "serde", "time-core", @@ -3966,6 +4232,21 @@ dependencies = [ "zerovec", ] +[[package]] +name = "tinyvec" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + [[package]] name = "tokio" version = "1.47.1" @@ -4301,6 +4582,12 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" +[[package]] +name = "utf8-width" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86bd8d4e895da8537e5315b8254664e6b769c4ff3db18321b297a1e7004392e3" + [[package]] name = "utf8_iter" version = "1.0.4" @@ -4319,6 +4606,12 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "value-bag" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "943ce29a8a743eb10d6082545d861b24f9d1b160b7d741e0f2cdf726bec909c5" + [[package]] name = "version-compare" version = "0.2.0" @@ -5032,6 +5325,15 @@ dependencies = [ "x11-dl", ] +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + [[package]] name = "x11" version = "2.21.0" diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 8936e55..ccbb345 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -25,3 +25,5 @@ serde_json = "1" rosc = "0.11.4" tokio = { version = "1.45.1", features = ["net"] } dotenv = "0.15.0" +tauri-plugin-log = "2" +log = "0.4.27" diff --git a/src-tauri/capabilities/default.json b/src-tauri/capabilities/default.json index 4cdbf49..bf2c212 100644 --- a/src-tauri/capabilities/default.json +++ b/src-tauri/capabilities/default.json @@ -2,9 +2,12 @@ "$schema": "../gen/schemas/desktop-schema.json", "identifier": "default", "description": "Capability for the main window", - "windows": ["main"], + "windows": [ + "main" + ], "permissions": [ "core:default", - "opener:default" + "opener:default", + "log:default" ] -} +} \ No newline at end of file diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 84b211f..55cff7d 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -1,8 +1,15 @@ // Learn more about Tauri commands at https://tauri.app/develop/calling-rust/ -use tokio::net::UdpSocket; -use std::{net::SocketAddrV4, str::FromStr}; use rosc::{encoder, OscMessage, OscPacket, OscType}; +use serde::Serialize; +use std::{net::SocketAddrV4, str::FromStr}; +use tauri::{AppHandle, Emitter, Manager}; +use tokio::net::UdpSocket; +#[derive(Serialize, Clone)] +struct OscEvent { + addr: String, + args: Vec, +} #[tauri::command] fn greet(name: &str) -> String { @@ -12,15 +19,25 @@ fn greet(name: &str) -> String { #[cfg_attr(mobile, tauri::mobile_entry_point)] pub fn run() { tauri::Builder::default() + .plugin(tauri_plugin_log::Builder::new().build()) .plugin(tauri_plugin_opener::init()) - .invoke_handler(tauri::generate_handler![ - send_osc_message, - ]) + .invoke_handler(tauri::generate_handler![send_osc_message,]) + .setup(|app| { + // if cfg!(debug_assertions) { + // app.handle().plugin( + // tauri_plugin_log::Builder::default() + // .level(log::LevelFilter::Info) + // .build(), + // )?; + // } + + tauri::async_runtime::spawn(setup_osc_server(app.handle().clone())); + Ok(()) + }) .run(tauri::generate_context!()) .expect("error while running tauri application"); } - #[tauri::command] async fn send_osc_message( key: &str, @@ -43,4 +60,53 @@ async fn send_osc_message( sock.send_to(&msg_buf, remote).await.unwrap(); Ok(()) -} \ No newline at end of file +} + +async fn setup_osc_server(app_handle: AppHandle) { + println!("Setting up OSC server..."); + // setup osc sever + let addr = "0.0.0.0:7000"; + let sock = UdpSocket::bind(addr).await.unwrap(); + println!("Listening to {}", addr); + + let mut buf = [0u8; rosc::decoder::MTU]; + + loop { + match sock.recv_from(&mut buf).await { + Ok((size, addr)) => { + println!("Received packet with size {} from: {}", size, addr); + if let Ok((_, packet)) = rosc::decoder::decode_udp(&buf[..size]) { + if let OscPacket::Message(msg) = packet { + println!("OSC message: {:?}", msg); + + app_handle + .emit( + "osc_message", + OscEvent { + addr: msg.addr.clone(), + args: msg + .args + .iter() + .map(|arg| match arg { + OscType::Int(i) => i.to_string(), + OscType::Float(f) => f.to_string(), + OscType::String(s) => s.clone(), + OscType::Bool(b) => b.to_string(), + _ => format!("{:?}", arg), + }) + .collect(), + }, + ) + .unwrap(); + } + } else { + println!("Failed to decode OSC packet"); + } + } + Err(e) => { + println!("Error receiving from socket: {}", e); + break; + } + } + } +} diff --git a/src/App.jsx b/src/App.jsx index 666c45c..e8255bf 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -1,7 +1,9 @@ import { useState, useEffect, useRef } from "react"; import {Howl, Howler} from 'howler'; import { invoke } from "@tauri-apps/api/core"; +import { listen } from '@tauri-apps/api/event'; import "./App.css"; +import { OSC_ADDRESS } from "./utils/constant"; const DefaultFadeDuration = 3; // 1 second @@ -20,12 +22,10 @@ const EmojiType={ function App() { const [cuelist, setCuelist] = useState([]); - const refAudioBg= useRef(null); - const refAudioAnnounce= useRef(null); - const refAudio= useRef({}); const [currentCue, setCurrentCue] = useState(null); const [fadeDuration, setFadeDuration] = useState(DefaultFadeDuration); // Default fade duration in seconds const [timestamp, setTimestamp] = useState(); + const [clientStatus, setClientStatus] = useState({}); const refCue = useRef(null); const refNextCue = useRef(null); @@ -41,116 +41,75 @@ function App() { }); } - function onfade(e){ - console.log('onfade', e); - if(refNextCue.current) { - playCue(refNextCue.current); - refNextCue.current = null; - } - if(refAudioBg.current.volume() === 0) { - refAudioBg.current.stop(); - // refAudioBg.current = null; - } + function sendOscToSound(addr, message){ - } - function onAnounceFade(e){ - console.log('onAnounceFade', e); - if(refAudioAnnounce.current.volume() === 0) { - refAudioAnnounce.current.stop(); - } + invoke('send_osc_message', { + key: addr, + message, + host:'0.0.0.0:0', + target:'192.168.234.255:58100', + }); } - function loadAudio(audioFile, loop = false, type) { - if(refAudio.current[audioFile]) { - return refAudio.current[audioFile]; + function onOsc(message){ + + const [id, status, name]= message.args[0]?.split('#'); + if(clientStatus[id]){ + setClientStatus(prev=>({ + ...prev, + [id]:[ + { + status, + name, + timestamp: new Date().toLocaleTimeString(), + }, + ...prev[id], + ] + })); + }else{ + setClientStatus(prev=>({ + ...prev, + [id]:[{ + status, + name, + timestamp: new Date().toLocaleTimeString(), + }] + })); } - const sound = new Howl({ - src: [audioFile], - volume: 1, - loop: loop, - onfade: type==CueType.Bg ? onfade : onAnounceFade, - }); - refAudio.current[audioFile] = sound; - return sound; + + + } - function playAudio(audioFile, loop = false, type) { - switch(type){ - case CueType.Bg: - refAudioBg.current = loadAudio(audioFile, loop, type); - refAudioBg.current.play(); - refAudioBg.current.fade(0, 1, fadeDuration * 1000); - break; - case CueType.Announce: - refAudioAnnounce.current = loadAudio(audioFile, loop, type); - refAudioAnnounce.current.seek(0); - refAudioAnnounce.current.volume(1); - refAudioAnnounce.current.play(); - break; - } - } + + function playCue({id, name, description, type, auto, audioFile, ...props}) { console.log('Playing cue:', {id, name, description, type, auto, audioFile, ...props}); // Handle other cue types and properties here - switch(type) { - case CueType.Bg: - if(refAudioBg.current) { - if(refAudioBg.current.volume() === 0) { - refAudioBg.current.stop(); - playAudio(audioFile, props.loop || false, type); - setCurrentCue({id, name, description, type, auto, audioFile, ...props}); - }else{ - refAudioBg.current.fade(1,0, fadeDuration * 1000); - refNextCue.current = {id, name, description, type, auto, audioFile, ...props}; - } - }else{ - playAudio(audioFile, props.loop || false, type); - setCurrentCue({id, name, description, type, auto, audioFile, ...props}); - } - break; - - case CueType.Announce: - - playAudio(audioFile, props.loop || false, type); - setCurrentCue({id, name, description, type, auto, audioFile, ...props}); - - - break; - - case CueType.Light: - // Handle light cue logic here - console.log('Light cue:', {id, name, description, ...props}); - setCurrentCue({id, name, description, type, auto, audioFile, ...props}); - break; - - default: - console.warn('Unknown cue type:', type); - - } + if(props.audioCue){ + sendOscToSound(OSC_ADDRESS.SCS_GO_CUE, props.audioCue); + } if(props.clientCue){ - sendOsc('/playcue', props.clientCue); + sendOsc(OSC_ADDRESS.PLAYCUE, props.clientCue); } + if(props.lightCue){ + // sendOsc(OSC_ADDRESS.CLIENT_INPUT, props.lightCue); + } } function stop() { - console.log('Stop all audio'); - if(refAudioBg.current) { - refAudioBg.current.fade(1,0, fadeDuration*1000); - } - if(refAudioAnnounce.current) { - refAudioAnnounce.current.fade(1,0, fadeDuration*1000); - } - - sendOsc('/stopcue',''); + console.log('Stop all'); + sendOsc(OSC_ADDRESS.STOPCUE,''); + sendOscToSound(OSC_ADDRESS.SCS_STOP_ALL, ''); } function secondToTime(seconds) { const minutes = Math.floor(seconds / 60); @@ -193,10 +152,13 @@ function App() { console.error('Error fetching cuelist:', error); }); - const intervalId = setInterval(() => { - setTimestamp(getAudioDuration()); - }, 500); - return () => clearInterval(intervalId); + + listen('osc_message', (event) => { + console.log(`Received OSC message: ${event.payload}`); + onOsc(event.payload); + }); + + },[]); @@ -228,12 +190,12 @@ function App() { Description Type Auto - Audio / Due + Due | Light | Audio clientCue - {cuelist?.map(({id, name, description, type, auto, audioFile,...props}, index) => ( + {cuelist?.map(({id, name, description, type, auto,...props}, index) => ( {type==CueType.Announce && } @@ -251,12 +213,40 @@ function App() { {description} {EmojiType[type]} {auto ? '⤵️' : ''} - {audioFile || props.duration} {props.callback && `<${props.callback}>`} + {props.duration} {props.lightCue && `L${props.lightCue}`} {props.audioCue && `S${props.audioCue}`} {props.clientCue || ''} ))} + + + + + + + + + + + + + {Object.entries(clientStatus).map(([id, log])=>( + + + + + + + + ))} + +
idstatuscuetimestampcontrol
{id}{log[0]?.status}{log[0]?.name}{log[0]?.timestamp} + + + + +
); diff --git a/src/utils/constant.js b/src/utils/constant.js new file mode 100644 index 0000000..7adf2fa --- /dev/null +++ b/src/utils/constant.js @@ -0,0 +1,12 @@ +export const OSC_ADDRESS={ + PLAYCUE: '/playcue', + STOPCUE: '/stopcue', + CLIENT_STATUS: '/client', + CLIENT_INPUT: '/client_input', + + + SCS_STOP_ALL:'/ctrl/stop_all', + SCS_FADE_ALL:'/ctrl/fade_all', + SCS_GO_CUE:'/cue/go', + +} \ No newline at end of file diff --git a/src/utils/settings.js b/src/utils/settings.js new file mode 100644 index 0000000..e69de29