Commit Graph
5 Commits
Author SHA1 Message Date
Jay 6086dcf233 osc: Add parameters for Working Sets / OVR Toolkit's Profiles (#295)
* add `lowestBattery` parameter to match the casing of other parameters

* add the following parameters:
`isEditModeActive`, `ToggleEditMode`, `currentWorkingSet`, `CurrentProfile`, and `totalWorkingSets`

* treat fully transparent overlays as "not visible"

this fixes the `isWristVisible` parameter; it was always True even when not looking at it since the watch is usually always "active", which was the only condition before.
2025-12-16 15:04:11 +00:00
Jay f54c5decb6 osc: remove headsetBattery parameter and change hmdBattery to float 0-1 to match OVR Toolkit (#278) 2025-12-01 02:42:53 +00:00
Jay 5f93bc9cac Config notification/toast sound (#179)
* try adding config to load different sound

looks like include_bytes!() doesn't take a variable parameter, so will need a different solution lol.

* no errors in loading, but toast.rs now has a lifetime issue

* hey, config toast sound works now!

the sound is loaded in AppState now, since Toast are created in several different places at different times, and i don't want to load the sound every time a toast is made.

also put back the original sound since i accidentally commited my custom one.

* clean up

* change custom toast sound leak to happen on load rather than every play

* move toast sound loading into a function

so it can be reused in the future, for example if we want to load arbitrary keypress sounds or other [u8] data.

* remove label from try_load_bytes, return early when failing
2025-03-24 11:32:29 +00:00
Jay da129b62b3 Add UI button actions to send arbitrary OSC values. (#140)
* osc: start adding osc buttons

a button action that sends an osc parameter.
struggling with borrows in openxr.rs and openvr.rs when getting the osc sender.

* osc: fix osc sender buttons

by passing a ref to the device list to send_params instead of the entire app state.

* osc: fix warnings

* osc: conditionally use OscSender crate in state.rs

* osc: fix button.rs compile errors without osc/wayvr features

* osc: add other types: int, bool, string. play thump noise when sent.

* osc: fix build without osc feature

i just want to use OscType directly, but since it doesn't derive serde::Deserialize, i can't just have one OscType action or list of actions...

* merge typed actions to one action, support multiple values.

i added a new struct OscValue that has Deserialize, and now the action just converts that to the corresponding OscType when sending the parameters.
perhaps not the most elegant solution, but it's the best i can think of without modifying the rosc crate.

* run `cargo fmt`
2025-01-26 11:23:18 +00:00
Jay c6ff314e93 OSC: Finish XSOverlay parity (#124)
* osc-battery - utilise match return value to set parameter

this just lets parameter be a `&str` instead of a `String`, and reduces repetition.

* osc-battery - fix error where trackers were 1-indexed instead of 0-indexed

* osc-battery: xsoverlay parity! add average tracker and controller battery parameters.

this should now be in parity with xsoverlay's parameters.

gone back to 1-indexing trackers because it's more user-friendly, so other programs can standardise more easily.

* osc battery: ...that was not 1-indexed.

no idea how I made that mistake but the sent tracker parameters were actually still 0-indexed.
2024-12-29 08:21:59 +00:00