1
0
Fork 0
forked from wry/wry
wry/src/tasks/backend.rs
2022-05-10 16:43:09 +02:00

30 lines
780 B
Rust

use {
super::drmdev,
crate::{
backend::BackendEvent,
state::State,
tasks::{connector, input_device},
},
std::rc::Rc,
};
pub struct BackendEventHandler {
pub state: Rc<State>,
}
impl BackendEventHandler {
pub async fn handle_events(&mut self) {
loop {
let event = self.state.backend_events.pop().await;
self.handle_event(event);
}
}
fn handle_event(&mut self, event: BackendEvent) {
match event {
BackendEvent::NewConnector(connector) => connector::handle(&self.state, &connector),
BackendEvent::NewInputDevice(s) => input_device::handle(&self.state, s),
BackendEvent::NewDrmDevice(d) => drmdev::handle(&self.state, d),
}
}
}