Abuse the the C preprocessor so that the HID macros can automatically encode data into the array from the HID macros automagically, by specifying the bit-width of the data, and the data itself as a single integer value of that width.

This commit is contained in:
Dean Camera 2011-01-17 19:44:48 +00:00
parent 47fec03694
commit efd57cfe51
16 changed files with 474 additions and 496 deletions

View file

@ -45,34 +45,32 @@
*/
USB_Descriptor_HIDReport_Datatype_t PROGMEM MouseReport[] =
{
HID_RI_USAGE_PAGE(8), 0x01, /* Generic Desktop */
HID_RI_USAGE(8), 0x02, /* Mouse */
HID_RI_COLLECTION(8), 0x01, /* Application */
HID_RI_USAGE(8), 0x01, /* Pointer */
HID_RI_COLLECTION(8), 0x00, /* Physical */
HID_RI_USAGE_PAGE(8), 0x09, /* Button */
HID_RI_USAGE_MINIMUM(8), 0x01,
HID_RI_USAGE_MAXIMUM(8), 0x03,
HID_RI_LOGICAL_MINIMUM(8), 0,
HID_RI_LOGICAL_MAXIMUM(8), 1,
HID_RI_REPORT_COUNT(8), 3,
HID_RI_REPORT_SIZE(8), 1,
HID_RI_INPUT(8), (HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_VOLATILE),
HID_RI_REPORT_COUNT(8), 1,
HID_RI_REPORT_SIZE(8), 5,
HID_RI_INPUT(8), HID_IOF_CONSTANT,
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), -1,
HID_RI_LOGICAL_MAXIMUM(8), 1,
HID_RI_PHYSICAL_MINIMUM(8), -1,
HID_RI_PHYSICAL_MAXIMUM(8), 1,
HID_RI_REPORT_COUNT(8), 2,
HID_RI_REPORT_SIZE(8), 8,
HID_RI_INPUT(8), (HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_RELATIVE | HID_IOF_NON_VOLATILE),
HID_RI_USAGE_PAGE(8, 0x01), /* Generic Desktop */
HID_RI_USAGE(8, 0x02), /* Mouse */
HID_RI_COLLECTION(8, 0x01), /* Application */
HID_RI_USAGE(8, 0x01), /* Pointer */
HID_RI_COLLECTION(8, 0x00), /* Physical */
HID_RI_USAGE_PAGE(8, 0x09), /* Button */
HID_RI_USAGE_MINIMUM(8, 0x01),
HID_RI_USAGE_MAXIMUM(8, 0x03),
HID_RI_LOGICAL_MINIMUM(8, 0x00),
HID_RI_LOGICAL_MAXIMUM(8, 0x01),
HID_RI_REPORT_COUNT(8, 0x03),
HID_RI_REPORT_SIZE(8, 0x01),
HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_VOLATILE),
HID_RI_REPORT_COUNT(8, 0x01),
HID_RI_REPORT_SIZE(8, 0x05),
HID_RI_INPUT(8, HID_IOF_CONSTANT),
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, -1),
HID_RI_LOGICAL_MAXIMUM(8, 1),
HID_RI_PHYSICAL_MINIMUM(8, -1),
HID_RI_PHYSICAL_MAXIMUM(8, 1),
HID_RI_REPORT_COUNT(8, 0x02),
HID_RI_REPORT_SIZE(8, 0x08),
HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_RELATIVE | HID_IOF_NON_VOLATILE),
HID_RI_END_COLLECTION(0),
HID_RI_END_COLLECTION(0),
};