|
66 | 66 |
|
67 | 67 | // Use ring buffer if it's available, some MCUs need extra RAM requirements
|
68 | 68 | #ifndef TUD_AUDIO_PREFER_RING_BUFFER
|
69 |
| -#if CFG_TUSB_MCU == OPT_MCU_LPC43XX || CFG_TUSB_MCU == OPT_MCU_LPC18XX || CFG_TUSB_MCU == OPT_MCU_MIMXRT |
70 |
| -#define TUD_AUDIO_PREFER_RING_BUFFER 0 |
71 |
| -#else |
72 |
| -#define TUD_AUDIO_PREFER_RING_BUFFER 1 |
73 |
| -#endif |
| 69 | + #if CFG_TUSB_MCU == OPT_MCU_LPC43XX || CFG_TUSB_MCU == OPT_MCU_LPC18XX || CFG_TUSB_MCU == OPT_MCU_MIMXRT |
| 70 | + #define TUD_AUDIO_PREFER_RING_BUFFER 0 |
| 71 | + #else |
| 72 | + #define TUD_AUDIO_PREFER_RING_BUFFER 1 |
| 73 | + #endif |
74 | 74 | #endif
|
75 | 75 |
|
76 | 76 | // Linear buffer in case target MCU is not capable of handling a ring buffer FIFO e.g. no hardware buffer
|
77 | 77 | // is available or driver is would need to be changed dramatically
|
78 | 78 |
|
79 | 79 | // Only STM32 and dcd_transdimension use non-linear buffer for now
|
80 |
| -#if CFG_TUSB_MCU == OPT_MCU_STM32F0 || \ |
81 |
| - CFG_TUSB_MCU == OPT_MCU_STM32F1 || \ |
82 |
| - CFG_TUSB_MCU == OPT_MCU_STM32F2 || \ |
83 |
| - CFG_TUSB_MCU == OPT_MCU_STM32F3 || \ |
84 |
| - CFG_TUSB_MCU == OPT_MCU_STM32F4 || \ |
85 |
| - CFG_TUSB_MCU == OPT_MCU_STM32F7 || \ |
86 |
| - CFG_TUSB_MCU == OPT_MCU_STM32H7 || \ |
87 |
| - CFG_TUSB_MCU == OPT_MCU_STM32L0 || \ |
88 |
| - CFG_TUSB_MCU == OPT_MCU_STM32L1 || \ |
89 |
| - CFG_TUSB_MCU == OPT_MCU_STM32L4 || \ |
90 |
| - CFG_TUSB_MCU == OPT_MCU_STM32G4 || \ |
91 |
| - CFG_TUSB_MCU == OPT_MCU_STM32WB || \ |
92 |
| - CFG_TUSB_MCU == OPT_MCU_RX63X || \ |
93 |
| - CFG_TUSB_MCU == OPT_MCU_RX65X || \ |
94 |
| - CFG_TUSB_MCU == OPT_MCU_RX72N || \ |
95 |
| - CFG_TUSB_MCU == OPT_MCU_GD32VF103 || \ |
96 |
| - CFG_TUSB_MCU == OPT_MCU_LPC18XX || \ |
97 |
| - CFG_TUSB_MCU == OPT_MCU_LPC43XX || \ |
98 |
| - CFG_TUSB_MCU == OPT_MCU_MIMXRT || \ |
| 80 | +// dwc2 except esp32sx (since it may use dcd_esp32sx) |
| 81 | +#if (defined(TUP_USBIP_DWC2) && !TU_CHECK_MCU(OPT_MCU_ESP32S2, OPT_MCU_ESP32S3)) || \ |
| 82 | + defined(TUP_USBIP_FSDEV) || \ |
| 83 | + CFG_TUSB_MCU == OPT_MCU_RX63X || \ |
| 84 | + CFG_TUSB_MCU == OPT_MCU_RX65X || \ |
| 85 | + CFG_TUSB_MCU == OPT_MCU_RX72N || \ |
| 86 | + CFG_TUSB_MCU == OPT_MCU_LPC18XX || \ |
| 87 | + CFG_TUSB_MCU == OPT_MCU_LPC43XX || \ |
| 88 | + CFG_TUSB_MCU == OPT_MCU_MIMXRT || \ |
99 | 89 | CFG_TUSB_MCU == OPT_MCU_MSP432E4
|
100 |
| -#if TUD_AUDIO_PREFER_RING_BUFFER |
101 |
| -#define USE_LINEAR_BUFFER 0 |
102 |
| -#else |
103 |
| -#define USE_LINEAR_BUFFER 1 |
104 |
| -#endif |
| 90 | + #if TUD_AUDIO_PREFER_RING_BUFFER |
| 91 | + #define USE_LINEAR_BUFFER 0 |
| 92 | + #else |
| 93 | + #define USE_LINEAR_BUFFER 1 |
| 94 | + #endif |
105 | 95 | #else
|
106 |
| -#define USE_LINEAR_BUFFER 1 |
107 |
| -#endif |
108 |
| - |
109 |
| -#if defined(STM32F102x6) || defined(STM32F102xB) || \ |
110 |
| - defined(STM32F103x6) || defined(STM32F103xB) || \ |
111 |
| - defined(STM32F103xE) || defined(STM32F103xG) |
112 |
| -#define STM32F1_FSDEV |
113 |
| -#endif |
114 |
| - |
115 |
| -#if defined(STM32L412xx) || defined(STM32L422xx) || \ |
116 |
| - defined(STM32L432xx) || defined(STM32L433xx) || \ |
117 |
| - defined(STM32L442xx) || defined(STM32L443xx) || \ |
118 |
| - defined(STM32L452xx) || defined(STM32L462xx) |
119 |
| -#define STM32L4_FSDEV |
| 96 | + #define USE_LINEAR_BUFFER 1 |
120 | 97 | #endif
|
121 | 98 |
|
122 | 99 | // Temporarily put the check here for stm32_fsdev
|
123 |
| -#if CFG_TUSB_MCU == OPT_MCU_STM32F0 || \ |
124 |
| - CFG_TUSB_MCU == OPT_MCU_STM32F3 || \ |
125 |
| - CFG_TUSB_MCU == OPT_MCU_STM32L0 || \ |
126 |
| - CFG_TUSB_MCU == OPT_MCU_STM32L1 || \ |
127 |
| - CFG_TUSB_MCU == OPT_MCU_STM32G4 || \ |
128 |
| - CFG_TUSB_MCU == OPT_MCU_STM32WB || \ |
129 |
| - (TU_CHECK_MCU(OPT_MCU_STM32F1) && defined(STM32F1_FSDEV)) || \ |
130 |
| - (TU_CHECK_MCU(OPT_MCU_STM32L4) && defined(STM32L4_FSDEV)) |
131 |
| -#define USE_ISO_EP_ALLOCATION 1 |
| 100 | +#ifdef TUP_USBIP_FSDEV |
| 101 | + #define USE_ISO_EP_ALLOCATION 1 |
132 | 102 | #else
|
133 |
| -#define USE_ISO_EP_ALLOCATION 0 |
| 103 | + #define USE_ISO_EP_ALLOCATION 0 |
134 | 104 | #endif
|
135 | 105 |
|
136 | 106 | // Declaration of buffers
|
|
142 | 112 |
|
143 | 113 | // EP IN software buffers and mutexes
|
144 | 114 | #if CFG_TUD_AUDIO_ENABLE_EP_IN && !CFG_TUD_AUDIO_ENABLE_ENCODING
|
145 |
| -#if CFG_TUD_AUDIO_FUNC_1_EP_IN_SW_BUF_SZ > 0 |
146 |
| -CFG_TUSB_MEM_SECTION CFG_TUSB_MEM_ALIGN uint8_t audio_ep_in_sw_buf_1[CFG_TUD_AUDIO_FUNC_1_EP_IN_SW_BUF_SZ]; |
147 |
| -#if CFG_FIFO_MUTEX |
148 |
| -osal_mutex_def_t ep_in_ff_mutex_wr_1; // No need for read mutex as only USB driver reads from FIFO |
149 |
| -#endif |
150 |
| -#endif // CFG_TUD_AUDIO_FUNC_1_EP_IN_SW_BUF_SZ > 0 |
151 |
| -#if CFG_TUD_AUDIO > 1 && CFG_TUD_AUDIO_FUNC_2_EP_IN_SW_BUF_SZ > 0 |
152 |
| -CFG_TUSB_MEM_SECTION CFG_TUSB_MEM_ALIGN uint8_t audio_ep_in_sw_buf_2[CFG_TUD_AUDIO_FUNC_2_EP_IN_SW_BUF_SZ]; |
153 |
| -#if CFG_FIFO_MUTEX |
154 |
| -osal_mutex_def_t ep_in_ff_mutex_wr_2; // No need for read mutex as only USB driver reads from FIFO |
155 |
| -#endif |
156 |
| -#endif // CFG_TUD_AUDIO > 1 && CFG_TUD_AUDIO_FUNC_2_EP_IN_SW_BUF_SZ > 0 |
157 |
| -#if CFG_TUD_AUDIO > 2 && CFG_TUD_AUDIO_FUNC_3_EP_IN_SW_BUF_SZ > 0 |
158 |
| -CFG_TUSB_MEM_SECTION CFG_TUSB_MEM_ALIGN uint8_t audio_ep_in_sw_buf_3[CFG_TUD_AUDIO_FUNC_3_EP_IN_SW_BUF_SZ]; |
159 |
| -#if CFG_FIFO_MUTEX |
160 |
| -osal_mutex_def_t ep_in_ff_mutex_wr_3; // No need for read mutex as only USB driver reads from FIFO |
161 |
| -#endif |
162 |
| -#endif // CFG_TUD_AUDIO > 2 && CFG_TUD_AUDIO_FUNC_3_EP_IN_SW_BUF_SZ > 0 |
| 115 | + #if CFG_TUD_AUDIO_FUNC_1_EP_IN_SW_BUF_SZ > 0 |
| 116 | + CFG_TUSB_MEM_SECTION CFG_TUSB_MEM_ALIGN uint8_t audio_ep_in_sw_buf_1[CFG_TUD_AUDIO_FUNC_1_EP_IN_SW_BUF_SZ]; |
| 117 | + #if CFG_FIFO_MUTEX |
| 118 | + osal_mutex_def_t ep_in_ff_mutex_wr_1; // No need for read mutex as only USB driver reads from FIFO |
| 119 | + #endif |
| 120 | + #endif // CFG_TUD_AUDIO_FUNC_1_EP_IN_SW_BUF_SZ > 0 |
| 121 | + |
| 122 | + #if CFG_TUD_AUDIO > 1 && CFG_TUD_AUDIO_FUNC_2_EP_IN_SW_BUF_SZ > 0 |
| 123 | + CFG_TUSB_MEM_SECTION CFG_TUSB_MEM_ALIGN uint8_t audio_ep_in_sw_buf_2[CFG_TUD_AUDIO_FUNC_2_EP_IN_SW_BUF_SZ]; |
| 124 | + #if CFG_FIFO_MUTEX |
| 125 | + osal_mutex_def_t ep_in_ff_mutex_wr_2; // No need for read mutex as only USB driver reads from FIFO |
| 126 | + #endif |
| 127 | + #endif // CFG_TUD_AUDIO > 1 && CFG_TUD_AUDIO_FUNC_2_EP_IN_SW_BUF_SZ > 0 |
| 128 | + |
| 129 | + #if CFG_TUD_AUDIO > 2 && CFG_TUD_AUDIO_FUNC_3_EP_IN_SW_BUF_SZ > 0 |
| 130 | + CFG_TUSB_MEM_SECTION CFG_TUSB_MEM_ALIGN uint8_t audio_ep_in_sw_buf_3[CFG_TUD_AUDIO_FUNC_3_EP_IN_SW_BUF_SZ]; |
| 131 | + #if CFG_FIFO_MUTEX |
| 132 | + osal_mutex_def_t ep_in_ff_mutex_wr_3; // No need for read mutex as only USB driver reads from FIFO |
| 133 | + #endif |
| 134 | + #endif // CFG_TUD_AUDIO > 2 && CFG_TUD_AUDIO_FUNC_3_EP_IN_SW_BUF_SZ > 0 |
163 | 135 | #endif // CFG_TUD_AUDIO_ENABLE_EP_IN && !CFG_TUD_AUDIO_ENABLE_ENCODING
|
164 | 136 |
|
165 | 137 | // Linear buffer TX in case:
|
166 | 138 | // - target MCU is not capable of handling a ring buffer FIFO e.g. no hardware buffer is available or driver is would need to be changed dramatically OR
|
167 | 139 | // - the software encoding is used - in this case the linear buffers serve as a target memory where logical channels are encoded into
|
168 | 140 | #if CFG_TUD_AUDIO_ENABLE_EP_IN && (USE_LINEAR_BUFFER || CFG_TUD_AUDIO_ENABLE_ENCODING)
|
169 |
| -#if CFG_TUD_AUDIO_FUNC_1_EP_IN_SZ_MAX > 0 |
170 |
| -CFG_TUSB_MEM_SECTION CFG_TUSB_MEM_ALIGN uint8_t lin_buf_in_1[CFG_TUD_AUDIO_FUNC_1_EP_IN_SZ_MAX]; |
171 |
| -#endif |
172 |
| -#if CFG_TUD_AUDIO > 1 && CFG_TUD_AUDIO_FUNC_2_EP_IN_SZ_MAX > 0 |
173 |
| -CFG_TUSB_MEM_SECTION CFG_TUSB_MEM_ALIGN uint8_t lin_buf_in_2[CFG_TUD_AUDIO_FUNC_2_EP_IN_SZ_MAX]; |
174 |
| -#endif |
175 |
| -#if CFG_TUD_AUDIO > 2 && CFG_TUD_AUDIO_FUNC_3_EP_IN_SZ_MAX > 0 |
176 |
| -CFG_TUSB_MEM_SECTION CFG_TUSB_MEM_ALIGN uint8_t lin_buf_in_3[CFG_TUD_AUDIO_FUNC_3_EP_IN_SZ_MAX]; |
177 |
| -#endif |
| 141 | + #if CFG_TUD_AUDIO_FUNC_1_EP_IN_SZ_MAX > 0 |
| 142 | + CFG_TUSB_MEM_SECTION CFG_TUSB_MEM_ALIGN uint8_t lin_buf_in_1[CFG_TUD_AUDIO_FUNC_1_EP_IN_SZ_MAX]; |
| 143 | + #endif |
| 144 | + |
| 145 | + #if CFG_TUD_AUDIO > 1 && CFG_TUD_AUDIO_FUNC_2_EP_IN_SZ_MAX > 0 |
| 146 | + CFG_TUSB_MEM_SECTION CFG_TUSB_MEM_ALIGN uint8_t lin_buf_in_2[CFG_TUD_AUDIO_FUNC_2_EP_IN_SZ_MAX]; |
| 147 | + #endif |
| 148 | + |
| 149 | + #if CFG_TUD_AUDIO > 2 && CFG_TUD_AUDIO_FUNC_3_EP_IN_SZ_MAX > 0 |
| 150 | + CFG_TUSB_MEM_SECTION CFG_TUSB_MEM_ALIGN uint8_t lin_buf_in_3[CFG_TUD_AUDIO_FUNC_3_EP_IN_SZ_MAX]; |
| 151 | + #endif |
178 | 152 | #endif // CFG_TUD_AUDIO_ENABLE_EP_IN && (USE_LINEAR_BUFFER || CFG_TUD_AUDIO_ENABLE_DECODING)
|
179 | 153 |
|
180 | 154 | // EP OUT software buffers and mutexes
|
181 | 155 | #if CFG_TUD_AUDIO_ENABLE_EP_OUT && !CFG_TUD_AUDIO_ENABLE_DECODING
|
182 |
| -#if CFG_TUD_AUDIO_FUNC_1_EP_OUT_SW_BUF_SZ > 0 |
183 |
| -CFG_TUSB_MEM_SECTION CFG_TUSB_MEM_ALIGN uint8_t audio_ep_out_sw_buf_1[CFG_TUD_AUDIO_FUNC_1_EP_OUT_SW_BUF_SZ]; |
184 |
| -#if CFG_FIFO_MUTEX |
185 |
| -osal_mutex_def_t ep_out_ff_mutex_rd_1; // No need for write mutex as only USB driver writes into FIFO |
186 |
| -#endif |
187 |
| -#endif // CFG_TUD_AUDIO_FUNC_1_EP_OUT_SW_BUF_SZ > 0 |
188 |
| -#if CFG_TUD_AUDIO > 1 && CFG_TUD_AUDIO_FUNC_2_EP_OUT_SW_BUF_SZ > 0 |
189 |
| -CFG_TUSB_MEM_SECTION CFG_TUSB_MEM_ALIGN uint8_t audio_ep_out_sw_buf_2[CFG_TUD_AUDIO_FUNC_2_EP_OUT_SW_BUF_SZ]; |
190 |
| -#if CFG_FIFO_MUTEX |
191 |
| -osal_mutex_def_t ep_out_ff_mutex_rd_2; // No need for write mutex as only USB driver writes into FIFO |
192 |
| -#endif |
193 |
| -#endif // CFG_TUD_AUDIO > 1 && CFG_TUD_AUDIO_FUNC_2_EP_OUT_SW_BUF_SZ > 0 |
194 |
| -#if CFG_TUD_AUDIO > 2 && CFG_TUD_AUDIO_FUNC_3_EP_OUT_SW_BUF_SZ > 0 |
195 |
| -CFG_TUSB_MEM_SECTION CFG_TUSB_MEM_ALIGN uint8_t audio_ep_out_sw_buf_3[CFG_TUD_AUDIO_FUNC_3_EP_OUT_SW_BUF_SZ]; |
196 |
| -#if CFG_FIFO_MUTEX |
197 |
| -osal_mutex_def_t ep_out_ff_mutex_rd_3; // No need for write mutex as only USB driver writes into FIFO |
198 |
| -#endif |
199 |
| -#endif // CFG_TUD_AUDIO > 2 && CFG_TUD_AUDIO_FUNC_3_EP_OUT_SW_BUF_SZ > 0 |
| 156 | + #if CFG_TUD_AUDIO_FUNC_1_EP_OUT_SW_BUF_SZ > 0 |
| 157 | + CFG_TUSB_MEM_SECTION CFG_TUSB_MEM_ALIGN uint8_t audio_ep_out_sw_buf_1[CFG_TUD_AUDIO_FUNC_1_EP_OUT_SW_BUF_SZ]; |
| 158 | + #if CFG_FIFO_MUTEX |
| 159 | + osal_mutex_def_t ep_out_ff_mutex_rd_1; // No need for write mutex as only USB driver writes into FIFO |
| 160 | + #endif |
| 161 | + #endif // CFG_TUD_AUDIO_FUNC_1_EP_OUT_SW_BUF_SZ > 0 |
| 162 | + |
| 163 | + #if CFG_TUD_AUDIO > 1 && CFG_TUD_AUDIO_FUNC_2_EP_OUT_SW_BUF_SZ > 0 |
| 164 | + CFG_TUSB_MEM_SECTION CFG_TUSB_MEM_ALIGN uint8_t audio_ep_out_sw_buf_2[CFG_TUD_AUDIO_FUNC_2_EP_OUT_SW_BUF_SZ]; |
| 165 | + #if CFG_FIFO_MUTEX |
| 166 | + osal_mutex_def_t ep_out_ff_mutex_rd_2; // No need for write mutex as only USB driver writes into FIFO |
| 167 | + #endif |
| 168 | + #endif // CFG_TUD_AUDIO > 1 && CFG_TUD_AUDIO_FUNC_2_EP_OUT_SW_BUF_SZ > 0 |
| 169 | + |
| 170 | + #if CFG_TUD_AUDIO > 2 && CFG_TUD_AUDIO_FUNC_3_EP_OUT_SW_BUF_SZ > 0 |
| 171 | + CFG_TUSB_MEM_SECTION CFG_TUSB_MEM_ALIGN uint8_t audio_ep_out_sw_buf_3[CFG_TUD_AUDIO_FUNC_3_EP_OUT_SW_BUF_SZ]; |
| 172 | + #if CFG_FIFO_MUTEX |
| 173 | + osal_mutex_def_t ep_out_ff_mutex_rd_3; // No need for write mutex as only USB driver writes into FIFO |
| 174 | + #endif |
| 175 | + #endif // CFG_TUD_AUDIO > 2 && CFG_TUD_AUDIO_FUNC_3_EP_OUT_SW_BUF_SZ > 0 |
200 | 176 | #endif // CFG_TUD_AUDIO_ENABLE_EP_OUT && !CFG_TUD_AUDIO_ENABLE_DECODING
|
201 | 177 |
|
202 | 178 | // Linear buffer RX in case:
|
203 | 179 | // - target MCU is not capable of handling a ring buffer FIFO e.g. no hardware buffer is available or driver is would need to be changed dramatically OR
|
204 | 180 | // - the software encoding is used - in this case the linear buffers serve as a target memory where logical channels are encoded into
|
205 | 181 | #if CFG_TUD_AUDIO_ENABLE_EP_OUT && (USE_LINEAR_BUFFER || CFG_TUD_AUDIO_ENABLE_DECODING)
|
206 |
| -#if CFG_TUD_AUDIO_FUNC_1_EP_OUT_SZ_MAX > 0 |
207 |
| -CFG_TUSB_MEM_SECTION CFG_TUSB_MEM_ALIGN uint8_t lin_buf_out_1[CFG_TUD_AUDIO_FUNC_1_EP_OUT_SZ_MAX]; |
208 |
| -#endif |
209 |
| -#if CFG_TUD_AUDIO > 1 && CFG_TUD_AUDIO_FUNC_2_EP_OUT_SZ_MAX > 0 |
210 |
| -CFG_TUSB_MEM_SECTION CFG_TUSB_MEM_ALIGN uint8_t lin_buf_out_2[CFG_TUD_AUDIO_FUNC_2_EP_OUT_SZ_MAX]; |
211 |
| -#endif |
212 |
| -#if CFG_TUD_AUDIO > 2 && CFG_TUD_AUDIO_FUNC_3_EP_OUT_SZ_MAX > 0 |
213 |
| -CFG_TUSB_MEM_SECTION CFG_TUSB_MEM_ALIGN uint8_t lin_buf_out_3[CFG_TUD_AUDIO_FUNC_3_EP_OUT_SZ_MAX]; |
214 |
| -#endif |
| 182 | + #if CFG_TUD_AUDIO_FUNC_1_EP_OUT_SZ_MAX > 0 |
| 183 | + CFG_TUSB_MEM_SECTION CFG_TUSB_MEM_ALIGN uint8_t lin_buf_out_1[CFG_TUD_AUDIO_FUNC_1_EP_OUT_SZ_MAX]; |
| 184 | + #endif |
| 185 | + |
| 186 | + #if CFG_TUD_AUDIO > 1 && CFG_TUD_AUDIO_FUNC_2_EP_OUT_SZ_MAX > 0 |
| 187 | + CFG_TUSB_MEM_SECTION CFG_TUSB_MEM_ALIGN uint8_t lin_buf_out_2[CFG_TUD_AUDIO_FUNC_2_EP_OUT_SZ_MAX]; |
| 188 | + #endif |
| 189 | + |
| 190 | + #if CFG_TUD_AUDIO > 2 && CFG_TUD_AUDIO_FUNC_3_EP_OUT_SZ_MAX > 0 |
| 191 | + CFG_TUSB_MEM_SECTION CFG_TUSB_MEM_ALIGN uint8_t lin_buf_out_3[CFG_TUD_AUDIO_FUNC_3_EP_OUT_SZ_MAX]; |
| 192 | + #endif |
215 | 193 | #endif // CFG_TUD_AUDIO_ENABLE_EP_OUT && (USE_LINEAR_BUFFER || CFG_TUD_AUDIO_ENABLE_DECODING)
|
216 | 194 |
|
217 | 195 | // Control buffers
|
218 | 196 | CFG_TUSB_MEM_SECTION CFG_TUSB_MEM_ALIGN uint8_t ctrl_buf_1[CFG_TUD_AUDIO_FUNC_1_CTRL_BUF_SZ];
|
| 197 | + |
219 | 198 | #if CFG_TUD_AUDIO > 1
|
220 | 199 | CFG_TUSB_MEM_SECTION CFG_TUSB_MEM_ALIGN uint8_t ctrl_buf_2[CFG_TUD_AUDIO_FUNC_2_CTRL_BUF_SZ];
|
221 | 200 | #endif
|
| 201 | + |
222 | 202 | #if CFG_TUD_AUDIO > 2
|
223 | 203 | CFG_TUSB_MEM_SECTION CFG_TUSB_MEM_ALIGN uint8_t ctrl_buf_3[CFG_TUD_AUDIO_FUNC_3_CTRL_BUF_SZ];
|
224 | 204 | #endif
|
225 | 205 |
|
226 | 206 | // Active alternate setting of interfaces
|
227 | 207 | uint8_t alt_setting_1[CFG_TUD_AUDIO_FUNC_1_N_AS_INT];
|
| 208 | + |
228 | 209 | #if CFG_TUD_AUDIO > 1 && CFG_TUD_AUDIO_FUNC_2_N_AS_INT > 0
|
229 | 210 | uint8_t alt_setting_2[CFG_TUD_AUDIO_FUNC_2_N_AS_INT];
|
230 | 211 | #endif
|
| 212 | + |
231 | 213 | #if CFG_TUD_AUDIO > 2 && CFG_TUD_AUDIO_FUNC_3_N_AS_INT > 0
|
232 | 214 | uint8_t alt_setting_3[CFG_TUD_AUDIO_FUNC_3_N_AS_INT];
|
233 | 215 | #endif
|
234 | 216 |
|
235 | 217 | // Software encoding/decoding support FIFOs
|
236 | 218 | #if CFG_TUD_AUDIO_ENABLE_EP_IN && CFG_TUD_AUDIO_ENABLE_ENCODING
|
237 |
| -#if CFG_TUD_AUDIO_FUNC_1_TX_SUPP_SW_FIFO_SZ > 0 |
238 |
| -CFG_TUSB_MEM_SECTION CFG_TUSB_MEM_ALIGN uint8_t tx_supp_ff_buf_1[CFG_TUD_AUDIO_FUNC_1_N_TX_SUPP_SW_FIFO][CFG_TUD_AUDIO_FUNC_1_TX_SUPP_SW_FIFO_SZ]; |
239 |
| -tu_fifo_t tx_supp_ff_1[CFG_TUD_AUDIO_FUNC_1_N_TX_SUPP_SW_FIFO]; |
240 |
| -#if CFG_FIFO_MUTEX |
241 |
| -osal_mutex_def_t tx_supp_ff_mutex_wr_1[CFG_TUD_AUDIO_FUNC_1_N_TX_SUPP_SW_FIFO]; // No need for read mutex as only USB driver reads from FIFO |
242 |
| -#endif |
243 |
| -#endif |
244 |
| -#if CFG_TUD_AUDIO > 1 && CFG_TUD_AUDIO_FUNC_2_TX_SUPP_SW_FIFO_SZ > 0 |
245 |
| -CFG_TUSB_MEM_SECTION CFG_TUSB_MEM_ALIGN uint8_t tx_supp_ff_buf_2[CFG_TUD_AUDIO_FUNC_2_N_TX_SUPP_SW_FIFO][CFG_TUD_AUDIO_FUNC_2_TX_SUPP_SW_FIFO_SZ]; |
246 |
| -tu_fifo_t tx_supp_ff_2[CFG_TUD_AUDIO_FUNC_2_N_TX_SUPP_SW_FIFO]; |
247 |
| -#if CFG_FIFO_MUTEX |
248 |
| -osal_mutex_def_t tx_supp_ff_mutex_wr_2[CFG_TUD_AUDIO_FUNC_2_N_TX_SUPP_SW_FIFO]; // No need for read mutex as only USB driver reads from FIFO |
249 |
| -#endif |
250 |
| -#endif |
251 |
| -#if CFG_TUD_AUDIO > 2 && CFG_TUD_AUDIO_FUNC_3_TX_SUPP_SW_FIFO_SZ > 0 |
252 |
| -CFG_TUSB_MEM_SECTION CFG_TUSB_MEM_ALIGN uint8_t tx_supp_ff_buf_3[CFG_TUD_AUDIO_FUNC_3_N_TX_SUPP_SW_FIFO][CFG_TUD_AUDIO_FUNC_3_TX_SUPP_SW_FIFO_SZ]; |
253 |
| -tu_fifo_t tx_supp_ff_3[CFG_TUD_AUDIO_FUNC_3_N_TX_SUPP_SW_FIFO]; |
254 |
| -#if CFG_FIFO_MUTEX |
255 |
| -osal_mutex_def_t tx_supp_ff_mutex_wr_3[CFG_TUD_AUDIO_FUNC_3_N_TX_SUPP_SW_FIFO]; // No need for read mutex as only USB driver reads from FIFO |
256 |
| -#endif |
257 |
| -#endif |
| 219 | + #if CFG_TUD_AUDIO_FUNC_1_TX_SUPP_SW_FIFO_SZ > 0 |
| 220 | + CFG_TUSB_MEM_SECTION CFG_TUSB_MEM_ALIGN uint8_t tx_supp_ff_buf_1[CFG_TUD_AUDIO_FUNC_1_N_TX_SUPP_SW_FIFO][CFG_TUD_AUDIO_FUNC_1_TX_SUPP_SW_FIFO_SZ]; |
| 221 | + tu_fifo_t tx_supp_ff_1[CFG_TUD_AUDIO_FUNC_1_N_TX_SUPP_SW_FIFO]; |
| 222 | + #if CFG_FIFO_MUTEX |
| 223 | + osal_mutex_def_t tx_supp_ff_mutex_wr_1[CFG_TUD_AUDIO_FUNC_1_N_TX_SUPP_SW_FIFO]; // No need for read mutex as only USB driver reads from FIFO |
| 224 | + #endif |
| 225 | + #endif |
| 226 | + |
| 227 | + #if CFG_TUD_AUDIO > 1 && CFG_TUD_AUDIO_FUNC_2_TX_SUPP_SW_FIFO_SZ > 0 |
| 228 | + CFG_TUSB_MEM_SECTION CFG_TUSB_MEM_ALIGN uint8_t tx_supp_ff_buf_2[CFG_TUD_AUDIO_FUNC_2_N_TX_SUPP_SW_FIFO][CFG_TUD_AUDIO_FUNC_2_TX_SUPP_SW_FIFO_SZ]; |
| 229 | + tu_fifo_t tx_supp_ff_2[CFG_TUD_AUDIO_FUNC_2_N_TX_SUPP_SW_FIFO]; |
| 230 | + #if CFG_FIFO_MUTEX |
| 231 | + osal_mutex_def_t tx_supp_ff_mutex_wr_2[CFG_TUD_AUDIO_FUNC_2_N_TX_SUPP_SW_FIFO]; // No need for read mutex as only USB driver reads from FIFO |
| 232 | + #endif |
| 233 | + #endif |
| 234 | + |
| 235 | + #if CFG_TUD_AUDIO > 2 && CFG_TUD_AUDIO_FUNC_3_TX_SUPP_SW_FIFO_SZ > 0 |
| 236 | + CFG_TUSB_MEM_SECTION CFG_TUSB_MEM_ALIGN uint8_t tx_supp_ff_buf_3[CFG_TUD_AUDIO_FUNC_3_N_TX_SUPP_SW_FIFO][CFG_TUD_AUDIO_FUNC_3_TX_SUPP_SW_FIFO_SZ]; |
| 237 | + tu_fifo_t tx_supp_ff_3[CFG_TUD_AUDIO_FUNC_3_N_TX_SUPP_SW_FIFO]; |
| 238 | + #if CFG_FIFO_MUTEX |
| 239 | + osal_mutex_def_t tx_supp_ff_mutex_wr_3[CFG_TUD_AUDIO_FUNC_3_N_TX_SUPP_SW_FIFO]; // No need for read mutex as only USB driver reads from FIFO |
| 240 | + #endif |
| 241 | + #endif |
258 | 242 | #endif
|
259 | 243 |
|
260 | 244 | #if CFG_TUD_AUDIO_ENABLE_EP_OUT && CFG_TUD_AUDIO_ENABLE_DECODING
|
261 |
| -#if CFG_TUD_AUDIO_FUNC_1_RX_SUPP_SW_FIFO_SZ > 0 |
262 |
| -CFG_TUSB_MEM_SECTION CFG_TUSB_MEM_ALIGN uint8_t rx_supp_ff_buf_1[CFG_TUD_AUDIO_FUNC_1_N_RX_SUPP_SW_FIFO][CFG_TUD_AUDIO_FUNC_1_RX_SUPP_SW_FIFO_SZ]; |
263 |
| -tu_fifo_t rx_supp_ff_1[CFG_TUD_AUDIO_FUNC_1_N_RX_SUPP_SW_FIFO]; |
264 |
| -#if CFG_FIFO_MUTEX |
265 |
| -osal_mutex_def_t rx_supp_ff_mutex_rd_1[CFG_TUD_AUDIO_FUNC_1_N_RX_SUPP_SW_FIFO]; // No need for write mutex as only USB driver writes into FIFO |
266 |
| -#endif |
267 |
| -#endif |
268 |
| -#if CFG_TUD_AUDIO > 1 && CFG_TUD_AUDIO_FUNC_2_RX_SUPP_SW_FIFO_SZ > 0 |
269 |
| -CFG_TUSB_MEM_SECTION CFG_TUSB_MEM_ALIGN uint8_t rx_supp_ff_buf_2[CFG_TUD_AUDIO_FUNC_2_N_RX_SUPP_SW_FIFO][CFG_TUD_AUDIO_FUNC_2_RX_SUPP_SW_FIFO_SZ]; |
270 |
| -tu_fifo_t rx_supp_ff_2[CFG_TUD_AUDIO_FUNC_2_N_RX_SUPP_SW_FIFO]; |
271 |
| -#if CFG_FIFO_MUTEX |
272 |
| -osal_mutex_def_t rx_supp_ff_mutex_rd_2[CFG_TUD_AUDIO_FUNC_2_N_RX_SUPP_SW_FIFO]; // No need for write mutex as only USB driver writes into FIFO |
273 |
| -#endif |
274 |
| -#endif |
275 |
| -#if CFG_TUD_AUDIO > 2 && CFG_TUD_AUDIO_FUNC_3_RX_SUPP_SW_FIFO_SZ > 0 |
276 |
| -CFG_TUSB_MEM_SECTION CFG_TUSB_MEM_ALIGN uint8_t rx_supp_ff_buf_3[CFG_TUD_AUDIO_FUNC_3_N_RX_SUPP_SW_FIFO][CFG_TUD_AUDIO_FUNC_3_RX_SUPP_SW_FIFO_SZ]; |
277 |
| -tu_fifo_t rx_supp_ff_3[CFG_TUD_AUDIO_FUNC_3_N_RX_SUPP_SW_FIFO]; |
278 |
| -#if CFG_FIFO_MUTEX |
279 |
| -osal_mutex_def_t rx_supp_ff_mutex_rd_3[CFG_TUD_AUDIO_FUNC_3_N_RX_SUPP_SW_FIFO]; // No need for write mutex as only USB driver writes into FIFO |
280 |
| -#endif |
281 |
| -#endif |
| 245 | + #if CFG_TUD_AUDIO_FUNC_1_RX_SUPP_SW_FIFO_SZ > 0 |
| 246 | + CFG_TUSB_MEM_SECTION CFG_TUSB_MEM_ALIGN uint8_t rx_supp_ff_buf_1[CFG_TUD_AUDIO_FUNC_1_N_RX_SUPP_SW_FIFO][CFG_TUD_AUDIO_FUNC_1_RX_SUPP_SW_FIFO_SZ]; |
| 247 | + tu_fifo_t rx_supp_ff_1[CFG_TUD_AUDIO_FUNC_1_N_RX_SUPP_SW_FIFO]; |
| 248 | + #if CFG_FIFO_MUTEX |
| 249 | + osal_mutex_def_t rx_supp_ff_mutex_rd_1[CFG_TUD_AUDIO_FUNC_1_N_RX_SUPP_SW_FIFO]; // No need for write mutex as only USB driver writes into FIFO |
| 250 | + #endif |
| 251 | + #endif |
| 252 | + |
| 253 | + #if CFG_TUD_AUDIO > 1 && CFG_TUD_AUDIO_FUNC_2_RX_SUPP_SW_FIFO_SZ > 0 |
| 254 | + CFG_TUSB_MEM_SECTION CFG_TUSB_MEM_ALIGN uint8_t rx_supp_ff_buf_2[CFG_TUD_AUDIO_FUNC_2_N_RX_SUPP_SW_FIFO][CFG_TUD_AUDIO_FUNC_2_RX_SUPP_SW_FIFO_SZ]; |
| 255 | + tu_fifo_t rx_supp_ff_2[CFG_TUD_AUDIO_FUNC_2_N_RX_SUPP_SW_FIFO]; |
| 256 | + #if CFG_FIFO_MUTEX |
| 257 | + osal_mutex_def_t rx_supp_ff_mutex_rd_2[CFG_TUD_AUDIO_FUNC_2_N_RX_SUPP_SW_FIFO]; // No need for write mutex as only USB driver writes into FIFO |
| 258 | + #endif |
| 259 | + #endif |
| 260 | + |
| 261 | + #if CFG_TUD_AUDIO > 2 && CFG_TUD_AUDIO_FUNC_3_RX_SUPP_SW_FIFO_SZ > 0 |
| 262 | + CFG_TUSB_MEM_SECTION CFG_TUSB_MEM_ALIGN uint8_t rx_supp_ff_buf_3[CFG_TUD_AUDIO_FUNC_3_N_RX_SUPP_SW_FIFO][CFG_TUD_AUDIO_FUNC_3_RX_SUPP_SW_FIFO_SZ]; |
| 263 | + tu_fifo_t rx_supp_ff_3[CFG_TUD_AUDIO_FUNC_3_N_RX_SUPP_SW_FIFO]; |
| 264 | + #if CFG_FIFO_MUTEX |
| 265 | + osal_mutex_def_t rx_supp_ff_mutex_rd_3[CFG_TUD_AUDIO_FUNC_3_N_RX_SUPP_SW_FIFO]; // No need for write mutex as only USB driver writes into FIFO |
| 266 | + #endif |
| 267 | + #endif |
282 | 268 | #endif
|
283 | 269 |
|
284 | 270 | typedef struct
|
|
0 commit comments