Update UC3 platform driver support to use the bitmasks defined in the header files...
[pub/USBasp.git] / LUFA / Drivers / USB / Class / Device / CDC.c
index b4afac1..da880ab 100644 (file)
@@ -1,13 +1,13 @@
 /*
              LUFA Library
-     Copyright (C) Dean Camera, 2010.
+     Copyright (C) Dean Camera, 2011.
 
   dean [at] fourwalledcubicle [dot] com
            www.lufa-lib.org
 */
 
 /*
-  Copyright 2010  Dean Camera (dean [at] fourwalledcubicle [dot] com)
+  Copyright 2011  Dean Camera (dean [at] fourwalledcubicle [dot] com)
 
   Permission to use, copy, modify, distribute, and sell this
   software and its documentation for any purpose is hereby granted
 */
 
 #define  __INCLUDE_FROM_USB_DRIVER
-#include "../../HighLevel/USBMode.h"
+#include "../../Core/USBMode.h"
+
 #if defined(USB_CAN_BE_DEVICE)
 
 #define  __INCLUDE_FROM_CDC_DRIVER
 #define  __INCLUDE_FROM_CDC_DEVICE_C
 #include "CDC.h"
 
-void CDC_Device_Event_Stub(void)
-{
-
-}
-
 void CDC_Device_ProcessControlRequest(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo)
 {
        if (!(Endpoint_IsSETUPReceived()))
@@ -134,7 +130,7 @@ bool CDC_Device_ConfigureEndpoints(USB_ClassInfo_CDC_Device_t* const CDCInterfac
                }
 
                if (!(Endpoint_ConfigureEndpoint(EndpointNum, Type, Direction, Size,
-                                                                                DoubleBanked ? ENDPOINT_BANK_DOUBLE : ENDPOINT_BANK_SINGLE)))
+                                                DoubleBanked ? ENDPOINT_BANK_DOUBLE : ENDPOINT_BANK_SINGLE)))
                {
                        return false;
                }
@@ -154,14 +150,24 @@ void CDC_Device_USBTask(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo)
 }
 
 uint8_t CDC_Device_SendString(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo,
-                              const char* const Data,
-                              const uint16_t Length)
+                              const char* const String)
 {
        if ((USB_DeviceState != DEVICE_STATE_Configured) || !(CDCInterfaceInfo->State.LineEncoding.BaudRateBPS))
          return ENDPOINT_RWSTREAM_DeviceDisconnected;
 
        Endpoint_SelectEndpoint(CDCInterfaceInfo->Config.DataINEndpointNumber);
-       return Endpoint_Write_Stream_LE(Data, Length, NO_STREAM_CALLBACK);
+       return Endpoint_Write_Stream_LE(String, strlen(String), NULL);
+}
+
+uint8_t CDC_Device_SendData(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo,
+                            const char* const Buffer,
+                            const uint16_t Length)
+{
+       if ((USB_DeviceState != DEVICE_STATE_Configured) || !(CDCInterfaceInfo->State.LineEncoding.BaudRateBPS))
+         return ENDPOINT_RWSTREAM_DeviceDisconnected;
+
+       Endpoint_SelectEndpoint(CDCInterfaceInfo->Config.DataINEndpointNumber);
+       return Endpoint_Write_Stream_LE(Buffer, Length, NULL);
 }
 
 uint8_t CDC_Device_SendByte(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo,
@@ -182,7 +188,7 @@ uint8_t CDC_Device_SendByte(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo,
                  return ErrorCode;
        }
 
-       Endpoint_Write_Byte(Data);
+       Endpoint_Write_8(Data);
        return ENDPOINT_READYWAIT_NoError;
 }
 
@@ -250,7 +256,7 @@ int16_t CDC_Device_ReceiveByte(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInf
        if (Endpoint_IsOUTReceived())
        {
                if (Endpoint_BytesInEndpoint())
-                 ReceivedByte = Endpoint_Read_Byte();
+                 ReceivedByte = Endpoint_Read_8();
 
                if (!(Endpoint_BytesInEndpoint()))
                  Endpoint_ClearOUT();
@@ -270,18 +276,19 @@ void CDC_Device_SendControlLineStateChange(USB_ClassInfo_CDC_Device_t* const CDC
                {
                        .bmRequestType = (REQDIR_DEVICETOHOST | REQTYPE_CLASS | REQREC_INTERFACE),
                        .bRequest      = CDC_NOTIF_SerialState,
-                       .wValue        = 0,
-                       .wIndex        = 0,
-                       .wLength       = sizeof(CDCInterfaceInfo->State.ControlLineStates.DeviceToHost),
+                       .wValue        = CPU_TO_LE16(0),
+                       .wIndex        = CPU_TO_LE16(0),
+                       .wLength       = CPU_TO_LE16(sizeof(CDCInterfaceInfo->State.ControlLineStates.DeviceToHost)),
                };
 
-       Endpoint_Write_Stream_LE(&Notification, sizeof(USB_Request_Header_t), NO_STREAM_CALLBACK);
+       Endpoint_Write_Stream_LE(&Notification, sizeof(USB_Request_Header_t), NULL);
        Endpoint_Write_Stream_LE(&CDCInterfaceInfo->State.ControlLineStates.DeviceToHost,
                                 sizeof(CDCInterfaceInfo->State.ControlLineStates.DeviceToHost),
-                                NO_STREAM_CALLBACK);
+                                NULL);
        Endpoint_ClearIN();
 }
 
+#if defined(FDEV_SETUP_STREAM)
 void CDC_Device_CreateStream(USB_ClassInfo_CDC_Device_t* const CDCInterfaceInfo,
                              FILE* const Stream)
 {
@@ -327,6 +334,12 @@ static int CDC_Device_getchar_Blocking(FILE* Stream)
 
        return ReceivedByte;
 }
+#endif
+
+void CDC_Device_Event_Stub(void)
+{
+
+}
 
 #endif