Changed AudioOutput demos to explicitly use timer 3 - the smaller USB AVRs where...
[pub/USBasp.git] / LUFA / Drivers / USB / Class / Device / Audio.c
index e398f1c..b018d66 100644 (file)
@@ -33,7 +33,7 @@
 \r
 #include "Audio.h"\r
 \r
-void Audio_Device_ProcessControlPacket(USB_ClassInfo_Audio_Device_t* AudioInterfaceInfo)\r
+void Audio_Device_ProcessControlPacket(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo)\r
 {\r
        if (!(Endpoint_IsSETUPReceived()))\r
          return;\r
@@ -50,8 +50,7 @@ void Audio_Device_ProcessControlPacket(USB_ClassInfo_Audio_Device_t* AudioInterf
                                \r
                                AudioInterfaceInfo->State.InterfaceEnabled = (USB_ControlRequest.wValue != 0);\r
                                  \r
-                               while (!(Endpoint_IsINReady()));\r
-                               Endpoint_ClearIN();\r
+                               Endpoint_ClearStatusStage();\r
                        }\r
 \r
                        break;\r
@@ -60,6 +59,8 @@ void Audio_Device_ProcessControlPacket(USB_ClassInfo_Audio_Device_t* AudioInterf
 \r
 bool Audio_Device_ConfigureEndpoints(USB_ClassInfo_Audio_Device_t* AudioInterfaceInfo)\r
 {\r
+       memset(&AudioInterfaceInfo->State, 0x00, sizeof(AudioInterfaceInfo->State));\r
+\r
        if (AudioInterfaceInfo->Config.DataINEndpointNumber)\r
        {\r
                if (!(Endpoint_ConfigureEndpoint(AudioInterfaceInfo->Config.DataINEndpointNumber, EP_TYPE_ISOCHRONOUS,\r
@@ -79,11 +80,11 @@ bool Audio_Device_ConfigureEndpoints(USB_ClassInfo_Audio_Device_t* AudioInterfac
                        return false;\r
                }\r
        }\r
-\r
+       \r
        return true;\r
 }\r
 \r
-void Audio_Device_USBTask(USB_ClassInfo_Audio_Device_t* AudioInterfaceInfo)\r
+void Audio_Device_USBTask(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo)\r
 {\r
 \r
 }\r
@@ -124,7 +125,7 @@ int32_t Audio_Device_ReadSample24(void)
        return Sample;\r
 }\r
 \r
-void Audio_Device_WriteSample8(int8_t Sample)\r
+void Audio_Device_WriteSample8(const int8_t Sample)\r
 {\r
        Endpoint_Write_Byte(Sample);\r
 \r
@@ -132,7 +133,7 @@ void Audio_Device_WriteSample8(int8_t Sample)
          Endpoint_ClearIN();\r
 }\r
 \r
-void Audio_Device_WriteSample16(int16_t Sample)\r
+void Audio_Device_WriteSample16(const int16_t Sample)\r
 {\r
        Endpoint_Write_Word_LE(Sample);\r
 \r
@@ -140,7 +141,7 @@ void Audio_Device_WriteSample16(int16_t Sample)
          Endpoint_ClearIN();\r
 }\r
 \r
-void Audio_Device_WriteSample24(int32_t Sample)\r
+void Audio_Device_WriteSample24(const int32_t Sample)\r
 {\r
        Endpoint_Write_Byte(Sample >> 16);\r
        Endpoint_Write_Word_LE(Sample);\r
@@ -149,13 +150,13 @@ void Audio_Device_WriteSample24(int32_t Sample)
          Endpoint_ClearIN();\r
 }\r
 \r
-bool Audio_Device_IsSampleReceived(USB_ClassInfo_Audio_Device_t* AudioInterfaceInfo)\r
+bool Audio_Device_IsSampleReceived(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo)\r
 {\r
        Endpoint_SelectEndpoint(AudioInterfaceInfo->Config.DataOUTEndpointNumber);\r
        return Endpoint_IsOUTReceived();\r
 }\r
 \r
-bool Audio_Device_IsReadyForNextSample(USB_ClassInfo_Audio_Device_t* AudioInterfaceInfo)\r
+bool Audio_Device_IsReadyForNextSample(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo)\r
 {\r
        Endpoint_SelectEndpoint(AudioInterfaceInfo->Config.DataINEndpointNumber);\r
        return Endpoint_IsINReady();\r