STSW-STLKT01: Projects/SensorTile/Applications/AudioLoop/Src/usbd_desc.c Source File

STSW-STLKT01

usbd_desc.c
1 
28 /* Includes ------------------------------------------------------------------*/
29 #include "usbd_core.h"
30 #include "usbd_desc.h"
31 #include "usbd_conf.h"
32 
33 /* Private typedef -----------------------------------------------------------*/
34 /* Private define ------------------------------------------------------------*/
35 #define USBD_VID 0x0483
36 #define USBD_PID 0x5730
37 #define USBD_LANGID_STRING 0x409
38 #define USBD_MANUFACTURER_STRING "STMicroelectronics"
39 #define USBD_PRODUCT_HS_STRING "STM32 AUDIO Streaming in HS Mode"
40 #define USBD_SERIALNUMBER_HS_STRING "00000000034E"
41 #define USBD_PRODUCT_FS_STRING "STM32 AUDIO Streaming in FS Mode"
42 #define USBD_SERIALNUMBER_FS_STRING "00000000034F"
43 #define USBD_CONFIGURATION_HS_STRING "AUDIO Config"
44 #define USBD_INTERFACE_HS_STRING "AUDIO Interface"
45 #define USBD_CONFIGURATION_FS_STRING "AUDIO Config"
46 #define USBD_INTERFACE_FS_STRING "AUDIO Interface"
47 
48 /* Private macro -------------------------------------------------------------*/
49 /* Private function prototypes -----------------------------------------------*/
50 uint8_t *USBD_AUDIO_DeviceDescriptor(USBD_SpeedTypeDef speed, uint16_t *length);
51 uint8_t *USBD_AUDIO_LangIDStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length);
52 uint8_t *USBD_AUDIO_ManufacturerStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length);
53 uint8_t *USBD_AUDIO_ProductStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length);
54 uint8_t *USBD_AUDIO_SerialStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length);
55 uint8_t *USBD_AUDIO_ConfigStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length);
56 uint8_t *USBD_AUDIO_InterfaceStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length);
57 #ifdef USB_SUPPORT_USER_STRING_DESC
58 uint8_t *USBD_AUDIO_USRStringDesc(USBD_SpeedTypeDef speed, uint8_t idx, uint16_t *length);
59 #endif /* USB_SUPPORT_USER_STRING_DESC */
60 
61 /* Private variables ---------------------------------------------------------*/
62 USBD_DescriptorsTypeDef AUDIO_Desc = {
63  USBD_AUDIO_DeviceDescriptor,
64  USBD_AUDIO_LangIDStrDescriptor,
65  USBD_AUDIO_ManufacturerStrDescriptor,
66  USBD_AUDIO_ProductStrDescriptor,
67  USBD_AUDIO_SerialStrDescriptor,
68  USBD_AUDIO_ConfigStrDescriptor,
69  USBD_AUDIO_InterfaceStrDescriptor,
70 };
71 
72 /* USB Standard Device Descriptor */
73 #if defined ( __ICCARM__ )
74  #pragma data_alignment=4
75 #endif
76 __ALIGN_BEGIN uint8_t hUSBDDeviceDesc[USB_LEN_DEV_DESC] __ALIGN_END = {
77  0x12, /* bLength */
78  USB_DESC_TYPE_DEVICE, /* bDescriptorType */
79  0x00, /* bcdUSB */
80  0x02,
81  0x00, /* bDeviceClass */
82  0x00, /* bDeviceSubClass */
83  0x00, /* bDeviceProtocol */
84  USB_MAX_EP0_SIZE, /* bMaxPacketSize*/
85  LOBYTE(USBD_VID), /* idVendor */
86  HIBYTE(USBD_VID), /* idVendor */
87  LOBYTE(USBD_PID), /* idVendor */
88  HIBYTE(USBD_PID), /* idVendor */
89  0x00, /* bcdDevice rel. 2.00 */
90  0x02,
91  USBD_IDX_MFC_STR, /* Index of manufacturer string */
92  USBD_IDX_PRODUCT_STR, /* Index of product string */
93  USBD_IDX_SERIAL_STR, /* Index of serial number string */
94  USBD_MAX_NUM_CONFIGURATION /* bNumConfigurations */
95 }; /* USB_DeviceDescriptor */
96 
97 /* USB Standard Device Descriptor */
98 #if defined ( __ICCARM__ )
99  #pragma data_alignment=4
100 #endif
101 __ALIGN_BEGIN uint8_t USBD_LangIDDesc[USB_LEN_LANGID_STR_DESC] __ALIGN_END = {
102  USB_LEN_LANGID_STR_DESC,
103  USB_DESC_TYPE_STRING,
104  LOBYTE(USBD_LANGID_STRING),
105  HIBYTE(USBD_LANGID_STRING),
106 };
107 
108 #if defined ( __ICCARM__ )
109  #pragma data_alignment=4
110 #endif
111 __ALIGN_BEGIN uint8_t USBD_StrDesc[USBD_MAX_STR_DESC_SIZ] __ALIGN_END;
112 
113 /* Private functions ---------------------------------------------------------*/
114 
121 uint8_t *USBD_AUDIO_DeviceDescriptor(USBD_SpeedTypeDef speed, uint16_t *length)
122 {
123  *length = sizeof(hUSBDDeviceDesc);
124  return hUSBDDeviceDesc;
125 }
126 
133 uint8_t *USBD_AUDIO_LangIDStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length)
134 {
135  *length = sizeof(USBD_LangIDDesc);
136  return USBD_LangIDDesc;
137 }
138 
145 uint8_t *USBD_AUDIO_ProductStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length)
146 {
147  if(speed == 0)
148  {
149  USBD_GetString((uint8_t *)USBD_PRODUCT_HS_STRING, USBD_StrDesc, length);
150  }
151  else
152  {
153  USBD_GetString((uint8_t *)USBD_PRODUCT_FS_STRING, USBD_StrDesc, length);
154  }
155  return USBD_StrDesc;
156 }
157 
164 uint8_t *USBD_AUDIO_ManufacturerStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length)
165 {
166  USBD_GetString((uint8_t *)USBD_MANUFACTURER_STRING, USBD_StrDesc, length);
167  return USBD_StrDesc;
168 }
169 
176 uint8_t *USBD_AUDIO_SerialStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length)
177 {
178  if(speed == USBD_SPEED_HIGH)
179  {
180  USBD_GetString((uint8_t *)USBD_SERIALNUMBER_HS_STRING, USBD_StrDesc, length);
181  }
182  else
183  {
184  USBD_GetString((uint8_t *)USBD_SERIALNUMBER_FS_STRING, USBD_StrDesc, length);
185  }
186  return USBD_StrDesc;
187 }
188 
195 uint8_t *USBD_AUDIO_ConfigStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length)
196 {
197  if(speed == USBD_SPEED_HIGH)
198  {
199  USBD_GetString((uint8_t *)USBD_CONFIGURATION_HS_STRING, USBD_StrDesc, length);
200  }
201  else
202  {
203  USBD_GetString((uint8_t *)USBD_CONFIGURATION_FS_STRING, USBD_StrDesc, length);
204  }
205  return USBD_StrDesc;
206 }
207 
214 uint8_t *USBD_AUDIO_InterfaceStrDescriptor(USBD_SpeedTypeDef speed, uint16_t *length)
215 {
216  if(speed == 0)
217  {
218  USBD_GetString((uint8_t *)USBD_INTERFACE_HS_STRING, USBD_StrDesc, length);
219  }
220  else
221  {
222  USBD_GetString((uint8_t *)USBD_INTERFACE_FS_STRING, USBD_StrDesc, length);
223  }
224  return USBD_StrDesc;
225 }
226 
227 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
__ALIGN_BEGIN uint8_t USBD_DeviceDesc [USB_LEN_DEV_DESC] __ALIGN_END
Definition: usbd_desc.c:91
Generated by   doxygen 1.8.13