Changed all Device mode LowLevel demos and Device Class drivers so that the control...
[pub/USBasp.git] / Demos / Device / ClassDriver / VirtualSerialMouse / VirtualSerialMouse.c
index 313f6c0..86cdb4e 100644 (file)
@@ -97,8 +97,7 @@ int main(void)
                CheckJoystickMovement();
                 
                /* Must throw away unused bytes from the host, or it will lock up while waiting for the device */
-               while (CDC_Device_BytesReceived(&VirtualSerial_CDC_Interface))
-                 CDC_Device_ReceiveByte(&VirtualSerial_CDC_Interface);
+               CDC_Device_ReceiveByte(&VirtualSerial_CDC_Interface);
 
                CDC_Device_USBTask(&VirtualSerial_CDC_Interface);
                HID_Device_USBTask(&Mouse_HID_Interface);
@@ -165,15 +164,14 @@ void EVENT_USB_Device_Disconnect(void)
 /** Event handler for the library USB Configuration Changed event. */
 void EVENT_USB_Device_ConfigurationChanged(void)
 {
-       LEDs_SetAllLEDs(LEDMASK_USB_READY);
+       bool ConfigSuccess = true;
 
-       if (!(CDC_Device_ConfigureEndpoints(&VirtualSerial_CDC_Interface)))
-         LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
+       ConfigSuccess &= CDC_Device_ConfigureEndpoints(&VirtualSerial_CDC_Interface);
+       ConfigSuccess &= HID_Device_ConfigureEndpoints(&Mouse_HID_Interface);
 
-       if (!(HID_Device_ConfigureEndpoints(&Mouse_HID_Interface)))
-         LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
-         
        USB_Device_EnableSOFEvents();
+
+       LEDs_SetAllLEDs(ConfigSuccess ? LEDMASK_USB_READY : LEDMASK_USB_ERROR);   
 }
 
 /** Event handler for the library USB Unhandled Control Request event. */
@@ -199,8 +197,11 @@ void EVENT_USB_Device_StartOfFrame(void)
  *
  *  \return Boolean true to force the sending of the report, false to let the library determine if it needs to be sent
  */
-bool CALLBACK_HID_Device_CreateHIDReport(USB_ClassInfo_HID_Device_t* const HIDInterfaceInfo, uint8_t* const ReportID,
-                                         const uint8_t ReportType, void* ReportData, uint16_t* const ReportSize)
+bool CALLBACK_HID_Device_CreateHIDReport(USB_ClassInfo_HID_Device_t* const HIDInterfaceInfo,
+                                         uint8_t* const ReportID,
+                                         const uint8_t ReportType,
+                                         void* ReportData,
+                                         uint16_t* const ReportSize)
 {
        USB_MouseReport_Data_t* MouseReport = (USB_MouseReport_Data_t*)ReportData;
                
@@ -235,8 +236,11 @@ bool CALLBACK_HID_Device_CreateHIDReport(USB_ClassInfo_HID_Device_t* const HIDIn
  *  \param[in] ReportData  Pointer to a buffer where the created report has been stored
  *  \param[in] ReportSize  Size in bytes of the received HID report
  */
-void CALLBACK_HID_Device_ProcessHIDReport(USB_ClassInfo_HID_Device_t* const HIDInterfaceInfo, const uint8_t ReportID,
-                                          const uint8_t ReportType, const void* ReportData, const uint16_t ReportSize)
+void CALLBACK_HID_Device_ProcessHIDReport(USB_ClassInfo_HID_Device_t* const HIDInterfaceInfo,
+                                          const uint8_t ReportID,
+                                          const uint8_t ReportType,
+                                          const void* ReportData,
+                                          const uint16_t ReportSize)
 {
        // Unused (but mandatory for the HID class driver) in this demo, since there are no Host->Device reports
 }