Oops - restore deleted MissileLauncher project, fix all spelling errors for "missile...
[pub/USBasp.git] / LUFA / Drivers / USB / Class / Host / CDC.h
index 35c2b27..e39333e 100644 (file)
                        extern "C" {\r
                #endif\r
 \r
-       /* Function Prototypes: */\r
-               #if defined(INCLUDE_FROM_CDC_CLASS_HOST_C)\r
-                       static uint8_t CDC_Host_ProcessConfigDescriptor(void);\r
-                       static uint8_t DComp_CDC_Host_NextCDCControlInterface(void* CurrentDescriptor);\r
-                       static uint8_t DComp_CDC_Host_NextCDCDataInterface(void* CurrentDescriptor);\r
-                       static uint8_t DComp_CDC_Host_NextInterfaceCDCDataEndpoint(void* CurrentDescriptor);\r
-               #endif\r
-               \r
-               void CDC_Host_Task(void);\r
-               \r
+       /* Public Interface - May be used in end-application: */\r
+               /* Type Defines: */\r
+                       typedef struct\r
+                       {\r
+                               uint8_t  ControlInterfaceNumber; /**< Interface number of the CDC control interface within the device */\r
+\r
+                               uint8_t  DataINPipeNumber; /**< Pipe number of the CDC interface's IN data pipe */\r
+                               uint16_t DataINPipeSize; /**< Size in bytes of the CDC interface's IN data pipe */\r
+\r
+                               uint8_t  DataOUTPipeNumber; /**< Pipe number of the CDC interface's OUT data pipe */\r
+                               uint16_t DataOUTPipeSize;  /**< Size in bytes of the CDC interface's OUT data pipe */\r
+\r
+                               uint8_t  NotificationPipeNumber; /**< Pipe number of the CDC interface's IN notification endpoint, if used */\r
+                               uint16_t NotificationPipeSize;  /**< Size in bytes of the CDC interface's IN notification endpoint, if used */\r
+\r
+                               uint8_t  ControlLineState; /**< Current control line states */\r
+\r
+                               struct\r
+                               {\r
+                                       uint32_t BaudRateBPS; /**< Baud rate of the virtual serial port, in bits per second */\r
+                                       uint8_t  CharFormat; /**< Character format of the virtual serial port, a value from the\r
+                                                                                 *   CDCDevice_CDC_LineCodingFormats_t enum\r
+                                                                                 */\r
+                                       uint8_t  ParityType; /**< Parity setting of the virtual serial port, a value from the\r
+                                                                                 *   CDCDevice_LineCodingParity_t enum\r
+                                                                                 */\r
+                                       uint8_t  DataBits; /**< Bits of data per character of the virtual serial port */\r
+                               } LineEncoding;\r
+                       } USB_ClassInfo_CDC_Host_t;\r
+                       \r
+               /* Enums: */\r
+                       typedef enum\r
+                       {\r
+                               CDC_ENUMERROR_NoError                    = 0, /**< Configuration Descriptor was processed successfully */\r
+                               CDC_ENUMERROR_ControlError               = 1, /**< A control request to the device failed to complete successfully */\r
+                               CDC_ENUMERROR_DescriptorTooLarge         = 2, /**< The device's Configuration Descriptor is too large to process */\r
+                               CDC_ENUMERROR_InvalidConfigDataReturned  = 3, /**< The device returned an invalid Configuration Descriptor */\r
+                               CDC_ENUMERROR_NoCDCInterfaceFound        = 4, /**< A compatible CDC interface was not found in the device's Configuration Descriptor */\r
+                               CDC_ENUMERROR_NoEndpointFound            = 5, /**< Compatible CDC endpoints were not found in the device's CDC interface */\r
+                       } CDCHost_EnumerationFailure_ErrorCodes_t;\r
+       \r
+               /* Function Prototypes: */\r
+                       void CDC_Host_USBTask(USB_ClassInfo_CDC_Host_t* CDCInterfaceInfo);\r
+\r
+       /* Private Interface - For use in library only: */\r
+       #if !defined(__DOXYGEN__)\r
+               /* Macros: */\r
+                       #define CDC_CONTROL_CLASS              0x02\r
+                       #define CDC_CONTROL_SUBCLASS           0x02\r
+                       #define CDC_CONTROL_PROTOCOL           0x01\r
+                       #define CDC_DATA_CLASS                 0x0A\r
+                       #define CDC_DATA_SUBCLASS              0x00\r
+                       #define CDC_DATA_PROTOCOL              0x00\r
+\r
+               /* Function Prototypes: */\r
+                       #if defined(INCLUDE_FROM_CDC_CLASS_HOST_C)\r
+                               static uint8_t CDC_Host_ProcessConfigDescriptor(void);\r
+                               static uint8_t DComp_CDC_Host_NextCDCControlInterface(void* CurrentDescriptor);\r
+                               static uint8_t DComp_CDC_Host_NextCDCDataInterface(void* CurrentDescriptor);\r
+                               static uint8_t DComp_CDC_Host_NextInterfaceCDCDataEndpoint(void* CurrentDescriptor);\r
+                       #endif\r
+       \r
+       #endif\r
+                               \r
        /* Disable C linkage for C++ Compilers: */\r
                #if defined(__cplusplus)\r
                        }\r