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