Fix device mode for the U4 parts.
[pub/USBasp.git] / LUFA / Drivers / USB / Class / Common / HID.h
index 59e262a..822a8b5 100644 (file)
                        #error Do not include this file directly. Include LUFA/Drivers/Class/HID.h instead.
                #endif
                
-       /* Macros: */
-               /** HID class-specific Request to get the current HID report from the device. */
-               #define REQ_GetReport                   0x01
-
-               /** HID class-specific Request to get the current device idle count. */
-               #define REQ_GetIdle                     0x02
-
-               /** HID class-specific Request to set the current HID report to the device. */
-               #define REQ_SetReport                   0x09
-
-               /** HID class-specific Request to set the device's idle count. */
-               #define REQ_SetIdle                     0x0A
-
-               /** HID class-specific Request to get the current HID report protocol mode. */
-               #define REQ_GetProtocol                 0x03
-
-               /** HID class-specific Request to set the current HID report protocol mode. */
-               #define REQ_SetProtocol                 0x0B
-
-               /** Descriptor header type value, to indicate a HID class HID descriptor. */
-               #define DTYPE_HID                       0x21
-               
-               /** Descriptor header type value, to indicate a HID class HID report descriptor. */
-               #define DTYPE_Report                    0x22
-               
-               /** Constant for the protocol value of a HID interface descriptor, indicating that the interface does not support
-                *  any HID class boot protocol (see HID Class Specification).
-                */
-               #define HID_NON_BOOT_PROTOCOL           0x00
-
-               /** Constant for the protocol value of a HID interface descriptor, indicating that the interface supports the
-                *  HID class Keyboard boot protocol (see HID Class Specification).
-                */
-               #define HID_BOOT_KEYBOARD_PROTOCOL      0x01
-
-               /** Constant for the protocol value of a HID interface descriptor, indicating that the interface supports the
-                *  HID class Mouse boot protocol (see HID Class Specification).
-                */
-               #define HID_BOOT_MOUSE_PROTOCOL         0x02
-               
+       /* Macros: */           
                /** Constant for a keyboard report modifier byte, indicating that the keyboard's left control key is currently pressed. */
                #define HID_KEYBOARD_MODIFER_LEFTCTRL   (1 << 0)
 
                #define HID_KEYBOARD_LED_KATANA         (1 << 3)
 
        /* Type Defines: */
+               /** Enum for the HID class specific control requests that can be issued by the USB bus host. */
+               enum HID_ClassRequests_t
+               {
+                       HID_REQ_GetReport   = 0x01, /**< HID class-specific Request to get the current HID report from the device. */
+                       HID_REQ_GetIdle     = 0x02, /**< HID class-specific Request to get the current device idle count. */
+                       HID_REQ_SetReport   = 0x09, /**< HID class-specific Request to set the current HID report to the device. */
+                       HID_REQ_SetIdle     = 0x0A, /**< HID class-specific Request to set the device's idle count. */
+                       HID_REQ_GetProtocol = 0x03, /**< HID class-specific Request to get the current HID report protocol mode. */
+                       HID_REQ_SetProtocol = 0x0B, /**< HID class-specific Request to set the current HID report protocol mode. */
+               };
+               
+               /** Enum for the HID class specific descriptor types. */
+               enum HID_DescriptorTypes_t
+               {
+                       HID_DTYPE_HID    = 0x21, /**< Descriptor header type value, to indicate a HID class HID descriptor. */
+                       HID_DTYPE_Report = 0x22, /**< Descriptor header type value, to indicate a HID class HID report descriptor. */
+               };
+               
+               /** Enum for the HID class boot protocols that may be supported by HID devices. */
+               enum HID_BootProtocols_t
+               {
+                       HID_BOOTP_NonBootProtocol      = 0x00, /**< Constant for the protocol value of a HID interface descriptor, indicating
+                                                               *   that the interface does not support any HID class boot protocol (see HID
+                                                               *   Class Specification).
+                                                               */
+                       HID_BOOTP_KeyboardBootProtocol = 0x01, /**< Constant for the protocol value of a HID interface descriptor, indicating
+                                                               *   that the interface supports the HID class Keyboard boot protocol (see HID
+                                                               *   Class Specification).
+                                                               */
+                       HID_BOOTP_MouseBootProtocol    = 0x02, /**< Constant for the protocol value of a HID interface descriptor, indicating
+                                                               *   that the interface supports the HID class Mouse boot protocol (see HID Class
+                                                               *   Specification).
+                                                               */
+               };
+       
                /** Enum for the different types of HID reports. */
                enum HID_ReportItemTypes_t
                {
-                       REPORT_ITEM_TYPE_In                   = 0, /**< Indicates that the item is an IN report type. */
-                       REPORT_ITEM_TYPE_Out                  = 1, /**< Indicates that the item is an OUT report type. */
-                       REPORT_ITEM_TYPE_Feature              = 2, /**< Indicates that the item is a FEATURE report type. */
+                       HID_REPORT_ITEM_In      = 0, /**< Indicates that the item is an IN report type. */
+                       HID_REPORT_ITEM_Out     = 1, /**< Indicates that the item is an OUT report type. */
+                       HID_REPORT_ITEM_Feature = 2, /**< Indicates that the item is a FEATURE report type. */
                };
 
                /** \brief HID class-specific HID Descriptor (LUFA naming conventions).
                
                        uint8_t                 TotalReportDescriptors; /**< Total number of HID report descriptors for the interface. */
 
-                       uint8_t                 HIDReportType; /**< Type of HID report, set to \ref DTYPE_Report. */
+                       uint8_t                 HIDReportType; /**< Type of HID report, set to \ref HID_DTYPE_Report. */
                        uint16_t                HIDReportLength; /**< Length of the associated HID report descriptor, in bytes. */
                } USB_HID_Descriptor_HID_t;
 
                
                        uint8_t  bNumDescriptors; /**< Total number of HID report descriptors for the interface. */
 
-                       uint8_t  bDescriptorType2; /**< Type of HID report, set to \ref DTYPE_Report. */
+                       uint8_t  bDescriptorType2; /**< Type of HID report, set to \ref HID_DTYPE_Report. */
                        uint16_t wDescriptorLength; /**< Length of the associated HID report descriptor, in bytes. */
                } USB_HID_StdDescriptor_HID_t;