From d3f5bc2ed48d9d9922a8757b951dd5d3eb510e6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A1szl=C3=B3=20Monda?= Date: Wed, 2 Mar 2016 10:56:24 +0100 Subject: [PATCH] Further clean up the mouse report descriptor and add related macros. --- right/usb_descriptor_mouse_report.c | 22 +++++++++++++--------- right/usb_report_item_macros.h | 14 ++++++++------ 2 files changed, 21 insertions(+), 15 deletions(-) diff --git a/right/usb_descriptor_mouse_report.c b/right/usb_descriptor_mouse_report.c index 8a64c98..0339d26 100644 --- a/right/usb_descriptor_mouse_report.c +++ b/right/usb_descriptor_mouse_report.c @@ -75,8 +75,9 @@ uint8_t UsbMouseReportDescriptor[USB_MOUSE_REPORT_DESCRIPTOR_LENGTH] = { HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_RELATIVE), HID_RI_COLLECTION(8, HID_RI_COLLECTION_LOGICAL), - // ------------------------------ Vertical wheel res multiplier - 0x09, 0x48, // USAGE (Resolution Multiplier) + + // Vertical wheel resolution multiplier + HID_RI_USAGE(8, HID_RI_USAGE_RESOLUTION_MULTIPLIER), 0x15, 0x00, // LOGICAL_MINIMUM (0) 0x25, 0x01, // LOGICAL_MAXIMUM (1) 0x35, 0x01, // PHYSICAL_MINIMUM (1) @@ -86,27 +87,30 @@ uint8_t UsbMouseReportDescriptor[USB_MOUSE_REPORT_DESCRIPTOR_LENGTH] = { 0xa4, // PUSH 0xb1, 0x02, // FEATURE (Data,Var,Abs) - // ------------------------------ Vertical wheel - 0x09, 0x38, // USAGE (Wheel) + // Vertical wheel + HID_RI_USAGE(8, HID_RI_USAGE_WHEEL), 0x15, 0x81, // LOGICAL_MINIMUM (-127) 0x25, 0x7f, // LOGICAL_MAXIMUM (127) 0x35, 0x00, // PHYSICAL_MINIMUM (0) - reset physical 0x45, 0x00, // PHYSICAL_MAXIMUM (0) 0x75, 0x08, // REPORT_SIZE (8) 0x81, 0x06, // INPUT (Data,Var,Rel) - HID_RI_END_COLLECTION(0), // END_COLLECTION + HID_RI_END_COLLECTION(0), HID_RI_COLLECTION(8, HID_RI_COLLECTION_LOGICAL), - // ------------------------------ Horizontal wheel res multiplier - 0x09, 0x48, // USAGE (Resolution Multiplier) + + // Horizontal wheel resolution multiplier + HID_RI_USAGE(8, HID_RI_USAGE_RESOLUTION_MULTIPLIER), 0xb4, // POP 0xb1, 0x02, // FEATURE (Data,Var,Abs) - // ------------------------------ Padding for Feature report + + // Padding 0x35, 0x00, // PHYSICAL_MINIMUM (0) - reset physical 0x45, 0x00, // PHYSICAL_MAXIMUM (0) 0x75, 0x04, // REPORT_SIZE (4) 0xb1, 0x03, // FEATURE (Cnst,Var,Abs) - // ------------------------------ Horizontal wheel + + // Horizontal wheel 0x05, 0x0c, // USAGE_PAGE (Consumer Devices) 0x0a, 0x38, 0x02, // USAGE (AC Pan) 0x15, 0x81, // LOGICAL_MINIMUM (-127) diff --git a/right/usb_report_item_macros.h b/right/usb_report_item_macros.h index d945239..eb96bbe 100644 --- a/right/usb_report_item_macros.h +++ b/right/usb_report_item_macros.h @@ -12,12 +12,14 @@ #define HID_RI_USAGE_PAGE_LEDS 0x08 #define HID_RI_USAGE_PAGE_MOUSE_BUTTONS 0x09 - #define HID_RI_USAGE_POINTER 0x01 - #define HID_RI_USAGE_MOUSE 0x02 - #define HID_RI_USAGE_JOYSTICK 0x04 - #define HID_RI_USAGE_KEYBOARD 0x06 - #define HID_RI_USAGE_X 0x30 - #define HID_RI_USAGE_Y 0x31 + #define HID_RI_USAGE_POINTER 0x01 + #define HID_RI_USAGE_MOUSE 0x02 + #define HID_RI_USAGE_JOYSTICK 0x04 + #define HID_RI_USAGE_KEYBOARD 0x06 + #define HID_RI_USAGE_X 0x30 + #define HID_RI_USAGE_Y 0x31 + #define HID_RI_USAGE_WHEEL 0x38 + #define HID_RI_USAGE_RESOLUTION_MULTIPLIER 0x48 #define HID_RI_COLLECTION_PHYSICAL 0x00 #define HID_RI_COLLECTION_APPLICATION 0x01