Ooops - TeensyHID bootloader makefile should use a 16MHz FCPU, not 8MHz.
[pub/USBasp.git] / Demos / Host / LowLevel / MouseHostWithParser / MouseHostWithParser.c
index b47858e..c29d4de 100644 (file)
@@ -37,7 +37,7 @@
 #include "MouseHostWithParser.h"\r
 \r
 /** Main program entry point. This routine configures the hardware required by the application, then\r
 #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
 int main(void)\r
 {\r
@@ -173,7 +173,7 @@ void Mouse_HID_Task(void)
                        {\r
                                puts_P(PSTR(ESC_FG_RED "Report Parse Error.\r\n"));\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
                                        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
@@ -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
                          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
                                 ((ReportItem->Attributes.Usage.Usage == USAGE_X)                  ||\r
                                  (ReportItem->Attributes.Usage.Usage == USAGE_Y))                 &&\r
                                 (ReportItem->ItemType                == REPORT_ITEM_TYPE_In))\r