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 b: Button, // ps: circle pub x: Button, // ps: triangle pub y: Button, // ps: cross pub l: Button, // ps: R pub r: 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.b.begin_frame(signals.b_signal); self.x.begin_frame(signals.x_signal); self.y.begin_frame(signals.y_signal); self.l.begin_frame(signals.l_signal); self.r.begin_frame(signals.r_signal); self.start.begin_frame(signals.start_signal); self.select.begin_frame(signals.select_signal); } }