Get rid of the redundant ATTR_NEVER_INLINE macro which translated to the same as...
[pub/USBasp.git] / Demos / Device / ClassDriver / KeyboardMouseMultiReport / Descriptors.c
index 3a635d0..32b6b4b 100644 (file)
@@ -1,13 +1,13 @@
 /*
              LUFA Library
 /*
              LUFA Library
-     Copyright (C) Dean Camera, 2012.
+     Copyright (C) Dean Camera, 2013.
 
   dean [at] fourwalledcubicle [dot] com
            www.lufa-lib.org
 */
 
 /*
 
   dean [at] fourwalledcubicle [dot] com
            www.lufa-lib.org
 */
 
 /*
-  Copyright 2012  Dean Camera (dean [at] fourwalledcubicle [dot] com)
+  Copyright 2013  Dean Camera (dean [at] fourwalledcubicle [dot] com)
 
   Permission to use, copy, modify, distribute, and sell this
   software and its documentation for any purpose is hereby granted
 
   Permission to use, copy, modify, distribute, and sell this
   software and its documentation for any purpose is hereby granted
@@ -52,30 +52,30 @@ const USB_Descriptor_HIDReport_Datatype_t PROGMEM HIDReport[] =
        HID_RI_USAGE(8, 0x02), /* Mouse */
        HID_RI_COLLECTION(8, 0x01), /* Application */
                HID_RI_REPORT_ID(8, HID_REPORTID_MouseReport),
        HID_RI_USAGE(8, 0x02), /* Mouse */
        HID_RI_COLLECTION(8, 0x01), /* Application */
                HID_RI_REPORT_ID(8, HID_REPORTID_MouseReport),
-           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_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_RI_END_COLLECTION(0),
+               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_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_RI_END_COLLECTION(0),
        HID_RI_END_COLLECTION(0),
 
        /* Keyboard Report */
        HID_RI_END_COLLECTION(0),
 
        /* Keyboard Report */
@@ -83,34 +83,34 @@ const USB_Descriptor_HIDReport_Datatype_t PROGMEM HIDReport[] =
        HID_RI_USAGE(8, 0x06), /* Keyboard */
        HID_RI_COLLECTION(8, 0x01), /* Application */
                HID_RI_REPORT_ID(8, HID_REPORTID_KeyboardReport),
        HID_RI_USAGE(8, 0x06), /* Keyboard */
        HID_RI_COLLECTION(8, 0x01), /* Application */
                HID_RI_REPORT_ID(8, HID_REPORTID_KeyboardReport),
-           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_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_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_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_RI_END_COLLECTION(0),
 };
 
        HID_RI_END_COLLECTION(0),
 };
 
@@ -134,8 +134,8 @@ const USB_Descriptor_Device_t PROGMEM DeviceDescriptor =
        .ProductID              = 0x2066,
        .ReleaseNumber          = VERSION_BCD(00.01),
 
        .ProductID              = 0x2066,
        .ReleaseNumber          = VERSION_BCD(00.01),
 
-       .ManufacturerStrIndex   = 0x01,
-       .ProductStrIndex        = 0x02,
+       .ManufacturerStrIndex   = STRING_ID_Manufacturer,
+       .ProductStrIndex        = STRING_ID_Product,
        .SerialNumStrIndex      = NO_DESCRIPTOR,
 
        .NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
        .SerialNumStrIndex      = NO_DESCRIPTOR,
 
        .NumberOfConfigurations = FIXED_NUM_CONFIGURATIONS
@@ -167,7 +167,7 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
                {
                        .Header                 = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface},
 
                {
                        .Header                 = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface},
 
-                       .InterfaceNumber        = 0x00,
+                       .InterfaceNumber        = INTERFACE_ID_KeyboardAndMouse,
                        .AlternateSetting       = 0x00,
 
                        .TotalEndpoints         = 1,
                        .AlternateSetting       = 0x00,
 
                        .TotalEndpoints         = 1,
@@ -263,15 +263,15 @@ uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue,
                case DTYPE_String:
                        switch (DescriptorNumber)
                        {
                case DTYPE_String:
                        switch (DescriptorNumber)
                        {
-                               case 0x00:
+                               case STRING_ID_Language:
                                        Address = &LanguageString;
                                        Size    = pgm_read_byte(&LanguageString.Header.Size);
                                        break;
                                        Address = &LanguageString;
                                        Size    = pgm_read_byte(&LanguageString.Header.Size);
                                        break;
-                               case 0x01:
+                               case STRING_ID_Manufacturer:
                                        Address = &ManufacturerString;
                                        Size    = pgm_read_byte(&ManufacturerString.Header.Size);
                                        break;
                                        Address = &ManufacturerString;
                                        Size    = pgm_read_byte(&ManufacturerString.Header.Size);
                                        break;
-                               case 0x02:
+                               case STRING_ID_Product:
                                        Address = &ProductString;
                                        Size    = pgm_read_byte(&ProductString.Header.Size);
                                        break;
                                        Address = &ProductString;
                                        Size    = pgm_read_byte(&ProductString.Header.Size);
                                        break;