From 23dd7efca023fcb3c1e90486a48c1cb24f7f9951 Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Fri, 13 Mar 2020 23:21:40 +0000 Subject: write_config --- src/wl.rs | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) (limited to 'src') diff --git a/src/wl.rs b/src/wl.rs index 6b7f164..0598b4a 100644 --- a/src/wl.rs +++ b/src/wl.rs @@ -50,25 +50,27 @@ fn main() { let mut wayland_paths = BTreeMap::new(); wayland_paths.insert("".into(), "/run/user/1000/wayland-0".into()); - let mut wl = Some(Wl::new(wayland_paths, vm_socket, None).unwrap()); + let mut wl = Wl::new(wayland_paths, vm_socket, None).unwrap(); loop { + use poly_msg_socket::Value::*; match msg_socket.recv() { - Ok(poly_msg_socket::Value::MsgOnSocket(MsgOnSocketRequest::Kill)) => { - if let Some(wl) = wl.take() { - // Will block until worker shuts down. - drop(wl); - - if let Err(e) = msg_socket.send(MsgOnSocketResponse::Kill) { - error!("failed to send Response::Kill: {}", e); - break; - } - } else { - warn!("received Kill but no Wl is running"); + Ok(MsgOnSocket(MsgOnSocketRequest::Kill)) => { + // Will block until worker shuts down. + drop(wl); + + if let Err(e) = msg_socket.send(MsgOnSocketResponse::Kill) { + error!("failed to send Response::Kill: {}", e); } + + break; } - Ok(poly_msg_socket::Value::MsgOnSocket(MsgOnSocketRequest::Activate { + Ok(Bincode(BincodeRequest::WriteConfig { offset, ref data })) => { + wl.write_config(offset, data) + } + + Ok(MsgOnSocket(MsgOnSocketRequest::Activate { shm, interrupt, interrupt_resample_evt, @@ -86,7 +88,7 @@ fn main() { let interrupt: MsgSocket = MsgSocket::new(interrupt.owned()); - wl.as_mut().unwrap().activate( + wl.activate( mem, Box::new(InterruptProxy::new( interrupt, @@ -99,7 +101,9 @@ fn main() { println!("activated Wl"); } - Ok(msg) => panic!("unexpected message {:?}", msg), + Ok(MsgOnSocket(msg @ MsgOnSocketRequest::Create { .. })) => { + panic!("unexpected message {:?}", msg) + } Err(e) => panic!("recv failed: {}", e), } -- cgit 1.4.1