mirror of
https://github.com/marcriera/ddgo-pnp-controller.git
synced 2025-04-29 21:37:04 +02:00
Implement gadget creation per controller
This commit is contained in:
parent
6c8783bd93
commit
983e807fc7
7 changed files with 96 additions and 70 deletions
55
src/main.rs
55
src/main.rs
|
@ -1,12 +1,10 @@
|
|||
mod controller;
|
||||
mod state;
|
||||
|
||||
use std::io::Result;
|
||||
use std::process::Command;
|
||||
use std::time::Duration;
|
||||
use std::thread::sleep;
|
||||
|
||||
use controller::emulated::ControllerModel;
|
||||
use controller::physical::{set_lamp,set_rumble};
|
||||
|
||||
fn main() -> Result<()> {
|
||||
|
@ -17,35 +15,34 @@ fn main() -> Result<()> {
|
|||
sleep(Duration::from_secs(3));
|
||||
let mut controller_state = Default::default();
|
||||
controller::physical::get_state(&mut controller_state, &dev);
|
||||
let controller_model = controller::emulated::set_model(&controller_state);
|
||||
|
||||
// If no model selected, quit
|
||||
if controller_model == ControllerModel::NONE {
|
||||
return Result::Ok(());
|
||||
}
|
||||
|
||||
// Stop main game
|
||||
stop_game();
|
||||
|
||||
// Vibrate to end selection mode
|
||||
set_rumble(true);
|
||||
sleep(Duration::from_millis(500));
|
||||
set_rumble(false);
|
||||
|
||||
loop {
|
||||
// Fetch events from input devices
|
||||
controller::physical::get_state(&mut controller_state, &dev);
|
||||
|
||||
// Send input to virtual controller
|
||||
controller::emulated::set_state(&mut controller_state, &controller_model);
|
||||
|
||||
// Update lamp and rumble
|
||||
set_lamp(controller_state.lamp);
|
||||
set_rumble(controller_state.rumble);
|
||||
|
||||
// Wait between cycles
|
||||
sleep(Duration::from_millis(20));
|
||||
// Check selected controller model
|
||||
if let Some(controller_model) = controller::emulated::set_model(&controller_state) {
|
||||
|
||||
// Stop main game
|
||||
stop_game();
|
||||
|
||||
// Vibrate to end selection mode
|
||||
set_rumble(true);
|
||||
sleep(Duration::from_millis(500));
|
||||
set_rumble(false);
|
||||
|
||||
loop {
|
||||
// Fetch events from input devices
|
||||
controller::physical::get_state(&mut controller_state, &dev);
|
||||
|
||||
// Send input to virtual controller
|
||||
controller::emulated::set_state(&mut controller_state, &controller_model);
|
||||
|
||||
// Update lamp and rumble
|
||||
set_lamp(controller_state.lamp);
|
||||
set_rumble(controller_state.rumble);
|
||||
|
||||
// Wait between cycles
|
||||
sleep(Duration::from_millis(20));
|
||||
}
|
||||
}
|
||||
return Result::Ok(());
|
||||
},
|
||||
Err(_e) => println!("ERROR: Could not read input devices! Exiting."),
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue