mirror of
https://github.com/feschber/lan-mouse.git
synced 2026-04-12 11:31:28 +03:00
fix windows/mac + rename async_drop to terminate
This commit is contained in:
@@ -39,7 +39,7 @@ impl<'a> InputCapture for DummyInputCapture {
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
async fn async_drop(&mut self) -> Result<(), CaptureError> {
|
async fn terminate(&mut self) -> Result<(), CaptureError> {
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -107,7 +107,7 @@ pub trait InputCapture:
|
|||||||
async fn release(&mut self) -> io::Result<()>;
|
async fn release(&mut self) -> io::Result<()>;
|
||||||
|
|
||||||
/// destroy the input acpture
|
/// destroy the input acpture
|
||||||
async fn async_drop(&mut self) -> Result<(), CaptureError>;
|
async fn terminate(&mut self) -> Result<(), CaptureError>;
|
||||||
}
|
}
|
||||||
|
|
||||||
pub async fn create_backend(
|
pub async fn create_backend(
|
||||||
|
|||||||
@@ -668,7 +668,7 @@ impl<'a> LanMouseInputCapture for LibeiInputCapture<'a> {
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
async fn async_drop(&mut self) -> Result<(), CaptureError> {
|
async fn terminate(&mut self) -> Result<(), CaptureError> {
|
||||||
let event_rx = self.event_rx.take().expect("no channel");
|
let event_rx = self.event_rx.take().expect("no channel");
|
||||||
std::mem::drop(event_rx);
|
std::mem::drop(event_rx);
|
||||||
self.cancellation_token.cancel();
|
self.cancellation_token.cancel();
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
use crate::{
|
use crate::{
|
||||||
error::MacOSInputCaptureCreationError, CaptureError, CaptureHandle, InputCapture, Position,
|
error::MacOSInputCaptureCreationError, CaptureError, CaptureHandle, InputCapture, Position,
|
||||||
};
|
};
|
||||||
|
use async_trait::async_trait;
|
||||||
use futures_core::Stream;
|
use futures_core::Stream;
|
||||||
use input_event::Event;
|
use input_event::Event;
|
||||||
use std::task::{Context, Poll};
|
use std::task::{Context, Poll};
|
||||||
@@ -22,16 +23,21 @@ impl Stream for MacOSInputCapture {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[async_trait]
|
||||||
impl InputCapture for MacOSInputCapture {
|
impl InputCapture for MacOSInputCapture {
|
||||||
fn create(&mut self, _id: CaptureHandle, _pos: Position) -> io::Result<()> {
|
async fn create(&mut self, _id: CaptureHandle, _pos: Position) -> io::Result<()> {
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn destroy(&mut self, _id: CaptureHandle) -> io::Result<()> {
|
async fn destroy(&mut self, _id: CaptureHandle) -> io::Result<()> {
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn release(&mut self) -> io::Result<()> {
|
async fn release(&mut self) -> io::Result<()> {
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
|
async fn terminate(&mut self) -> Result<(), CaptureError> {
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -585,7 +585,7 @@ impl InputCapture for WaylandInputCapture {
|
|||||||
inner.flush_events()
|
inner.flush_events()
|
||||||
}
|
}
|
||||||
|
|
||||||
async fn async_drop(&mut self) -> Result<(), CaptureError> {
|
async fn terminate(&mut self) -> Result<(), CaptureError> {
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
use async_trait::async_trait;
|
||||||
use core::task::{Context, Poll};
|
use core::task::{Context, Poll};
|
||||||
use futures::Stream;
|
use futures::Stream;
|
||||||
use once_cell::unsync::Lazy;
|
use once_cell::unsync::Lazy;
|
||||||
@@ -62,8 +63,9 @@ unsafe fn signal_message_thread(event_type: EventType) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[async_trait]
|
||||||
impl InputCapture for WindowsInputCapture {
|
impl InputCapture for WindowsInputCapture {
|
||||||
fn create(&mut self, handle: CaptureHandle, pos: Position) -> io::Result<()> {
|
async fn create(&mut self, handle: CaptureHandle, pos: Position) -> io::Result<()> {
|
||||||
unsafe {
|
unsafe {
|
||||||
{
|
{
|
||||||
let mut requests = REQUEST_BUFFER.lock().unwrap();
|
let mut requests = REQUEST_BUFFER.lock().unwrap();
|
||||||
@@ -73,7 +75,8 @@ impl InputCapture for WindowsInputCapture {
|
|||||||
}
|
}
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
fn destroy(&mut self, handle: CaptureHandle) -> io::Result<()> {
|
|
||||||
|
async fn destroy(&mut self, handle: CaptureHandle) -> io::Result<()> {
|
||||||
unsafe {
|
unsafe {
|
||||||
{
|
{
|
||||||
let mut requests = REQUEST_BUFFER.lock().unwrap();
|
let mut requests = REQUEST_BUFFER.lock().unwrap();
|
||||||
@@ -84,10 +87,14 @@ impl InputCapture for WindowsInputCapture {
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn release(&mut self) -> io::Result<()> {
|
async fn release(&mut self) -> io::Result<()> {
|
||||||
unsafe { signal_message_thread(EventType::Release) };
|
unsafe { signal_message_thread(EventType::Release) };
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async fn terminate(&mut self) -> Result<(), CaptureError> {
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static mut REQUEST_BUFFER: Mutex<Vec<Request>> = Mutex::new(Vec::new());
|
static mut REQUEST_BUFFER: Mutex<Vec<Request>> = Mutex::new(Vec::new());
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ impl InputCapture for X11InputCapture {
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
async fn async_drop(&mut self) -> Result<(), CaptureError> {
|
async fn terminate(&mut self) -> Result<(), CaptureError> {
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ async fn input_capture_test(config: Config) -> Result<()> {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
input_capture.take().unwrap().async_drop().await.unwrap();
|
input_capture.take().unwrap().terminate().await.unwrap();
|
||||||
}
|
}
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ pub fn new(
|
|||||||
CaptureEvent::Destroy(h) => capture.destroy(h).await?,
|
CaptureEvent::Destroy(h) => capture.destroy(h).await?,
|
||||||
CaptureEvent::Restart => {
|
CaptureEvent::Restart => {
|
||||||
let clients = server.client_manager.borrow().get_client_states().map(|(h, (c,_))| (h, c.pos)).collect::<Vec<_>>();
|
let clients = server.client_manager.borrow().get_client_states().map(|(h, (c,_))| (h, c.pos)).collect::<Vec<_>>();
|
||||||
capture.async_drop().await?;
|
capture.terminate().await?;
|
||||||
capture = input_capture::create(backend).await?;
|
capture = input_capture::create(backend).await?;
|
||||||
for (handle, pos) in clients {
|
for (handle, pos) in clients {
|
||||||
capture.create(handle, pos.into()).await?;
|
capture.create(handle, pos.into()).await?;
|
||||||
|
|||||||
Reference in New Issue
Block a user