Added multiple Report ID support to the HID class driver. Removed OUT endpoint support from HID driver (all OUT reports are now processed through control requests) as a seperate endpoint had issues with determining the exact output report length.
This commit is contained in:
parent
7665bf323e
commit
3d1baa6f95
23 changed files with 96 additions and 128 deletions
|
@ -48,9 +48,6 @@ USB_ClassInfo_HID_t Keyboard_HID_Interface =
|
|||
.ReportINEndpointNumber = KEYBOARD_EPNUM,
|
||||
.ReportINEndpointSize = KEYBOARD_EPSIZE,
|
||||
|
||||
.ReportOUTEndpointNumber = KEYBOARD_LEDS_EPNUM,
|
||||
.ReportOUTEndpointSize = KEYBOARD_EPSIZE,
|
||||
|
||||
.ReportINBufferSize = sizeof(USB_KeyboardReport_Data_t),
|
||||
|
||||
.IdleCount = 500,
|
||||
|
@ -136,7 +133,7 @@ ISR(TIMER0_COMPA_vect, ISR_BLOCK)
|
|||
*
|
||||
* \return Number of bytes written in the report (or zero if no report is to be sent
|
||||
*/
|
||||
uint16_t CALLBACK_USB_HID_CreateNextHIDReport(USB_ClassInfo_HID_t* HIDInterfaceInfo, void* ReportData)
|
||||
uint16_t CALLBACK_USB_HID_CreateNextHIDReport(USB_ClassInfo_HID_t* HIDInterfaceInfo, uint8_t* ReportID, void* ReportData)
|
||||
{
|
||||
USB_KeyboardReport_Data_t* KeyboardReport = (USB_KeyboardReport_Data_t*)ReportData;
|
||||
|
||||
|
@ -168,7 +165,8 @@ uint16_t CALLBACK_USB_HID_CreateNextHIDReport(USB_ClassInfo_HID_t* HIDInterfaceI
|
|||
* \param ReportData Pointer to a buffer where the created report has been stored
|
||||
* \param ReportSize Size in bytes of the received HID report
|
||||
*/
|
||||
void CALLBACK_USB_HID_ProcessReceivedHIDReport(USB_ClassInfo_HID_t* HIDInterfaceInfo, void* ReportData, uint16_t ReportSize)
|
||||
void CALLBACK_USB_HID_ProcessReceivedHIDReport(USB_ClassInfo_HID_t* HIDInterfaceInfo, uint8_t ReportID,
|
||||
void* ReportData, uint16_t ReportSize)
|
||||
{
|
||||
uint8_t LEDMask = LEDS_NO_LEDS;
|
||||
uint8_t* LEDReport = (uint8_t*)ReportData;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue