fix(ble,hid): Fix smooth scrolling over BLE (#2998)

- Use correct MIN16 value in hid report. -32768 in 2's compliment is 8000(hex)
- Initialize resolution multiplier array
- Properly implement `read_hids_mouse_feature_report`

Fixes: #2957

Co-authored-by: Tobias Adolph <43353209+adolto@users.noreply.github.comgit>
This commit is contained in:
Tobias Adolph
2025-07-20 17:13:18 +02:00
committed by GitHub
parent 7292df02d4
commit 342d838913
3 changed files with 32 additions and 7 deletions

View File

@@ -208,7 +208,7 @@ static const uint8_t zmk_hid_report_desc[] = {
HID_USAGE_PAGE(HID_USAGE_GEN_DESKTOP),
HID_USAGE(HID_USAGE_GD_X),
HID_USAGE(HID_USAGE_GD_Y),
HID_LOGICAL_MIN16(0xFF, -0x7F),
HID_LOGICAL_MIN16(0x00, 0x80),
HID_LOGICAL_MAX16(0xFF, 0x7F),
HID_REPORT_SIZE(0x10),
HID_REPORT_COUNT(0x02),
@@ -226,7 +226,7 @@ static const uint8_t zmk_hid_report_desc[] = {
HID_FEATURE(ZMK_HID_MAIN_VAL_DATA | ZMK_HID_MAIN_VAL_VAR | ZMK_HID_MAIN_VAL_ABS),
#endif // IS_ENABLED(CONFIG_ZMK_POINTING_SMOOTH_SCROLLING)
HID_USAGE(HID_USAGE_GD_WHEEL),
HID_LOGICAL_MIN16(0xFF, -0x7F),
HID_LOGICAL_MIN16(0x00, 0x80),
HID_LOGICAL_MAX16(0xFF, 0x7F),
HID_PHYSICAL_MIN8(0x00),
HID_PHYSICAL_MAX8(0x00),
@@ -242,7 +242,7 @@ static const uint8_t zmk_hid_report_desc[] = {
#endif // IS_ENABLED(CONFIG_ZMK_POINTING_SMOOTH_SCROLLING)
HID_USAGE_PAGE(HID_USAGE_CONSUMER),
HID_USAGE16_SINGLE(HID_USAGE_CONSUMER_AC_PAN),
HID_LOGICAL_MIN16(0xFF, -0x7F),
HID_LOGICAL_MIN16(0x00, 0x80),
HID_LOGICAL_MAX16(0xFF, 0x7F),
HID_PHYSICAL_MIN8(0x00),
HID_PHYSICAL_MAX8(0x00),