diff --git a/src/interconnect.rs b/src/interconnect.rs index 11592e0..065a94e 100644 --- a/src/interconnect.rs +++ b/src/interconnect.rs @@ -176,71 +176,28 @@ impl Interconnect { self.display.dump_vram(); return TickResult::Shutdown; } - Event::KeyDown { - keycode: Some(Keycode::Left), - .. - } => self.press_key(Key::LEFT), - Event::KeyDown { - keycode: Some(Keycode::Down), - .. - } => self.press_key(Key::DOWN), - Event::KeyDown { - keycode: Some(Keycode::Up), - .. - } => self.press_key(Key::UP), - Event::KeyDown { - keycode: Some(Keycode::Right), - .. - } => self.press_key(Key::RIGHT), - Event::KeyDown { - keycode: Some(Keycode::A), - .. - } => self.press_key(Key::START), - Event::KeyDown { - keycode: Some(Keycode::S), - .. - } => self.press_key(Key::SELECT), - Event::KeyDown { - keycode: Some(Keycode::Z), - .. - } => self.press_key(Key::A), - Event::KeyDown { - keycode: Some(Keycode::X), - .. - } => self.press_key(Key::B), - - Event::KeyUp { - keycode: Some(Keycode::Left), - .. - } => self.release_key(Key::LEFT), - Event::KeyUp { - keycode: Some(Keycode::Down), - .. - } => self.release_key(Key::DOWN), - Event::KeyUp { - keycode: Some(Keycode::Up), - .. - } => self.release_key(Key::UP), - Event::KeyUp { - keycode: Some(Keycode::Right), - .. - } => self.release_key(Key::RIGHT), - Event::KeyUp { - keycode: Some(Keycode::A), - .. - } => self.release_key(Key::START), - Event::KeyUp { - keycode: Some(Keycode::S), - .. - } => self.release_key(Key::SELECT), - Event::KeyUp { - keycode: Some(Keycode::Z), - .. - } => self.release_key(Key::A), - Event::KeyUp { - keycode: Some(Keycode::X), - .. - } => self.release_key(Key::B), + Event::KeyDown { keycode: k, .. } => match k { + Some(Keycode::Left) => self.press_key(Key::LEFT), + Some(Keycode::Down) => self.press_key(Key::DOWN), + Some(Keycode::Up) => self.press_key(Key::UP), + Some(Keycode::Right) => self.press_key(Key::RIGHT), + Some(Keycode::A) => self.press_key(Key::START), + Some(Keycode::S) => self.press_key(Key::SELECT), + Some(Keycode::Z) => self.press_key(Key::A), + Some(Keycode::X) => self.press_key(Key::B), + _ => {} + }, + Event::KeyUp { keycode: k, .. } => match k { + Some(Keycode::Left) => self.release_key(Key::LEFT), + Some(Keycode::Down) => self.release_key(Key::DOWN), + Some(Keycode::Up) => self.release_key(Key::UP), + Some(Keycode::Right) => self.release_key(Key::RIGHT), + Some(Keycode::A) => self.release_key(Key::START), + Some(Keycode::S) => self.release_key(Key::SELECT), + Some(Keycode::Z) => self.release_key(Key::A), + Some(Keycode::X) => self.release_key(Key::B), + _ => {} + }, _ => {} } }