Fixed programming errors in the AVRISP-MKII project when the programming packet is...
[pub/USBasp.git] / Demos / Device / ClassDriver / KeyboardMouse / Descriptors.c
index d3f37b0..6c7b06d 100644 (file)
  */
 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                                  */
+       /* Use the HID class driver's standard Mouse report.
+        *   Min X/Y Axis values: -1
+        *   Max X/Y Axis values:  1
+        *   Min physical X/Y Axis values (used to determine resolution): -1
+        *   Max physical X/Y Axis values (used to determine resolution):  1
+        *   Buttons: 3
+        *   Absolute screen coordinates: false
+        */
+       HID_DESCRIPTOR_MOUSE(-1, 1, -1, 1, 3, false)
 };
 
 /** 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                                  */
+       /* Use the HID class driver's standard Keyboard report.
+        *   Max simultaneous keys: 6
+        */
+       HID_DESCRIPTOR_KEYBOARD(6)
 };
 
 /** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall
@@ -324,6 +279,7 @@ uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
                                Address = &ConfigurationDescriptor.HID2_MouseHID;
                                Size    = sizeof(USB_HID_Descriptor_HID_t);
                        }
+                       
                        break;
                case HID_DTYPE_Report:
                        if (!(wIndex))