X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/f896c00c48f04fb9273555ab8d9b1af99f865d25..ce3ea6fb2513d3aa14c354e2ed78c7eb4a38ee0e:/LUFA/Drivers/USB/Class/Device/Audio.h?ds=sidebyside
diff --git a/LUFA/Drivers/USB/Class/Device/Audio.h b/LUFA/Drivers/USB/Class/Device/Audio.h
index cc3e98419..eef7f9049 100644
--- a/LUFA/Drivers/USB/Class/Device/Audio.h
+++ b/LUFA/Drivers/USB/Class/Device/Audio.h
@@ -31,6 +31,10 @@
 /** \ingroup Group_USBClassAudio
  *  @defgroup Group_USBClassAudioDevice Audio Class Device Mode Driver
  *
+ *  \section Sec_Dependencies Module Source Dependencies
+ *  The following files must be built with any user project that uses this module:
+ *    - LUFA/Drivers/USB/Class/Device/Audio.c
+ *
  *  \section Module Description
  *  Device Mode USB Class driver framework interface, for the Audio USB Class driver.
  *
@@ -52,55 +56,43 @@
 		#endif
 
 	/* Public Interface - May be used in end-application: */
-		/* Type Defines: */
-			/** Configuration information structure for \ref USB_ClassInfo_Audio_Device_t Audio device interface structures. */
-			typedef struct
-			{
-				uint8_t  StreamingInterfaceNumber; /**< Index of the Audio Streaming interface within the device this
-				                                    *   structure controls.
-				                                    */
-
-				uint8_t  DataINEndpointNumber; /**< Endpoint number of the incomming Audio Streaming data, if available
-				                                *   (zero if unused).
-				                                */
-				uint16_t DataINEndpointSize; /**< Size in bytes of the incomming Audio Streaming data endpoint, if available
-				                              *   (zero if unused).
-				                              */
-
-				uint8_t  DataOUTEndpointNumber; /**< Endpoint number of the outgoing Audio Streaming data, if available
-				                                 *   (zero if unused).
-				                                 */
-				uint16_t DataOUTEndpointSize; /**< Size in bytes of the outgoing Audio Streaming data endpoint, if available
-				                               *   (zero if unused).
-				                               */			
-			} USB_ClassInfo_Audio_Device_Config_t;
-			
-			/** Current State information structure for \ref USB_ClassInfo_Audio_Device_t Audio device interface structures. */
-			typedef struct
-			{
-				bool     InterfaceEnabled; /**< Set and cleared by the class driver to indicate if the host has enabled the streaming endpoints
-											*   of the Audio Streaming interface.
-											*/
-			} USB_ClassInfo_Audio_Device_State_t;
-		
+		/* Type Defines: */		
 			/** Class state structure. An instance of this structure should be made for each Audio interface
 			 *  within the user application, and passed to each of the Audio class driver functions as the
 			 *  AudioInterfaceInfo parameter. This stores each Audio interface's configuration and state information.
 			 */
 			typedef struct
 			{
-				const USB_ClassInfo_Audio_Device_Config_t Config; /**< Config data for the USB class interface within
-				                                                   *   the device. All elements in this section
-				                                                   *   must be set or the interface will fail
-				                                                   *   to enumerate and operate correctly.
-				                                                   */
-															 
-				USB_ClassInfo_Audio_Device_State_t State; /**< State data for the USB class interface within
-				                                           *   the device. All elements in this section
-				                                           *   may be set to initial values, but may
-				                                           *   also be ignored to default to sane values when
-				                                           *   the interface is enumerated.
-				                                           */				
+				const struct
+				{
+					uint8_t  StreamingInterfaceNumber; /**< Index of the Audio Streaming interface within the device this
+														*   structure controls.
+														*/
+
+					uint8_t  DataINEndpointNumber; /**< Endpoint number of the incomming Audio Streaming data, if available
+													*   (zero if unused).
+													*/
+					uint16_t DataINEndpointSize; /**< Size in bytes of the incomming Audio Streaming data endpoint, if available
+												  *   (zero if unused).
+												  */
+
+					uint8_t  DataOUTEndpointNumber; /**< Endpoint number of the outgoing Audio Streaming data, if available
+													 *   (zero if unused).
+													 */
+					uint16_t DataOUTEndpointSize; /**< Size in bytes of the outgoing Audio Streaming data endpoint, if available
+												   *   (zero if unused).
+												   */			
+				} Config; /**< Config data for the USB class interface within the device. All elements in this section
+				           *   must be set or the interface will fail to enumerate and operate correctly.
+				           */
+				struct
+				{
+					bool     InterfaceEnabled; /**< Set and cleared by the class driver to indicate if the host has enabled the streaming endpoints
+												*   of the Audio Streaming interface.
+												*/
+				} State; /**< State data for the USB class interface within the device. All elements in this section
+				          *   are reset to their defaults when the interface is enumerated.
+				          */				
 			} USB_ClassInfo_Audio_Device_t;
 		
 		/* Function Prototypes: */
@@ -108,25 +100,25 @@
 			 *  \ref EVENT_USB_ConfigurationChanged() event so that the endpoints are configured when the configuration containing the
 			 *  given Audio interface is selected.
 			 *
-			 *  \param AudioInterfaceInfo  Pointer to a structure containing an Audio Class configuration and state.
+			 *  \param[in,out] AudioInterfaceInfo  Pointer to a structure containing an Audio Class configuration and state.
 			 *
 			 *  \return Boolean true if the endpoints were sucessfully configured, false otherwise
 			 */
-			bool Audio_Device_ConfigureEndpoints(USB_ClassInfo_Audio_Device_t* AudioInterfaceInfo);
+			bool Audio_Device_ConfigureEndpoints(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo);
 
 			/** Processes incomming control requests from the host, that are directed to the given Audio class interface. This should be
 			 *  linked to the library \ref EVENT_USB_UnhandledControlPacket() event.
 			 *
-			 *  \param AudioInterfaceInfo  Pointer to a structure containing an Audio Class configuration and state.
+			 *  \param[in,out] AudioInterfaceInfo  Pointer to a structure containing an Audio Class configuration and state.
 			 */
-			void Audio_Device_ProcessControlPacket(USB_ClassInfo_Audio_Device_t* AudioInterfaceInfo);
+			void Audio_Device_ProcessControlPacket(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo);
 
 			/** General management task for a given Audio class interface, required for the correct operation of the interface. This should
 			 *  be called frequently in the main program loop, before the master USB management task \ref USB_USBTask().
 			 *
-			 *  \param AudioInterfaceInfo  Pointer to a structure containing an Audio Class configuration and state.
+			 *  \param[in,out] AudioInterfaceInfo  Pointer to a structure containing an Audio Class configuration and state.
 			 */
-			void Audio_Device_USBTask(USB_ClassInfo_Audio_Device_t* AudioInterfaceInfo);
+			void Audio_Device_USBTask(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo);
 			
 			/** Reads the next 8-bit audio sample from the current audio interface.
 			 *
@@ -160,43 +152,43 @@
 			 *  \note This should be preceeded immediately by a call to the USB_Audio_IsReadyForNextSample() function to ensure that
 			 *        the correct endpoint is selected and ready for data.
 			 *
-			 *  \param Sample  Signed 8-bit audio sample
+			 *  \param[in] Sample  Signed 8-bit audio sample
 			 */
-			void Audio_Device_WriteSample8(int8_t Sample);
+			void Audio_Device_WriteSample8(const int8_t Sample);
 
 			/** Writes the next 16-bit audio sample to the current audio interface.
 			 *
 			 *  \note This should be preceeded immediately by a call to the USB_Audio_IsReadyForNextSample() function to ensure that
 			 *        the correct endpoint is selected and ready for data.
 			 *
-			 *  \param Sample  Signed 16-bit audio sample
+			 *  \param[in] Sample  Signed 16-bit audio sample
 			 */
-			void Audio_Device_WriteSample16(int16_t Sample);
+			void Audio_Device_WriteSample16(const int16_t Sample);
 
 			/** Writes the next 24-bit audio sample to the current audio interface.
 			 *
 			 *  \note This should be preceeded immediately by a call to the USB_Audio_IsReadyForNextSample() function to ensure that
 			 *        the correct endpoint is selected and ready for data.
 			 *
-			 *  \param Sample  Signed 24-bit audio sample
+			 *  \param[in] Sample  Signed 24-bit audio sample
 			 */
-			void Audio_Device_WriteSample24(int32_t Sample);
+			void Audio_Device_WriteSample24(const int32_t Sample);
 
 			/** Determines if the given audio interface is ready for a sample to be read from it.
 			 *
-			 *  \param AudioInterfaceInfo  Pointer to a structure containing an Audio Class configuration and state.
+			 *  \param[in,out] AudioInterfaceInfo  Pointer to a structure containing an Audio Class configuration and state.
 			 *
 			 *  \return Boolean true if the given Audio interface has a sample to be read, false otherwise
 			 */
-			bool Audio_Device_IsSampleReceived(USB_ClassInfo_Audio_Device_t* AudioInterfaceInfo);
+			bool Audio_Device_IsSampleReceived(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo);
 
 			/** Determines if the given audio interface is ready to accept the next sample to be written to it.
 			 *
-			 *  \param AudioInterfaceInfo  Pointer to a structure containing an Audio Class configuration and state.
+			 *  \param[in,out] AudioInterfaceInfo  Pointer to a structure containing an Audio Class configuration and state.
 			 *
 			 *  \return Boolean true if the given Audio interface is ready to accept the next sample, false otherwise
 			 */
-			bool Audio_Device_IsReadyForNextSample(USB_ClassInfo_Audio_Device_t* AudioInterfaceInfo);
+			bool Audio_Device_IsReadyForNextSample(USB_ClassInfo_Audio_Device_t* const AudioInterfaceInfo);
 
 	/* Disable C linkage for C++ Compilers: */
 		#if defined(__cplusplus)