Fix bugs in the Host mode Audio class driver.
[pub/lufa.git] / LUFA / Drivers / USB / Class / Host / Audio.c
index e02ce30..5760b6a 100644 (file)
@@ -62,7 +62,7 @@ uint8_t Audio_Host_ConfigurePipes(USB_ClassInfo_Audio_Host_t* const AudioInterfa
                                                      DComp_NextAudioStreamInterface) != DESCRIPTOR_SEARCH_COMP_Found)\r
                        {\r
                                if (USB_GetNextDescriptorComp(&ConfigDescriptorSize, &ConfigDescriptorData,\r
-                                                                                         DComp_NextAudioControlInterface) != DESCRIPTOR_SEARCH_COMP_Found)\r
+                                                             DComp_NextAudioControlInterface) != DESCRIPTOR_SEARCH_COMP_Found)\r
                                {\r
                                        return AUDIO_ENUMERROR_NoCompatibleInterfaceFound;\r
                                }\r
@@ -70,7 +70,7 @@ uint8_t Audio_Host_ConfigurePipes(USB_ClassInfo_Audio_Host_t* const AudioInterfa
                                AudioControlInterface = DESCRIPTOR_PCAST(ConfigDescriptorData, USB_Descriptor_Interface_t);                     \r
 \r
                                if (USB_GetNextDescriptorComp(&ConfigDescriptorSize, &ConfigDescriptorData,\r
-                                                                                 DComp_NextAudioStreamInterface) != DESCRIPTOR_SEARCH_COMP_Found)\r
+                                                             DComp_NextAudioStreamInterface) != DESCRIPTOR_SEARCH_COMP_Found)\r
                                {\r
                                        return AUDIO_ENUMERROR_NoCompatibleInterfaceFound;\r
                                }\r
@@ -102,7 +102,7 @@ uint8_t Audio_Host_ConfigurePipes(USB_ClassInfo_Audio_Host_t* const AudioInterfa
                        Size            = DataINEndpoint->EndpointSize;\r
                        EndpointAddress = DataINEndpoint->EndpointAddress;\r
                        Token           = PIPE_TOKEN_IN;\r
-                       Type            = EP_TYPE_BULK;\r
+                       Type            = EP_TYPE_ISOCHRONOUS;\r
                        DoubleBanked    = true;\r
 \r
                        AudioInterfaceInfo->State.DataINPipeSize = DataINEndpoint->EndpointSize;\r
@@ -211,6 +211,9 @@ uint8_t Audio_GetSetEndpointProperty(USB_ClassInfo_Audio_Host_t* const AudioInte
                                                 uint16_t const DataLength,\r
                                                 void* const Data)\r
 {\r
+       if (!(AudioInterfaceInfo->State.IsActive))\r
+         return HOST_SENDCONTROL_DeviceDisconnected;\r
+\r
        uint8_t RequestType;\r
        uint8_t EndpointAddress;\r
 \r