Skip to content

Commit fb1fb2d

Browse files
committed
main: code cleanup
1 parent 86bf732 commit fb1fb2d

File tree

14 files changed

+126
-170
lines changed

14 files changed

+126
-170
lines changed

main/inc/core/os.h

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,8 @@ typedef enum user_event_group_bits {
3030
AUDIO_INPUT_RUN_BIT = BIT9,
3131
AUDIO_INPUT_FFT_BIT = BIT10,
3232

33-
AUDIO_RENDER_CLR_BIT = BIT11,
34-
35-
AUDIO_PLAYER_RUN_BIT = BIT12,
36-
AUDIO_PLAYER_IDLE_BIT = BIT13
33+
AUDIO_PLAYER_RUN_BIT = BIT11,
34+
AUDIO_PLAYER_IDLE_BIT = BIT12
3735
} user_event_group_bits_t;
3836

3937
extern EventGroupHandle_t user_event_group;

main/inc/user/fft.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,11 @@ typedef enum {
2929
FFT_CHANNEL_LR = 0x02
3030
} fft_channel_t;
3131

32-
extern void fft_compute_lin(uint16_t *data_out, uint16_t scale_factor, uint16_t max_val, uint16_t min_val);
33-
extern void fft_compute_log(uint16_t *data_out, uint16_t scale_factor, uint16_t max_val, uint16_t min_val);
34-
extern void fft_compute_bands(uint16_t *data_out, uint16_t scale_factor, uint16_t max_val, uint16_t min_val);
32+
extern void fft_compute_lin(uint16_t *data_out, uint16_t max_val, uint16_t min_val);
33+
extern void fft_compute_log(uint16_t *data_out, uint16_t max_val, uint16_t min_val);
34+
extern void fft_compute_bands(uint16_t *data_out, uint16_t max_val, uint16_t min_val);
3535

36-
extern void fft_execute(void);
36+
extern void fft_execute(float scale_factor);
3737
extern void fft_load_data(const uint8_t *data_in, fft_channel_t channel);
3838

3939
extern void fft_init(void);

main/inc/user/vfx_core.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,4 @@ extern void vfx_draw_cube_bitmap(const uint8_t *bitmap, float color_l);
2020
extern void vfx_draw_layer_bitmap(uint8_t layer, const uint8_t *bitmap, float color_l);
2121
extern void vfx_draw_layer_number(uint8_t num, uint8_t layer, float color_h, float color_l);
2222

23-
extern void vfx_compute_freq_lin(const float *data_in, uint16_t *data_out, uint16_t scale_factor, uint16_t max_val, uint16_t min_val);
24-
extern void vfx_compute_freq_log(const float *data_in, uint16_t *data_out, uint16_t scale_factor, uint16_t max_val, uint16_t min_val);
25-
2623
#endif /* INC_USER_VFX_CORE_H_ */

main/src/user/ain.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,7 @@ static void ain_task(void *pvParameters)
5050
fft_load_data(data, FFT_CHANNEL_LR);
5151
#endif
5252

