diff options
| author | Dean <Dean@d5102386-fcda-11dd-9fdb-3debd5008f28> | 2011-01-16 19:34:28 +0000 |
|---|---|---|
| committer | Dean <Dean@d5102386-fcda-11dd-9fdb-3debd5008f28> | 2011-01-16 19:34:28 +0000 |
| commit | 323fc23eeb26580a43cd314ab004faadfdd1f90a (patch) | |
| tree | 78fdc14943524b87d6f779b4b00f9bbee7207e18 /Demos | |
| parent | 7bbfac48d27aa89d356ef9aee31f2e54de397840 (diff) | |
New HID report item macros (with HID_RI_ prefix) to allow for easy creation and editing of HID report descriptors.
Changed over all project and demo HID report descriptors to use the new HID report item macros.
Moved the HIDParser.c source file to the LUFA/Drivers/USB/Class/Common/ directory from the LUFA/Drivers/USB/Class/Host/.
git-svn-id: http://lufa-lib.googlecode.com/svn/trunk@1635 d5102386-fcda-11dd-9fdb-3debd5008f28
Diffstat (limited to 'Demos')
| -rw-r--r-- | Demos/Device/ClassDriver/GenericHID/Descriptors.c | 33 | ||||
| -rw-r--r-- | Demos/Device/ClassDriver/Joystick/Descriptors.c | 53 | ||||
| -rw-r--r-- | Demos/Device/ClassDriver/Keyboard/Descriptors.c | 67 | ||||
| -rw-r--r-- | Demos/Device/ClassDriver/KeyboardMouse/Descriptors.c | 123 | ||||
| -rw-r--r-- | Demos/Device/ClassDriver/MassStorageKeyboard/Descriptors.c | 67 | ||||
| -rw-r--r-- | Demos/Device/ClassDriver/Mouse/Descriptors.c | 56 | ||||
| -rw-r--r-- | Demos/Device/ClassDriver/VirtualSerialMouse/Descriptors.c | 56 | ||||
| -rw-r--r-- | Demos/Device/LowLevel/GenericHID/Descriptors.c | 33 | ||||
| -rw-r--r-- | Demos/Device/LowLevel/Joystick/Descriptors.c | 51 | ||||
| -rw-r--r-- | Demos/Device/LowLevel/Keyboard/Descriptors.c | 67 | ||||
| -rw-r--r-- | Demos/Device/LowLevel/KeyboardMouse/Descriptors.c | 123 | ||||
| -rw-r--r-- | Demos/Device/LowLevel/Mouse/Descriptors.c | 56 | ||||
| -rw-r--r-- | Demos/DualRole/ClassDriver/MouseHostDevice/Descriptors.c | 54 |
13 files changed, 438 insertions, 401 deletions
diff --git a/Demos/Device/ClassDriver/GenericHID/Descriptors.c b/Demos/Device/ClassDriver/GenericHID/Descriptors.c index dd459327..0716ae9c 100644 --- a/Demos/Device/ClassDriver/GenericHID/Descriptors.c +++ b/Demos/Device/ClassDriver/GenericHID/Descriptors.c @@ -45,22 +45,23 @@ */ USB_Descriptor_HIDReport_Datatype_t PROGMEM GenericReport[] = { - 0x06, 0x9c, 0xff, /* Usage Page (Vendor Defined) */ - 0x09, 0x01, /* Usage (Vendor Defined) */ - 0xa1, 0x01, /* Collection (Vendor Defined) */ - 0x09, 0x02, /* Usage (Vendor Defined) */ - 0x75, 0x08, /* Report Size (8) */ - 0x95, GENERIC_REPORT_SIZE, /* Report Count (GENERIC_REPORT_SIZE) */ - 0x15, 0x80, /* Logical Minimum (-128) */ - 0x25, 0x7F, /* Logical Maximum (127) */ - 0x81, 0x02, /* Input (Data, Variable, Absolute) */ - 0x09, 0x03, /* Usage (Vendor Defined) */ - 0x75, 0x08, /* Report Size (8) */ - 0x95, GENERIC_REPORT_SIZE, /* Report Count (GENERIC_REPORT_SIZE) */ - 0x15, 0x00, /* Logical Minimum (0) */ - 0x25, 0xff, /* Logical Maximum (255) */ - 0x91, 0x02, /* Output (Data, Variable, Absolute) */ - 0xc0 /* End Collection */ + 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_END_COLLECTION(0), }; /** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall diff --git a/Demos/Device/ClassDriver/Joystick/Descriptors.c b/Demos/Device/ClassDriver/Joystick/Descriptors.c index 9723b429..e2b528e1 100644 --- a/Demos/Device/ClassDriver/Joystick/Descriptors.c +++ b/Demos/Device/ClassDriver/Joystick/Descriptors.c @@ -42,35 +42,34 @@ * descriptor is parsed by the host and its contents used to determine what data (and in what encoding) * the device will send, and what it may be sent back from the host. Refer to the HID specification for * more details on HID report descriptors. - */ + */ USB_Descriptor_HIDReport_Datatype_t PROGMEM JoystickReport[] = { - 0x05, 0x01, /* Usage Page (Generic Desktop) */ - 0x09, 0x04, /* Usage (Joystick) */ - 0xa1, 0x01, /* Collection (Application) */ - 0x09, 0x01, /* Usage (Pointer) */ - 0xa1, 0x00, /* Collection (Physical) */ - 0x05, 0x01, /* Usage Page (Generic Desktop) */ - 0x09, 0x30, /* Usage (X) */ - 0x09, 0x31, /* Usage (Y) */ - 0x15, 0x9c, /* Logical Minimum (-100) */ - 0x25, 0x64, /* Logical Maximum (100) */ - 0x75, 0x08, /* Report Size (8) */ - 0x95, 0x02, /* Report Count (2) */ - 0x81, 0x82, /* Input (Data, Variable, Absolute, Volatile) */ - 0xc0, /* End Collection */ - 0x05, 0x09, /* Usage Page (Button) */ - 0x09, 0x02, /* Usage (Button 2) */ - 0x09, 0x01, /* Usage (Button 1) */ - 0x15, 0x00, /* Logical Minimum (0) */ - 0x25, 0x01, /* Logical Maximum (1) */ - 0x75, 0x01, /* Report Size (1) */ - 0x95, 0x02, /* Report Count (2) */ - 0x81, 0x02, /* Input (Data, Variable, Absolute) */ - 0x75, 0x06, /* Report Size (6) */ - 0x95, 0x01, /* Report Count (1) */ - 0x81, 0x01, /* Input (Constant) */ - 0xc0 /* End Collection */ + 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_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_END_COLLECTION(0), }; /** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall diff --git a/Demos/Device/ClassDriver/Keyboard/Descriptors.c b/Demos/Device/ClassDriver/Keyboard/Descriptors.c index 7a6915c2..640479a2 100644 --- a/Demos/Device/ClassDriver/Keyboard/Descriptors.c +++ b/Demos/Device/ClassDriver/Keyboard/Descriptors.c @@ -45,38 +45,41 @@ */ USB_Descriptor_HIDReport_Datatype_t PROGMEM KeyboardReport[] = { - 0x05, 0x01, /* Usage Page (Generic Desktop) */ - 0x09, 0x06, /* Usage (Keyboard) */ - 0xa1, 0x01, /* Collection (Application) */ - 0x75, 0x01, /* Report Size (1) */ - 0x95, 0x08, /* Report Count (8) */ - 0x05, 0x07, /* Usage Page (Key Codes) */ - 0x19, 0xe0, /* Usage Minimum (Keyboard LeftControl) */ - 0x29, 0xe7, /* Usage Maximum (Keyboard Right GUI) */ - 0x15, 0x00, /* Logical Minimum (0) */ - 0x25, 0x01, /* Logical Maximum (1) */ - 0x81, 0x02, /* Input (Data, Variable, Absolute) */ - 0x95, 0x01, /* Report Count (1) */ - 0x75, 0x08, /* Report Size (8) */ - 0x81, 0x03, /* Input (Const, Variable, Absolute) */ - 0x95, 0x05, /* Report Count (5) */ - 0x75, 0x01, /* Report Size (1) */ - 0x05, 0x08, /* Usage Page (LEDs) */ - 0x19, 0x01, /* Usage Minimum (Num Lock) */ - 0x29, 0x05, /* Usage Maximum (Kana) */ - 0x91, 0x02, /* Output (Data, Variable, Absolute) */ - 0x95, 0x01, /* Report Count (1) */ - 0x75, 0x03, /* Report Size (3) */ - 0x91, 0x03, /* Output (Const, Variable, Absolute) */ - 0x95, 0x06, /* Report Count (6) */ - 0x75, 0x08, /* Report Size (8) */ - 0x15, 0x00, /* Logical Minimum (0) */ - 0x25, 0x65, /* Logical Maximum (101) */ - 0x05, 0x07, /* Usage Page (Keyboard) */ - 0x19, 0x00, /* Usage Minimum (Reserved (no event indicated)) */ - 0x29, 0x65, /* Usage Maximum (Keyboard Application) */ - 0x81, 0x00, /* Input (Data, Array, Absolute) */ - 0xc0 /* End Collection */ + 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_END_COLLECTION(0), }; /** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall diff --git a/Demos/Device/ClassDriver/KeyboardMouse/Descriptors.c b/Demos/Device/ClassDriver/KeyboardMouse/Descriptors.c index d3f37b01..e7f25621 100644 --- a/Demos/Device/ClassDriver/KeyboardMouse/Descriptors.c +++ b/Demos/Device/ClassDriver/KeyboardMouse/Descriptors.c @@ -47,69 +47,76 @@ */ USB_Descriptor_HIDReport_Datatype_t PROGMEM MouseReport[] = { - 0x05, 0x01, /* Usage Page (Generic Desktop) */ - 0x09, 0x02, /* Usage (Mouse) */ - 0xA1, 0x01, /* Collection (Application) */ - 0x09, 0x01, /* Usage (Pointer) */ - 0xA1, 0x00, /* Collection (Physical) */ - 0x95, 0x03, /* Report Count (3) */ - 0x75, 0x01, /* Report Size (1) */ - 0x05, 0x09, /* Usage Page (Button) */ - 0x19, 0x01, /* Usage Minimum (Button 1) */ - 0x29, 0x03, /* Usage Maximum (Button 3) */ - 0x15, 0x00, /* Logical Minimum (0) */ - 0x25, 0x01, /* Logical Maximum (1) */ - 0x81, 0x02, /* Input (Data, Variable, Absolute) */ - 0x95, 0x01, /* Report Count (1) */ - 0x75, 0x05, /* Report Size (5) */ - 0x81, 0x01, /* Input (Constant) */ - 0x75, 0x08, /* Report Size (8) */ - 0x95, 0x02, /* Report Count (2) */ - 0x05, 0x01, /* Usage Page (Generic Desktop Control) */ - 0x09, 0x30, /* Usage X */ - 0x09, 0x31, /* Usage Y */ - 0x15, 0x81, /* Logical Minimum (-127) */ - 0x25, 0x7F, /* Logical Maximum (127) */ - 0x81, 0x06, /* Input (Data, Variable, Relative) */ - 0xC0, /* End Collection */ - 0xC0, /* End Collection */ + 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_END_COLLECTION(0), + HID_RI_END_COLLECTION(0), }; /** Same as the MouseReport structure, but defines the keyboard HID interface's report structure. */ USB_Descriptor_HIDReport_Datatype_t PROGMEM KeyboardReport[] = { - 0x05, 0x01, /* Usage Page (Generic Desktop) */ - 0x09, 0x06, /* Usage (Keyboard) */ - 0xa1, 0x01, /* Collection (Application) */ - 0x75, 0x01, /* Report Size (1) */ - 0x95, 0x08, /* Report Count (8) */ - 0x05, 0x07, /* Usage Page (Key Codes) */ - 0x19, 0xe0, /* Usage Minimum (Keyboard LeftControl) */ - 0x29, 0xe7, /* Usage Maximum (Keyboard Right GUI) */ - 0x15, 0x00, /* Logical Minimum (0) */ - 0x25, 0x01, /* Logical Maximum (1) */ - 0x81, 0x02, /* Input (Data, Variable, Absolute) */ - 0x95, 0x01, /* Report Count (1) */ - 0x75, 0x08, /* Report Size (8) */ - 0x81, 0x03, /* Input (Const, Variable, Absolute) */ - 0x95, 0x05, /* Report Count (5) */ - 0x75, 0x01, /* Report Size (1) */ - 0x05, 0x08, /* Usage Page (LEDs) */ - 0x19, 0x01, /* Usage Minimum (Num Lock) */ - 0x29, 0x05, /* Usage Maximum (Kana) */ - 0x91, 0x02, /* Output (Data, Variable, Absolute) */ - 0x95, 0x01, /* Report Count (1) */ - 0x75, 0x03, /* Report Size (3) */ - 0x91, 0x03, /* Output (Const, Variable, Absolute) */ - 0x95, 0x06, /* Report Count (6) */ - 0x75, 0x08, /* Report Size (8) */ - 0x15, 0x00, /* Logical Minimum (0) */ - 0x25, 0x65, /* Logical Maximum (101) */ - 0x05, 0x07, /* Usage Page (Keyboard) */ - 0x19, 0x00, /* Usage Minimum (Reserved (no event indicated)) */ - 0x29, 0x65, /* Usage Maximum (Keyboard Application) */ - 0x81, 0x00, /* Input (Data, Array, Absolute) */ - 0xC0 /* End Collection */ + 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_END_COLLECTION(0), }; /** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall diff --git a/Demos/Device/ClassDriver/MassStorageKeyboard/Descriptors.c b/Demos/Device/ClassDriver/MassStorageKeyboard/Descriptors.c index b67c74f6..3d766b6b 100644 --- a/Demos/Device/ClassDriver/MassStorageKeyboard/Descriptors.c +++ b/Demos/Device/ClassDriver/MassStorageKeyboard/Descriptors.c @@ -58,38 +58,41 @@ */ USB_Descriptor_HIDReport_Datatype_t PROGMEM KeyboardReport[] = { - 0x05, 0x01, /* Usage Page (Generic Desktop) */ - 0x09, 0x06, /* Usage (Keyboard) */ - 0xa1, 0x01, /* Collection (Application) */ - 0x75, 0x01, /* Report Size (1) */ - 0x95, 0x08, /* Report Count (8) */ - 0x05, 0x07, /* Usage Page (Key Codes) */ - 0x19, 0xe0, /* Usage Minimum (Keyboard LeftControl) */ - 0x29, 0xe7, /* Usage Maximum (Keyboard Right GUI) */ - 0x15, 0x00, /* Logical Minimum (0) */ - 0x25, 0x01, /* Logical Maximum (1) */ - 0x81, 0x02, /* Input (Data, Variable, Absolute) */ - 0x95, 0x01, /* Report Count (1) */ - 0x75, 0x08, /* Report Size (8) */ - 0x81, 0x03, /* Input (Const, Variable, Absolute) */ - 0x95, 0x05, /* Report Count (5) */ - 0x75, 0x01, /* Report Size (1) */ - 0x05, 0x08, /* Usage Page (LEDs) */ - 0x19, 0x01, /* Usage Minimum (Num Lock) */ - 0x29, 0x05, /* Usage Maximum (Kana) */ - 0x91, 0x02, /* Output (Data, Variable, Absolute) */ - 0x95, 0x01, /* Report Count (1) */ - 0x75, 0x03, /* Report Size (3) */ - 0x91, 0x03, /* Output (Const, Variable, Absolute) */ - 0x95, 0x06, /* Report Count (6) */ - 0x75, 0x08, /* Report Size (8) */ - 0x15, 0x00, /* Logical Minimum (0) */ - 0x25, 0x65, /* Logical Maximum (101) */ - 0x05, 0x07, /* Usage Page (Keyboard) */ - 0x19, 0x00, /* Usage Minimum (Reserved (no event indicated)) */ - 0x29, 0x65, /* Usage Maximum (Keyboard Application) */ - 0x81, 0x00, /* Input (Data, Array, Absolute) */ - 0xc0 /* End Collection */ + 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_END_COLLECTION(0), }; /** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall diff --git a/Demos/Device/ClassDriver/Mouse/Descriptors.c b/Demos/Device/ClassDriver/Mouse/Descriptors.c index fa78246a..58a4ae4d 100644 --- a/Demos/Device/ClassDriver/Mouse/Descriptors.c +++ b/Demos/Device/ClassDriver/Mouse/Descriptors.c @@ -45,32 +45,36 @@ */ USB_Descriptor_HIDReport_Datatype_t PROGMEM MouseReport[] = { - 0x05, 0x01, /* Usage Page (Generic Desktop) */ - 0x09, 0x02, /* Usage (Mouse) */ - 0xA1, 0x01, /* Collection (Application) */ - 0x09, 0x01, /* Usage (Pointer) */ - 0xA1, 0x00, /* Collection (Application) */ - 0x95, 0x03, /* Report Count (3) */ - 0x75, 0x01, /* Report Size (1) */ - 0x05, 0x09, /* Usage Page (Button) */ - 0x19, 0x01, /* Usage Minimum (Button 1) */ - 0x29, 0x03, /* Usage Maximum (Button 3) */ - 0x15, 0x00, /* Logical Minimum (0) */ - 0x25, 0x01, /* Logical Maximum (1) */ - 0x81, 0x02, /* Input (Data, Variable, Absolute) */ - 0x95, 0x01, /* Report Count (1) */ - 0x75, 0x05, /* Report Size (5) */ - 0x81, 0x01, /* Input (Constant) */ - 0x75, 0x08, /* Report Size (8) */ - 0x95, 0x02, /* Report Count (2) */ - 0x05, 0x01, /* Usage Page (Generic Desktop Control) */ - 0x09, 0x30, /* Usage X */ - 0x09, 0x31, /* Usage Y */ - 0x15, 0x81, /* Logical Minimum (-127) */ - 0x25, 0x7F, /* Logical Maximum (127) */ - 0x81, 0x06, /* Input (Data, Variable, Relative) */ - 0xC0, /* End Collection */ - 0xC0 /* End Collection */ + 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_END_COLLECTION(0), + HID_RI_END_COLLECTION(0), }; /** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall diff --git a/Demos/Device/ClassDriver/VirtualSerialMouse/Descriptors.c b/Demos/Device/ClassDriver/VirtualSerialMouse/Descriptors.c index 1e76ec23..7cf15e0e 100644 --- a/Demos/Device/ClassDriver/VirtualSerialMouse/Descriptors.c +++ b/Demos/Device/ClassDriver/VirtualSerialMouse/Descriptors.c @@ -57,32 +57,36 @@ */ USB_Descriptor_HIDReport_Datatype_t PROGMEM MouseReport[] = { - 0x05, 0x01, /* Usage Page (Generic Desktop) */ - 0x09, 0x02, /* Usage (Mouse) */ - 0xA1, 0x01, /* Collection (Application) */ - 0x09, 0x01, /* Usage (Pointer) */ - 0xA1, 0x00, /* Collection (Application) */ - 0x95, 0x03, /* Report Count (3) */ - 0x75, 0x01, /* Report Size (1) */ - 0x05, 0x09, /* Usage Page (Button) */ - 0x19, 0x01, /* Usage Minimum (Button 1) */ - 0x29, 0x03, /* Usage Maximum (Button 3) */ - 0x15, 0x00, /* Logical Minimum (0) */ - 0x25, 0x01, /* Logical Maximum (1) */ - 0x81, 0x02, /* Input (Data, Variable, Absolute) */ - 0x95, 0x01, /* Report Count (1) */ - 0x75, 0x05, /* Report Size (5) */ - 0x81, 0x01, /* Input (Constant) */ - 0x75, 0x08, /* Report Size (8) */ - 0x95, 0x02, /* Report Count (2) */ - 0x05, 0x01, /* Usage Page (Generic Desktop Control) */ - 0x09, 0x30, /* Usage X */ - 0x09, 0x31, /* Usage Y */ - 0x15, 0x81, /* Logical Minimum (-127) */ - 0x25, 0x7F, /* Logical Maximum (127) */ - 0x81, 0x06, /* Input (Data, Variable, Relative) */ - 0xC0, /* End Collection */ - 0xC0 /* End Collection */ + 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_END_COLLECTION(0), + HID_RI_END_COLLECTION(0), }; /** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall diff --git a/Demos/Device/LowLevel/GenericHID/Descriptors.c b/Demos/Device/LowLevel/GenericHID/Descriptors.c index 7b30cb92..3a018d9a 100644 --- a/Demos/Device/LowLevel/GenericHID/Descriptors.c +++ b/Demos/Device/LowLevel/GenericHID/Descriptors.c @@ -45,22 +45,23 @@ */ USB_Descriptor_HIDReport_Datatype_t PROGMEM GenericReport[] = { - 0x06, 0x9c, 0xff, /* Usage Page (Vendor Defined) */ - 0x09, 0x01, /* Usage (Vendor Defined) */ - 0xa1, 0x01, /* Collection (Vendor Defined) */ - 0x09, 0x02, /* Usage (Vendor Defined) */ - 0x75, 0x08, /* Report Size (8) */ - 0x95, GENERIC_REPORT_SIZE, /* Report Count (GENERIC_REPORT_SIZE) */ - 0x15, 0x00, /* Logical Minimum (0) */ - 0x25, 0xff, /* Logical Maximum (255) */ - 0x81, 0x02, /* Input (Data, Variable, Absolute) */ - 0x09, 0x03, /* Usage (Vendor Defined) */ - 0x75, 0x08, /* Report Size (8) */ - 0x95, GENERIC_REPORT_SIZE, /* Report Count (GENERIC_REPORT_SIZE) */ - 0x15, 0x00, /* Logical Minimum (0) */ - 0x25, 0xff, /* Logical Maximum (255) */ - 0x91, 0x02, /* Output (Data, Variable, Absolute) */ - 0xc0 /* End Collection */ + 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_END_COLLECTION(0), }; /** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall diff --git a/Demos/Device/LowLevel/Joystick/Descriptors.c b/Demos/Device/LowLevel/Joystick/Descriptors.c index a0f72fb5..bc0b430b 100644 --- a/Demos/Device/LowLevel/Joystick/Descriptors.c +++ b/Demos/Device/LowLevel/Joystick/Descriptors.c @@ -45,32 +45,31 @@ */ USB_Descriptor_HIDReport_Datatype_t PROGMEM JoystickReport[] = { - 0x05, 0x01, /* Usage Page (Generic Desktop) */ - 0x09, 0x04, /* Usage (Joystick) */ - 0xa1, 0x01, /* Collection (Application) */ - 0x09, 0x01, /* Usage (Pointer) */ - 0xa1, 0x00, /* Collection (Physical) */ - 0x05, 0x01, /* Usage Page (Generic Desktop) */ - 0x09, 0x30, /* Usage (X) */ - 0x09, 0x31, /* Usage (Y) */ - 0x15, 0x9c, /* Logical Minimum (-100) */ - 0x25, 0x64, /* Logical Maximum (100) */ - 0x75, 0x08, /* Report Size (8) */ - 0x95, 0x02, /* Report Count (2) */ - 0x81, 0x82, /* Input (Data, Variable, Absolute, Volatile) */ - 0xc0, /* End Collection */ - 0x05, 0x09, /* Usage Page (Button) */ - 0x09, 0x02, /* Usage (Button 2) */ - 0x09, 0x01, /* Usage (Button 1) */ - 0x15, 0x00, /* Logical Minimum (0) */ - 0x25, 0x01, /* Logical Maximum (1) */ - 0x75, 0x01, /* Report Size (1) */ - 0x95, 0x02, /* Report Count (2) */ - 0x81, 0x02, /* Input (Data, Variable, Absolute) */ - 0x75, 0x06, /* Report Size (6) */ - 0x95, 0x01, /* Report Count (1) */ - 0x81, 0x01, /* Input (Constant) */ - 0xc0 /* End Collection */ + 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_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_END_COLLECTION(0), }; /** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall diff --git a/Demos/Device/LowLevel/Keyboard/Descriptors.c b/Demos/Device/LowLevel/Keyboard/Descriptors.c index 1ad2dd3c..8e5cf152 100644 --- a/Demos/Device/LowLevel/Keyboard/Descriptors.c +++ b/Demos/Device/LowLevel/Keyboard/Descriptors.c @@ -46,38 +46,41 @@ */ USB_Descriptor_HIDReport_Datatype_t PROGMEM KeyboardReport[] = { - 0x05, 0x01, /* Usage Page (Generic Desktop) */ - 0x09, 0x06, /* Usage (Keyboard) */ - 0xa1, 0x01, /* Collection (Application) */ - 0x75, 0x01, /* Report Size (1) */ - 0x95, 0x08, /* Report Count (8) */ - 0x05, 0x07, /* Usage Page (Key Codes) */ - 0x19, 0xe0, /* Usage Minimum (Keyboard LeftControl) */ - 0x29, 0xe7, /* Usage Maximum (Keyboard Right GUI) */ - 0x15, 0x00, /* Logical Minimum (0) */ - 0x25, 0x01, /* Logical Maximum (1) */ - 0x81, 0x02, /* Input (Data, Variable, Absolute) */ - 0x95, 0x01, /* Report Count (1) */ - 0x75, 0x08, /* Report Size (8) */ - 0x81, 0x03, /* Input (Const, Variable, Absolute) */ - 0x95, 0x05, /* Report Count (5) */ - 0x75, 0x01, /* Report Size (1) */ - 0x05, 0x08, /* Usage Page (LEDs) */ - 0x19, 0x01, /* Usage Minimum (Num Lock) */ - 0x29, 0x05, /* Usage Maximum (Kana) */ - 0x91, 0x02, /* Output (Data, Variable, Absolute) */ - 0x95, 0x01, /* Report Count (1) */ - 0x75, 0x03, /* Report Size (3) */ - 0x91, 0x03, /* Output (Const, Variable, Absolute) */ - 0x95, 0x06, /* Report Count (6) */ - 0x75, 0x08, /* Report Size (8) */ - 0x15, 0x00, /* Logical Minimum (0) */ - 0x25, 0x65, /* Logical Maximum (101) */ - 0x05, 0x07, /* Usage Page (Keyboard) */ - 0x19, 0x00, /* Usage Minimum (Reserved (no event indicated)) */ - 0x29, 0x65, /* Usage Maximum (Keyboard Application) */ - 0x81, 0x00, /* Input (Data, Array, Absolute) */ - 0xc0 /* End Collection */ + 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_END_COLLECTION(0), }; /** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall diff --git a/Demos/Device/LowLevel/KeyboardMouse/Descriptors.c b/Demos/Device/LowLevel/KeyboardMouse/Descriptors.c index de74aca9..2d8fd44c 100644 --- a/Demos/Device/LowLevel/KeyboardMouse/Descriptors.c +++ b/Demos/Device/LowLevel/KeyboardMouse/Descriptors.c @@ -48,69 +48,76 @@ */ USB_Descriptor_HIDReport_Datatype_t PROGMEM MouseReport[] = { - 0x05, 0x01, /* Usage Page (Generic Desktop) */ - 0x09, 0x02, /* Usage (Mouse) */ - 0xA1, 0x01, /* Collection (Application) */ - 0x09, 0x01, /* Usage (Pointer) */ - 0xA1, 0x00, /* Collection (Physical) */ - 0x95, 0x03, /* Report Count (3) */ - 0x75, 0x01, /* Report Size (1) */ - 0x05, 0x09, /* Usage Page (Button) */ - 0x19, 0x01, /* Usage Minimum (Button 1) */ - 0x29, 0x03, /* Usage Maximum (Button 3) */ - 0x15, 0x00, /* Logical Minimum (0) */ - 0x25, 0x01, /* Logical Maximum (1) */ - 0x81, 0x02, /* Input (Data, Variable, Absolute) */ - 0x95, 0x01, /* Report Count (1) */ - 0x75, 0x05, /* Report Size (5) */ - 0x81, 0x01, /* Input (Constant) */ - 0x75, 0x08, /* Report Size (8) */ - 0x95, 0x02, /* Report Count (2) */ - 0x05, 0x01, /* Usage Page (Generic Desktop Control) */ - 0x09, 0x30, /* Usage X */ - 0x09, 0x31, /* Usage Y */ - 0x15, 0x81, /* Logical Minimum (-127) */ - 0x25, 0x7F, /* Logical Maximum (127) */ - 0x81, 0x06, /* Input (Data, Variable, Relative) */ - 0xC0, /* End Collection */ - 0xC0, /* End Collection */ + 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_END_COLLECTION(0), + HID_RI_END_COLLECTION(0), }; /** Same as the MouseReport structure, but defines the keyboard HID interface's report structure. */ USB_Descriptor_HIDReport_Datatype_t PROGMEM KeyboardReport[] = { - 0x05, 0x01, /* Usage Page (Generic Desktop) */ - 0x09, 0x06, /* Usage (Keyboard) */ - 0xa1, 0x01, /* Collection (Application) */ - 0x75, 0x01, /* Report Size (1) */ - 0x95, 0x08, /* Report Count (8) */ - 0x05, 0x07, /* Usage Page (Key Codes) */ - 0x19, 0xe0, /* Usage Minimum (Keyboard LeftControl) */ - 0x29, 0xe7, /* Usage Maximum (Keyboard Right GUI) */ - 0x15, 0x00, /* Logical Minimum (0) */ - 0x25, 0x01, /* Logical Maximum (1) */ - 0x81, 0x02, /* Input (Data, Variable, Absolute) */ - 0x95, 0x01, /* Report Count (1) */ - 0x75, 0x08, /* Report Size (8) */ - 0x81, 0x03, /* Input (Const, Variable, Absolute) */ - 0x95, 0x05, /* Report Count (5) */ - 0x75, 0x01, /* Report Size (1) */ - 0x05, 0x08, /* Usage Page (LEDs) */ - 0x19, 0x01, /* Usage Minimum (Num Lock) */ - 0x29, 0x05, /* Usage Maximum (Kana) */ - 0x91, 0x02, /* Output (Data, Variable, Absolute) */ - 0x95, 0x01, /* Report Count (1) */ - 0x75, 0x03, /* Report Size (3) */ - 0x91, 0x03, /* Output (Const, Variable, Absolute) */ - 0x95, 0x06, /* Report Count (6) */ - 0x75, 0x08, /* Report Size (8) */ - 0x15, 0x00, /* Logical Minimum (0) */ - 0x25, 0x65, /* Logical Maximum (101) */ - 0x05, 0x07, /* Usage Page (Keyboard) */ - 0x19, 0x00, /* Usage Minimum (Reserved (no event indicated)) */ - 0x29, 0x65, /* Usage Maximum (Keyboard Application) */ - 0x81, 0x00, /* Input (Data, Array, Absolute) */ - 0xC0 /* End Collection */ + 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_END_COLLECTION(0), }; /** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall diff --git a/Demos/Device/LowLevel/Mouse/Descriptors.c b/Demos/Device/LowLevel/Mouse/Descriptors.c index fa78246a..58a4ae4d 100644 --- a/Demos/Device/LowLevel/Mouse/Descriptors.c +++ b/Demos/Device/LowLevel/Mouse/Descriptors.c @@ -45,32 +45,36 @@ */ USB_Descriptor_HIDReport_Datatype_t PROGMEM MouseReport[] = { - 0x05, 0x01, /* Usage Page (Generic Desktop) */ - 0x09, 0x02, /* Usage (Mouse) */ - 0xA1, 0x01, /* Collection (Application) */ - 0x09, 0x01, /* Usage (Pointer) */ - 0xA1, 0x00, /* Collection (Application) */ - 0x95, 0x03, /* Report Count (3) */ - 0x75, 0x01, /* Report Size (1) */ - 0x05, 0x09, /* Usage Page (Button) */ - 0x19, 0x01, /* Usage Minimum (Button 1) */ - 0x29, 0x03, /* Usage Maximum (Button 3) */ - 0x15, 0x00, /* Logical Minimum (0) */ - 0x25, 0x01, /* Logical Maximum (1) */ - 0x81, 0x02, /* Input (Data, Variable, Absolute) */ - 0x95, 0x01, /* Report Count (1) */ - 0x75, 0x05, /* Report Size (5) */ - 0x81, 0x01, /* Input (Constant) */ - 0x75, 0x08, /* Report Size (8) */ - 0x95, 0x02, /* Report Count (2) */ - 0x05, 0x01, /* Usage Page (Generic Desktop Control) */ - 0x09, 0x30, /* Usage X */ - 0x09, 0x31, /* Usage Y */ - 0x15, 0x81, /* Logical Minimum (-127) */ - 0x25, 0x7F, /* Logical Maximum (127) */ - 0x81, 0x06, /* Input (Data, Variable, Relative) */ - 0xC0, /* End Collection */ - 0xC0 /* End Collection */ + 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_END_COLLECTION(0), + HID_RI_END_COLLECTION(0), }; /** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall diff --git a/Demos/DualRole/ClassDriver/MouseHostDevice/Descriptors.c b/Demos/DualRole/ClassDriver/MouseHostDevice/Descriptors.c index 1c37617c..314953ea 100644 --- a/Demos/DualRole/ClassDriver/MouseHostDevice/Descriptors.c +++ b/Demos/DualRole/ClassDriver/MouseHostDevice/Descriptors.c @@ -45,32 +45,34 @@ */ USB_Descriptor_HIDReport_Datatype_t PROGMEM MouseReport[] = { - 0x05, 0x01, /* Usage Page (Generic Desktop) */ - 0x09, 0x02, /* Usage (Mouse) */ - 0xA1, 0x01, /* Collection (Application) */ - 0x09, 0x01, /* Usage (Pointer) */ - 0xA1, 0x00, /* Collection (Application) */ - 0x95, 0x03, /* Report Count (3) */ - 0x75, 0x01, /* Report Size (1) */ - 0x05, 0x09, /* Usage Page (Button) */ - 0x19, 0x01, /* Usage Minimum (Button 1) */ - 0x29, 0x03, /* Usage Maximum (Button 3) */ - 0x15, 0x00, /* Logical Minimum (0) */ - 0x25, 0x01, /* Logical Maximum (1) */ - 0x81, 0x02, /* Input (Data, Variable, Absolute) */ - 0x95, 0x01, /* Report Count (1) */ - 0x75, 0x05, /* Report Size (5) */ - 0x81, 0x01, /* Input (Constant) */ - 0x75, 0x08, /* Report Size (8) */ - 0x95, 0x02, /* Report Count (2) */ - 0x05, 0x01, /* Usage Page (Generic Desktop Control) */ - 0x09, 0x30, /* Usage X */ - 0x09, 0x31, /* Usage Y */ - 0x15, 0x81, /* Logical Minimum (-127) */ - 0x25, 0x7F, /* Logical Maximum (127) */ - 0x81, 0x06, /* Input (Data, Variable, Relative) */ - 0xC0, /* End Collection */ - 0xC0 /* End Collection */ + 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_END_COLLECTION(0), + HID_RI_END_COLLECTION(0), }; /** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall |
