From ab7ee0988f4e2dce7174989766f4f95546a87ca4 Mon Sep 17 00:00:00 2001 From: Kevin Hamacher Date: Thu, 20 Feb 2020 10:28:42 +0100 Subject: [PATCH] Cleanup key handling --- src/interconnect.rs | 87 ++++++++++++--------------------------------- 1 file changed, 22 insertions(+), 65 deletions(-) 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), + _ => {} + }, _ => {} } }