Make HID device class driver reselect the correct endpoint after the user callbacks...
[pub/USBasp.git] / Demos / Host / ClassDriver / MouseHost / MouseHost.c
index ead2961..fbf35c0 100644 (file)
@@ -53,7 +53,7 @@ USB_ClassInfo_HID_Host_t Mouse_HID_Interface =
 \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
@@ -99,7 +99,7 @@ int main(void)
                                        break;\r
                                }\r
 \r
-                               if (USB_HID_Host_SetBootProtocol(&Mouse_HID_Interface) != 0)\r
+                               if (HID_Host_SetBootProtocol(&Mouse_HID_Interface) != 0)\r
                                {\r
                                        printf("Could not Set Boot Protocol Mode.\r\n");\r
                                        LEDs_SetAllLEDs(LEDMASK_USB_ERROR);\r
@@ -113,34 +113,29 @@ int main(void)
                        case HOST_STATE_Configured:\r
                                if (HID_Host_IsReportReceived(&Mouse_HID_Interface))\r
                                {\r
-                                       USB_MouseReport_Data_t MouseReport;\r
-                                       uint8_t ReportID = 0;\r
-                                       uint8_t LEDMask = LEDS_NO_LEDS;\r
+                                       uint8_t LEDMask  = LEDS_NO_LEDS;\r
                                \r
-                                       HID_Host_ReceiveReport(&Mouse_HID_Interface, false, &ReportID, &MouseReport);\r
+                                       USB_MouseReport_Data_t MouseReport;\r
+                                       HID_Host_ReceiveReport(&Mouse_HID_Interface, &MouseReport);\r
                                        \r
-                                       /* Alter status LEDs according to mouse X movement */\r
+                                       printf_P(PSTR("dX:%2d dY:%2d Button:%d\r\n"), MouseReport.X,\r
+                                                                                                                                 MouseReport.Y,\r
+                                                                                                                                 MouseReport.Button);\r
                                        if (MouseReport.X > 0)\r
                                          LEDMask |= LEDS_LED1;\r
                                        else if (MouseReport.X < 0)\r
                                          LEDMask |= LEDS_LED2;\r
                                                \r
-                                       /* Alter status LEDs according to mouse Y movement */\r
                                        if (MouseReport.Y > 0)\r
                                          LEDMask |= LEDS_LED3;\r
                                        else if (MouseReport.Y < 0)\r
                                          LEDMask |= LEDS_LED4;\r
 \r
-                                       /* Alter status LEDs according to mouse button position */\r
                                        if (MouseReport.Button)\r
                                          LEDMask  = LEDS_ALL_LEDS;\r
-                                       \r
+\r
                                        LEDs_SetAllLEDs(LEDMask);\r
                                }\r
-                               else\r
-                               {\r
-                                       LEDs_SetAllLEDs(LEDS_NO_LEDS);\r
-                               }\r
                                \r
                                break;\r
                }\r