use crate::model::Button; use crate::peripherals::input_signal::InputSignals; #[derive(Default, Clone, Copy, Debug)] pub struct Pad { pub up: Button, pub down: Button, pub left: Button, pub right: Button, pub a: Button, // ps: square pub d: Button, // ps: circle pub w: Button, // ps: triangle pub s: Button, // ps: cross pub q: Button, // ps: R pub e: Button, // ps: L pub start: Button, pub select: Button, } impl Pad { pub fn begin_frame(&mut self, signals: &InputSignals) { self.up.begin_frame(signals.up_signal); self.down.begin_frame(signals.down_signal); self.left.begin_frame(signals.left_signal); self.right.begin_frame(signals.right_signal); self.a.begin_frame(signals.a_signal); self.d.begin_frame(signals.d_signal); self.w.begin_frame(signals.w_signal); self.s.begin_frame(signals.s_signal); self.q.begin_frame(signals.q_signal); self.e.begin_frame(signals.e_signal); self.start.begin_frame(signals.start_signal); self.select.begin_frame(signals.select_signal); } }