Skip to content

Commit dc0038f

Browse files
committed
uac2: remove support fifo
Signed-off-by: HiFiPhile <[email protected]>
1 parent 3d2b870 commit dc0038f

File tree

6 files changed

+74
-1134
lines changed

6 files changed

+74
-1134
lines changed

examples/device/audio_4_channel_mic/src/main.c

Lines changed: 0 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -69,13 +69,8 @@ uint8_t clkValid;
6969
audio_control_range_2_n_t(1) volumeRng[CFG_TUD_AUDIO_FUNC_1_N_CHANNELS_TX+1]; // Volume range state
7070
audio_control_range_4_n_t(1) sampleFreqRng; // Sample frequency range state
7171

72-
#if CFG_TUD_AUDIO_ENABLE_ENCODING
73-
// Audio test data, each buffer contains 2 channels, buffer[0] for CH0-1, buffer[1] for CH1-2
74-
uint16_t i2s_dummy_buffer[CFG_TUD_AUDIO_FUNC_1_N_TX_SUPP_SW_FIFO][CFG_TUD_AUDIO_FUNC_1_N_CHANNELS_TX*CFG_TUD_AUDIO_FUNC_1_SAMPLE_RATE/1000/CFG_TUD_AUDIO_FUNC_1_N_TX_SUPP_SW_FIFO];
75-
#else
7672
// Audio test data, 4 channels muxed together, buffer[0] for CH0, buffer[1] for CH1, buffer[2] for CH2, buffer[3] for CH3
7773
uint16_t i2s_dummy_buffer[CFG_TUD_AUDIO_FUNC_1_N_CHANNELS_TX*CFG_TUD_AUDIO_FUNC_1_SAMPLE_RATE/1000];
78-
#endif
7974

8075
void led_blinking_task(void);
8176
void audio_task(void);
@@ -106,27 +101,6 @@ int main(void)
106101
sampleFreqRng.subrange[0].bRes = 0;
107102

108103
// Generate dummy data
109-
#if CFG_TUD_AUDIO_ENABLE_ENCODING
110-
uint16_t * p_buff = i2s_dummy_buffer[0];
111-
uint16_t dataVal = 0;
112-
for (uint16_t cnt = 0; cnt < AUDIO_SAMPLE_RATE/1000; cnt++)
113-
{
114-
// CH0 saw wave
115-
*p_buff++ = dataVal;
116-
// CH1 inverted saw wave
117-
*p_buff++ = 3200 + AUDIO_SAMPLE_RATE/1000 - dataVal;
118-
dataVal+= 32;
119-
}
120-
p_buff = i2s_dummy_buffer[1];
121-
for (uint16_t cnt = 0; cnt < AUDIO_SAMPLE_RATE/1000; cnt++)
122-
{
123-
// CH3 square wave
124-
*p_buff++ = cnt < (AUDIO_SAMPLE_RATE/1000/2) ? 3400:5000;
125-
// CH4 sinus wave
126-
float t = 2*3.1415f * cnt / (AUDIO_SAMPLE_RATE/1000);
127-
*p_buff++ = (uint16_t)((int16_t)(sinf(t) * 750) + 6000);
128-
}
129-
#else
130104
uint16_t * p_buff = i2s_dummy_buffer;
131105
uint16_t dataVal = 0;
132106
for (uint16_t cnt = 0; cnt < AUDIO_SAMPLE_RATE/1000; cnt++)
@@ -142,7 +116,6 @@ int main(void)
142116
float t = 2*3.1415f * cnt / (AUDIO_SAMPLE_RATE/1000);
143117
*p_buff++ = (uint16_t)((int16_t)(sinf(t) * 750) + 6000);
144118
}
145-
#endif
146119

147120
while (1)
148121
{
@@ -195,15 +168,7 @@ void audio_task(void)
195168
uint32_t curr_ms = board_millis();
196169
if ( start_ms == curr_ms ) return; // not enough time
197170
start_ms = curr_ms;
198-
#if CFG_TUD_AUDIO_ENABLE_ENCODING
199-
// Write I2S buffer into FIFO
200-
for (uint8_t cnt=0; cnt < 2; cnt++)
201-
{
202-
tud_audio_write_support_ff(cnt, i2s_dummy_buffer[cnt], AUDIO_SAMPLE_RATE/1000 * CFG_TUD_AUDIO_FUNC_1_N_BYTES_PER_SAMPLE_TX * CFG_TUD_AUDIO_FUNC_1_CHANNEL_PER_FIFO_TX);
203-
}
204-
#else
205171
tud_audio_write(i2s_dummy_buffer, AUDIO_SAMPLE_RATE/1000 * CFG_TUD_AUDIO_FUNC_1_N_BYTES_PER_SAMPLE_TX * CFG_TUD_AUDIO_FUNC_1_N_CHANNELS_TX);
206-
#endif
207172
}
208173

209174
//--------------------------------------------------------------------+

examples/device/audio_4_channel_mic/src/tusb_config.h

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -115,26 +115,11 @@ extern "C" {
115115
#define CFG_TUD_AUDIO_FUNC_1_N_CHANNELS_TX 4 // This value is not required by the driver, it parses this information from the descriptor once the alternate interface is set by the host - we use it for the setup
116116
#define CFG_TUD_AUDIO_EP_SZ_IN TUD_AUDIO_EP_SIZE(CFG_TUD_AUDIO_FUNC_1_SAMPLE_RATE, CFG_TUD_AUDIO_FUNC_1_N_BYTES_PER_SAMPLE_TX, CFG_TUD_AUDIO_FUNC_1_N_CHANNELS_TX)
117117

118-
#define CFG_TUD_AUDIO_ENABLE_ENCODING 1
119118
#define CFG_TUD_AUDIO_EP_IN_FLOW_CONTROL 1
120119

121-
#if CFG_TUD_AUDIO_ENABLE_ENCODING
122-
123-
#define CFG_TUD_AUDIO_FUNC_1_EP_IN_SZ_MAX CFG_TUD_AUDIO_EP_SZ_IN
124-
#define CFG_TUD_AUDIO_FUNC_1_EP_IN_SW_BUF_SZ CFG_TUD_AUDIO_EP_SZ_IN
125-
126-
#define CFG_TUD_AUDIO_ENABLE_TYPE_I_ENCODING 1
127-
#define CFG_TUD_AUDIO_FUNC_1_CHANNEL_PER_FIFO_TX 2 // One I2S stream contains two channels, each stream is saved within one support FIFO - this value is currently fixed, the driver does not support a changing value
128-
#define CFG_TUD_AUDIO_FUNC_1_N_TX_SUPP_SW_FIFO (CFG_TUD_AUDIO_FUNC_1_N_CHANNELS_TX / CFG_TUD_AUDIO_FUNC_1_CHANNEL_PER_FIFO_TX)
129-
#define CFG_TUD_AUDIO_FUNC_1_TX_SUPP_SW_FIFO_SZ (TUD_OPT_HIGH_SPEED ? 32 : 4) * (CFG_TUD_AUDIO_EP_SZ_IN / CFG_TUD_AUDIO_FUNC_1_N_TX_SUPP_SW_FIFO) // Example write FIFO every 1ms, so it should be 8 times larger for HS device
130-
131-
#else
132-
133120
#define CFG_TUD_AUDIO_FUNC_1_EP_IN_SZ_MAX CFG_TUD_AUDIO_EP_SZ_IN
134121
#define CFG_TUD_AUDIO_FUNC_1_EP_IN_SW_BUF_SZ (TUD_OPT_HIGH_SPEED ? 32 : 4) * CFG_TUD_AUDIO_EP_SZ_IN // Example write FIFO every 1ms, so it should be 8 times larger for HS device
135122

136-
#endif
137-
138123
#ifdef __cplusplus
139124
}
140125
#endif

examples/device/audio_4_channel_mic_freertos/src/main.c

Lines changed: 0 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -105,13 +105,8 @@ uint8_t clkValid;
105105
audio_control_range_2_n_t(1) volumeRng[CFG_TUD_AUDIO_FUNC_1_N_CHANNELS_TX+1]; // Volume range state
106106
audio_control_range_4_n_t(1) sampleFreqRng; // Sample frequency range state
107107

108-
#if CFG_TUD_AUDIO_ENABLE_ENCODING
109-
// Audio test data, each buffer contains 2 channels, buffer[0] for CH0-1, buffer[1] for CH1-2
110-
uint16_t i2s_dummy_buffer[CFG_TUD_AUDIO_FUNC_1_N_TX_SUPP_SW_FIFO][CFG_TUD_AUDIO_FUNC_1_N_CHANNELS_TX*CFG_TUD_AUDIO_FUNC_1_SAMPLE_RATE/1000/CFG_TUD_AUDIO_FUNC_1_N_TX_SUPP_SW_FIFO];
111-
#else
112108
// Audio test data, 4 channels muxed together, buffer[0] for CH0, buffer[1] for CH1, buffer[2] for CH2, buffer[3] for CH3
113109
uint16_t i2s_dummy_buffer[CFG_TUD_AUDIO_FUNC_1_N_CHANNELS_TX*CFG_TUD_AUDIO_FUNC_1_SAMPLE_RATE/1000];
114-
#endif
115110

116111
void led_blinking_task(void* param);
117112
void usb_device_task(void* param);
@@ -132,27 +127,6 @@ int main(void)
132127
sampleFreqRng.subrange[0].bRes = 0;
133128

134129
// Generate dummy data
135-
#if CFG_TUD_AUDIO_ENABLE_ENCODING
136-
uint16_t * p_buff = i2s_dummy_buffer[0];
137-
uint16_t dataVal = 0;
138-
for (uint16_t cnt = 0; cnt < AUDIO_SAMPLE_RATE/1000; cnt++)
139-
{
140-
// CH0 saw wave
141-
*p_buff++ = dataVal;
142-
// CH1 inverted saw wave
143-
*p_buff++ = 3200 + AUDIO_SAMPLE_RATE/1000 - dataVal;
144-
dataVal+= 32;
145-
}
146-
p_buff = i2s_dummy_buffer[1];
147-
for (uint16_t cnt = 0; cnt < AUDIO_SAMPLE_RATE/1000; cnt++)
148-
{
149-
// CH3 square wave
150-
*p_buff++ = cnt < (AUDIO_SAMPLE_RATE/1000/2) ? 3400:5000;
151-
// CH4 sinus wave
152-
float t = 2*3.1415f * cnt / (AUDIO_SAMPLE_RATE/1000);
153-
*p_buff++ = (uint16_t)((int16_t)(sinf(t) * 750) + 6000);
154-
}
155-
#else
156130
uint16_t * p_buff = i2s_dummy_buffer;
157131
uint16_t dataVal = 0;
158132
for (uint16_t cnt = 0; cnt < AUDIO_SAMPLE_RATE/1000; cnt++)
@@ -168,7 +142,6 @@ int main(void)
168142
float t = 2*3.1415f * cnt / (AUDIO_SAMPLE_RATE/1000);
169143
*p_buff++ = (uint16_t)((int16_t)(sinf(t) * 750) + 6000);
170144
}
171-
#endif
172145

