Rémi Bernon (@rbernon) commented about dlls/winebus.sys/hid.c:
USAGE(1, HID_USAGE_GENERIC_HATSWITCH), LOGICAL_MINIMUM(1, 1), LOGICAL_MAXIMUM(1, 8),
REPORT_SIZE(1, 8),
};REPORT_SIZE(1, 4), REPORT_COUNT(4, count), UNIT(1, 0x0), /* None */ INPUT(1, Data|Var|Abs|Null),
- const BYTE template_pad[] =
- {
INPUT(1, Cnst|Ary|Abs),
This probably also needs REPORT_SIZE / REPORT_COUNT as otherwise the previous values are used (which, if count wasn't 1, will add unnecessary padding), probably better to always specify both like it's done for the button padding.