working on main menu

This commit is contained in:
2026-08-14 20:02:11 +00:00
parent 88dce365ad
commit 6b8d076b3c
4 changed files with 47 additions and 12 deletions
+9 -1
View File
@@ -1,3 +1,11 @@
use crate::navigation::inputs::Inputs;
pub async fn show(_inputs: &mut Inputs) {}
pub const MAX_SELECTED: i8 = 3;
pub struct MainMenu {
pub selected: i8,
}
impl MainMenu {
pub async fn display(self: &Self) {}
}
+28 -1
View File
@@ -1,8 +1,35 @@
use crate::navigation::inputs::Inputs;
use crate::navigation::main_menu::{MAX_SELECTED, MainMenu};
use embassy_futures::select::Either6;
use embassy_futures::select::select6;
#[embassy_executor::task]
pub async fn run(mut inputs: Inputs) {
let mut state = MainMenu { selected: 0 };
loop {
crate::navigation::main_menu::show(&mut inputs).await
let selection = select6(
inputs.up.wait_for_low(),
inputs.down.wait_for_low(),
inputs.left.wait_for_low(),
inputs.right.wait_for_low(),
inputs.ok.wait_for_low(),
inputs.back.wait_for_low(),
)
.await;
let value = match selection {
Either6::First(_) => (state.selected.wrapping_sub(1)) % MAX_SELECTED,
Either6::Second(_) => (state.selected.wrapping_add(1)) % MAX_SELECTED,
_ => continue, // Either6::Third(_) => ,
// Either6::Fourth(_) => (),
// Either6::Fifth(_) => (),
// Either6::Sixth(_) => (),
};
state.selected = value;
state.display().await
}
}