viewer-core 新增 send_mouse_rel(零位移不占消息:手指静止时 ACTION_MOVE 每帧都发,空事件只会白占 QUIC 帧)。 android-ffi 新增 nativeSendMouseRel,JNI 符号 13 -> 14,Int 入参 clamp 到 i16 而不是回绕(回绕会让指针跳到屏幕另一侧)。 新增 examples/rel_mouse_proof:走完整链路(viewer-core -> QUIC -> agent 注入 -> GetCursorPos 读回)验证 V-B1a/b/c。判据是「位移恰好等于请求值」,不是 「大概动了」——因为被推翻的 MOUSEEVENTF_MOVE 方案正是「看起来能动但比例错」。 运行前后记录并还原光标位置,不污染桌面状态。
31 lines
956 B
TOML
31 lines
956 B
TOML
[package]
|
||
name = "viewer-core"
|
||
version = "0.1.0"
|
||
edition = "2021"
|
||
|
||
# 阶段 1 先做纯 Rust 库并在桌面 headless 验证;
|
||
# UniFFI / cdylib 在下一步(Android 接入)再加,隔离未知项。
|
||
[lib]
|
||
name = "viewer_core"
|
||
crate-type = ["lib"]
|
||
|
||
[dependencies]
|
||
common = { path = "../common" }
|
||
anyhow.workspace = true
|
||
tokio.workspace = true
|
||
quinn.workspace = true
|
||
rustls.workspace = true
|
||
|
||
[dev-dependencies]
|
||
# headless_check 用软解交叉验证收到的码流合法(库本身刻意不依赖 openh264,
|
||
# 解码在 Android 侧由 MediaCodec 承担)
|
||
openh264 = { version = "0.9.9", features = ["source"] }
|
||
# rel_mouse_proof(3b/V-B1)需要读回 Windows 光标位置来闭环验证相对注入。
|
||
# 仅 examples 使用,不进库本体;库本身仍然平台无关。
|
||
[target.'cfg(windows)'.dev-dependencies]
|
||
windows = { workspace = true, features = [
|
||
"Win32_Foundation",
|
||
"Win32_UI_WindowsAndMessaging",
|
||
"Win32_UI_HiDpi",
|
||
] }
|