diff --git a/src/backend/openvr/mod.rs b/src/backend/openvr/mod.rs index 95e01a5..1c405cf 100644 --- a/src/backend/openvr/mod.rs +++ b/src/backend/openvr/mod.rs @@ -324,7 +324,7 @@ pub fn openvr_run(running: Arc, show_by_default: bool) -> Result<(), #[cfg(feature = "osc")] if let Some(ref mut sender) = osc_sender { - let _ = sender.send_params(&overlays); + let _ = sender.send_params(&overlays, &state); // i love inconsistent naming; in openxr.rs `state` is called `app_state` }; #[cfg(feature = "wayvr")] diff --git a/src/backend/openxr/mod.rs b/src/backend/openxr/mod.rs index 198093e..3a7f900 100644 --- a/src/backend/openxr/mod.rs +++ b/src/backend/openxr/mod.rs @@ -304,7 +304,7 @@ pub fn openxr_run(running: Arc, show_by_default: bool) -> Result<(), #[cfg(feature = "osc")] if let Some(ref mut sender) = osc_sender { - let _ = sender.send_params(&overlays); + let _ = sender.send_params(&overlays, &app_state); }; let (_, views) = xr_state.session.locate_views( diff --git a/src/backend/osc.rs b/src/backend/osc.rs index 6c16199..9fdb138 100644 --- a/src/backend/osc.rs +++ b/src/backend/osc.rs @@ -8,6 +8,11 @@ use rosc::{OscMessage, OscPacket, OscType}; use crate::overlays::{keyboard::KEYBOARD_NAME, watch::WATCH_NAME}; +use crate::{ + backend::input::{TrackedDevice, TrackedDeviceRole}, + state::{AppState}, +}; + use super::common::OverlayContainer; pub struct OscSender { @@ -46,7 +51,7 @@ impl OscSender { Ok(()) } - pub fn send_params(&mut self, overlays: &OverlayContainer) -> anyhow::Result<()> + pub fn send_params(&mut self, overlays: &OverlayContainer, app: &AppState) -> anyhow::Result<()> where D: Default, { @@ -90,6 +95,32 @@ impl OscSender { vec![OscType::Int(num_overlays)], )?; + // battery levels + let mut tracker_idx = 0; + + let devices = &app.input_state.devices; + for device in devices { + match device.role { + TrackedDeviceRole::None => { + + } + TrackedDeviceRole::Hmd => { + + } + TrackedDeviceRole::LeftHand => { + + } + TrackedDeviceRole::RightHand => { + + } + TrackedDeviceRole::Tracker => { + + tracker_idx += 1; + } + } + } + + Ok(()) } }