use crate::{
Emulator,
types::{GameInput, KeyState},
};
use sdl2::{event::Event, keyboard::Keycode};
pub fn handle_joystick_input(event: Event, emulator: &mut Emulator) {
match event {
Event::KeyDown {
keycode: Some(key), ..
} => emulator.game_input(register_key(key), KeyState::Pressed),
Event::KeyUp {
keycode: Some(key), ..
} => emulator.game_input(register_key(key), KeyState::Released),
_ => (),
}
}
fn register_key(key: Keycode) -> GameInput {
match key {
Keycode::W => GameInput::Up,
Keycode::S => GameInput::Down,
Keycode::A => GameInput::Left,
Keycode::D => GameInput::Right,
Keycode::Q => GameInput::Select,
Keycode::E => GameInput::Start,
Keycode::Z => GameInput::A,
Keycode::X => GameInput::B,
_ => GameInput::Unknown,
}
}