- /* Descriptor not found, error out */\r
- return NoCDCInterfaceFound;\r
+ /* Get the next CDC data interface from the configuration descriptor (CDC class has two CDC interfaces) */\r
+ if (USB_GetNextDescriptorComp(&ConfigDescriptorSize, &ConfigDescriptorData, \r
+ DComp_NextCDCDataInterface) != DESCRIPTOR_SEARCH_COMP_Found)\r
+ {\r
+ /* Descriptor not found, error out */\r
+ return NoCDCInterfaceFound;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ /* Clear the found endpoints mask, since any already processed endpoints aren't in the CDC interface we need */\r
+ FoundEndpoints = 0;\r
+\r
+ /* Disable any already configured pipes from the invalid CDC interfaces */\r
+ Pipe_SelectPipe(CDC_NOTIFICATIONPIPE);\r
+ Pipe_DisablePipe();\r
+ Pipe_SelectPipe(CDC_DATAPIPE_IN);\r
+ Pipe_DisablePipe();\r
+ Pipe_SelectPipe(CDC_DATAPIPE_OUT);\r
+ Pipe_DisablePipe();\r
+ \r
+ /* Get the next CDC control interface from the configuration descriptor (CDC class has two CDC interfaces) */\r
+ if (USB_GetNextDescriptorComp(&ConfigDescriptorSize, &ConfigDescriptorData,\r
+ DComp_NextCDCControlInterface) != DESCRIPTOR_SEARCH_COMP_Found)\r
+ {\r
+ /* Descriptor not found, error out */\r
+ return NoCDCInterfaceFound;\r
+ }\r