* 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`
* config: add use_passthrough
* do not use ALPHA_BLEND if passthrough is off
* keyboard.yaml auto_labels
* 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.
* Update Envision section (#123)
add directions for appimage autostart
* Add Flatpak instructions (#127)
* Add Flatpak instructions
fix small inconsistencies between instructions
* Clarify Flatpak Steam setup for SteamVR and Monado/WiVRn users
* Additional instructions
* default AltLayout is None
* WayVR: IPC [1]: Local socket server, handshake receiver
* WayVR : IPC [2]: `ListDisplays`, `GetDisplay` commands
* WayVR: IPC [3]: `ListProcesses`, `TerminateProcess` commands
* WayVR: IPC [4]: Minor refactoring
* WayVR: Move IPC to separate Git repository
* Restore default features in Cargo.toml
* WayVR: Implement `WvrDisplayCreate`, Implement `WvrProcessLaunch`, Refactoring
* WayVR: Dashboard toggle support, minor refactoring
* Update Cargo.toml
* fix formatting for openxr_actions.json5
---------
Co-authored-by: galister <22305755+galister@users.noreply.github.com>
Co-authored-by: Jay <157681441+cubee-cb@users.noreply.github.com>
Co-authored-by: Marcus Howser <mhowser.git@mailbox.org>
Co-authored-by: Joshua Vandaële <joshua@vandaele.software>
* 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.
this means parameter can be immutable if left unset at initialisation, and we can use format!() macro in the match statements. silly workarounds no more!
i _understand_ now!
basically, i did it the "wrong" way first by modifying openxr.rs and openvr.rs to pass battery levels to osc, when really i could have just made osc get the pre-formatted device details from AppState. live and learn, i'm new to rust anyway.