diff --git a/Demos/Device/ClassDriver/GenericHID/Descriptors.c b/Demos/Device/ClassDriver/GenericHID/Descriptors.c index 0716ae9ca21a4de56ad4b529a80417ab1b50d5ac..aeec36db1f7da1a4af72229ca7eb87b9542b3b3a 100644 --- a/Demos/Device/ClassDriver/GenericHID/Descriptors.c +++ b/Demos/Device/ClassDriver/GenericHID/Descriptors.c @@ -45,22 +45,21 @@ */ USB_Descriptor_HIDReport_Datatype_t PROGMEM GenericReport[] = { - HID_RI_USAGE_PAGE(16), 0x00, 0xFF, /* Vendor Page 1 */ - HID_RI_USAGE(8), 0x01, /* Vendor Usage 1 */ - HID_RI_COLLECTION(8), 0x01, /* Vendor Usage 1 */ - HID_RI_USAGE(8), 0x02, /* Vendor Usage 2 */ - HID_RI_LOGICAL_MINIMUM(8), 0x00, - HID_RI_LOGICAL_MAXIMUM(8), 0xFF, - HID_RI_REPORT_SIZE(8), 8, - HID_RI_REPORT_COUNT(8), GENERIC_REPORT_SIZE, - HID_RI_INPUT(8), (HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_VOLATILE), - - HID_RI_USAGE(8), 0x03, /* Vendor Usage 3 */ - HID_RI_LOGICAL_MINIMUM(8), 0x00, - HID_RI_LOGICAL_MAXIMUM(8), 0xFF, - HID_RI_REPORT_SIZE(8), 8, - HID_RI_REPORT_COUNT(8), GENERIC_REPORT_SIZE, - HID_RI_OUTPUT(8), (HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_VOLATILE), + HID_RI_USAGE_PAGE(16, 0x00FF), /* Vendor Page 1 */ + HID_RI_USAGE(8, 0x01), /* Vendor Usage 1 */ + HID_RI_COLLECTION(8, 0x01), /* Vendor Usage 1 */ + HID_RI_USAGE(8, 0x02), /* Vendor Usage 2 */ + HID_RI_LOGICAL_MINIMUM(8, 0x00), + HID_RI_LOGICAL_MAXIMUM(8, 0xFF), + HID_RI_REPORT_SIZE(8, 0x08), + HID_RI_REPORT_COUNT(8, GENERIC_REPORT_SIZE), + HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_VOLATILE), + HID_RI_USAGE(8, 0x03), /* Vendor Usage 3 */ + HID_RI_LOGICAL_MINIMUM(8, 0x00), + HID_RI_LOGICAL_MAXIMUM(8, 0xFF), + HID_RI_REPORT_SIZE(8, 0x08), + HID_RI_REPORT_COUNT(8, GENERIC_REPORT_SIZE), + HID_RI_OUTPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_VOLATILE), HID_RI_END_COLLECTION(0), }; diff --git a/Demos/Device/ClassDriver/Joystick/Descriptors.c b/Demos/Device/ClassDriver/Joystick/Descriptors.c index e2b528e1c8e94ec2d6463ca364091f89fbd6f7aa..17c149528028599e7b3474f935e20294fb48c222 100644 --- a/Demos/Device/ClassDriver/Joystick/Descriptors.c +++ b/Demos/Device/ClassDriver/Joystick/Descriptors.c @@ -45,30 +45,30 @@ */ USB_Descriptor_HIDReport_Datatype_t PROGMEM JoystickReport[] = { - HID_RI_USAGE_PAGE(8), 0x01, /* Generic Desktop */ - HID_RI_USAGE(8), 0x04, /* Joystick */ - HID_RI_COLLECTION(8), 0x01, /* Application */ - HID_RI_USAGE(8), 0x01, /* Pointer */ - HID_RI_COLLECTION(8), 0x00, /* Physical */ - HID_RI_USAGE(8), 0x30, /* Usage X */ - HID_RI_USAGE(8), 0x31, /* Usage Y */ - HID_RI_LOGICAL_MINIMUM(8), -100, - HID_RI_LOGICAL_MAXIMUM(8), 100, - HID_RI_REPORT_SIZE(8), 8, - HID_RI_REPORT_COUNT(8), 2, - HID_RI_INPUT(8), (HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), + HID_RI_USAGE_PAGE(8, 0x01), /* Generic Desktop */ + HID_RI_USAGE(8, 0x04), /* Joystick */ + HID_RI_COLLECTION(8, 0x01), /* Application */ + HID_RI_USAGE(8, 0x01), /* Pointer */ + HID_RI_COLLECTION(8, 0x00), /* Physical */ + HID_RI_USAGE(8, 0x30), /* Usage X */ + HID_RI_USAGE(8, 0x31), /* Usage Y */ + HID_RI_LOGICAL_MINIMUM(8, -100), + HID_RI_LOGICAL_MAXIMUM(8, 100), + HID_RI_REPORT_SIZE(8, 0x08), + HID_RI_REPORT_COUNT(8, 0x02), + HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), HID_RI_END_COLLECTION(0), - HID_RI_USAGE_PAGE(8), 0x09, /* Button */ - HID_RI_USAGE(8), 0x02, /* Button 1 */ - HID_RI_USAGE(8), 0x01, /* Button 2 */ - HID_RI_LOGICAL_MINIMUM(8), 0, - HID_RI_LOGICAL_MAXIMUM(8), 1, - HID_RI_REPORT_SIZE(8), 1, - HID_RI_REPORT_COUNT(8), 2, - HID_RI_INPUT(8), (HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), - HID_RI_REPORT_SIZE(8), 6, - HID_RI_REPORT_COUNT(8), 1, - HID_RI_INPUT(8), HID_IOF_CONSTANT, + HID_RI_USAGE_PAGE(8, 0x09), /* Button */ + HID_RI_USAGE(8, 0x02), /* Button 1 */ + HID_RI_USAGE(8, 0x01), /* Button 2 */ + HID_RI_LOGICAL_MINIMUM(8, 0x00), + HID_RI_LOGICAL_MAXIMUM(8, 0x01), + HID_RI_REPORT_SIZE(8, 0x01), + HID_RI_REPORT_COUNT(8, 0x02), + HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), + HID_RI_REPORT_SIZE(8, 0x06), + HID_RI_REPORT_COUNT(8, 0x01), + HID_RI_INPUT(8, HID_IOF_CONSTANT), HID_RI_END_COLLECTION(0), }; diff --git a/Demos/Device/ClassDriver/Keyboard/Descriptors.c b/Demos/Device/ClassDriver/Keyboard/Descriptors.c index 640479a235eae6fdf0866046e4ba95ce6cf9f0c0..16ca1955e88ecfe447c323df9b19a53bd6674389 100644 --- a/Demos/Device/ClassDriver/Keyboard/Descriptors.c +++ b/Demos/Device/ClassDriver/Keyboard/Descriptors.c @@ -45,40 +45,37 @@ */ USB_Descriptor_HIDReport_Datatype_t PROGMEM KeyboardReport[] = { - HID_RI_USAGE_PAGE(8), 0x01, /* Generic Desktop */ - HID_RI_USAGE(8), 0x06, /* Keyboard */ - HID_RI_COLLECTION(8), 0x01, /* Application */ - HID_RI_USAGE_PAGE(8), 0x07, /* Key Codes */ - HID_RI_USAGE_MINIMUM(8), 0xE0, /* Keyboard Left Control */ - HID_RI_USAGE_MAXIMUM(8), 0xE7, /* Keyboard Right GUI */ - HID_RI_LOGICAL_MINIMUM(8), 0, - HID_RI_LOGICAL_MAXIMUM(8), 1, - HID_RI_REPORT_SIZE(8), 1, - HID_RI_REPORT_COUNT(8), 8, - HID_RI_INPUT(8), (HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), - - HID_RI_REPORT_COUNT(8), 1, - HID_RI_REPORT_SIZE(8), 8, - HID_RI_INPUT(8), HID_IOF_CONSTANT, - - HID_RI_USAGE_PAGE(8), 0x08, /* LEDs */ - HID_RI_USAGE_MINIMUM(8), 0x01, /* Num Lock */ - HID_RI_USAGE_MAXIMUM(8), 0x05, /* Kana */ - HID_RI_REPORT_COUNT(8), 5, - HID_RI_REPORT_SIZE(8), 1, - HID_RI_OUTPUT(8), (HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), - HID_RI_REPORT_COUNT(8), 1, - HID_RI_REPORT_SIZE(8), 3, - HID_RI_OUTPUT(8), HID_IOF_CONSTANT, - - HID_RI_LOGICAL_MINIMUM(8), 0x00, - HID_RI_LOGICAL_MAXIMUM(8), 0x65, - HID_RI_USAGE_PAGE(8), 0x07, /* Keyboard */ - HID_RI_USAGE_MINIMUM(8), 0x00, /* Reserved (no event indicated) */ - HID_RI_USAGE_MAXIMUM(8), 0x65, /* Keyboard Application */ - HID_RI_REPORT_COUNT(8), 6, - HID_RI_REPORT_SIZE(8), 8, - HID_RI_INPUT(8), (HID_IOF_DATA | HID_IOF_ARRAY | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), + HID_RI_USAGE_PAGE(8, 0x01), /* Generic Desktop */ + HID_RI_USAGE(8, 0x06), /* Keyboard */ + HID_RI_COLLECTION(8, 0x01), /* Application */ + HID_RI_USAGE_PAGE(8, 0x07), /* Key Codes */ + HID_RI_USAGE_MINIMUM(8, 0xE0), /* Keyboard Left Control */ + HID_RI_USAGE_MAXIMUM(8, 0xE7), /* Keyboard Right GUI */ + HID_RI_LOGICAL_MINIMUM(8, 0x00), + HID_RI_LOGICAL_MAXIMUM(8, 0x01), + HID_RI_REPORT_SIZE(8, 0x01), + HID_RI_REPORT_COUNT(8, 0x08), + HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), + HID_RI_REPORT_COUNT(8, 0x01), + HID_RI_REPORT_SIZE(8, 0x08), + HID_RI_INPUT(8, HID_IOF_CONSTANT), + HID_RI_USAGE_PAGE(8, 0x08), /* LEDs */ + HID_RI_USAGE_MINIMUM(8, 0x01), /* Num Lock */ + HID_RI_USAGE_MAXIMUM(8, 0x05), /* Kana */ + HID_RI_REPORT_COUNT(8, 0x05), + HID_RI_REPORT_SIZE(8, 0x01), + HID_RI_OUTPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), + HID_RI_REPORT_COUNT(8, 0x01), + HID_RI_REPORT_SIZE(8, 0x03), + HID_RI_OUTPUT(8, HID_IOF_CONSTANT), + HID_RI_LOGICAL_MINIMUM(8, 0x00), + HID_RI_LOGICAL_MAXIMUM(8, 0x65), + HID_RI_USAGE_PAGE(8, 0x07), /* Keyboard */ + HID_RI_USAGE_MINIMUM(8, 0x00), /* Reserved (no event indicated) */ + HID_RI_USAGE_MAXIMUM(8, 0x65), /* Keyboard Application */ + HID_RI_REPORT_COUNT(8, 0x06), + HID_RI_REPORT_SIZE(8, 0x08), + HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_ARRAY | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), HID_RI_END_COLLECTION(0), }; diff --git a/Demos/Device/ClassDriver/KeyboardMouse/Descriptors.c b/Demos/Device/ClassDriver/KeyboardMouse/Descriptors.c index e7f256215626e3f9966782f9e1d55cccbd45330f..be2b7e08551c4164d6058690b15bfba17753c1fe 100644 --- a/Demos/Device/ClassDriver/KeyboardMouse/Descriptors.c +++ b/Demos/Device/ClassDriver/KeyboardMouse/Descriptors.c @@ -47,34 +47,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), }; @@ -82,40 +80,37 @@ USB_Descriptor_HIDReport_Datatype_t PROGMEM MouseReport[] = /** Same as the MouseReport structure, but defines the keyboard HID interface's report structure. */ USB_Descriptor_HIDReport_Datatype_t PROGMEM KeyboardReport[] = { - HID_RI_USAGE_PAGE(8), 0x01, /* Generic Desktop */ - HID_RI_USAGE(8), 0x06, /* Keyboard */ - HID_RI_COLLECTION(8), 0x01, /* Application */ - HID_RI_USAGE_PAGE(8), 0x07, /* Key Codes */ - HID_RI_USAGE_MINIMUM(8), 0xE0, /* Keyboard Left Control */ - HID_RI_USAGE_MAXIMUM(8), 0xE7, /* Keyboard Right GUI */ - HID_RI_LOGICAL_MINIMUM(8), 0, - HID_RI_LOGICAL_MAXIMUM(8), 1, - HID_RI_REPORT_SIZE(8), 1, - HID_RI_REPORT_COUNT(8), 8, - HID_RI_INPUT(8), (HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), - - HID_RI_REPORT_COUNT(8), 1, - HID_RI_REPORT_SIZE(8), 8, - HID_RI_INPUT(8), HID_IOF_CONSTANT, - - HID_RI_USAGE_PAGE(8), 0x08, /* LEDs */ - HID_RI_USAGE_MINIMUM(8), 0x01, /* Num Lock */ - HID_RI_USAGE_MAXIMUM(8), 0x05, /* Kana */ - HID_RI_REPORT_COUNT(8), 5, - HID_RI_REPORT_SIZE(8), 1, - HID_RI_OUTPUT(8), (HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), - HID_RI_REPORT_COUNT(8), 1, - HID_RI_REPORT_SIZE(8), 3, - HID_RI_OUTPUT(8), HID_IOF_CONSTANT, - - HID_RI_LOGICAL_MINIMUM(8), 0x00, - HID_RI_LOGICAL_MAXIMUM(8), 0x65, - HID_RI_USAGE_PAGE(8), 0x07, /* Keyboard */ - HID_RI_USAGE_MINIMUM(8), 0x00, /* Reserved (no event indicated) */ - HID_RI_USAGE_MAXIMUM(8), 0x65, /* Keyboard Application */ - HID_RI_REPORT_COUNT(8), 6, - HID_RI_REPORT_SIZE(8), 8, - HID_RI_INPUT(8), (HID_IOF_DATA | HID_IOF_ARRAY | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), + HID_RI_USAGE_PAGE(8, 0x01), /* Generic Desktop */ + HID_RI_USAGE(8, 0x06), /* Keyboard */ + HID_RI_COLLECTION(8, 0x01), /* Application */ + HID_RI_USAGE_PAGE(8, 0x07), /* Key Codes */ + HID_RI_USAGE_MINIMUM(8, 0xE0), /* Keyboard Left Control */ + HID_RI_USAGE_MAXIMUM(8, 0xE7), /* Keyboard Right GUI */ + HID_RI_LOGICAL_MINIMUM(8, 0x00), + HID_RI_LOGICAL_MAXIMUM(8, 0x01), + HID_RI_REPORT_SIZE(8, 0x01), + HID_RI_REPORT_COUNT(8, 0x08), + HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), + HID_RI_REPORT_COUNT(8, 0x01), + HID_RI_REPORT_SIZE(8, 0x08), + HID_RI_INPUT(8, HID_IOF_CONSTANT), + HID_RI_USAGE_PAGE(8, 0x08), /* LEDs */ + HID_RI_USAGE_MINIMUM(8, 0x01), /* Num Lock */ + HID_RI_USAGE_MAXIMUM(8, 0x05), /* Kana */ + HID_RI_REPORT_COUNT(8, 0x05), + HID_RI_REPORT_SIZE(8, 0x01), + HID_RI_OUTPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), + HID_RI_REPORT_COUNT(8, 0x01), + HID_RI_REPORT_SIZE(8, 0x03), + HID_RI_OUTPUT(8, HID_IOF_CONSTANT), + HID_RI_LOGICAL_MINIMUM(8, 0x00), + HID_RI_LOGICAL_MAXIMUM(8, 0x65), + HID_RI_USAGE_PAGE(8, 0x07), /* Keyboard */ + HID_RI_USAGE_MINIMUM(8, 0x00), /* Reserved (no event indicated) */ + HID_RI_USAGE_MAXIMUM(8, 0x65), /* Keyboard Application */ + HID_RI_REPORT_COUNT(8, 0x06), + HID_RI_REPORT_SIZE(8, 0x08), + HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_ARRAY | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), HID_RI_END_COLLECTION(0), }; diff --git a/Demos/Device/ClassDriver/MassStorageKeyboard/Descriptors.c b/Demos/Device/ClassDriver/MassStorageKeyboard/Descriptors.c index 3d766b6b5e1ca77f5261d5564473000191f45573..a5d7973da307201817db2d87371d4e59907c277d 100644 --- a/Demos/Device/ClassDriver/MassStorageKeyboard/Descriptors.c +++ b/Demos/Device/ClassDriver/MassStorageKeyboard/Descriptors.c @@ -58,40 +58,37 @@ */ USB_Descriptor_HIDReport_Datatype_t PROGMEM KeyboardReport[] = { - HID_RI_USAGE_PAGE(8), 0x01, /* Generic Desktop */ - HID_RI_USAGE(8), 0x06, /* Keyboard */ - HID_RI_COLLECTION(8), 0x01, /* Application */ - HID_RI_USAGE_PAGE(8), 0x07, /* Key Codes */ - HID_RI_USAGE_MINIMUM(8), 0xE0, /* Keyboard Left Control */ - HID_RI_USAGE_MAXIMUM(8), 0xE7, /* Keyboard Right GUI */ - HID_RI_LOGICAL_MINIMUM(8), 0, - HID_RI_LOGICAL_MAXIMUM(8), 1, - HID_RI_REPORT_SIZE(8), 1, - HID_RI_REPORT_COUNT(8), 8, - HID_RI_INPUT(8), (HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), - - HID_RI_REPORT_COUNT(8), 1, - HID_RI_REPORT_SIZE(8), 8, - HID_RI_INPUT(8), HID_IOF_CONSTANT, - - HID_RI_USAGE_PAGE(8), 0x08, /* LEDs */ - HID_RI_USAGE_MINIMUM(8), 0x01, /* Num Lock */ - HID_RI_USAGE_MAXIMUM(8), 0x05, /* Kana */ - HID_RI_REPORT_COUNT(8), 5, - HID_RI_REPORT_SIZE(8), 1, - HID_RI_OUTPUT(8), (HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), - HID_RI_REPORT_COUNT(8), 1, - HID_RI_REPORT_SIZE(8), 3, - HID_RI_OUTPUT(8), HID_IOF_CONSTANT, - - HID_RI_LOGICAL_MINIMUM(8), 0x00, - HID_RI_LOGICAL_MAXIMUM(8), 0x65, - HID_RI_USAGE_PAGE(8), 0x07, /* Keyboard */ - HID_RI_USAGE_MINIMUM(8), 0x00, /* Reserved (no event indicated) */ - HID_RI_USAGE_MAXIMUM(8), 0x65, /* Keyboard Application */ - HID_RI_REPORT_COUNT(8), 6, - HID_RI_REPORT_SIZE(8), 8, - HID_RI_INPUT(8), (HID_IOF_DATA | HID_IOF_ARRAY | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), + HID_RI_USAGE_PAGE(8, 0x01), /* Generic Desktop */ + HID_RI_USAGE(8, 0x06), /* Keyboard */ + HID_RI_COLLECTION(8, 0x01), /* Application */ + HID_RI_USAGE_PAGE(8, 0x07), /* Key Codes */ + HID_RI_USAGE_MINIMUM(8, 0xE0), /* Keyboard Left Control */ + HID_RI_USAGE_MAXIMUM(8, 0xE7), /* Keyboard Right GUI */ + HID_RI_LOGICAL_MINIMUM(8, 0x00), + HID_RI_LOGICAL_MAXIMUM(8, 0x01), + HID_RI_REPORT_SIZE(8, 0x01), + HID_RI_REPORT_COUNT(8, 0x08), + HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), + HID_RI_REPORT_COUNT(8, 0x01), + HID_RI_REPORT_SIZE(8, 0x08), + HID_RI_INPUT(8, HID_IOF_CONSTANT), + HID_RI_USAGE_PAGE(8, 0x08), /* LEDs */ + HID_RI_USAGE_MINIMUM(8, 0x01), /* Num Lock */ + HID_RI_USAGE_MAXIMUM(8, 0x05), /* Kana */ + HID_RI_REPORT_COUNT(8, 0x05), + HID_RI_REPORT_SIZE(8, 0x01), + HID_RI_OUTPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), + HID_RI_REPORT_COUNT(8, 0x01), + HID_RI_REPORT_SIZE(8, 0x03), + HID_RI_OUTPUT(8, HID_IOF_CONSTANT), + HID_RI_LOGICAL_MINIMUM(8, 0x00), + HID_RI_LOGICAL_MAXIMUM(8, 0x65), + HID_RI_USAGE_PAGE(8, 0x07), /* Keyboard */ + HID_RI_USAGE_MINIMUM(8, 0x00), /* Reserved (no event indicated) */ + HID_RI_USAGE_MAXIMUM(8, 0x65), /* Keyboard Application */ + HID_RI_REPORT_COUNT(8, 0x06), + HID_RI_REPORT_SIZE(8, 0x08), + HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_ARRAY | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), HID_RI_END_COLLECTION(0), }; diff --git a/Demos/Device/ClassDriver/Mouse/Descriptors.c b/Demos/Device/ClassDriver/Mouse/Descriptors.c index 58a4ae4dc247199c9781c044d832f3c705f9e5fc..26ba10fb49a4cba9989a39b228fbb653e16dfc92 100644 --- a/Demos/Device/ClassDriver/Mouse/Descriptors.c +++ b/Demos/Device/ClassDriver/Mouse/Descriptors.c @@ -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), }; diff --git a/Demos/Device/ClassDriver/VirtualSerialMouse/Descriptors.c b/Demos/Device/ClassDriver/VirtualSerialMouse/Descriptors.c index 7cf15e0e119f52ce290ec355ad2becd7acece907..22f29b95afc61647c0d2ebebb233879b6928d264 100644 --- a/Demos/Device/ClassDriver/VirtualSerialMouse/Descriptors.c +++ b/Demos/Device/ClassDriver/VirtualSerialMouse/Descriptors.c @@ -57,34 +57,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), }; diff --git a/Demos/Device/LowLevel/GenericHID/Descriptors.c b/Demos/Device/LowLevel/GenericHID/Descriptors.c index 3a018d9adb73e5acc054eade66c35c3b626e6edd..c1505bc5cee482c81010ede204d2a398835d6ea5 100644 --- a/Demos/Device/LowLevel/GenericHID/Descriptors.c +++ b/Demos/Device/LowLevel/GenericHID/Descriptors.c @@ -45,22 +45,21 @@ */ USB_Descriptor_HIDReport_Datatype_t PROGMEM GenericReport[] = { - HID_RI_USAGE_PAGE(16), 0x00, 0xFF, /* Vendor Page 1 */ - HID_RI_USAGE(8), 0x01, /* Vendor Usage 1 */ - HID_RI_COLLECTION(8), 0x01, /* Vendor Usage 1 */ - HID_RI_USAGE(8), 0x02, /* Vendor Usage 2 */ - HID_RI_LOGICAL_MINIMUM(8), 0x00, - HID_RI_LOGICAL_MAXIMUM(8), 0xFF, - HID_RI_REPORT_SIZE(8), 8, - HID_RI_REPORT_COUNT(8), GENERIC_REPORT_SIZE, - HID_RI_INPUT(8), (HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_VOLATILE), - - HID_RI_USAGE(8), 0x03, /* Vendor Usage 3 */ - HID_RI_LOGICAL_MINIMUM(8), 0x00, - HID_RI_LOGICAL_MAXIMUM(8), 0xFF, - HID_RI_REPORT_SIZE(8), 8, - HID_RI_REPORT_COUNT(8), GENERIC_REPORT_SIZE, - HID_RI_OUTPUT(8), (HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_VOLATILE), + HID_RI_USAGE_PAGE(16, 0x00FF), /* Vendor Page 1 */ + HID_RI_USAGE(8, 0x01), /* Vendor Usage 1 */ + HID_RI_COLLECTION(8, 0x01), /* Vendor Usage 1 */ + HID_RI_USAGE(8, 0x02), /* Vendor Usage 2 */ + HID_RI_LOGICAL_MINIMUM(8, 0x00), + HID_RI_LOGICAL_MAXIMUM(8, 0xFF), + HID_RI_REPORT_SIZE(8, 0x08), + HID_RI_REPORT_COUNT(8, GENERIC_REPORT_SIZE), + HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_VOLATILE), + HID_RI_USAGE(8, 0x03), /* Vendor Usage 3 */ + HID_RI_LOGICAL_MINIMUM(8, 0x00), + HID_RI_LOGICAL_MAXIMUM(8, 0xFF), + HID_RI_REPORT_SIZE(8, 0x08), + HID_RI_REPORT_COUNT(8, GENERIC_REPORT_SIZE), + HID_RI_OUTPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_VOLATILE), HID_RI_END_COLLECTION(0), }; diff --git a/Demos/Device/LowLevel/Joystick/Descriptors.c b/Demos/Device/LowLevel/Joystick/Descriptors.c index bc0b430b3b4596a6891314270a7138865595117c..5b85be5ba2cef9ab4981f1ff9a482b0e65745470 100644 --- a/Demos/Device/LowLevel/Joystick/Descriptors.c +++ b/Demos/Device/LowLevel/Joystick/Descriptors.c @@ -45,30 +45,30 @@ */ USB_Descriptor_HIDReport_Datatype_t PROGMEM JoystickReport[] = { - HID_RI_USAGE_PAGE(8), 0x01, /* Generic Desktop */ - HID_RI_USAGE(8), 0x04, /* Joystick */ - HID_RI_COLLECTION(8), 0x01, /* Application */ - HID_RI_USAGE(8), 0x01, /* Pointer */ - HID_RI_COLLECTION(8), 0x00, /* Physical */ - HID_RI_USAGE(8), 0x30, /* Usage X */ - HID_RI_USAGE(8), 0x31, /* Usage Y */ - HID_RI_LOGICAL_MINIMUM(8), -100, - HID_RI_LOGICAL_MAXIMUM(8), 100, - HID_RI_REPORT_SIZE(8), 8, - HID_RI_REPORT_COUNT(8), 2, - HID_RI_INPUT(8), (HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), + HID_RI_USAGE_PAGE(8, 0x01), /* Generic Desktop */ + HID_RI_USAGE(8, 0x04), /* Joystick */ + HID_RI_COLLECTION(8, 0x01), /* Application */ + HID_RI_USAGE(8, 0x01), /* Pointer */ + HID_RI_COLLECTION(8, 0x00), /* Physical */ + HID_RI_USAGE(8, 0x30), /* Usage X */ + HID_RI_USAGE(8, 0x31), /* Usage Y */ + HID_RI_LOGICAL_MINIMUM(8, -100), + HID_RI_LOGICAL_MAXIMUM(8, 100), + HID_RI_REPORT_SIZE(8, 0x08), + HID_RI_REPORT_COUNT(8, 0x02), + HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), HID_RI_END_COLLECTION(0), - HID_RI_USAGE_PAGE(8), 0x09, /* Button */ - HID_RI_USAGE(8), 0x02, /* Button 1 */ - HID_RI_USAGE(8), 0x01, /* Button 2 */ - HID_RI_LOGICAL_MINIMUM(8), 0, - HID_RI_LOGICAL_MAXIMUM(8), 1, - HID_RI_REPORT_SIZE(8), 1, - HID_RI_REPORT_COUNT(8), 2, - HID_RI_INPUT(8), (HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), - HID_RI_REPORT_SIZE(8), 6, - HID_RI_REPORT_COUNT(8), 1, - HID_RI_INPUT(8), HID_IOF_CONSTANT, + HID_RI_USAGE_PAGE(8, 0x09), /* Button */ + HID_RI_USAGE(8, 0x02), /* Button 1 */ + HID_RI_USAGE(8, 0x01), /* Button 2 */ + HID_RI_LOGICAL_MINIMUM(8, 0x00), + HID_RI_LOGICAL_MAXIMUM(8, 0x01), + HID_RI_REPORT_SIZE(8, 0x01), + HID_RI_REPORT_COUNT(8, 0x02), + HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), + HID_RI_REPORT_SIZE(8, 0x06), + HID_RI_REPORT_COUNT(8, 0x01), + HID_RI_INPUT(8, HID_IOF_CONSTANT), HID_RI_END_COLLECTION(0), }; diff --git a/Demos/Device/LowLevel/Keyboard/Descriptors.c b/Demos/Device/LowLevel/Keyboard/Descriptors.c index 8e5cf15248dc4763a56c6893a81dfe7a1e2231e7..24d53549cd1f943cbcdbe6f1a25d1a9f2886297a 100644 --- a/Demos/Device/LowLevel/Keyboard/Descriptors.c +++ b/Demos/Device/LowLevel/Keyboard/Descriptors.c @@ -46,40 +46,37 @@ */ USB_Descriptor_HIDReport_Datatype_t PROGMEM KeyboardReport[] = { - HID_RI_USAGE_PAGE(8), 0x01, /* Generic Desktop */ - HID_RI_USAGE(8), 0x06, /* Keyboard */ - HID_RI_COLLECTION(8), 0x01, /* Application */ - HID_RI_USAGE_PAGE(8), 0x07, /* Key Codes */ - HID_RI_USAGE_MINIMUM(8), 0xE0, /* Keyboard Left Control */ - HID_RI_USAGE_MAXIMUM(8), 0xE7, /* Keyboard Right GUI */ - HID_RI_LOGICAL_MINIMUM(8), 0, - HID_RI_LOGICAL_MAXIMUM(8), 1, - HID_RI_REPORT_SIZE(8), 1, - HID_RI_REPORT_COUNT(8), 8, - HID_RI_INPUT(8), (HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), - - HID_RI_REPORT_COUNT(8), 1, - HID_RI_REPORT_SIZE(8), 8, - HID_RI_INPUT(8), HID_IOF_CONSTANT, - - HID_RI_USAGE_PAGE(8), 0x08, /* LEDs */ - HID_RI_USAGE_MINIMUM(8), 0x01, /* Num Lock */ - HID_RI_USAGE_MAXIMUM(8), 0x05, /* Kana */ - HID_RI_REPORT_COUNT(8), 5, - HID_RI_REPORT_SIZE(8), 1, - HID_RI_OUTPUT(8), (HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), - HID_RI_REPORT_COUNT(8), 1, - HID_RI_REPORT_SIZE(8), 3, - HID_RI_OUTPUT(8), HID_IOF_CONSTANT, - - HID_RI_LOGICAL_MINIMUM(8), 0x00, - HID_RI_LOGICAL_MAXIMUM(8), 0x65, - HID_RI_USAGE_PAGE(8), 0x07, /* Keyboard */ - HID_RI_USAGE_MINIMUM(8), 0x00, /* Reserved (no event indicated) */ - HID_RI_USAGE_MAXIMUM(8), 0x65, /* Keyboard Application */ - HID_RI_REPORT_COUNT(8), 6, - HID_RI_REPORT_SIZE(8), 8, - HID_RI_INPUT(8), (HID_IOF_DATA | HID_IOF_ARRAY | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), + HID_RI_USAGE_PAGE(8, 0x01), /* Generic Desktop */ + HID_RI_USAGE(8, 0x06), /* Keyboard */ + HID_RI_COLLECTION(8, 0x01), /* Application */ + HID_RI_USAGE_PAGE(8, 0x07), /* Key Codes */ + HID_RI_USAGE_MINIMUM(8, 0xE0), /* Keyboard Left Control */ + HID_RI_USAGE_MAXIMUM(8, 0xE7), /* Keyboard Right GUI */ + HID_RI_LOGICAL_MINIMUM(8, 0x00), + HID_RI_LOGICAL_MAXIMUM(8, 0x01), + HID_RI_REPORT_SIZE(8, 0x01), + HID_RI_REPORT_COUNT(8, 0x08), + HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), + HID_RI_REPORT_COUNT(8, 0x01), + HID_RI_REPORT_SIZE(8, 0x08), + HID_RI_INPUT(8, HID_IOF_CONSTANT), + HID_RI_USAGE_PAGE(8, 0x08), /* LEDs */ + HID_RI_USAGE_MINIMUM(8, 0x01), /* Num Lock */ + HID_RI_USAGE_MAXIMUM(8, 0x05), /* Kana */ + HID_RI_REPORT_COUNT(8, 0x05), + HID_RI_REPORT_SIZE(8, 0x01), + HID_RI_OUTPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), + HID_RI_REPORT_COUNT(8, 0x01), + HID_RI_REPORT_SIZE(8, 0x03), + HID_RI_OUTPUT(8, HID_IOF_CONSTANT), + HID_RI_LOGICAL_MINIMUM(8, 0x00), + HID_RI_LOGICAL_MAXIMUM(8, 0x65), + HID_RI_USAGE_PAGE(8, 0x07), /* Keyboard */ + HID_RI_USAGE_MINIMUM(8, 0x00), /* Reserved (no event indicated) */ + HID_RI_USAGE_MAXIMUM(8, 0x65), /* Keyboard Application */ + HID_RI_REPORT_COUNT(8, 0x06), + HID_RI_REPORT_SIZE(8, 0x08), + HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_ARRAY | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), HID_RI_END_COLLECTION(0), }; diff --git a/Demos/Device/LowLevel/KeyboardMouse/Descriptors.c b/Demos/Device/LowLevel/KeyboardMouse/Descriptors.c index 2d8fd44cdad440c72fbd20a40fe2ae7bd737ce8d..55cf30d38bbb71e55f73c180a4811e121852ae74 100644 --- a/Demos/Device/LowLevel/KeyboardMouse/Descriptors.c +++ b/Demos/Device/LowLevel/KeyboardMouse/Descriptors.c @@ -48,34 +48,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), }; @@ -83,40 +81,37 @@ USB_Descriptor_HIDReport_Datatype_t PROGMEM MouseReport[] = /** Same as the MouseReport structure, but defines the keyboard HID interface's report structure. */ USB_Descriptor_HIDReport_Datatype_t PROGMEM KeyboardReport[] = { - HID_RI_USAGE_PAGE(8), 0x01, /* Generic Desktop */ - HID_RI_USAGE(8), 0x06, /* Keyboard */ - HID_RI_COLLECTION(8), 0x01, /* Application */ - HID_RI_USAGE_PAGE(8), 0x07, /* Key Codes */ - HID_RI_USAGE_MINIMUM(8), 0xE0, /* Keyboard Left Control */ - HID_RI_USAGE_MAXIMUM(8), 0xE7, /* Keyboard Right GUI */ - HID_RI_LOGICAL_MINIMUM(8), 0, - HID_RI_LOGICAL_MAXIMUM(8), 1, - HID_RI_REPORT_SIZE(8), 1, - HID_RI_REPORT_COUNT(8), 8, - HID_RI_INPUT(8), (HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), - - HID_RI_REPORT_COUNT(8), 1, - HID_RI_REPORT_SIZE(8), 8, - HID_RI_INPUT(8), HID_IOF_CONSTANT, - - HID_RI_USAGE_PAGE(8), 0x08, /* LEDs */ - HID_RI_USAGE_MINIMUM(8), 0x01, /* Num Lock */ - HID_RI_USAGE_MAXIMUM(8), 0x05, /* Kana */ - HID_RI_REPORT_COUNT(8), 5, - HID_RI_REPORT_SIZE(8), 1, - HID_RI_OUTPUT(8), (HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), - HID_RI_REPORT_COUNT(8), 1, - HID_RI_REPORT_SIZE(8), 3, - HID_RI_OUTPUT(8), HID_IOF_CONSTANT, - - HID_RI_LOGICAL_MINIMUM(8), 0x00, - HID_RI_LOGICAL_MAXIMUM(8), 0x65, - HID_RI_USAGE_PAGE(8), 0x07, /* Keyboard */ - HID_RI_USAGE_MINIMUM(8), 0x00, /* Reserved (no event indicated) */ - HID_RI_USAGE_MAXIMUM(8), 0x65, /* Keyboard Application */ - HID_RI_REPORT_COUNT(8), 6, - HID_RI_REPORT_SIZE(8), 8, - HID_RI_INPUT(8), (HID_IOF_DATA | HID_IOF_ARRAY | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), + HID_RI_USAGE_PAGE(8, 0x01), /* Generic Desktop */ + HID_RI_USAGE(8, 0x06), /* Keyboard */ + HID_RI_COLLECTION(8, 0x01), /* Application */ + HID_RI_USAGE_PAGE(8, 0x07), /* Key Codes */ + HID_RI_USAGE_MINIMUM(8, 0xE0), /* Keyboard Left Control */ + HID_RI_USAGE_MAXIMUM(8, 0xE7), /* Keyboard Right GUI */ + HID_RI_LOGICAL_MINIMUM(8, 0x00), + HID_RI_LOGICAL_MAXIMUM(8, 0x01), + HID_RI_REPORT_SIZE(8, 0x01), + HID_RI_REPORT_COUNT(8, 0x08), + HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), + HID_RI_REPORT_COUNT(8, 0x01), + HID_RI_REPORT_SIZE(8, 0x08), + HID_RI_INPUT(8, HID_IOF_CONSTANT), + HID_RI_USAGE_PAGE(8, 0x08), /* LEDs */ + HID_RI_USAGE_MINIMUM(8, 0x01), /* Num Lock */ + HID_RI_USAGE_MAXIMUM(8, 0x05), /* Kana */ + HID_RI_REPORT_COUNT(8, 0x05), + HID_RI_REPORT_SIZE(8, 0x01), + HID_RI_OUTPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), + HID_RI_REPORT_COUNT(8, 0x01), + HID_RI_REPORT_SIZE(8, 0x03), + HID_RI_OUTPUT(8, HID_IOF_CONSTANT), + HID_RI_LOGICAL_MINIMUM(8, 0x00), + HID_RI_LOGICAL_MAXIMUM(8, 0x65), + HID_RI_USAGE_PAGE(8, 0x07), /* Keyboard */ + HID_RI_USAGE_MINIMUM(8, 0x00), /* Reserved (no event indicated) */ + HID_RI_USAGE_MAXIMUM(8, 0x65), /* Keyboard Application */ + HID_RI_REPORT_COUNT(8, 0x06), + HID_RI_REPORT_SIZE(8, 0x08), + HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_ARRAY | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), HID_RI_END_COLLECTION(0), }; diff --git a/Demos/Device/LowLevel/Mouse/Descriptors.c b/Demos/Device/LowLevel/Mouse/Descriptors.c index 58a4ae4dc247199c9781c044d832f3c705f9e5fc..26ba10fb49a4cba9989a39b228fbb653e16dfc92 100644 --- a/Demos/Device/LowLevel/Mouse/Descriptors.c +++ b/Demos/Device/LowLevel/Mouse/Descriptors.c @@ -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), }; diff --git a/Demos/DualRole/ClassDriver/MouseHostDevice/Descriptors.c b/Demos/DualRole/ClassDriver/MouseHostDevice/Descriptors.c index 314953eaed8e7f668152ec516e964683c66ba5ce..39688dc6230e1e60f9bafd700d94def00c731cbf 100644 --- a/Demos/DualRole/ClassDriver/MouseHostDevice/Descriptors.c +++ b/Demos/DualRole/ClassDriver/MouseHostDevice/Descriptors.c @@ -45,32 +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), -128, - HID_RI_LOGICAL_MAXIMUM(8), 127, - 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), }; diff --git a/LUFA/Drivers/USB/Class/Common/HIDReportData.h b/LUFA/Drivers/USB/Class/Common/HIDReportData.h index a4c5d31408a8dd98577778b47be9c07d0226e94a..24401b68cdafa54957d2281ec6e014e2e6efd52e 100644 --- a/LUFA/Drivers/USB/Class/Common/HIDReportData.h +++ b/LUFA/Drivers/USB/Class/Common/HIDReportData.h @@ -49,19 +49,28 @@ /* Private Interface - For use in library only: */ #if !defined(__DOXYGEN__) /* Macros: */ - #define HID_RI_DATA_SIZE_MASK 0x03 - #define HID_RI_TYPE_MASK 0x0C - #define HID_RI_TAG_MASK 0xF0 + #define HID_RI_DATA_SIZE_MASK 0x03 + #define HID_RI_TYPE_MASK 0x0C + #define HID_RI_TAG_MASK 0xF0 - #define HID_RI_TYPE_MAIN 0x00 - #define HID_RI_TYPE_GLOBAL 0x04 - #define HID_RI_TYPE_LOCAL 0x08 + #define HID_RI_TYPE_MAIN 0x00 + #define HID_RI_TYPE_GLOBAL 0x04 + #define HID_RI_TYPE_LOCAL 0x08 - #define HID_RI_DATA_BITS_0 0x00 - #define HID_RI_DATA_BITS_8 0x01 - #define HID_RI_DATA_BITS_16 0x02 - #define HID_RI_DATA_BITS_32 0x03 - #define HID_RI_DATA_BITS(DataBits) HID_RI_DATA_BITS_ ## DataBits + #define HID_RI_DATA_BITS_0 0x00 + #define HID_RI_DATA_BITS_8 0x01 + #define HID_RI_DATA_BITS_16 0x02 + #define HID_RI_DATA_BITS_32 0x03 + #define HID_RI_DATA_BITS(DataBits) HID_RI_DATA_BITS_ ## DataBits + + #define _HID_RI_ENCODE_0(Data) /* No Data */ + #define _HID_RI_ENCODE_8(Data) , (Data & 0xFF) + #define _HID_RI_ENCODE_16(Data) _HID_RI_ENCODE_8(Data >> 8) _HID_RI_ENCODE_8(Data) + #define _HID_RI_ENCODE_32(Data) _HID_RI_ENCODE_16(Data >> 16) _HID_RI_ENCODE_16(Data) + #define _HID_RI_ENCODE(DataBits, ...) _HID_RI_ENCODE_ ## DataBits(__VA_ARGS__) + + #define _HID_RI_ENTRY(Type, Tag, DataBits, ...) \ + (Type | Tag | HID_RI_DATA_BITS(DataBits)) _HID_RI_ENCODE(DataBits, (__VA_ARGS__)) #endif /* Public Interface - May be used in end-application: */ @@ -90,28 +99,28 @@ /** \name HID Report Descriptor Item Macros */ //@{ - #define HID_RI_INPUT(DataBits) (HID_RI_TYPE_MAIN | 0x80 | HID_RI_DATA_BITS(DataBits)) - #define HID_RI_OUTPUT(DataBits) (HID_RI_TYPE_MAIN | 0x90 | HID_RI_DATA_BITS(DataBits)) - #define HID_RI_COLLECTION(DataBits) (HID_RI_TYPE_MAIN | 0xA0 | HID_RI_DATA_BITS(DataBits)) - #define HID_RI_FEATURE(DataBits) (HID_RI_TYPE_MAIN | 0xB0 | HID_RI_DATA_BITS(DataBits)) - #define HID_RI_END_COLLECTION(DataBits) (HID_RI_TYPE_MAIN | 0xC0 | HID_RI_DATA_BITS(DataBits)) - #define HID_RI_USAGE_PAGE(DataBits) (HID_RI_TYPE_GLOBAL | 0x00 | HID_RI_DATA_BITS(DataBits)) - #define HID_RI_LOGICAL_MINIMUM(DataBits) (HID_RI_TYPE_GLOBAL | 0x10 | HID_RI_DATA_BITS(DataBits)) - #define HID_RI_LOGICAL_MAXIMUM(DataBits) (HID_RI_TYPE_GLOBAL | 0x20 | HID_RI_DATA_BITS(DataBits)) - #define HID_RI_PHYSICAL_MINIMUM(DataBits) (HID_RI_TYPE_GLOBAL | 0x30 | HID_RI_DATA_BITS(DataBits)) - #define HID_RI_PHYSICAL_MAXIMUM(DataBits) (HID_RI_TYPE_GLOBAL | 0x40 | HID_RI_DATA_BITS(DataBits)) - #define HID_RI_UNIT_EXPONENT(DataBits) (HID_RI_TYPE_GLOBAL | 0x50 | HID_RI_DATA_BITS(DataBits)) - #define HID_RI_UNIT(DataBits) (HID_RI_TYPE_GLOBAL | 0x60 | HID_RI_DATA_BITS(DataBits)) - #define HID_RI_REPORT_SIZE(DataBits) (HID_RI_TYPE_GLOBAL | 0x70 | HID_RI_DATA_BITS(DataBits)) - #define HID_RI_REPORT_ID(DataBits) (HID_RI_TYPE_GLOBAL | 0x80 | HID_RI_DATA_BITS(DataBits)) - #define HID_RI_REPORT_COUNT(DataBits) (HID_RI_TYPE_GLOBAL | 0x90 | HID_RI_DATA_BITS(DataBits)) - #define HID_RI_PUSH(DataBits) (HID_RI_TYPE_GLOBAL | 0xA0 | HID_RI_DATA_BITS(DataBits)) - #define HID_RI_POP(DataBits) (HID_RI_TYPE_GLOBAL | 0xB0 | HID_RI_DATA_BITS(DataBits)) - #define HID_RI_USAGE(DataBits) (HID_RI_TYPE_LOCAL | 0x00 | HID_RI_DATA_BITS(DataBits)) - #define HID_RI_USAGE_MINIMUM(DataBits) (HID_RI_TYPE_LOCAL | 0x10 | HID_RI_DATA_BITS(DataBits)) - #define HID_RI_USAGE_MAXIMUM(DataBits) (HID_RI_TYPE_LOCAL | 0x20 | HID_RI_DATA_BITS(DataBits)) + #define HID_RI_INPUT(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_MAIN , 0x80, DataBits, __VA_ARGS__) + #define HID_RI_OUTPUT(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_MAIN , 0x90, DataBits, __VA_ARGS__) + #define HID_RI_COLLECTION(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_MAIN , 0xA0, DataBits, __VA_ARGS__) + #define HID_RI_FEATURE(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_MAIN , 0xB0, DataBits, __VA_ARGS__) + #define HID_RI_END_COLLECTION(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_MAIN , 0xC0, DataBits, __VA_ARGS__) + #define HID_RI_USAGE_PAGE(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x00, DataBits, __VA_ARGS__) + #define HID_RI_LOGICAL_MINIMUM(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x10, DataBits, __VA_ARGS__) + #define HID_RI_LOGICAL_MAXIMUM(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x20, DataBits, __VA_ARGS__) + #define HID_RI_PHYSICAL_MINIMUM(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x30, DataBits, __VA_ARGS__) + #define HID_RI_PHYSICAL_MAXIMUM(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x40, DataBits, __VA_ARGS__) + #define HID_RI_UNIT_EXPONENT(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x50, DataBits, __VA_ARGS__) + #define HID_RI_UNIT(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x60, DataBits, __VA_ARGS__) + #define HID_RI_REPORT_SIZE(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x70, DataBits, __VA_ARGS__) + #define HID_RI_REPORT_ID(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x80, DataBits, __VA_ARGS__) + #define HID_RI_REPORT_COUNT(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0x90, DataBits, __VA_ARGS__) + #define HID_RI_PUSH(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0xA0, DataBits, __VA_ARGS__) + #define HID_RI_POP(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_GLOBAL, 0xB0, DataBits, __VA_ARGS__) + #define HID_RI_USAGE(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_LOCAL , 0x00, DataBits, __VA_ARGS__) + #define HID_RI_USAGE_MINIMUM(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_LOCAL , 0x10, DataBits, __VA_ARGS__) + #define HID_RI_USAGE_MAXIMUM(DataBits, ...) _HID_RI_ENTRY(HID_RI_TYPE_LOCAL , 0x20, DataBits, __VA_ARGS__) //@} - + /** @} */ #endif diff --git a/Projects/Magstripe/Descriptors.c b/Projects/Magstripe/Descriptors.c index 7feae8ce6a31130699c52b7b7cf28133fe82c638..c7b21fdbf997da362e2a85d1884082779395e93f 100644 --- a/Projects/Magstripe/Descriptors.c +++ b/Projects/Magstripe/Descriptors.c @@ -46,40 +46,37 @@ */ USB_Descriptor_HIDReport_Datatype_t PROGMEM KeyboardReport[] = { - HID_RI_USAGE_PAGE(8), 0x01, /* Generic Desktop */ - HID_RI_USAGE(8), 0x06, /* Keyboard */ - HID_RI_COLLECTION(8), 0x01, /* Application */ - HID_RI_USAGE_PAGE(8), 0x07, /* Key Codes */ - HID_RI_USAGE_MINIMUM(8), 0xE0, /* Keyboard Left Control */ - HID_RI_USAGE_MAXIMUM(8), 0xE7, /* Keyboard Right GUI */ - HID_RI_LOGICAL_MINIMUM(8), 0, - HID_RI_LOGICAL_MAXIMUM(8), 1, - HID_RI_REPORT_SIZE(8), 1, - HID_RI_REPORT_COUNT(8), 8, - HID_RI_INPUT(8), (HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), - - HID_RI_REPORT_COUNT(8), 1, - HID_RI_REPORT_SIZE(8), 8, - HID_RI_INPUT(8), HID_IOF_CONSTANT, - - HID_RI_USAGE_PAGE(8), 0x08, /* LEDs */ - HID_RI_USAGE_MINIMUM(8), 0x01, /* Num Lock */ - HID_RI_USAGE_MAXIMUM(8), 0x05, /* Kana */ - HID_RI_REPORT_COUNT(8), 5, - HID_RI_REPORT_SIZE(8), 1, - HID_RI_OUTPUT(8), (HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), - HID_RI_REPORT_COUNT(8), 1, - HID_RI_REPORT_SIZE(8), 3, - HID_RI_OUTPUT(8), HID_IOF_CONSTANT, - - HID_RI_LOGICAL_MINIMUM(8), 0x00, - HID_RI_LOGICAL_MAXIMUM(8), 0x65, - HID_RI_USAGE_PAGE(8), 0x07, /* Keyboard */ - HID_RI_USAGE_MINIMUM(8), 0x00, /* Reserved (no event indicated) */ - HID_RI_USAGE_MAXIMUM(8), 0x65, /* Keyboard Application */ - HID_RI_REPORT_COUNT(8), 6, - HID_RI_REPORT_SIZE(8), 8, - HID_RI_INPUT(8), (HID_IOF_DATA | HID_IOF_ARRAY | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), + HID_RI_USAGE_PAGE(8, 0x01), /* Generic Desktop */ + HID_RI_USAGE(8, 0x06), /* Keyboard */ + HID_RI_COLLECTION(8, 0x01), /* Application */ + HID_RI_USAGE_PAGE(8, 0x07), /* Key Codes */ + HID_RI_USAGE_MINIMUM(8, 0xE0), /* Keyboard Left Control */ + HID_RI_USAGE_MAXIMUM(8, 0xE7), /* Keyboard Right GUI */ + HID_RI_LOGICAL_MINIMUM(8, 0x00), + HID_RI_LOGICAL_MAXIMUM(8, 0x01), + HID_RI_REPORT_SIZE(8, 0x01), + HID_RI_REPORT_COUNT(8, 0x08), + HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), + HID_RI_REPORT_COUNT(8, 0x01), + HID_RI_REPORT_SIZE(8, 0x08), + HID_RI_INPUT(8, HID_IOF_CONSTANT), + HID_RI_USAGE_PAGE(8, 0x08), /* LEDs */ + HID_RI_USAGE_MINIMUM(8, 0x01), /* Num Lock */ + HID_RI_USAGE_MAXIMUM(8, 0x05), /* Kana */ + HID_RI_REPORT_COUNT(8, 0x05), + HID_RI_REPORT_SIZE(8, 0x01), + HID_RI_OUTPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), + HID_RI_REPORT_COUNT(8, 0x01), + HID_RI_REPORT_SIZE(8, 0x03), + HID_RI_OUTPUT(8, HID_IOF_CONSTANT), + HID_RI_LOGICAL_MINIMUM(8, 0x00), + HID_RI_LOGICAL_MAXIMUM(8, 0x65), + HID_RI_USAGE_PAGE(8, 0x07), /* Keyboard */ + HID_RI_USAGE_MINIMUM(8, 0x00), /* Reserved (no event indicated) */ + HID_RI_USAGE_MAXIMUM(8, 0x65), /* Keyboard Application */ + HID_RI_REPORT_COUNT(8, 0x06), + HID_RI_REPORT_SIZE(8, 0x08), + HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_ARRAY | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE), HID_RI_END_COLLECTION(0), }; diff --git a/Projects/TempDataLogger/Descriptors.c b/Projects/TempDataLogger/Descriptors.c index a0252be5643a5073a5a1f99ace29817934f79c85..1e61df117e6a2909d6d87cc1cd3dcc460181797c 100644 --- a/Projects/TempDataLogger/Descriptors.c +++ b/Projects/TempDataLogger/Descriptors.c @@ -57,22 +57,21 @@ */ USB_Descriptor_HIDReport_Datatype_t PROGMEM GenericReport[] = { - HID_RI_USAGE_PAGE(16), 0x00, 0xFF, /* Vendor Page 1 */ - HID_RI_USAGE(8), 0x01, /* Vendor Usage 1 */ - HID_RI_COLLECTION(8), 0x01, /* Vendor Usage 1 */ - HID_RI_USAGE(8), 0x02, /* Vendor Usage 2 */ - HID_RI_LOGICAL_MINIMUM(8), 0x00, - HID_RI_LOGICAL_MAXIMUM(8), 0xFF, - HID_RI_REPORT_SIZE(8), 8, - HID_RI_REPORT_COUNT(8), GENERIC_REPORT_SIZE, - HID_RI_INPUT(8), (HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_VOLATILE), - - HID_RI_USAGE(8), 0x03, /* Vendor Usage 3 */ - HID_RI_LOGICAL_MINIMUM(8), 0x00, - HID_RI_LOGICAL_MAXIMUM(8), 0xFF, - HID_RI_REPORT_SIZE(8), 8, - HID_RI_REPORT_COUNT(8), GENERIC_REPORT_SIZE, - HID_RI_OUTPUT(8), (HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_VOLATILE), + HID_RI_USAGE_PAGE(16, 0x00FF), /* Vendor Page 1 */ + HID_RI_USAGE(8, 0x01), /* Vendor Usage 1 */ + HID_RI_COLLECTION(8, 0x01), /* Vendor Usage 1 */ + HID_RI_USAGE(8, 0x02), /* Vendor Usage 2 */ + HID_RI_LOGICAL_MINIMUM(8, 0x00), + HID_RI_LOGICAL_MAXIMUM(8, 0xFF), + HID_RI_REPORT_SIZE(8, 0x08), + HID_RI_REPORT_COUNT(8, GENERIC_REPORT_SIZE), + HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_VOLATILE), + HID_RI_USAGE(8, 0x03), /* Vendor Usage 3 */ + HID_RI_LOGICAL_MINIMUM(8, 0x00), + HID_RI_LOGICAL_MAXIMUM(8, 0xFF), + HID_RI_REPORT_SIZE(8, 0x08), + HID_RI_REPORT_COUNT(8, GENERIC_REPORT_SIZE), + HID_RI_OUTPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_VOLATILE), HID_RI_END_COLLECTION(0), };