lufa: Update mouse descriptor for 16 bit #692
Squashed commit from: https://github.com/tmk/tmk_keyboard/pull/692
This commit is contained in:
parent
9b58ee7db0
commit
9b77bf9295
2 changed files with 48 additions and 9 deletions
|
|
@ -157,6 +157,15 @@ typedef struct {
|
|||
} __attribute__ ((packed)) report_keyboard_t;
|
||||
*/
|
||||
|
||||
#ifdef ENABLE_16_BIT_MOUSE_REPORT
|
||||
typedef struct {
|
||||
uint8_t buttons;
|
||||
int16_t x;
|
||||
int16_t y;
|
||||
int16_t v;
|
||||
int16_t h;
|
||||
} __attribute__ ((packed)) report_mouse_t;
|
||||
#else
|
||||
typedef struct {
|
||||
uint8_t buttons;
|
||||
int8_t x;
|
||||
|
|
@ -164,6 +173,7 @@ typedef struct {
|
|||
int8_t v;
|
||||
int8_t h;
|
||||
} __attribute__ ((packed)) report_mouse_t;
|
||||
#endif
|
||||
|
||||
|
||||
/* keycode to system usage */
|
||||
|
|
|
|||
|
|
@ -84,6 +84,35 @@ const USB_Descriptor_HIDReport_Datatype_t PROGMEM KeyboardReport[] =
|
|||
};
|
||||
|
||||
#ifdef MOUSE_ENABLE
|
||||
|
||||
#ifdef ENABLE_16_BIT_MOUSE_REPORT
|
||||
#define REPORT_SIZE 16
|
||||
|
||||
#ifndef MOUSE_PRECISION
|
||||
#define MOUSE_PRECISION 16
|
||||
#endif
|
||||
|
||||
#ifndef MOUSE_WHEEL_PRECISION
|
||||
#define MOUSE_WHEEL_PRECISION 16
|
||||
#endif
|
||||
#else
|
||||
#define REPORT_SIZE 8
|
||||
|
||||
#ifndef MOUSE_PRECISION
|
||||
#define MOUSE_PRECISION 8
|
||||
#endif
|
||||
|
||||
#ifndef MOUSE_WHEEL_PRECISION
|
||||
#define MOUSE_WHEEL_PRECISION 8
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#define HID_MOUSE_REPORT_SIZE HID_RI_REPORT_SIZE(8, REPORT_SIZE)
|
||||
#define HID_MOUSE_LOGICAL_MINIMUM HID_RI_LOGICAL_MINIMUM(REPORT_SIZE, (-1 << (MOUSE_PRECISION - 1)) + 1)
|
||||
#define HID_MOUSE_LOGICAL_MAXIMUM HID_RI_LOGICAL_MAXIMUM(REPORT_SIZE, (1 << (MOUSE_PRECISION - 1)) - 1)
|
||||
#define HID_MOUSE_WHEEL_LOGICAL_MINIMUM HID_RI_LOGICAL_MINIMUM(REPORT_SIZE, (-1 << (MOUSE_WHEEL_PRECISION - 1)) + 1)
|
||||
#define HID_MOUSE_WHEEL_LOGICAL_MAXIMUM HID_RI_LOGICAL_MAXIMUM(REPORT_SIZE, (1 << (MOUSE_WHEEL_PRECISION - 1)) - 1)
|
||||
|
||||
const USB_Descriptor_HIDReport_Datatype_t PROGMEM MouseReport[] =
|
||||
{
|
||||
HID_RI_USAGE_PAGE(8, 0x01), /* Generic Desktop */
|
||||
|
|
@ -107,25 +136,25 @@ const USB_Descriptor_HIDReport_Datatype_t PROGMEM MouseReport[] =
|
|||
HID_RI_USAGE_PAGE(8, 0x01), /* Generic Desktop */
|
||||
HID_RI_USAGE(8, 0x30), /* Usage X */
|
||||
HID_RI_USAGE(8, 0x31), /* Usage Y */
|
||||
HID_RI_LOGICAL_MINIMUM(8, -127),
|
||||
HID_RI_LOGICAL_MAXIMUM(8, 127),
|
||||
HID_MOUSE_LOGICAL_MINIMUM,
|
||||
HID_MOUSE_LOGICAL_MAXIMUM,
|
||||
HID_RI_REPORT_COUNT(8, 0x02),
|
||||
HID_RI_REPORT_SIZE(8, 0x08),
|
||||
HID_MOUSE_REPORT_SIZE,
|
||||
HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_RELATIVE),
|
||||
|
||||
HID_RI_USAGE(8, 0x38), /* Wheel */
|
||||
HID_RI_LOGICAL_MINIMUM(8, -127),
|
||||
HID_RI_LOGICAL_MAXIMUM(8, 127),
|
||||
HID_MOUSE_WHEEL_LOGICAL_MINIMUM,
|
||||
HID_MOUSE_WHEEL_LOGICAL_MAXIMUM,
|
||||
HID_RI_REPORT_COUNT(8, 0x01),
|
||||
HID_RI_REPORT_SIZE(8, 0x08),
|
||||
HID_MOUSE_REPORT_SIZE,
|
||||
HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_RELATIVE),
|
||||
|
||||
HID_RI_USAGE_PAGE(8, 0x0C), /* Consumer */
|
||||
HID_RI_USAGE(16, 0x0238), /* AC Pan (Horizontal wheel) */
|
||||
HID_RI_LOGICAL_MINIMUM(8, -127),
|
||||
HID_RI_LOGICAL_MAXIMUM(8, 127),
|
||||
HID_MOUSE_WHEEL_LOGICAL_MINIMUM,
|
||||
HID_MOUSE_WHEEL_LOGICAL_MAXIMUM,
|
||||
HID_RI_REPORT_COUNT(8, 0x01),
|
||||
HID_RI_REPORT_SIZE(8, 0x08),
|
||||
HID_MOUSE_REPORT_SIZE,
|
||||
HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_RELATIVE),
|
||||
|
||||
HID_RI_END_COLLECTION(0),
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue