Add support for Mouse Scrollwheel to the MouseHostWithParser demos.
[pub/USBasp.git] / Demos / Host / LowLevel / MouseHostWithParser / MouseHostWithParser.c
index 736ab52..d84e2d3 100644 (file)
@@ -271,6 +271,21 @@ void ProcessMouseReport(uint8_t* MouseReport)
                          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 = (int16_t)(ReportItem->Value << (16 - ReportItem->Attributes.BitSize));\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