Fix incorrect compiler error message when F_CLOCK is not defined by the user (thanks...
[pub/USBasp.git] / LUFA / Drivers / USB / Class / Device / HID.h
index dee892d..d1c3526 100644 (file)
@@ -61,7 +61,7 @@
                         *  within the user application, and passed to each of the HID class driver functions as the\r
                         *  HIDInterfaceInfo parameter. This stores each HID interface's configuration and state information.\r
                         *\r
-                        *  \note Due to technical limitations, the HID device class driver does not utilize a seperate OUT\r
+                        *  \note Due to technical limitations, the HID device class driver does not utilize a separate OUT\r
                         *        endpoint for host->device communications. Instead, the host->device data (if any) is sent to\r
                         *        the device via the control endpoint.\r
                         */\r
 \r
                                        uint8_t  ReportINEndpointNumber; /**< Endpoint number of the HID interface's IN report endpoint */\r
                                        uint16_t ReportINEndpointSize; /**< Size in bytes of the HID interface's IN report endpoint */                                  \r
+                                       bool     ReportINEndpointDoubleBank; /** Indicates if the HID interface's IN report endpoint should use double banking */\r
                                        \r
-                                       void*    PrevReportINBuffer; /** Pointer to a buffer where the previously created HID input report can be\r
+                                       void*    PrevReportINBuffer; /**< Pointer to a buffer where the previously created HID input report can be\r
                                                                      *  stored by the driver, for comparison purposes to detect report changes that\r
                                                                      *  must be sent immediately to the host. This should point to a buffer big enough\r
-                                                                     *  to hold the largest HID input report sent from the HID interface.\r
+                                                                     *  to hold the largest HID input report sent from the HID interface. If this is set\r
+                                                                                                 *  to NULL, it is up to the user to force transfers when needed in the \r
+                                                                                                 *  \ref CALLBACK_HID_Device_CreateHIDReport() callback function.\r
+                                                                                                 *\r
+                                                                                                 *  \note Due to the single buffer, the internal driver can only correctly compare\r
+                                                                                                 *        subsequent reports with identical report IDs. In multiple report devices,\r
+                                                                                                 *        this buffer should be set to NULL and the decision to send reports made\r
+                                                                                                 *        by the user application instead.\r
                                                                      */\r
-                                       uint8_t  PrevReportINBufferSize; /** Size in bytes of the given input report buffer. This is used to create a\r
+                                       uint8_t  PrevReportINBufferSize; /**< Size in bytes of the given input report buffer. This is used to create a\r
                                                                          *  second buffer of the same size within the driver so that subsequent reports\r
                                                                          *  can be compared.\r
                                                                          */\r
@@ -89,9 +97,9 @@
                                struct\r
                                {\r
                                        bool     UsingReportProtocol; /**< Indicates if the HID interface is set to Boot or Report protocol mode */\r
-                                       uint16_t IdleCount; /**< Report idle period, in mS, set by the host */\r
-                                       uint16_t IdleMSRemaining; /**< Total number of mS remaining before the idle period elapsed - this should be\r
-                                                                                          *   decremented by the user application if non-zero each millisecond */      \r
+                                       uint16_t IdleCount; /**< Report idle period, in milliseconds, set by the host */\r
+                                       uint16_t IdleMSRemaining; /**< Total number of milliseconds remaining before the idle period elapsed - this \r
+                                                                                          *   should be decremented by the user application if non-zero each millisecond */    \r
                                } State; /**< State data for the USB class interface within the device. All elements in this section\r
                                          *   are reset to their defaults when the interface is enumerated.\r
                                          */\r
                         *\r
                         *  \param[in,out] HIDInterfaceInfo  Pointer to a structure containing a HID Class configuration and state\r
                         *\r
-                        *  \return Boolean true if the endpoints were sucessfully configured, false otherwise\r
+                        *  \return Boolean true if the endpoints were successfully configured, false otherwise\r
                         */\r
                        bool HID_Device_ConfigureEndpoints(USB_ClassInfo_HID_Device_t* HIDInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1);\r
                        \r
-                       /** Processes incomming control requests from the host, that are directed to the given HID class interface. This should be\r
+                       /** Processes incoming control requests from the host, that are directed to the given HID class interface. This should be\r
                         *  linked to the library \ref EVENT_USB_Device_UnhandledControlRequest() event.\r
                         *\r
                         *  \param[in,out] HIDInterfaceInfo  Pointer to a structure containing a HID Class configuration and state\r