mirror of
https://github.com/feschber/lan-mouse.git
synced 2026-07-05 14:54:48 +03:00
Compare commits
1 Commits
main-d1f41
...
main-6fb7e
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6fb7e24746 |
39
Cargo.lock
generated
39
Cargo.lock
generated
@@ -1898,12 +1898,6 @@ dependencies = [
|
|||||||
"vcpkg",
|
"vcpkg",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "linux-raw-sys"
|
|
||||||
version = "0.4.15"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "linux-raw-sys"
|
name = "linux-raw-sys"
|
||||||
version = "0.12.1"
|
version = "0.12.1"
|
||||||
@@ -2489,12 +2483,14 @@ checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "reis"
|
name = "reis"
|
||||||
version = "0.5.0"
|
version = "0.7.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "00939c5c526a1b4054ef8d9d96b3f92227f08ca355965e986741b556eda6d289"
|
checksum = "81f3fedd2777cde52c1be5e572efbec485eac7b801c47820eda388d4f13b9c4b"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"futures",
|
"enumflags2",
|
||||||
"rustix 0.38.44",
|
"futures-util",
|
||||||
|
"log",
|
||||||
|
"rustix",
|
||||||
"tokio",
|
"tokio",
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -2540,19 +2536,6 @@ dependencies = [
|
|||||||
"nom",
|
"nom",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "rustix"
|
|
||||||
version = "0.38.44"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154"
|
|
||||||
dependencies = [
|
|
||||||
"bitflags 2.11.0",
|
|
||||||
"errno",
|
|
||||||
"libc",
|
|
||||||
"linux-raw-sys 0.4.15",
|
|
||||||
"windows-sys 0.59.0",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rustix"
|
name = "rustix"
|
||||||
version = "1.1.4"
|
version = "1.1.4"
|
||||||
@@ -2562,7 +2545,7 @@ dependencies = [
|
|||||||
"bitflags 2.11.0",
|
"bitflags 2.11.0",
|
||||||
"errno",
|
"errno",
|
||||||
"libc",
|
"libc",
|
||||||
"linux-raw-sys 0.12.1",
|
"linux-raw-sys",
|
||||||
"windows-sys 0.61.2",
|
"windows-sys 0.61.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -2880,7 +2863,7 @@ dependencies = [
|
|||||||
"fastrand",
|
"fastrand",
|
||||||
"getrandom 0.4.2",
|
"getrandom 0.4.2",
|
||||||
"once_cell",
|
"once_cell",
|
||||||
"rustix 1.1.4",
|
"rustix",
|
||||||
"windows-sys 0.61.2",
|
"windows-sys 0.61.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
@@ -3388,7 +3371,7 @@ checksum = "2857dd20b54e916ec7253b3d6b4d5c4d7d4ca2c33c2e11c6c76a99bd8744755d"
|
|||||||
dependencies = [
|
dependencies = [
|
||||||
"cc",
|
"cc",
|
||||||
"downcast-rs",
|
"downcast-rs",
|
||||||
"rustix 1.1.4",
|
"rustix",
|
||||||
"smallvec",
|
"smallvec",
|
||||||
"wayland-sys",
|
"wayland-sys",
|
||||||
]
|
]
|
||||||
@@ -3400,7 +3383,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||||||
checksum = "645c7c96bb74690c3189b5c9cb4ca1627062bb23693a4fad9d8c3de958260144"
|
checksum = "645c7c96bb74690c3189b5c9cb4ca1627062bb23693a4fad9d8c3de958260144"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bitflags 2.11.0",
|
"bitflags 2.11.0",
|
||||||
"rustix 1.1.4",
|
"rustix",
|
||||||
"wayland-backend",
|
"wayland-backend",
|
||||||
"wayland-scanner",
|
"wayland-scanner",
|
||||||
]
|
]
|
||||||
@@ -4065,7 +4048,7 @@ dependencies = [
|
|||||||
"hex",
|
"hex",
|
||||||
"libc",
|
"libc",
|
||||||
"ordered-stream",
|
"ordered-stream",
|
||||||
"rustix 1.1.4",
|
"rustix",
|
||||||
"serde",
|
"serde",
|
||||||
"serde_repr",
|
"serde_repr",
|
||||||
"tokio",
|
"tokio",
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ ashpd = { version = "0.13.9", default-features = false, features = [
|
|||||||
"input_capture",
|
"input_capture",
|
||||||
"tokio",
|
"tokio",
|
||||||
], optional = true }
|
], optional = true }
|
||||||
reis = { version = "0.5.0", features = ["tokio"], optional = true }
|
reis = { version = "0.7.0", features = ["tokio"], optional = true }
|
||||||
|
|
||||||
[target.'cfg(target_os="macos")'.dependencies]
|
[target.'cfg(target_os="macos")'.dependencies]
|
||||||
core-graphics = { version = "0.25.0", features = ["highsierra"] }
|
core-graphics = { version = "0.25.0", features = ["highsierra"] }
|
||||||
|
|||||||
@@ -529,15 +529,6 @@ fn distance_to_line(line: ((f32, f32), (f32, f32)), p: (f32, f32)) -> f32 {
|
|||||||
distance
|
distance
|
||||||
}
|
}
|
||||||
|
|
||||||
static ALL_CAPABILITIES: &[DeviceCapability] = &[
|
|
||||||
DeviceCapability::Pointer,
|
|
||||||
DeviceCapability::PointerAbsolute,
|
|
||||||
DeviceCapability::Keyboard,
|
|
||||||
DeviceCapability::Touch,
|
|
||||||
DeviceCapability::Scroll,
|
|
||||||
DeviceCapability::Button,
|
|
||||||
];
|
|
||||||
|
|
||||||
async fn handle_ei_event(
|
async fn handle_ei_event(
|
||||||
ei_event: EiEvent,
|
ei_event: EiEvent,
|
||||||
current_client: Option<Position>,
|
current_client: Option<Position>,
|
||||||
@@ -545,9 +536,15 @@ async fn handle_ei_event(
|
|||||||
event_tx: &Sender<(Position, CaptureEvent)>,
|
event_tx: &Sender<(Position, CaptureEvent)>,
|
||||||
release_session: &Notify,
|
release_session: &Notify,
|
||||||
) -> Result<(), CaptureError> {
|
) -> Result<(), CaptureError> {
|
||||||
|
let all_capabilities = DeviceCapability::Pointer
|
||||||
|
| DeviceCapability::PointerAbsolute
|
||||||
|
| DeviceCapability::Keyboard
|
||||||
|
| DeviceCapability::Touch
|
||||||
|
| DeviceCapability::Scroll
|
||||||
|
| DeviceCapability::Button;
|
||||||
match ei_event {
|
match ei_event {
|
||||||
EiEvent::SeatAdded(s) => {
|
EiEvent::SeatAdded(s) => {
|
||||||
s.seat.bind_capabilities(ALL_CAPABILITIES);
|
s.seat.bind_capabilities(all_capabilities);
|
||||||
context.flush().map_err(|e| io::Error::new(e.kind(), e))?;
|
context.flush().map_err(|e| io::Error::new(e.kind(), e))?;
|
||||||
}
|
}
|
||||||
EiEvent::SeatRemoved(_) | /* EiEvent::DeviceAdded(_) | */ EiEvent::DeviceRemoved(_) => {
|
EiEvent::SeatRemoved(_) | /* EiEvent::DeviceAdded(_) | */ EiEvent::DeviceRemoved(_) => {
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ ashpd = { version = "0.13.9", default-features = false, features = [
|
|||||||
"screencast",
|
"screencast",
|
||||||
"tokio",
|
"tokio",
|
||||||
], optional = true }
|
], optional = true }
|
||||||
reis = { version = "0.5.0", features = ["tokio"], optional = true }
|
reis = { version = "0.7.0", features = ["tokio"], optional = true }
|
||||||
|
|
||||||
[target.'cfg(target_os="macos")'.dependencies]
|
[target.'cfg(target_os="macos")'.dependencies]
|
||||||
bitflags = "2.6.0"
|
bitflags = "2.6.0"
|
||||||
|
|||||||
@@ -291,14 +291,12 @@ async fn ei_event_handler(
|
|||||||
) -> Result<(), EmulationError> {
|
) -> Result<(), EmulationError> {
|
||||||
loop {
|
loop {
|
||||||
let event = events.next().await.ok_or(EmulationError::EndOfStream)??;
|
let event = events.next().await.ok_or(EmulationError::EndOfStream)??;
|
||||||
const CAPABILITIES: &[DeviceCapability] = &[
|
let capabilities = DeviceCapability::Pointer
|
||||||
DeviceCapability::Pointer,
|
| DeviceCapability::PointerAbsolute
|
||||||
DeviceCapability::PointerAbsolute,
|
| DeviceCapability::Keyboard
|
||||||
DeviceCapability::Keyboard,
|
| DeviceCapability::Touch
|
||||||
DeviceCapability::Touch,
|
| DeviceCapability::Scroll
|
||||||
DeviceCapability::Scroll,
|
| DeviceCapability::Button;
|
||||||
DeviceCapability::Button,
|
|
||||||
];
|
|
||||||
log::debug!("{event:?}");
|
log::debug!("{event:?}");
|
||||||
match event {
|
match event {
|
||||||
EiEvent::Disconnected(e) => {
|
EiEvent::Disconnected(e) => {
|
||||||
@@ -306,7 +304,7 @@ async fn ei_event_handler(
|
|||||||
return Err(EmulationError::EndOfStream);
|
return Err(EmulationError::EndOfStream);
|
||||||
}
|
}
|
||||||
EiEvent::SeatAdded(e) => {
|
EiEvent::SeatAdded(e) => {
|
||||||
e.seat().bind_capabilities(CAPABILITIES);
|
e.seat().bind_capabilities(capabilities);
|
||||||
}
|
}
|
||||||
EiEvent::SeatRemoved(e) => {
|
EiEvent::SeatRemoved(e) => {
|
||||||
log::debug!("seat removed: {:?}", e.seat());
|
log::debug!("seat removed: {:?}", e.seat());
|
||||||
@@ -314,7 +312,6 @@ async fn ei_event_handler(
|
|||||||
EiEvent::DeviceAdded(e) => {
|
EiEvent::DeviceAdded(e) => {
|
||||||
let device_type = e.device().device_type();
|
let device_type = e.device().device_type();
|
||||||
log::debug!("device added: {device_type:?}");
|
log::debug!("device added: {device_type:?}");
|
||||||
e.device().device();
|
|
||||||
let device = e.device();
|
let device = e.device();
|
||||||
if let Some(pointer) = e.device().interface::<Pointer>() {
|
if let Some(pointer) = e.device().interface::<Pointer>() {
|
||||||
devices
|
devices
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ serde = { version = "1.0", features = ["derive"] }
|
|||||||
thiserror = "2.0.0"
|
thiserror = "2.0.0"
|
||||||
|
|
||||||
[target.'cfg(all(unix, not(target_os="macos")))'.dependencies]
|
[target.'cfg(all(unix, not(target_os="macos")))'.dependencies]
|
||||||
reis = { version = "0.5.0", optional = true }
|
reis = { version = "0.7.0", optional = true }
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
default = ["libei"]
|
default = ["libei"]
|
||||||
|
|||||||
Reference in New Issue
Block a user