Skip to content

Commit

Permalink
samples: broadcast_config_tool: Fix multiple streams
Browse files Browse the repository at this point in the history
- Move sending of first frame to STREAMING event
- Memset filename before writing to it
- Add files for all usecases
- OCT-NONE

Signed-off-by: Alexander Svensen <alexander.svensen@nordicsemi.no>
  • Loading branch information
alexsven authored and koffes committed Sep 27, 2024
1 parent 8f85f5b commit 3a9ba28
Show file tree
Hide file tree
Showing 3 changed files with 97 additions and 14 deletions.
7 changes: 4 additions & 3 deletions applications/nrf5340_audio/src/modules/lc3_streamer.c
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ static int stream_loop(struct lc3_stream *stream)

ret = lc3_file_open(&stream->file, stream->filename);
if (ret) {
LOG_ERR("Failed to open file %d", ret);
LOG_ERR("Failed to open file %s: %d", stream->filename, ret);
return ret;
}

Expand Down Expand Up @@ -311,8 +311,9 @@ int lc3_streamer_stream_register(const char *const filename, uint8_t *const stre
return ret;
}

strncpy(streams[*streamer_idx].filename, filename,
ARRAY_SIZE(streams[*streamer_idx].filename));
memset(streams[*streamer_idx].filename, '\0', sizeof(streams[*streamer_idx].filename));

strncpy(streams[*streamer_idx].filename, filename, strlen(filename));

