Add support for Mouse Scrollwheel to the MouseHostWithParser demos.
[pub/USBasp.git] / Demos / Host / ClassDriver / MouseHostWithParser / MouseHostWithParser.c
index b9edee1..80ddc55 100644 (file)
@@ -142,6 +142,21 @@ int main(void)
                                                          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