173146
#if configSUPPORT_STATIC_ALLOCATION
174147
// blinky task
@@ -269,15 +242,7 @@ void audio_task(void* param)
269242
// Here we simulate a I2S receive callback every 1ms.
270243
while (1) {
271244
vTaskDelay(1);
272-
#if CFG_TUD_AUDIO_ENABLE_ENCODING
273-
// Write I2S buffer into FIFO
274-
for (uint8_t cnt=0; cnt < 2; cnt++)
275-
{
276-
tud_audio_write_support_ff(cnt, i2s_dummy_buffer[cnt], AUDIO_SAMPLE_RATE/1000 * CFG_TUD_AUDIO_FUNC_1_N_BYTES_PER_SAMPLE_TX * CFG_TUD_AUDIO_FUNC_1_CHANNEL_PER_FIFO_TX);
277-
}
278-
#else
279245
tud_audio_write(i2s_dummy_buffer, AUDIO_SAMPLE_RATE/1000 * CFG_TUD_AUDIO_FUNC_1_N_BYTES_PER_SAMPLE_TX * CFG_TUD_AUDIO_FUNC_1_N_CHANNELS_TX);
280-
#endif
281246
}
282247
}
283248

examples/device/audio_4_channel_mic_freertos/src/tusb_config.h

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -121,26 +121,11 @@ extern "C" {
121121
#define CFG_TUD_AUDIO_FUNC_1_N_CHANNELS_TX 4 // This value is not required by the driver, it parses this information from the descriptor once the alternate interface is set by the host - we use it for the setup
122122
#define CFG_TUD_AUDIO_EP_SZ_IN TUD_AUDIO_EP_SIZE(CFG_TUD_AUDIO_FUNC_1_SAMPLE_RATE, CFG_TUD_AUDIO_FUNC_1_N_BYTES_PER_SAMPLE_TX, CFG_TUD_AUDIO_FUNC_1_N_CHANNELS_TX)
123123

124-
#define CFG_TUD_AUDIO_ENABLE_ENCODING 1
125124
#define CFG_TUD_AUDIO_EP_IN_FLOW_CONTROL 1
126125

127-
#if CFG_TUD_AUDIO_ENABLE_ENCODING
128-
129-
#define CFG_TUD_AUDIO_FUNC_1_EP_IN_SZ_MAX CFG_TUD_AUDIO_EP_SZ_IN
130-
#define CFG_TUD_AUDIO_FUNC_1_EP_IN_SW_BUF_SZ CFG_TUD_AUDIO_EP_SZ_IN
131-
132-
#define CFG_TUD_AUDIO_ENABLE_TYPE_I_ENCODING 1
133-
#define CFG_TUD_AUDIO_FUNC_1_CHANNEL_PER_FIFO_TX 2 // One I2S stream contains two channels, each stream is saved within one support FIFO - this value is currently fixed, the driver does not support a changing value
134-
#define CFG_TUD_AUDIO_FUNC_1_N_TX_SUPP_SW_FIFO (CFG_TUD_AUDIO_FUNC_1_N_CHANNELS_TX / CFG_TUD_AUDIO_FUNC_1_CHANNEL_PER_FIFO_TX)
135-
#define CFG_TUD_AUDIO_FUNC_1_TX_SUPP_SW_FIFO_SZ (TUD_OPT_HIGH_SPEED ? 32 : 4) * (CFG_TUD_AUDIO_EP_SZ_IN / CFG_TUD_AUDIO_FUNC_1_N_TX_SUPP_SW_FIFO) // Example write FIFO every 1ms, so it should be 8 times larger for HS device
136-
137-
#else
138-
139126
#define CFG_TUD_AUDIO_FUNC_1_EP_IN_SZ_MAX CFG_TUD_AUDIO_EP_SZ_IN
140127
#define CFG_TUD_AUDIO_FUNC_1_EP_IN_SW_BUF_SZ (TUD_OPT_HIGH_SPEED ? 32 : 4) * CFG_TUD_AUDIO_EP_SZ_IN // Example write FIFO every 1ms, so it should be 8 times larger for HS device
141128

142-
#endif
143-
144129
#ifdef __cplusplus
145130
}
146131
#endif

0 commit comments

Comments
 (0)