ret = data_fifo_init(&streams[*streamer_idx].fifo);
if (ret) {
Expand Down
4 changes: 2 additions & 2 deletions samples/bluetooth/broadcast_config_tool/prj.conf
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ CONFIG_LOG=y
CONFIG_NEWLIB_LIBC_FLOAT_PRINTF=y
CONFIG_LOG_TAG_MAX_LEN=2
CONFIG_LOG_TAG_DEFAULT="--"
CONFIG_USE_SEGGER_RTT=y
CONFIG_LOG_BACKEND_RTT=y
CONFIG_USE_SEGGER_RTT=n
CONFIG_LOG_BACKEND_RTT=n
CONFIG_LOG_BUFFER_SIZE=8000

CONFIG_BOARD_ENABLE_DCDC_NET=y
Expand Down
100 changes: 91 additions & 9 deletions samples/bluetooth/broadcast_config_tool/src/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -305,10 +305,7 @@ static void le_audio_msg_sub_thread(void)
break;

case LE_AUDIO_EVT_STREAMING:
LOG_DBG("LE audio evt streaming for stream big %d sub: %d bis: %d",
msg.idx.lvl1, msg.idx.lvl2, msg.idx.lvl3);

stream_frame_get_and_send(msg.idx);
stream_get_frame_and_send(msg.idx);

break;

Expand Down Expand Up @@ -785,8 +782,6 @@ static void broadcast_config_print(const struct shell *shell,

shell_print(shell, "\tBroadcast code: %s", brdcst_param->broadcast_code);

shell_print(shell, "\t\tFiles:");

for (size_t i = 0; i < brdcst_param->num_subgroups; i++) {
struct bt_audio_codec_cfg *codec_cfg =
&brdcst_param->subgroups[i].group_lc3_preset.codec_cfg;
Expand Down Expand Up @@ -2165,6 +2160,12 @@ static void silent_tv_1_set(const struct shell *shell)
char *location_FL_argv[5] = {"location", "FL", "0", "0", "0"};
char *location_FR_argv[5] = {"location", "FR", "0", "0", "1"};

char *fileselect0_argv[5] = {
"file select", "24000hz/48_kbps/left-channel_24kHz_left_48kbps.lc3", "0", "0", "0"};
char *fileselect1_argv[5] = {"file select",
"24000hz/48_kbps/right-channel_24kHz_left_48kbps.lc3", "0",
"0", "1"};

cmd_preset(shell, 3, preset_argv);
cmd_adv_name(shell, 3, adv_name_argv);
cmd_broadcast_name(shell, 3, name_argv);
Expand All @@ -2182,6 +2183,9 @@ static void silent_tv_1_set(const struct shell *shell)
cmd_location(shell, 5, location_FL_argv);
cmd_location(shell, 5, location_FR_argv);

cmd_file_select(shell, 5, fileselect0_argv);
cmd_file_select(shell, 5, fileselect1_argv);

cmd_show(shell, 0, NULL);
}

Expand All @@ -2205,6 +2209,12 @@ static void silent_tv_2_set(const struct shell *shell)
char *location_FL0_argv[5] = {"location", "FL", "0", "0", "0"};
char *location_FR0_argv[5] = {"location", "FR", "0", "0", "1"};

char *fileselect00_argv[5] = {
"file select", "24000hz/48_kbps/left-channel_24kHz_left_48kbps.lc3", "0", "0", "0"};
char *fileselect01_argv[5] = {"file select",
"24000hz/48_kbps/right-channel_24kHz_left_48kbps.lc3", "0",
"0", "1"};

cmd_preset(shell, 3, preset0_argv);
cmd_adv_name(shell, 3, adv_name0_argv);
cmd_broadcast_name(shell, 3, name0_argv);
Expand All @@ -2222,6 +2232,9 @@ static void silent_tv_2_set(const struct shell *shell)
cmd_location(shell, 5, location_FL0_argv);
cmd_location(shell, 5, location_FR0_argv);

cmd_file_select(shell, 5, fileselect00_argv);
cmd_file_select(shell, 5, fileselect01_argv);

/* BIG1 */
char *preset1_argv[3] = {"preset", "48_2_1", "1"};
char *adv_name1_argv[3] = {"adv_name", "Silent_TV2_high", "1"};
Expand All @@ -2240,6 +2253,13 @@ static void silent_tv_2_set(const struct shell *shell)
char *location_FL1_argv[5] = {"location", "FL", "1", "0", "0"};
char *location_FR1_argv[5] = {"location", "FR", "1", "0", "1"};

char *fileselect10_argv[5] = {
"file select", "48000hz/80_kbps/left-channel_48kHz_left_80kbps.lc3", "1", "0", "0"};
char *fileselect11_argv[5] = {"file select",
"48000hz/80_kbps/right-channel_48kHz_left_80kbps.lc3", "1",
"0", "1"};
char *num_rtn_argv[4] = {"rtn", "2", "1", "0"};

cmd_preset(shell, 3, preset1_argv);
cmd_adv_name(shell, 3, adv_name1_argv);
cmd_broadcast_name(shell, 3, name1_argv);
Expand All @@ -2257,6 +2277,11 @@ static void silent_tv_2_set(const struct shell *shell)
cmd_location(shell, 5, location_FL1_argv);
cmd_location(shell, 5, location_FR1_argv);

cmd_file_select(shell, 5, fileselect10_argv);
cmd_file_select(shell, 5, fileselect11_argv);

cmd_rtn(shell, 4, num_rtn_argv);

cmd_show(shell, 0, NULL);
}

Expand All @@ -2269,7 +2294,7 @@ static void multi_language_set(const struct shell *shell)
char *packing_argv[3] = {"packing", "int", "0"};

char *lang0_argv[4] = {"lang_set", "eng", "0", "0"};
char *lang1_argv[4] = {"lang_set", "spa", "0", "1"};
char *lang1_argv[4] = {"lang_set", "chi", "0", "1"};
char *lang2_argv[4] = {"lang_set", "nor", "0", "2"};

char *context0_argv[4] = {"context", "unspecified", "0", "0"};
Expand All @@ -2280,6 +2305,21 @@ static void multi_language_set(const struct shell *shell)
char *num_bis1_argv[4] = {"num_bises", "1", "0", "1"};
char *num_bis2_argv[4] = {"num_bises", "1", "0", "2"};

char *num_rtn0_argv[4] = {"rtn", "2", "0", "0"};
char *num_rtn1_argv[4] = {"rtn", "2", "0", "1"};
char *num_rtn2_argv[4] = {"rtn", "2", "0", "2"};

char *fileselect0_argv[5] = {"file select",
"24000hz/48_kbps/gate-b23-english_24kHz_left_48kbps.lc3", "0",
"0", "0"};
char *fileselect1_argv[5] = {"file select",
"24000hz/48_kbps/gate-b23-mandarin_24kHz_left_48kbps.lc3", "0",
"1", "0"};
char *fileselect2_argv[5] = {
"file select",
"24000hz/48_kbps/adventuresherlockholmes_01_doyle_24kHz_left_48kbps.lc3", "0", "2",
"0"};

cmd_num_subgroups(shell, 3, num_subs_argv);
cmd_preset(shell, 3, preset_argv);
cmd_adv_name(shell, 3, adv_name_argv);
Expand All @@ -2298,6 +2338,14 @@ static void multi_language_set(const struct shell *shell)
cmd_num_bises(shell, 4, num_bis1_argv);
cmd_num_bises(shell, 4, num_bis2_argv);

cmd_rtn(shell, 4, num_rtn0_argv);
cmd_rtn(shell, 4, num_rtn1_argv);
cmd_rtn(shell, 4, num_rtn2_argv);

cmd_file_select(shell, 5, fileselect0_argv);
cmd_file_select(shell, 5, fileselect1_argv);
cmd_file_select(shell, 5, fileselect2_argv);

cmd_show(shell, 0, NULL);
}

