mirror of
https://github.com/mofeng-git/One-KVM.git
synced 2025-12-12 01:00:29 +08:00
arduino hid: fixed mouse movement on windows
This commit is contained in:
parent
f5bbfeb8b5
commit
da660d02cd
@ -10,7 +10,7 @@ upload:
|
||||
|
||||
clean-all: clean
|
||||
clean:
|
||||
rm -rf .pioenvs .piolibdeps
|
||||
rm -rf .pio
|
||||
|
||||
help:
|
||||
@ cat Makefile
|
||||
|
||||
18
hid/patch.py
Normal file
18
hid/patch.py
Normal file
@ -0,0 +1,18 @@
|
||||
from os.path import join
|
||||
from os.path import exists
|
||||
|
||||
Import("env")
|
||||
|
||||
|
||||
# =====
|
||||
env_path = join(env["PROJECTLIBDEPS_DIR"], env["PIOENV"])
|
||||
flag_path = join(env_path, ".patched")
|
||||
|
||||
if not exists(flag_path):
|
||||
env.Execute(f"patch -p1 -d {join(env_path, 'HID-Project_ID523')} < {join('patches', 'absmouse.patch')}")
|
||||
|
||||
def touch_flag(*_, **__) -> None:
|
||||
with open(flag_path, "w") as flag_file:
|
||||
pass
|
||||
|
||||
env.Execute(touch_flag)
|
||||
12
hid/patches/absmouse.patch
Normal file
12
hid/patches/absmouse.patch
Normal file
@ -0,0 +1,12 @@
|
||||
See /kvmd/apps/otg/hid/keyboard.py for details
|
||||
--- a/src/SingleReport/SingleAbsoluteMouse.cpp 2019-07-13 21:16:23.000000000 +0300
|
||||
+++ b/src/SingleReport/SingleAbsoluteMouse.cpp 2019-10-05 00:58:34.592003332 +0300
|
||||
@@ -43,7 +43,7 @@
|
||||
0x05, 0x01, /* USAGE_PAGE (Generic Desktop) */
|
||||
0x09, 0x30, /* USAGE (X) */
|
||||
0x09, 0x31, /* USAGE (Y) */
|
||||
- 0x16, 0x00, 0x80, /* Logical Minimum (-32768) */
|
||||
+ 0x16, 0x00, 0x00, /* Logical Minimum (0) */
|
||||
0x26, 0xFF, 0x7F, /* Logical Maximum (32767) */
|
||||
0x75, 0x10, /* Report Size (16), */
|
||||
0x95, 0x02, /* Report Count (2), */
|
||||
@ -20,6 +20,7 @@ framework = arduino
|
||||
upload_port = /dev/ttyACM0
|
||||
lib_deps = ${common.lib_deps}
|
||||
build_flags = -DCMD_SERIAL=Serial1
|
||||
extra_scripts = post:patch.py
|
||||
|
||||
[env:serial_test]
|
||||
platform = atmelavr
|
||||
@ -28,3 +29,4 @@ framework = arduino
|
||||
upload_port = /dev/ttyACM0
|
||||
lib_deps = ${common.lib_deps}
|
||||
build_flags = -DCMD_SERIAL=Serial
|
||||
extra_scripts = post:patch.py
|
||||
|
||||
@ -98,9 +98,11 @@ INLINE void cmdMouseButtonEvent(const uint8_t *buffer) { // 1 byte
|
||||
INLINE void cmdMouseMoveEvent(const uint8_t *buffer) { // 4 bytes
|
||||
int x = (int)buffer[0] << 8;
|
||||
x |= (int)buffer[1];
|
||||
x = (x + 32768) / 2; // See /kvmd/apps/otg/hid/keyboard.py for details
|
||||
|
||||
int y = (int)buffer[2] << 8;
|
||||
y |= (int)buffer[3];
|
||||
y = (y + 32768) / 2; // See /kvmd/apps/otg/hid/keyboard.py for details
|
||||
|
||||
SingleAbsoluteMouse.moveTo(x, y);
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user