X-Git-Url: http://git.linex4red.de/pub/lufa.git/blobdiff_plain/c830fcb0e1d42c1300ebe78a8b33924054b63a87..242303c1607fca405d9407b9fab6fb78cae676e2:/Demos/Host/LowLevel/MouseHostWithParser/MouseHostWithParser.c diff --git a/Demos/Host/LowLevel/MouseHostWithParser/MouseHostWithParser.c b/Demos/Host/LowLevel/MouseHostWithParser/MouseHostWithParser.c index 31820be15..4d50ff6ab 100644 --- a/Demos/Host/LowLevel/MouseHostWithParser/MouseHostWithParser.c +++ b/Demos/Host/LowLevel/MouseHostWithParser/MouseHostWithParser.c @@ -166,7 +166,7 @@ void Mouse_HID_Task(void) break; } - puts_P(PSTR("Processing HID Report.\r\n")); + printf_P(PSTR("Processing HID Report (Size %d Bytes).\r\n"), HIDReportSize); /* Get and process the device's first HID report descriptor */ if ((ErrorCode = GetHIDReportData()) != ParseSuccessful) @@ -179,10 +179,28 @@ void Mouse_HID_Task(void) /* Wait until USB device disconnected */ USB_HostState = HOST_STATE_WaitForDeviceRemoval; - break; + break; + } + + printf("Total Reports: %d\r\n", HIDReportInfo.TotalDeviceReports); + + for (uint8_t i = 0; i < HIDReportInfo.TotalDeviceReports; i++) + { + HID_ReportSizeInfo_t* CurrReportIDInfo = &HIDReportInfo.ReportIDSizes[i]; + + uint8_t ReportSizeInBits = CurrReportIDInfo->ReportSizeBits[REPORT_ITEM_TYPE_In]; + uint8_t ReportSizeOutBits = CurrReportIDInfo->ReportSizeBits[REPORT_ITEM_TYPE_Out]; + uint8_t ReportSizeFeatureBits = CurrReportIDInfo->ReportSizeBits[REPORT_ITEM_TYPE_Feature]; + + /* Print out the byte sizes of each report within the device */ + printf_P(PSTR(" + Report ID %d - In: %d bytes, Out: %d bytes, Feature: %d bytes\r\n"), + CurrReportIDInfo->ReportID, + ((ReportSizeInBits >> 3) + ((ReportSizeInBits & 0x07) != 0)), + ((ReportSizeOutBits >> 3) + ((ReportSizeOutBits & 0x07) != 0)), + ((ReportSizeFeatureBits >> 3) + ((ReportSizeFeatureBits & 0x07) != 0))); } - puts_P(PSTR("Mouse Enumerated.\r\n")); + puts_P(PSTR("HID Device Enumerated.\r\n")); USB_HostState = HOST_STATE_Configured; break; @@ -190,7 +208,7 @@ void Mouse_HID_Task(void) /* Select and unfreeze mouse data pipe */ Pipe_SelectPipe(MOUSE_DATAPIPE); Pipe_Unfreeze(); - + /* Check to see if a packet has been received */ if (Pipe_IsINReceived()) { @@ -234,8 +252,8 @@ void ProcessMouseReport(uint8_t* MouseReport) bool FoundData; - if ((ReportItem->Attributes.Usage.Page == USAGE_PAGE_BUTTON) && - (ReportItem->ItemType == REPORT_ITEM_TYPE_In)) + if ((ReportItem->Attributes.Usage.Page == USAGE_PAGE_BUTTON) && + (ReportItem->ItemType == REPORT_ITEM_TYPE_In)) { /* Get the mouse button value */ FoundData = USB_GetHIDReportItemInfo(MouseReport, ReportItem);