#include "MouseHostWithParser.h"\r
\r
/** Main program entry point. This routine configures the hardware required by the application, then\r
- * starts the scheduler to run the application tasks.\r
+ * enters a loop to run the application tasks in sequence.\r
*/\r
int main(void)\r
{\r
{\r
puts_P(PSTR(ESC_FG_RED "Report Parse Error.\r\n"));\r
\r
- if (!(HIDReportInfo->TotalReportItems))\r
+ if (!(HIDReportInfo.TotalReportItems))\r
puts_P(PSTR("Not a valid Mouse." ESC_FG_WHITE));\r
else\r
printf_P(PSTR(" -- Error Code: %d\r\n" ESC_FG_WHITE), ErrorCode);\r
LEDMask = LEDS_ALL_LEDS;\r
}\r
else if ((ReportItem->Attributes.Usage.Page == USAGE_PAGE_GENERIC_DCTRL) &&\r
+ (ReportItem->Attributes.Usage.Usage == USAGE_SCROLL_WHEEL) &&\r
+ (ReportItem->ItemType == REPORT_ITEM_TYPE_In))\r
+ {\r
+ /* Get the mouse wheel value if it is contained within the current \r
+ * report, if not, skip to the next item in the parser list\r
+ */\r
+ if (!(USB_GetHIDReportItemInfo(MouseReport, ReportItem)))\r
+ continue; \r
+\r
+ int16_t WheelDelta = HID_ALIGN_DATA(ReportItem, int16_t);\r
+ \r
+ if (WheelDelta)\r
+ LEDMask = (LEDS_LED1 | LEDS_LED2 | ((WheelDelta > 0) ? LEDS_LED3 : LEDS_LED4));\r
+ }\r
+ else if ((ReportItem->Attributes.Usage.Page == USAGE_PAGE_GENERIC_DCTRL) &&\r
((ReportItem->Attributes.Usage.Usage == USAGE_X) ||\r
(ReportItem->Attributes.Usage.Usage == USAGE_Y)) &&\r
(ReportItem->ItemType == REPORT_ITEM_TYPE_In))\r