Make HID device class driver reselect the correct endpoint after the user callbacks...
[pub/USBasp.git] / Demos / Host / ClassDriver / MouseHostWithParser / MouseHostWithParser.c
index 8133c87..6218f4c 100644 (file)
@@ -58,7 +58,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
@@ -104,9 +104,9 @@ int main(void)
                                        break;\r
                                }\r
 \r
-                               if (USB_HID_Host_SetReportProtocol(&Mouse_HID_Interface) != 0)\r
+                               if (HID_Host_SetReportProtocol(&Mouse_HID_Interface) != 0)\r
                                {\r
-                                       printf("Could not Set Report Protocol Mode.\r\n");\r
+                                       printf("Error Setting Report Protocol Mode or Not a Valid Mouse.\r\n");\r
                                        LEDs_SetAllLEDs(LEDMASK_USB_ERROR);\r
                                        USB_HostState = HOST_STATE_WaitForDeviceRemoval;\r
                                        break;\r
@@ -114,13 +114,13 @@ int main(void)
                                \r
                                LEDs_SetAllLEDs(LEDS_NO_LEDS);\r
                                \r
-                               printf("HID Device Enumerated.\r\n");\r
+                               printf("Mouse Enumerated.\r\n");\r
                                USB_HostState = HOST_STATE_Configured;\r
                                break;\r
                        case HOST_STATE_Configured:\r
                                if (HID_Host_IsReportReceived(&Mouse_HID_Interface))\r
                                {\r
-                                       uint8_t MouseReport[50];\r
+                                       uint8_t MouseReport[Mouse_HID_Interface.State.LargestReportSize];\r
                                        HID_Host_ReceiveReport(&Mouse_HID_Interface, &MouseReport);\r
 \r
                                        uint8_t LEDMask = LEDS_NO_LEDS;\r
@@ -250,21 +250,16 @@ void EVENT_USB_Host_DeviceEnumerationFailed(const uint8_t ErrorCode, const uint8
  *  we aren't interested in (preventing us from being able to extract them later on, but saving on the RAM they would\r
  *  have occupied).\r
  *\r
- *  \param CurrentItemAttributes  Pointer to the attrbutes of the item the HID report parser is currently working with\r
+ *  \param[in] CurrentItemAttributes  Pointer to the attrbutes of the item the HID report parser is currently working with\r
  *\r
  *  \return Boolean true if the item should be stored into the HID report structure, false if it should be discarded\r
  */\r
 bool CALLBACK_HIDParser_FilterHIDReportItem(HID_ReportItem_Attributes_t* CurrentItemAttributes)\r
 {\r
-       /* Check the attributes of the current item - see if we are interested in it or not */\r
-       if ((CurrentItemAttributes->Usage.Page == USAGE_PAGE_BUTTON) ||\r
-           (CurrentItemAttributes->Usage.Page == USAGE_PAGE_GENERIC_DCTRL))\r
-       {\r
-               /* Only store BUTTON and GENERIC_DESKTOP_CONTROL items into the Processed HID Report structure to save RAM */\r
-               return true;\r
-       }\r
-       else\r
-       {\r
-               return false;\r
-       }\r
+       /* Check the attributes of the current item - see if we are interested in it or not;\r
+        * only store BUTTON and GENERIC_DESKTOP_CONTROL items into the Processed HID Report\r
+        * structure to save RAM and ignore the rest\r
+        */\r
+       return ((CurrentItemAttributes->Usage.Page == USAGE_PAGE_BUTTON) ||\r
+               (CurrentItemAttributes->Usage.Page == USAGE_PAGE_GENERIC_DCTRL));\r
 }\r