Expand All @@ -2309,13 +2357,20 @@ static void personal_sharing_set(const struct shell *shell)
char *packing_argv[3] = {"packing", "int", "0"};
char *encrypt_argv[4] = {"encrypt", "1", "0", "Auratest"};

char *context_argv[4] = {"context", "conversational", "0", "0"};
char *context_argv[4] = {"context", "media", "0", "0"};

char *num_bis_argv[4] = {"num_bises", "2", "0", "0"};

char *location_FL_argv[5] = {"location", "FL", "0", "0", "0"};
char *location_FR_argv[5] = {"location", "FR", "0", "0", "1"};

char *fileselect0_argv[5] = {
"file select", "48000hz/80_kbps/groovy-ambient-funk-201745_48kHz_left_80kbps.lc3",
"0", "0", "0"};
char *fileselect1_argv[5] = {
"file select", "48000hz/80_kbps/groovy-ambient-funk-201745_48kHz_right_80kbps.lc3",
"0", "0", "1"};

cmd_preset(shell, 3, preset_argv);
cmd_adv_name(shell, 3, adv_name_argv);
cmd_broadcast_name(shell, 3, name_argv);
Expand All @@ -2329,6 +2384,9 @@ static void personal_sharing_set(const struct shell *shell)
cmd_location(shell, 5, location_FL_argv);
cmd_location(shell, 5, location_FR_argv);

cmd_file_select(shell, 5, fileselect0_argv);
cmd_file_select(shell, 5, fileselect1_argv);

cmd_show(shell, 0, NULL);
}

Expand All @@ -2342,7 +2400,7 @@ static void personal_multi_language_set(const struct shell *shell)
char *encrypt_argv[4] = {"encrypt", "1", "0", "Auratest"};

char *lang0_argv[4] = {"lang_set", "eng", "0", "0"};
char *lang1_argv[4] = {"lang_set", "spa", "0", "1"};
char *lang1_argv[4] = {"lang_set", "chi", "0", "1"};

char *context0_argv[4] = {"context", "media", "0", "0"};
char *context1_argv[4] = {"context", "media", "0", "1"};
Expand All @@ -2355,6 +2413,22 @@ static void personal_multi_language_set(const struct shell *shell)
char *location_FL1_argv[5] = {"location", "FL", "0", "1", "0"};
char *location_FR1_argv[5] = {"location", "FR", "0", "1", "1"};

char *fileselect000_argv[5] = {"file select",
"24000hz/48_kbps/auditorium-english_24kHz_left_48kbps.lc3",
"0", "0", "0"};
char *fileselect001_argv[5] = {"file select",
"24000hz/48_kbps/auditorium-english_24kHz_right_48kbps.lc3",
"0", "0", "1"};
char *fileselect010_argv[5] = {"file select",
"24000hz/48_kbps/auditorium-mandarin_24kHz_left_48kbps.lc3",
"0", "1", "0"};
char *fileselect011_argv[5] = {"file select",
"24000hz/48_kbps/auditorium-mandarin_24kHz_right_48kbps.lc3",
"0", "1", "1"};

char *num_rtn000_argv[4] = {"rtn", "2", "0", "0"};
char *num_rtn010_argv[4] = {"rtn", "2", "0", "1"};

cmd_num_subgroups(shell, 3, num_subs_argv);
cmd_preset(shell, 3, preset_argv);
cmd_adv_name(shell, 3, adv_name_argv);
Expand All @@ -2376,6 +2450,14 @@ static void personal_multi_language_set(const struct shell *shell)
cmd_location(shell, 5, location_FL1_argv);
cmd_location(shell, 5, location_FR1_argv);

cmd_file_select(shell, 5, fileselect000_argv);
cmd_file_select(shell, 5, fileselect001_argv);
cmd_file_select(shell, 5, fileselect010_argv);
cmd_file_select(shell, 5, fileselect011_argv);

cmd_rtn(shell, 4, num_rtn000_argv);
cmd_rtn(shell, 4, num_rtn010_argv);

cmd_show(shell, 0, NULL);
}

Expand Down

0 comments on commit 3a9ba28

Please sign in to comment.