Add OVR Toolkit OSC Parameters (#219)

* Add OVR Toolkit OSC Parameters

see: https://wiki.ovrtoolkit.co.uk/#/OSC?id=osc-integration

* max battery is probably 1.0

* cargo fmt & apply suggestion

* forgor rust is snake_case & 1f32
This commit is contained in:
Tayou
2025-06-26 10:41:34 +02:00
committed by GitHub
parent 37bb0bb281
commit f4fbb416da

View File

@@ -85,10 +85,20 @@ impl OscSender {
"/avatar/parameters/isOverlayOpen".into(), "/avatar/parameters/isOverlayOpen".into(),
vec![OscType::Bool(num_overlays > 0)], vec![OscType::Bool(num_overlays > 0)],
)?; )?;
self.send_message(
"/avatar/parameters/ToggleWindows".into(),
vec![OscType::Bool(num_overlays > 0)],
)?;
self.send_message( self.send_message(
"/avatar/parameters/isKeyboardOpen".into(), "/avatar/parameters/isKeyboardOpen".into(),
vec![OscType::Bool(has_keyboard)], vec![OscType::Bool(has_keyboard)],
)?; )?;
self.send_message(
"/avatar/parameters/ToggleKeyboard".into(),
vec![OscType::Bool(has_keyboard)],
)?;
self.send_message( self.send_message(
"/avatar/parameters/isWristVisible".into(), "/avatar/parameters/isWristVisible".into(),
vec![OscType::Bool(has_wrist)], vec![OscType::Bool(has_wrist)],
@@ -108,6 +118,8 @@ impl OscSender {
let mut tracker_total_bat = 0.0; let mut tracker_total_bat = 0.0;
let mut controller_total_bat = 0.0; let mut controller_total_bat = 0.0;
let mut lowest_battery = 1f32;
for device in devices { for device in devices {
let tracker_param; let tracker_param;
@@ -144,6 +156,8 @@ impl OscSender {
} }
}; };
lowest_battery = lowest_battery.min(level);
// send device battery parameters // send device battery parameters
self.send_message( self.send_message(
format!("/avatar/parameters/{parameter}Battery"), format!("/avatar/parameters/{parameter}Battery"),
@@ -166,6 +180,10 @@ impl OscSender {
String::from("/avatar/parameters/averageTrackerBattery"), String::from("/avatar/parameters/averageTrackerBattery"),
vec![OscType::Float(tracker_total_bat / f32::from(tracker_count))], vec![OscType::Float(tracker_total_bat / f32::from(tracker_count))],
)?; )?;
self.send_message(
String::from("/avatar/parameters/LowestBattery"),
vec![OscType::Float(lowest_battery)],
)?;
} }
Ok(()) Ok(())