Break device mode class driver interfaces into seperate config and state structs...
[pub/USBasp.git] / LUFA / Drivers / USB / Class / Host / CDC.h
index 3bc814d..e39333e 100644 (file)
@@ -53,8 +53,6 @@
                /* Type Defines: */\r
                        typedef struct\r
                        {\r
-                               bool     IsActive; /**< Indicates if this class driver is currently attached to the device */\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
@@ -63,8 +61,8 @@
                                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  NotificationEndpointNumber; /**< Pipe number of the CDC interface's IN notification endpoint, if used */\r
-                               uint16_t NotificationEndpointSize;  /**< Size in bytes of the CDC interface's IN notification endpoint, if used */\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
                                        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_Task(void);\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