Remove incomplete MIDIToneGenerator project.
[pub/USBasp.git] / LUFA / Drivers / USB / Class / Device / CDC.c
index 026ac26..a5a296d 100644 (file)
@@ -65,8 +65,9 @@ void CDC_Device_ProcessControlRequest(USB_ClassInfo_CDC_Device_t* const CDCInter
                        {
                                Endpoint_ClearSETUP();
                                Endpoint_Read_Control_Stream_LE(&CDCInterfaceInfo->State.LineEncoding, sizeof(CDCInterfaceInfo->State.LineEncoding));
-                               EVENT_CDC_Device_LineEncodingChanged(CDCInterfaceInfo);
                                Endpoint_ClearIN();
+
+                               EVENT_CDC_Device_LineEncodingChanged(CDCInterfaceInfo);
                        }
        
                        break;
@@ -74,11 +75,11 @@ void CDC_Device_ProcessControlRequest(USB_ClassInfo_CDC_Device_t* const CDCInter
                        if (USB_ControlRequest.bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE))
                        {                               
                                Endpoint_ClearSETUP();
-                               
+                               Endpoint_ClearStatusStage();
+
                                CDCInterfaceInfo->State.ControlLineStates.HostToDevice = USB_ControlRequest.wValue;
-                               EVENT_CDC_Device_ControLineStateChanged(CDCInterfaceInfo);
 
-                               Endpoint_ClearStatusStage();
+                               EVENT_CDC_Device_ControLineStateChanged(CDCInterfaceInfo);
                        }
        
                        break;
@@ -86,10 +87,9 @@ void CDC_Device_ProcessControlRequest(USB_ClassInfo_CDC_Device_t* const CDCInter
                        if (USB_ControlRequest.bmRequestType == (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_INTERFACE))
                        {                               
                                Endpoint_ClearSETUP();
-                               
-                               EVENT_CDC_Device_BreakSent(CDCInterfaceInfo, (uint8_t)USB_ControlRequest.wValue);
-
                                Endpoint_ClearStatusStage();
+
+                               EVENT_CDC_Device_BreakSent(CDCInterfaceInfo, (uint8_t)USB_ControlRequest.wValue);
                        }
 
                        break;
@@ -133,7 +133,7 @@ void CDC_Device_USBTask(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo)
 }
 
 uint8_t CDC_Device_SendString(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo,
-                              char* const Data,
+                              const char* const Data,
                               const uint16_t Length)
 {
        if ((USB_DeviceState != DEVICE_STATE_Configured) || !(CDCInterfaceInfo->State.LineEncoding.BaudRateBPS))
@@ -219,20 +219,21 @@ uint16_t CDC_Device_BytesReceived(USB_ClassInfo_CDC_Device_t* const CDCInterface
 
 int16_t CDC_Device_ReceiveByte(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo)
 {
-       uint8_t ReceivedByte = -1;
-
        if ((USB_DeviceState != DEVICE_STATE_Configured) || !(CDCInterfaceInfo->State.LineEncoding.BaudRateBPS))
-         return 0;
+         return -1;
+
+       int16_t ReceivedByte = -1;
 
        Endpoint_SelectEndpoint(CDCInterfaceInfo->Config.DataOUTEndpointNumber);
        
-       if (!(Endpoint_IsOUTReceived()))
-         return -1;
-       else if (Endpoint_BytesInEndpoint())
-         ReceivedByte = Endpoint_Read_Byte();
+       if (Endpoint_IsOUTReceived())
+       {
+               if (Endpoint_BytesInEndpoint())
+                 ReceivedByte = Endpoint_Read_Byte();
        
-       if (!(Endpoint_BytesInEndpoint()))
-         Endpoint_ClearOUT();
+               if (!(Endpoint_BytesInEndpoint()))
+                 Endpoint_ClearOUT();
+       }
        
        return ReceivedByte;
 }