--- /dev/null
+/**
+ ******************************************************************************
+ * @file usbd_audio_core.h
+ * @author MCD Application Team
+ * @version V1.0.0
+ * @date 22-July-2011
+ * @brief header file for the usbd_audio_core.c file.
+ ******************************************************************************
+ * @attention
+ *
+ * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
+ * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
+ * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY
+ * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
+ * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
+ * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
+ *
+ * <h2><center>© COPYRIGHT 2011 STMicroelectronics</center></h2>
+ ******************************************************************************
+ */
+
+/* Includes ------------------------------------------------------------------*/
+
+#ifndef __USB_AUDIO_CORE_H_
+#define __USB_AUDIO_CORE_H_
+
+#include "usbd_ioreq.h"
+#include "usbd_req.h"
+#include "usbd_desc.h"
+
+
+
+
+/** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY
+ * @{
+ */
+
+/** @defgroup usbd_audio
+ * @brief This file is the Header file for USBD_audio.c
+ * @{
+ */
+
+
+/** @defgroup usbd_audio_Exported_Defines
+ * @{
+ */
+
+/* AudioFreq * DataSize (2 bytes) * NumChannels (Stereo: 2) */
+#define AUDIO_OUT_PACKET (uint32_t)(((USBD_AUDIO_FREQ * 2 * 2) /1000))
+
+/* Number of sub-packets in the audio transfer buffer. You can modify this value but always make sure
+ that it is an even number and higher than 3 */
+#define OUT_PACKET_NUM 4
+/* Total size of the audio transfer buffer */
+#define TOTAL_OUT_BUF_SIZE ((uint32_t)(AUDIO_OUT_PACKET * OUT_PACKET_NUM))
+
+#define AUDIO_CONFIG_DESC_SIZE 109
+#define AUDIO_INTERFACE_DESC_SIZE 9
+#define USB_AUDIO_DESC_SIZ 0x09
+#define AUDIO_STANDARD_ENDPOINT_DESC_SIZE 0x09
+#define AUDIO_STREAMING_ENDPOINT_DESC_SIZE 0x07
+
+#define AUDIO_DESCRIPTOR_TYPE 0x21
+#define USB_DEVICE_CLASS_AUDIO 0x01
+#define AUDIO_SUBCLASS_AUDIOCONTROL 0x01
+#define AUDIO_SUBCLASS_AUDIOSTREAMING 0x02
+#define AUDIO_PROTOCOL_UNDEFINED 0x00
+#define AUDIO_STREAMING_GENERAL 0x01
+#define AUDIO_STREAMING_FORMAT_TYPE 0x02
+
+/* Audio Descriptor Types */
+#define AUDIO_INTERFACE_DESCRIPTOR_TYPE 0x24
+#define AUDIO_ENDPOINT_DESCRIPTOR_TYPE 0x25
+
+/* Audio Control Interface Descriptor Subtypes */
+#define AUDIO_CONTROL_HEADER 0x01
+#define AUDIO_CONTROL_INPUT_TERMINAL 0x02
+#define AUDIO_CONTROL_OUTPUT_TERMINAL 0x03
+#define AUDIO_CONTROL_FEATURE_UNIT 0x06
+
+#define AUDIO_INPUT_TERMINAL_DESC_SIZE 0x0C
+#define AUDIO_OUTPUT_TERMINAL_DESC_SIZE 0x09
+#define AUDIO_STREAMING_INTERFACE_DESC_SIZE 0x07
+
+#define AUDIO_CONTROL_MUTE 0x0001
+
+#define AUDIO_FORMAT_TYPE_I 0x01
+#define AUDIO_FORMAT_TYPE_III 0x03
+
+#define USB_ENDPOINT_TYPE_ISOCHRONOUS 0x01
+#define AUDIO_ENDPOINT_GENERAL 0x01
+
+#define AUDIO_REQ_GET_CUR 0x81
+#define AUDIO_REQ_SET_CUR 0x01
+
+#define AUDIO_OUT_STREAMING_CTRL 0x02
+
+/**
+ * @}
+ */
+
+
+/** @defgroup USBD_CORE_Exported_TypesDefinitions
+ * @{
+ */
+typedef struct _Audio_Fops
+{
+ uint8_t (*Init) (uint32_t AudioFreq, uint32_t Volume, uint32_t options);
+ uint8_t (*DeInit) (uint32_t options);
+ uint8_t (*AudioCmd) (uint8_t* pbuf, uint32_t size, uint8_t cmd);
+ uint8_t (*VolumeCtl) (uint8_t vol);
+ uint8_t (*MuteCtl) (uint8_t cmd);
+ uint8_t (*PeriodicTC) (uint8_t cmd);
+ uint8_t (*GetState) (void);
+}AUDIO_FOPS_TypeDef;
+/**
+ * @}
+ */
+
+
+
+/** @defgroup USBD_CORE_Exported_Macros
+ * @{
+ */
+#define AUDIO_PACKET_SZE(frq) (uint8_t)(((frq * 2 * 2)/1000) & 0xFF), \
+ (uint8_t)((((frq * 2 * 2)/1000) >> 8) & 0xFF)
+#define SAMPLE_FREQ(frq) (uint8_t)(frq), (uint8_t)((frq >> 8)), (uint8_t)((frq >> 16))
+/**
+ * @}
+ */
+
+/** @defgroup USBD_CORE_Exported_Variables
+ * @{
+ */
+
+extern USBD_Class_cb_TypeDef AUDIO_cb;
+
+/**
+ * @}
+ */
+
+/** @defgroup USB_CORE_Exported_Functions
+ * @{
+ */
+/**
+ * @}
+ */
+
+#endif // __USB_AUDIO_CORE_H_
+/**
+ * @}
+ */
+
+/**
+ * @}
+ */
+
+/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/