mirror of
https://github.com/mofeng-git/One-KVM.git
synced 2026-01-29 00:51:53 +08:00
bt hid
This commit is contained in:
@@ -20,11 +20,13 @@
|
||||
# ========================================================================== #
|
||||
|
||||
|
||||
from typing import Optional
|
||||
|
||||
from . import Hid
|
||||
|
||||
|
||||
# =====
|
||||
def make_keyboard_hid() -> Hid:
|
||||
def make_keyboard_hid(report_id: Optional[int]=None) -> Hid:
|
||||
return Hid(
|
||||
protocol=1, # Keyboard protocol
|
||||
subclass=1, # Boot interface subclass
|
||||
@@ -40,6 +42,9 @@ def make_keyboard_hid() -> Hid:
|
||||
0x09, 0x06, # USAGE (Keyboard)
|
||||
0xA1, 0x01, # COLLECTION (Application)
|
||||
|
||||
# Report ID
|
||||
*([0x85, report_id] if report_id is not None else []),
|
||||
|
||||
# Modifiers
|
||||
0x05, 0x07, # USAGE_PAGE (Keyboard)
|
||||
0x19, 0xE0, # USAGE_MINIMUM (Keyboard LeftControl)
|
||||
|
||||
@@ -20,13 +20,15 @@
|
||||
# ========================================================================== #
|
||||
|
||||
|
||||
from typing import Optional
|
||||
|
||||
from . import Hid
|
||||
|
||||
|
||||
# =====
|
||||
def make_mouse_hid(absolute: bool, horizontal_wheel: bool) -> Hid:
|
||||
def make_mouse_hid(absolute: bool, horizontal_wheel: bool, report_id: Optional[int]=None) -> Hid:
|
||||
maker = (_make_absolute_hid if absolute else _make_relative_hid)
|
||||
return maker(horizontal_wheel)
|
||||
return maker(horizontal_wheel, report_id)
|
||||
|
||||
|
||||
_HORIZONTAL_WHEEL = [
|
||||
@@ -40,7 +42,7 @@ _HORIZONTAL_WHEEL = [
|
||||
]
|
||||
|
||||
|
||||
def _make_absolute_hid(horizontal_wheel: bool) -> Hid:
|
||||
def _make_absolute_hid(horizontal_wheel: bool, report_id: Optional[int]) -> Hid:
|
||||
return Hid(
|
||||
protocol=0, # None protocol
|
||||
subclass=0, # No subclass
|
||||
@@ -60,6 +62,9 @@ def _make_absolute_hid(horizontal_wheel: bool) -> Hid:
|
||||
0x09, 0x02, # USAGE (Mouse)
|
||||
0xA1, 0x01, # COLLECTION (Application)
|
||||
|
||||
# Report ID
|
||||
*([0x85, report_id] if report_id is not None else []),
|
||||
|
||||
# 8 Buttons
|
||||
0x05, 0x09, # USAGE_PAGE (Button)
|
||||
0x19, 0x01, # USAGE_MINIMUM (Button 1)
|
||||
@@ -96,7 +101,7 @@ def _make_absolute_hid(horizontal_wheel: bool) -> Hid:
|
||||
)
|
||||
|
||||
|
||||
def _make_relative_hid(horizontal_wheel: bool) -> Hid:
|
||||
def _make_relative_hid(horizontal_wheel: bool, report_id: Optional[int]) -> Hid:
|
||||
return Hid(
|
||||
protocol=2, # Mouse protocol
|
||||
subclass=1, # Boot interface subclass
|
||||
@@ -111,6 +116,9 @@ def _make_relative_hid(horizontal_wheel: bool) -> Hid:
|
||||
0x09, 0x02, # USAGE (Mouse)
|
||||
0xA1, 0x01, # COLLECTION (Application)
|
||||
|
||||
# Report ID
|
||||
*([0x85, report_id] if report_id is not None else []),
|
||||
|
||||
# 8 Buttons
|
||||
0x05, 0x09, # USAGE_PAGE (Button)
|
||||
0x19, 0x01, # USAGE_MINIMUM (Button 1)
|
||||
|
||||
Reference in New Issue
Block a user