42 lines
1.1 KiB
Rust
42 lines
1.1 KiB
Rust
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);
|
|
}
|
|
}
|
|
|
|
|