feat: dummy screens and battery states for uidev (#36)

This commit is contained in:
galister
2024-04-17 14:34:55 +02:00
committed by GitHub
parent 42ab3a3199
commit f6a9db5759
3 changed files with 59 additions and 9 deletions

View File

@@ -2,8 +2,6 @@ use std::{collections::VecDeque, time::Instant};
use glam::{Affine3A, Vec2, Vec3A}; use glam::{Affine3A, Vec2, Vec3A};
#[cfg(feature = "openvr")]
use ovr_overlay::TrackedDeviceIndex;
use smallvec::{smallvec, SmallVec}; use smallvec::{smallvec, SmallVec};
use crate::backend::common::snap_upright; use crate::backend::common::snap_upright;
@@ -16,9 +14,6 @@ use super::{
}; };
pub struct TrackedDevice { pub struct TrackedDevice {
#[cfg(feature = "openvr")]
pub index: TrackedDeviceIndex,
pub valid: bool,
pub soc: Option<f32>, pub soc: Option<f32>,
pub charging: bool, pub charging: bool,
pub role: TrackedDeviceRole, pub role: TrackedDeviceRole,

View File

@@ -309,8 +309,6 @@ fn get_tracked_device(
} }
Some(TrackedDevice { Some(TrackedDevice {
valid: true,
index,
soc, soc,
charging, charging,
role, role,

View File

@@ -25,10 +25,13 @@ use crate::{
Canvas, Canvas,
}, },
hid::USE_UINPUT, hid::USE_UINPUT,
state::AppState, state::{AppState, ScreenMeta},
}; };
use super::overlay::OverlayRenderer; use super::{
input::{TrackedDevice, TrackedDeviceRole},
overlay::OverlayRenderer,
};
static LAST_SIZE: std::sync::atomic::AtomicU64 = std::sync::atomic::AtomicU64::new(0); static LAST_SIZE: std::sync::atomic::AtomicU64 = std::sync::atomic::AtomicU64::new(0);
@@ -114,6 +117,9 @@ pub fn uidev_run(panel_name: &str) -> anyhow::Result<()> {
USE_UINPUT.store(false, std::sync::atomic::Ordering::Relaxed); USE_UINPUT.store(false, std::sync::atomic::Ordering::Relaxed);
let mut state = AppState::from_graphics(graphics.clone())?; let mut state = AppState::from_graphics(graphics.clone())?;
add_dummy_devices(&mut state);
add_dummy_screens(&mut state);
let mut preview = Some(PreviewState::new( let mut preview = Some(PreviewState::new(
&mut state, &mut state,
surface.clone(), surface.clone(),
@@ -257,3 +263,54 @@ fn create_swapchain(
Ok((swapchain, image_views)) Ok((swapchain, image_views))
} }
fn add_dummy_devices(app: &mut AppState) {
app.input_state.devices.push(TrackedDevice {
role: TrackedDeviceRole::Hmd,
soc: Some(0.42),
charging: true,
});
app.input_state.devices.push(TrackedDevice {
role: TrackedDeviceRole::LeftHand,
soc: Some(0.72),
charging: false,
});
app.input_state.devices.push(TrackedDevice {
role: TrackedDeviceRole::RightHand,
soc: Some(0.73),
charging: false,
});
app.input_state.devices.push(TrackedDevice {
role: TrackedDeviceRole::Tracker,
soc: Some(0.65),
charging: false,
});
app.input_state.devices.push(TrackedDevice {
role: TrackedDeviceRole::Tracker,
soc: Some(0.67),
charging: false,
});
app.input_state.devices.push(TrackedDevice {
role: TrackedDeviceRole::Tracker,
soc: Some(0.69),
charging: false,
});
}
fn add_dummy_screens(app: &mut AppState) {
app.screens.push(ScreenMeta {
name: "HDMI-A-1".into(),
id: 0,
native_handle: 0,
});
app.screens.push(ScreenMeta {
name: "DP-2".into(),
id: 0,
native_handle: 0,
});
app.screens.push(ScreenMeta {
name: "DP-3".into(),
id: 0,
native_handle: 0,
});
}