#[derive(Debug, Clone, Copy, Default)]
pub struct MotionData {
pub gyro_pitch: f32,
pub gyro_yaw: f32,
pub gyro_roll: f32,
pub accel_x: f32,
pub accel_y: f32,
pub accel_z: f32,
}
pub trait MotionBackend {
fn poll(&mut self) -> Option<MotionData>;
fn is_connected(&self) -> bool;
fn name(&self) -> &'static str;
}
#[derive(Debug, Clone, Copy, Default)]
pub struct TouchpadFinger {
pub active: bool,
pub x: f32,
pub y: f32,
pub id: u8,
}
#[derive(Debug, Clone, Copy, Default)]
pub struct TouchpadData {
pub finger1: TouchpadFinger,
pub finger2: TouchpadFinger,
pub button_pressed: bool,
}
pub trait TouchpadBackend {
fn poll(&mut self) -> Option<TouchpadData>;
fn supports_multitouch(&self) -> bool;
fn name(&self) -> &'static str;
}