events: implement a first attempt at an eventing system
This commit is contained in:
19
src/main.rs
19
src/main.rs
@@ -8,7 +8,11 @@ mod platform;
|
||||
mod animations;
|
||||
mod mappings;
|
||||
mod buffers;
|
||||
mod events;
|
||||
|
||||
use events::Event;
|
||||
|
||||
use crate::events::EventBus;
|
||||
use crate::platform::{DefaultBoard, Board};
|
||||
use crate::task::{FixedSizeScheduler, Scheduler};
|
||||
use crate::render::{Surfaces, Renderer};
|
||||
@@ -39,10 +43,19 @@ fn main() {
|
||||
|
||||
let mut renderer = FixedSizeScheduler::new([Box::new(Renderer::new(output, surfaces))]);
|
||||
|
||||
log::info!("Starting event bus");
|
||||
let mut bus = EventBus::new();
|
||||
|
||||
log::info!("Ready to rock and roll");
|
||||
bus.push(Event::new_ready_to_rock());
|
||||
loop {
|
||||
animations.tick();
|
||||
system.tick();
|
||||
renderer.tick();
|
||||
let next_event = bus.next();
|
||||
match next_event {
|
||||
events::Event::Tick => (),
|
||||
_ => log::info!("Event: {:?}", next_event)
|
||||
}
|
||||
animations.tick(&next_event, &mut bus);
|
||||
system.tick(&next_event, &mut bus);
|
||||
renderer.tick(&next_event, &mut bus);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user