use std::{thread, time};
fn main() {
let client = vigem_client::Client::connect().unwrap();
let id = vigem_client::TargetId::XBOX360_WIRED;
let mut target = vigem_client::Xbox360Wired::new(client, id);
target.plugin().unwrap();
target.wait_ready().unwrap();
let mut gamepad = vigem_client::XGamepad {
buttons: vigem_client::XButtons!(UP | RIGHT | LB | A | X),
..Default::default()
};
let start = time::Instant::now();
loop {
let elapsed = start.elapsed().as_secs_f64();
if elapsed >= 10.0 {
break;
}
gamepad.thumb_lx = (elapsed.cos() * 30000.0) as i16;
gamepad.thumb_ly = (elapsed.sin() * 30000.0) as i16;
gamepad.thumb_rx = -gamepad.thumb_ly;
gamepad.thumb_ry = gamepad.thumb_lx;
gamepad.left_trigger = ((((elapsed * 1.5).sin() * 127.0) as i32) + 127) as u8;
gamepad.right_trigger = ((((elapsed * 1.5).cos() * 127.0) as i32) + 127) as u8;
let _ = target.update(&gamepad);
thread::sleep(time::Duration::from_millis(10));
}
}