53-
EventBits_t uxBits = xEventGroupGetBits(user_event_group);
54-
if (!(uxBits & AUDIO_INPUT_RUN_BIT)) {
53+
if (!(xEventGroupGetBits(user_event_group) & AUDIO_INPUT_RUN_BIT)) {
5554
fft_init();
5655
}
5756

main/src/user/audio_player.c

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -75,9 +75,9 @@ static void audio_player_task(void *pvParameters)
7575
while (1) {
7676
xEventGroupWaitBits(
7777
user_event_group,
78-
AUDIO_PLAYER_RUN_BIT | AUDIO_RENDER_CLR_BIT,
78+
AUDIO_PLAYER_RUN_BIT,
79+
pdFALSE,
7980
pdFALSE,
80-
pdTRUE,
8181
portMAX_DELAY
8282
);
8383

@@ -152,8 +152,7 @@ void audio_player_play_file(mp3_file_t idx)
152152

153153
mp3_file = idx;
154154

155-
EventBits_t uxBits = xEventGroupGetBits(user_event_group);
156-
if (uxBits & AUDIO_PLAYER_RUN_BIT) {
155+
if (xEventGroupGetBits(user_event_group) & AUDIO_PLAYER_RUN_BIT) {
157156
playback_pending = true;
158157
} else {
159158
xEventGroupClearBits(user_event_group, AUDIO_PLAYER_IDLE_BIT);
@@ -163,8 +162,7 @@ void audio_player_play_file(mp3_file_t idx)
163162

164163
void audio_player_init(void)
165164
{
166-
EventBits_t uxBits = xEventGroupGetBits(user_event_group);
167-
if (!(uxBits & AUDIO_PLAYER_RUN_BIT)) {
165+
if (!(xEventGroupGetBits(user_event_group) & AUDIO_PLAYER_RUN_BIT)) {
168166
xEventGroupSetBits(user_event_group, AUDIO_PLAYER_IDLE_BIT);
169167
}
170168

main/src/user/audio_render.c

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -28,26 +28,17 @@ static StaticRingbuffer_t buff_struct = {0};
2828

2929
static void audio_render_task(void *pvParameter)
3030
{
31-
uint16_t delay = 0;
31+
uint8_t delay = 0;
32+
bool clear = false;
3233
bool start = false;
34+
EventBits_t uxBits = 0;
3335

3436
ESP_LOGI(TAG, "started.");
3537

3638
while (1) {
3739
uint8_t *data = NULL;
3840
uint32_t size = 0;
3941

40-
EventBits_t uxBits = xEventGroupGetBits(user_event_group);
41-
if (!(uxBits & AUDIO_RENDER_CLR_BIT)) {
42-
#ifdef CONFIG_ENABLE_VFX
43-
if (!(uxBits & AUDIO_INPUT_RUN_BIT) && (uxBits & AUDIO_INPUT_FFT_BIT)) {
44-
fft_init();
45-
xEventGroupClearBits(user_event_group, VFX_FFT_IDLE_BIT);
46-
}
47-
#endif
48-
xEventGroupSetBits(user_event_group, AUDIO_RENDER_CLR_BIT);
49-
}
50-
5142
taskYIELD();
5243

5344
if (start) {
@@ -62,31 +53,42 @@ static void audio_render_task(void *pvParameter)
6253

6354
data = (uint8_t *)xRingbufferReceiveUpTo(audio_buff, &size, portMAX_DELAY, remain);
6455
} else {
65-
if (++delay <= 256000 / a2d_sample_rate) {
66-
vTaskDelay(1 / portTICK_RATE_MS);
56+
if (++delay <= 10) {
57+
vTaskDelay(256000 / a2d_sample_rate / portTICK_RATE_MS);
6758
} else {
6859
delay = 0;
6960

70-
xEventGroupClearBits(user_event_group, AUDIO_RENDER_CLR_BIT);
71-
61+
clear = false;
7262
start = false;
7363
}
7464

7565
continue;
7666
}
7767
} else {
78-
if (xRingbufferGetCurFreeSize(audio_buff) >= FFT_BLOCK_SIZE) {
79-
vTaskDelay(1 / portTICK_RATE_MS);
68+
if (!clear) {
69+
audio_buff = xRingbufferCreateStatic(sizeof(buff_data), RINGBUF_TYPE_BYTEBUF, buff_data, &buff_struct);
70+
#ifdef CONFIG_ENABLE_VFX
71+
uxBits = xEventGroupGetBits(user_event_group);
72+
if (!(uxBits & AUDIO_INPUT_RUN_BIT) && (uxBits & AUDIO_INPUT_FFT_BIT)) {
73+
fft_init();
74+
xEventGroupClearBits(user_event_group, VFX_FFT_IDLE_BIT);
75+
}
76+
#endif
77+
clear = true;
8078
} else {
81-
start = true;
79+
if (xRingbufferGetCurFreeSize(audio_buff) >= FFT_BLOCK_SIZE) {
80+
vTaskDelay(1 / portTICK_RATE_MS);
81+
} else {
82+
start = true;
83+
}
8284
}
8385

8486
continue;
8587
}
8688

8789
uxBits = xEventGroupGetBits(user_event_group);
8890
if ((uxBits & AUDIO_PLAYER_RUN_BIT) || (uxBits & BT_A2DP_IDLE_BIT)
89-
|| (uxBits & OS_PWR_SLEEP_BIT) || (uxBits & OS_PWR_RESET_BIT)) {
91+
|| (uxBits & OS_PWR_RESET_BIT) || (uxBits & OS_PWR_SLEEP_BIT)) {
9092
vRingbufferReturnItem(audio_buff, (void *)data);
9193
continue;
9294
}
@@ -128,7 +130,5 @@ static void audio_render_task(void *pvParameter)
128130

129131
void audio_render_init(void)
130132
{
131-
audio_buff = xRingbufferCreateStatic(sizeof(buff_data), RINGBUF_TYPE_BYTEBUF, buff_data, &buff_struct);
132-
133133
xTaskCreatePinnedToCore(audio_render_task, "audioRenderT", 1920, NULL, configMAX_PRIORITIES - 3, NULL, 0);
134134
}

main/src/user/ble_gatts.c

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -69,9 +69,8 @@ static void profile_ota_event_handler(esp_gatts_cb_event_t event, esp_gatt_if_t
6969
esp_ble_gatts_create_service(gatts_if, &gatts_profile_tbl[PROFILE_IDX_OTA].service_id, GATTS_NUM_HANDLE_OTA);
7070
break;
7171
case ESP_GATTS_READ_EVT: {
72-
esp_gatt_rsp_t rsp;
72+
esp_gatt_rsp_t rsp = {0};
7373

74-
memset(&rsp, 0, sizeof(esp_gatt_rsp_t));
7574
rsp.attr_value.handle = param->read.handle;
7675

7776
if (param->read.handle == gatts_profile_tbl[PROFILE_IDX_OTA].descr_handle) {
@@ -168,7 +167,7 @@ static void profile_ota_event_handler(esp_gatts_cb_event_t event, esp_gatt_if_t
168167
ota_end();
169168

170169
EventBits_t uxBits = xEventGroupGetBits(user_event_group);
171-
if (!(uxBits & OS_PWR_SLEEP_BIT) && !(uxBits & OS_PWR_RESET_BIT)) {
170+
if (!(uxBits & OS_PWR_RESET_BIT) && !(uxBits & OS_PWR_SLEEP_BIT)) {
172171
esp_ble_gap_start_advertising(&adv_params);
173172
}
174173

@@ -199,9 +198,8 @@ static void profile_vfx_event_handler(esp_gatts_cb_event_t event, esp_gatt_if_t
199198
esp_ble_gatts_create_service(gatts_if, &gatts_profile_tbl[PROFILE_IDX_VFX].service_id, GATTS_NUM_HANDLE_VFX);
200199
break;
201200
case ESP_GATTS_READ_EVT: {
202-
esp_gatt_rsp_t rsp;
201+
esp_gatt_rsp_t rsp = {0};
203202

204-
memset(&rsp, 0, sizeof(esp_gatt_rsp_t));
205203
rsp.attr_value.handle = param->read.handle;
206204

207205
if (param->read.handle == gatts_profile_tbl[PROFILE_IDX_VFX].descr_handle) {

main/src/user/bt_app.c

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,14 +35,13 @@ enum {
3535
static void bt_app_gap_cb(esp_bt_gap_cb_event_t event, esp_bt_gap_cb_param_t *param)
3636
{
3737
switch (event) {
38-
case ESP_BT_GAP_AUTH_CMPL_EVT: {
38+
case ESP_BT_GAP_AUTH_CMPL_EVT:
3939
if (param->auth_cmpl.stat == ESP_BT_STATUS_SUCCESS) {
4040
ESP_LOGI(BT_GAP_TAG, "authentication success: %s", param->auth_cmpl.device_name);
4141
} else {
4242
ESP_LOGE(BT_GAP_TAG, "authentication failed, status: %d", param->auth_cmpl.stat);
4343
}
4444
break;
45-
}
4645
default:
4746
break;
4847
}
@@ -51,7 +50,7 @@ static void bt_app_gap_cb(esp_bt_gap_cb_event_t event, esp_bt_gap_cb_param_t *pa
5150
static void bt_app_hdl_stack_evt(uint16_t event, void *p_param)
5251
{
5352
switch (event) {
54-
case BT_APP_EVT_STACK_UP: {
53+
case BT_APP_EVT_STACK_UP:
5554
/* set up device name */
5655
esp_bt_dev_set_device_name(CONFIG_BT_NAME);
5756

@@ -69,7 +68,7 @@ static void bt_app_hdl_stack_evt(uint16_t event, void *p_param)
6968

7069
if (memcmp(last_remote_bda, "\x00\x00\x00\x00\x00\x00", 6) != 0) {
7170
EventBits_t uxBits = xEventGroupGetBits(user_event_group);
72-
if (!(uxBits & OS_PWR_SLEEP_BIT) && !(uxBits & OS_PWR_RESET_BIT)) {
71+
if (!(uxBits & OS_PWR_RESET_BIT) && !(uxBits & OS_PWR_SLEEP_BIT)) {
7372
ESP_LOGW(BT_APP_TAG, "connecting to [%02x:%02x:%02x:%02x:%02x:%02x]",
7473
last_remote_bda[0], last_remote_bda[1], last_remote_bda[2],
7574
last_remote_bda[3], last_remote_bda[4], last_remote_bda[5]);
@@ -84,7 +83,6 @@ static void bt_app_hdl_stack_evt(uint16_t event, void *p_param)
8483
}
8584

8685
break;
87-
}
8886
default:
8987
ESP_LOGE(BT_APP_TAG, "%s unhandled evt %d", __func__, event);
9088
break;

main/src/user/bt_app_core.c

Lines changed: 37 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -19,36 +19,36 @@
1919

2020
#define BT_APP_CORE_TAG "bt_app_core"
2121

22-
static void bt_app_task(void *pvParameter);
23-
static bool bt_app_send_msg(bt_app_msg_t *msg);
24-
static void bt_app_work_dispatched(bt_app_msg_t *msg);
25-
2622
static xQueueHandle s_bt_app_task_queue = NULL;
2723

28-
bool bt_app_work_dispatch(bt_app_cb_t p_cback, uint16_t event, void *p_params, int param_len, bt_app_copy_cb_t p_copy_cback)
24+
static void bt_app_work_dispatched(bt_app_msg_t *msg)
2925
{
30-
bt_app_msg_t msg;
26+
if (msg->cb) {
27+
msg->cb(msg->event, msg->param);
28+
}
29+
}
3130

32-
memset(&msg, 0, sizeof(bt_app_msg_t));
31+
static void bt_app_task(void *pvParameter)
32+
{
33+
bt_app_msg_t msg;
3334

34-
msg.sig = BT_APP_SIG_WORK_DISPATCH;
35-
msg.event = event;
36-
msg.cb = p_cback;
35+
while (1) {
36+
if (pdTRUE == xQueueReceive(s_bt_app_task_queue, &msg, portMAX_DELAY)) {
37+
ESP_LOGD(BT_APP_CORE_TAG, "%s, sig 0x%x, 0x%x", __func__, msg.sig, msg.event);
38+
switch (msg.sig) {
39+
case BT_APP_SIG_WORK_DISPATCH:
40+
bt_app_work_dispatched(&msg);
41+
break;
42+
default:
43+
ESP_LOGW(BT_APP_CORE_TAG, "%s, unhandled sig: %d", __func__, msg.sig);
44+
break;
45+
}
3746

38-
if (param_len == 0) {
39-
return bt_app_send_msg(&msg);
40-
} else if (p_params && param_len > 0) {
41-
if ((msg.param = malloc(param_len)) != NULL) {
42-
memcpy(msg.param, p_params, param_len);
43-
/* check if caller has provided a copy callback to do the deep copy */
44-
if (p_copy_cback) {
45-
p_copy_cback(&msg, msg.param, p_params);
47+
if (msg.param) {
48+
free(msg.param);
4649
}
47-
return bt_app_send_msg(&msg);
4850
}
4951
}
50-
51-
return false;
5252
}
5353

5454
static bool bt_app_send_msg(bt_app_msg_t *msg)
@@ -65,34 +65,28 @@ static bool bt_app_send_msg(bt_app_msg_t *msg)
6565
return true;
6666
}
6767

68-
static void bt_app_work_dispatched(bt_app_msg_t *msg)
69-
{
70-
if (msg->cb) {
71-
msg->cb(msg->event, msg->param);
72-
}
73-
}
74-
75-
static void bt_app_task(void *pvParameter)
68+
bool bt_app_work_dispatch(bt_app_cb_t p_cback, uint16_t event, void *p_params, int param_len, bt_app_copy_cb_t p_copy_cback)
7669
{
77-
bt_app_msg_t msg;
70+
bt_app_msg_t msg = {0};
7871

79-
while (1) {
80-
if (pdTRUE == xQueueReceive(s_bt_app_task_queue, &msg, portMAX_DELAY)) {
81-
ESP_LOGD(BT_APP_CORE_TAG, "%s, sig 0x%x, 0x%x", __func__, msg.sig, msg.event);
82-
switch (msg.sig) {
83-
case BT_APP_SIG_WORK_DISPATCH:
84-
bt_app_work_dispatched(&msg);
85-
break;
86-
default:
87-
ESP_LOGW(BT_APP_CORE_TAG, "%s, unhandled sig: %d", __func__, msg.sig);
88-
break;
89-
}
72+
msg.sig = BT_APP_SIG_WORK_DISPATCH;
73+
msg.event = event;
74+
msg.cb = p_cback;
9075

91-
if (msg.param) {
92-
free(msg.param);
76+
if (param_len == 0) {
77+
return bt_app_send_msg(&msg);
78+
} else if (p_params && param_len > 0) {
79+
if ((msg.param = malloc(param_len)) != NULL) {
80+
memcpy(msg.param, p_params, param_len);
81+
/* check if caller has provided a copy callback to do the deep copy */
82+
if (p_copy_cback) {
83+
p_copy_cback(&msg, msg.param, p_params);
9384
}
85+
return bt_app_send_msg(&msg);
9486
}
9587
}
88+
89+
return false;
9690
}
9791

9892
void bt_app_task_start_up(void)

0 commit comments

Comments
 (0)