X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/870591983c80053d05175cfe54bab603a8a945d9..05fcf7e2a79bebb978d4aeaef26b12f70c6826f8:/LUFA/Drivers/USB/Class/Device/HID.h diff --git a/LUFA/Drivers/USB/Class/Device/HID.h b/LUFA/Drivers/USB/Class/Device/HID.h index 545b38d14..f92ffd749 100644 --- a/LUFA/Drivers/USB/Class/Device/HID.h +++ b/LUFA/Drivers/USB/Class/Device/HID.h @@ -61,7 +61,7 @@ * within the user application, and passed to each of the HID class driver functions as the * HIDInterfaceInfo parameter. This stores each HID interface's configuration and state information. * - * \note Due to technical limitations, the HID device class driver does not utilize a seperate OUT + * \note Due to technical limitations, the HID device class driver does not utilize a separate OUT * endpoint for host->device communications. Instead, the host->device data (if any) is sent to * the device via the control endpoint. */ @@ -73,6 +73,7 @@ uint8_t ReportINEndpointNumber; /**< Endpoint number of the HID interface's IN report endpoint */ uint16_t ReportINEndpointSize; /**< Size in bytes of the HID interface's IN report endpoint */ + bool ReportINEndpointDoubleBank; /** Indicates if the HID interface's IN report endpoint should use double banking */ void* PrevReportINBuffer; /**< Pointer to a buffer where the previously created HID input report can be * stored by the driver, for comparison purposes to detect report changes that @@ -88,7 +89,8 @@ */ uint8_t PrevReportINBufferSize; /**< Size in bytes of the given input report buffer. This is used to create a * second buffer of the same size within the driver so that subsequent reports - * can be compared. + * can be compared. If the user app is to determine when reports are to be sent + * exclusively (i.e. \ref PrevReportINBuffer is NULL) this value is ignored. */ } Config; /**< Config data for the USB class interface within the device. All elements in this section * must be set or the interface will fail to enumerate and operate correctly. @@ -111,11 +113,11 @@ * * \param[in,out] HIDInterfaceInfo Pointer to a structure containing a HID Class configuration and state * - * \return Boolean true if the endpoints were sucessfully configured, false otherwise + * \return Boolean true if the endpoints were successfully configured, false otherwise */ bool HID_Device_ConfigureEndpoints(USB_ClassInfo_HID_Device_t* HIDInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1); - /** Processes incomming control requests from the host, that are directed to the given HID class interface. This should be + /** Processes incoming control requests from the host, that are directed to the given HID class interface. This should be * linked to the library \ref EVENT_USB_Device_UnhandledControlRequest() event. * * \param[in,out] HIDInterfaceInfo Pointer to a structure containing a HID Class configuration and state @@ -146,14 +148,16 @@ * \param[in,out] ReportID If preset to a non-zero value, this is the report ID being requested by the host. If zero, this should * be set to the report ID of the generated HID input report (if any). If multiple reports are not sent via the * given HID interface, this parameter should be ignored. - * \param[out] ReportData Pointer to a buffer where the generated HID report should be stored. + * \param[in] ReportType Type of HID report to generate, either \ref REPORT_ITEM_TYPE_In or \ref REPORT_ITEM_TYPE_Feature + * \param[out] ReportData Pointer to a buffer where the generated HID report should be stored * \param[out] ReportSize Number of bytes in the generated input report, or zero if no report is to be sent * * \return Boolean true to force the sending of the report even if it is identical to the previous report and still within * the idle period (useful for devices which report relative movement), false otherwise */ bool CALLBACK_HID_Device_CreateHIDReport(USB_ClassInfo_HID_Device_t* const HIDInterfaceInfo, uint8_t* const ReportID, - void* ReportData, uint16_t* ReportSize) ATTR_NON_NULL_PTR_ARG(1, 2, 3, 4); + const uint8_t ReportType, void* ReportData, uint16_t* ReportSize) ATTR_NON_NULL_PTR_ARG(1) + ATTR_NON_NULL_PTR_ARG(2) ATTR_NON_NULL_PTR_ARG(4) ATTR_NON_NULL_PTR_ARG(5); /** HID class driver callback for the user processing of a received HID OUT report. This callback may fire in response to * either HID class control requests from the host, or by the normal HID endpoint polling procedure. Inside this callback @@ -166,7 +170,8 @@ * \param[in] ReportSize Size in bytes of the received report from the host. */ void CALLBACK_HID_Device_ProcessHIDReport(USB_ClassInfo_HID_Device_t* const HIDInterfaceInfo, const uint8_t ReportID, - const void* ReportData, const uint16_t ReportSize) ATTR_NON_NULL_PTR_ARG(1, 3); + const void* ReportData, const uint16_t ReportSize) ATTR_NON_NULL_PTR_ARG(1) + ATTR_NON_NULL_PTR_ARG(3); /* Disable C linkage for C++ Compilers: */ #if defined(__cplusplus)