mirror of
https://github.com/mofeng-git/One-KVM.git
synced 2025-12-12 09:10:30 +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-all: clean
|
||||||
clean:
|
clean:
|
||||||
rm -rf .pioenvs .piolibdeps
|
rm -rf .pio
|
||||||
|
|
||||||
help:
|
help:
|
||||||
@ cat Makefile
|
@ 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
|
upload_port = /dev/ttyACM0
|
||||||
lib_deps = ${common.lib_deps}
|
lib_deps = ${common.lib_deps}
|
||||||
build_flags = -DCMD_SERIAL=Serial1
|
build_flags = -DCMD_SERIAL=Serial1
|
||||||
|
extra_scripts = post:patch.py
|
||||||
|
|
||||||
[env:serial_test]
|
[env:serial_test]
|
||||||
platform = atmelavr
|
platform = atmelavr
|
||||||
@ -28,3 +29,4 @@ framework = arduino
|
|||||||
upload_port = /dev/ttyACM0
|
upload_port = /dev/ttyACM0
|
||||||
lib_deps = ${common.lib_deps}
|
lib_deps = ${common.lib_deps}
|
||||||
build_flags = -DCMD_SERIAL=Serial
|
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
|
INLINE void cmdMouseMoveEvent(const uint8_t *buffer) { // 4 bytes
|
||||||
int x = (int)buffer[0] << 8;
|
int x = (int)buffer[0] << 8;
|
||||||
x |= (int)buffer[1];
|
x |= (int)buffer[1];
|
||||||
|
x = (x + 32768) / 2; // See /kvmd/apps/otg/hid/keyboard.py for details
|
||||||
|
|
||||||
int y = (int)buffer[2] << 8;
|
int y = (int)buffer[2] << 8;
|
||||||
y |= (int)buffer[3];
|
y |= (int)buffer[3];
|
||||||
|
y = (y + 32768) / 2; // See /kvmd/apps/otg/hid/keyboard.py for details
|
||||||
|
|
||||||
SingleAbsoluteMouse.moveTo(x, y);
|
SingleAbsoluteMouse.moveTo(x, y);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user