prepare Outputs type
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
use crate::card::model::Card;
|
||||
use crate::display::shared_bus::DualPrimaryDisplay;
|
||||
use crate::navigation::inputs::ButtonAction;
|
||||
use crate::navigation::inputs::Inputs;
|
||||
use crate::navigation::outputs::Outputs;
|
||||
use crate::navigation::state::NavigationState;
|
||||
use crate::views::view::View;
|
||||
|
||||
@@ -33,15 +33,16 @@ pub trait Navigable {
|
||||
where
|
||||
D: DrawTarget<Color = Rgb565> + Send,
|
||||
D::Error: core::fmt::Debug;
|
||||
// fn display<D>(&self, outputs: &mut Outputs) -> impl core::future::Future<Output = ()> + Send;
|
||||
fn handle_input(&self, input: Action) -> impl core::future::Future<Output = NewState> + Send;
|
||||
}
|
||||
|
||||
#[embassy_executor::task]
|
||||
pub async fn run(mut inputs: Inputs, display: &'static mut DualPrimaryDisplay<'static>) {
|
||||
pub async fn run(mut inputs: Inputs, mut outputs: Outputs) {
|
||||
log::info!("starting navigation");
|
||||
|
||||
let mut state = NavigationState::new();
|
||||
state.screens.last().unwrap().display(display).await;
|
||||
state.screens.last().unwrap().display(&mut outputs.primary_display).await;
|
||||
|
||||
loop {
|
||||
let selection = select(
|
||||
@@ -87,7 +88,7 @@ pub async fn run(mut inputs: Inputs, display: &'static mut DualPrimaryDisplay<'s
|
||||
state.screens.push(new_state.view);
|
||||
|
||||
if action != Action::Timer || new_state.redraw {
|
||||
state.screens.last().unwrap().display(display).await;
|
||||
state.screens.last().unwrap().display(&mut outputs.primary_display).await;
|
||||
}
|
||||
|
||||
Timer::after(Duration::from_millis(DEBOUNCE_DURATION_MILLIS)).await;
|
||||
|
||||
Reference in New Issue
Block a user