From 8eee550e61346daec190a5a40ab14fec3275f43c Mon Sep 17 00:00:00 2001 From: Brad Stein Date: Thu, 12 Jun 2025 01:57:08 -0500 Subject: [PATCH] server mouse fix --- server/src/main.rs | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/server/src/main.rs b/server/src/main.rs index 710cd51..350cfb3 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -37,19 +37,18 @@ impl Relay for Handler { request: Request>, ) -> Result, Status> { let mut in_stream = request.into_inner(); - let hid = self.hid.clone(); + let kb = self.kb.clone(); + let ms = self.ms.clone(); let (tx, rx) = tokio::sync::mpsc::channel(32); tokio::spawn(async move { while let Some(msg) = in_stream.next().await.transpose()? { match msg.kind { Some(navka::hid_report::Kind::KeyboardReport(ref v)) if v.len() == 8 => { - let mut f = kb.lock().await; - f.write_all(v).await?; + kb.lock().await.write_all(v).await?; } Some(navka::hid_report::Kind::MouseReport(ref v)) if v.len() == 4 => { - let mut f = ms.lock().await; - f.write_all(v).await?; + ms.lock().await.write_all(v).await?; } _ => { error!("bad packet len={}", msg.data.len()); @@ -70,14 +69,24 @@ impl Relay for Handler { async fn main() -> anyhow::Result<()> { tracing_subscriber::fmt::init(); - let file = OpenOptions::new() + let kb = OpenOptions::new() .write(true) .read(true) .custom_flags(libc::O_NONBLOCK) .open("/dev/hidg0") .await?; - let hid = Arc::new(tokio::sync::Mutex::new(file)); - let handler = Handler { hid }; + + let ms = OpenOptions::new() + .write(true) + .read(true) + .custom_flags(libc::O_NONBLOCK) + .open("/dev/hidg1") + .await?; + + let handler = Handler { + kb: Arc::new(Mutex::new(kb)), + ms: Arc::new(Mutex::new(ms)), + }; println!("🌐 navka-server listening on 0.0.0.0:50051"); Server::builder()