Skip to content

Commit 079df1c

Browse files
committed
Bluetooth: CAP: Shell: Move ac_create_unicast_group to CAP
Move the function bap_ac_create_unicast_group to the CAP shell, as that was the only user of it, and rename it to cap_ac_create_unicast_group, and make it use the CAP API. Also rename bap_unicast_ac_param to cap_unicast_ac_param Signed-off-by: Emil Gydesen <[email protected]>
1 parent b50f5f5 commit 079df1c

File tree

4 files changed

+107
-105
lines changed

4 files changed

+107
-105
lines changed

subsys/bluetooth/audio/shell/audio.h

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,7 @@ void bap_usb_clear_frames_to_usb(void);
163163
uint16_t get_next_seq_num(struct bt_bap_stream *bap_stream);
164164
struct shell_stream *shell_stream_from_bap_stream(struct bt_bap_stream *bap_stream);
165165
struct bt_bap_stream *bap_stream_from_shell_stream(struct shell_stream *sh_stream);
166+
struct bt_cap_stream *cap_stream_from_shell_stream(struct shell_stream *sh_stream);
166167
bool bap_usb_can_get_full_sdu(struct shell_stream *sh_stream);
167168
void bap_usb_get_frame(struct shell_stream *sh_stream, enum bt_audio_location chan_alloc,
168169
int16_t buffer[]);
@@ -219,7 +220,7 @@ extern struct shell_stream unicast_streams[CONFIG_BT_MAX_CONN * MAX(UNICAST_SERV
219220

220221
#if defined(CONFIG_BT_BAP_UNICAST_CLIENT)
221222

222-
struct bap_unicast_ac_param {
223+
struct cap_unicast_ac_param {
223224
char *name;
224225
size_t conn_cnt;
225226
size_t snk_cnt[BAP_UNICAST_AC_MAX_CONN];
@@ -234,11 +235,7 @@ extern struct bt_bap_ep *srcs[CONFIG_BT_MAX_CONN][CONFIG_BT_BAP_UNICAST_CLIENT_A
234235
extern struct named_lc3_preset default_sink_preset;
235236
extern struct named_lc3_preset default_source_preset;
236237

237-
int bap_ac_create_unicast_group(const struct bap_unicast_ac_param *param,
238-
struct shell_stream *snk_uni_streams[], size_t snk_cnt,
239-
struct shell_stream *src_uni_streams[], size_t src_cnt);
240-
241-
int cap_ac_unicast(const struct shell *sh, const struct bap_unicast_ac_param *param);
238+
int cap_ac_unicast(const struct shell *sh, const struct cap_unicast_ac_param *param);
242239
#endif /* CONFIG_BT_BAP_UNICAST_CLIENT */
243240
#endif /* CONFIG_BT_BAP_UNICAST */
244241

subsys/bluetooth/audio/shell/bap.c

Lines changed: 5 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,11 @@ struct bt_bap_stream *bap_stream_from_shell_stream(struct shell_stream *sh_strea
188188
return &sh_stream->stream.bap_stream;
189189
}
190190

191+
struct bt_cap_stream *cap_stream_from_shell_stream(struct shell_stream *sh_stream)
192+
{
193+
return &sh_stream->stream;
194+
}
195+
191196
unsigned long bap_get_stats_interval(void)
192197
{
193198
return bap_stats_interval;
@@ -812,73 +817,6 @@ static int set_metadata(struct bt_audio_codec_cfg *codec_cfg, const char *meta_s
812817
}
813818

814819
#if defined(CONFIG_BT_BAP_UNICAST_CLIENT)
815-
int bap_ac_create_unicast_group(const struct bap_unicast_ac_param *param,
816-
struct shell_stream *snk_uni_streams[], size_t snk_cnt,
817-
struct shell_stream *src_uni_streams[], size_t src_cnt)
818-
{
819-
struct bt_bap_unicast_group_stream_param snk_group_stream_params[BAP_UNICAST_AC_MAX_SNK] = {
820-
0};
821-
struct bt_bap_unicast_group_stream_param src_group_stream_params[BAP_UNICAST_AC_MAX_SRC] = {
822-
0};
823-
struct bt_bap_unicast_group_stream_pair_param pair_params[BAP_UNICAST_AC_MAX_PAIR] = {0};
824-
struct bt_bap_unicast_group_param group_param = {0};
825-
struct bt_bap_qos_cfg *snk_qos[BAP_UNICAST_AC_MAX_SNK];
826-
struct bt_bap_qos_cfg *src_qos[BAP_UNICAST_AC_MAX_SRC];
827-
size_t snk_stream_cnt = 0U;
828-
size_t src_stream_cnt = 0U;
829-
size_t pair_cnt = 0U;
830-
831-
for (size_t i = 0U; i < snk_cnt; i++) {
832-
snk_qos[i] = &snk_uni_streams[i]->qos;
833-
}
834-
835-
for (size_t i = 0U; i < src_cnt; i++) {
836-
src_qos[i] = &src_uni_streams[i]->qos;
837-
}
838-
839-
/* Create Group
840-
*
841-
* First setup the individual stream parameters and then match them in pairs by connection
842-
* and direction
843-
*/
844-
for (size_t i = 0U; i < snk_cnt; i++) {
845-
snk_group_stream_params[i].qos = snk_qos[i];
846-
snk_group_stream_params[i].stream =
847-
bap_stream_from_shell_stream(snk_uni_streams[i]);
848-
}
849-
for (size_t i = 0U; i < src_cnt; i++) {
850-
src_group_stream_params[i].qos = src_qos[i];
851-
src_group_stream_params[i].stream =
852-
bap_stream_from_shell_stream(src_uni_streams[i]);
853-
}
854-
855-
for (size_t i = 0U; i < param->conn_cnt; i++) {
856-
for (size_t j = 0; j < MAX(param->snk_cnt[i], param->src_cnt[i]); j++) {
857-
if (param->snk_cnt[i] > j) {
858-
pair_params[pair_cnt].tx_param =
859-
&snk_group_stream_params[snk_stream_cnt++];
860-
} else {
861-
pair_params[pair_cnt].tx_param = NULL;
862-
}
863-
864-
if (param->src_cnt[i] > j) {
865-
pair_params[pair_cnt].rx_param =
866-
&src_group_stream_params[src_stream_cnt++];
867-
} else {
868-
pair_params[pair_cnt].rx_param = NULL;
869-
}
870-
871-
pair_cnt++;
872-
}
873-
}
874-
875-
group_param.packing = BT_ISO_PACKING_SEQUENTIAL;
876-
group_param.params = pair_params;
877-
group_param.params_count = pair_cnt;
878-
879-
return bt_bap_unicast_group_create(&group_param, &default_unicast_group.bap_group);
880-
}
881-
882820
static uint8_t stream_dir(const struct bt_bap_stream *stream)
883821
{
884822
if (stream->conn) {

subsys/bluetooth/audio/shell/cap_initiator.c

Lines changed: 87 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -554,7 +554,7 @@ static int cmd_cap_initiator_unicast_cancel(const struct shell *sh, size_t argc,
554554
return 0;
555555
}
556556

557-
static int cap_ac_unicast_start(const struct bap_unicast_ac_param *param,
557+
static int cap_ac_unicast_start(const struct cap_unicast_ac_param *param,
558558
struct bt_conn *connected_conns[],
559559
struct shell_stream *snk_uni_streams[], size_t snk_cnt,
560560
struct shell_stream *src_uni_streams[], size_t src_cnt)
@@ -739,7 +739,74 @@ static int set_codec_config(const struct shell *sh, struct shell_stream *sh_stre
739739
return 0;
740740
}
741741

742-
int cap_ac_unicast(const struct shell *sh, const struct bap_unicast_ac_param *param)
742+
static int cap_ac_create_unicast_group(const struct cap_unicast_ac_param *param,
743+
struct shell_stream *snk_uni_streams[], size_t snk_cnt,
744+
struct shell_stream *src_uni_streams[], size_t src_cnt)
745+
{
746+
struct bt_cap_unicast_group_stream_param snk_group_stream_params[BAP_UNICAST_AC_MAX_SNK] = {
747+
0};
748+
struct bt_cap_unicast_group_stream_param src_group_stream_params[BAP_UNICAST_AC_MAX_SRC] = {
749+
0};
750+
struct bt_cap_unicast_group_stream_pair_param pair_params[BAP_UNICAST_AC_MAX_PAIR] = {0};
751+
struct bt_cap_unicast_group_param group_param = {0};
752+
struct bt_bap_qos_cfg *snk_qos[BAP_UNICAST_AC_MAX_SNK];
753+
struct bt_bap_qos_cfg *src_qos[BAP_UNICAST_AC_MAX_SRC];
754+
size_t snk_stream_cnt = 0U;
755+
size_t src_stream_cnt = 0U;
756+
size_t pair_cnt = 0U;
757+
758+
for (size_t i = 0U; i < snk_cnt; i++) {
759+
snk_qos[i] = &snk_uni_streams[i]->qos;
760+
}
761+
762+
for (size_t i = 0U; i < src_cnt; i++) {
763+
src_qos[i] = &src_uni_streams[i]->qos;
764+
}
765+
766+
/* Create Group
767+
*
768+
* First setup the individual stream parameters and then match them in pairs by connection
769+
* and direction
770+
*/
771+
for (size_t i = 0U; i < snk_cnt; i++) {
772+
snk_group_stream_params[i].qos_cfg = snk_qos[i];
773+
snk_group_stream_params[i].stream =
774+
cap_stream_from_shell_stream(snk_uni_streams[i]);
775+
}
776+
for (size_t i = 0U; i < src_cnt; i++) {
777+
src_group_stream_params[i].qos_cfg = src_qos[i];
778+
src_group_stream_params[i].stream =
779+
cap_stream_from_shell_stream(src_uni_streams[i]);
780+
}
781+
782+
for (size_t i = 0U; i < param->conn_cnt; i++) {
783+
for (size_t j = 0; j < MAX(param->snk_cnt[i], param->src_cnt[i]); j++) {
784+
if (param->snk_cnt[i] > j) {
785+
pair_params[pair_cnt].tx_param =
786+
&snk_group_stream_params[snk_stream_cnt++];
787+
} else {
788+
pair_params[pair_cnt].tx_param = NULL;
789+
}
790+
791+
if (param->src_cnt[i] > j) {
792+
pair_params[pair_cnt].rx_param =
793+
&src_group_stream_params[src_stream_cnt++];
794+
} else {
795+
pair_params[pair_cnt].rx_param = NULL;
796+
}
797+
798+
pair_cnt++;
799+
}
800+
}
801+
802+
group_param.packing = BT_ISO_PACKING_SEQUENTIAL;
803+
group_param.params = pair_params;
804+
group_param.params_count = pair_cnt;
805+
806+
return bt_cap_unicast_group_create(&group_param, &default_unicast_group.cap_group);
807+
}
808+
809+
int cap_ac_unicast(const struct shell *sh, const struct cap_unicast_ac_param *param)
743810
{
744811
/* Allocate params large enough for any params, but only use what is required */
745812
struct bt_conn *connected_conns[BAP_UNICAST_AC_MAX_CONN] = {0};
@@ -813,7 +880,7 @@ int cap_ac_unicast(const struct shell *sh, const struct bap_unicast_ac_param *pa
813880
for (size_t j = 0U; j < param->src_cnt[i]; j++) {
814881
struct shell_stream *src_uni_stream;
815882

816-
src_uni_stream = snk_uni_streams[src_cnt] = &unicast_streams[src_cnt];
883+
src_uni_stream = src_uni_streams[src_cnt] = &unicast_streams[src_cnt];
817884

818885
err = set_codec_config(sh, src_uni_stream, &default_source_preset,
819886
param->conn_cnt, param->src_cnt[i],
@@ -828,7 +895,7 @@ int cap_ac_unicast(const struct shell *sh, const struct bap_unicast_ac_param *pa
828895
}
829896
}
830897

831-
err = bap_ac_create_unicast_group(param, snk_uni_streams, snk_cnt, src_uni_streams,
898+
err = cap_ac_create_unicast_group(param, snk_uni_streams, snk_cnt, src_uni_streams,
832899
src_cnt);
833900
if (err != 0) {
834901
shell_error(sh, "Failed to create group: %d", err);
@@ -858,7 +925,7 @@ int cap_ac_unicast(const struct shell *sh, const struct bap_unicast_ac_param *pa
858925
#if UNICAST_SINK_SUPPORTED
859926
static int cmd_cap_ac_1(const struct shell *sh, size_t argc, char **argv)
860927
{
861-
const struct bap_unicast_ac_param param = {
928+
const struct cap_unicast_ac_param param = {
862929
.name = "AC_1",
863930
.conn_cnt = 1U,
864931
.snk_cnt = {1U},
@@ -874,7 +941,7 @@ static int cmd_cap_ac_1(const struct shell *sh, size_t argc, char **argv)
874941
#if UNICAST_SRC_SUPPORTED
875942
static int cmd_cap_ac_2(const struct shell *sh, size_t argc, char **argv)
876943
{
877-
const struct bap_unicast_ac_param param = {
944+
const struct cap_unicast_ac_param param = {
878945
.name = "AC_2",
879946
.conn_cnt = 1U,
880947
.snk_cnt = {0U},
@@ -890,7 +957,7 @@ static int cmd_cap_ac_2(const struct shell *sh, size_t argc, char **argv)
890957
#if UNICAST_SINK_SUPPORTED && UNICAST_SRC_SUPPORTED
891958
static int cmd_cap_ac_3(const struct shell *sh, size_t argc, char **argv)
892959
{
893-
const struct bap_unicast_ac_param param = {
960+
const struct cap_unicast_ac_param param = {
894961
.name = "AC_3",
895962
.conn_cnt = 1U,
896963
.snk_cnt = {1U},
@@ -906,7 +973,7 @@ static int cmd_cap_ac_3(const struct shell *sh, size_t argc, char **argv)
906973
#if UNICAST_SINK_SUPPORTED
907974
static int cmd_cap_ac_4(const struct shell *sh, size_t argc, char **argv)
908975
{
909-
const struct bap_unicast_ac_param param = {
976+
const struct cap_unicast_ac_param param = {
910977
.name = "AC_4",
911978
.conn_cnt = 1,
912979
.snk_cnt = {1U},
@@ -922,7 +989,7 @@ static int cmd_cap_ac_4(const struct shell *sh, size_t argc, char **argv)
922989
#if UNICAST_SINK_SUPPORTED && UNICAST_SRC_SUPPORTED
923990
static int cmd_cap_ac_5(const struct shell *sh, size_t argc, char **argv)
924991
{
925-
const struct bap_unicast_ac_param param = {
992+
const struct cap_unicast_ac_param param = {
926993
.name = "AC_5",
927994
.conn_cnt = 1U,
928995
.snk_cnt = {1U},
@@ -939,7 +1006,7 @@ static int cmd_cap_ac_5(const struct shell *sh, size_t argc, char **argv)
9391006
#if CONFIG_BT_BAP_UNICAST_CLIENT_ASE_SNK_COUNT > 1
9401007
static int cmd_cap_ac_6_i(const struct shell *sh, size_t argc, char **argv)
9411008
{
942-
const struct bap_unicast_ac_param param = {
1009+
const struct cap_unicast_ac_param param = {
9431010
.name = "AC_6_I",
9441011
.conn_cnt = 1U,
9451012
.snk_cnt = {2U},
@@ -955,7 +1022,7 @@ static int cmd_cap_ac_6_i(const struct shell *sh, size_t argc, char **argv)
9551022
#if CONFIG_BT_MAX_CONN >= 2
9561023
static int cmd_cap_ac_6_ii(const struct shell *sh, size_t argc, char **argv)
9571024
{
958-
const struct bap_unicast_ac_param param = {
1025+
const struct cap_unicast_ac_param param = {
9591026
.name = "AC_6_II",
9601027
.conn_cnt = 2U,
9611028
.snk_cnt = {1U, 1U},
@@ -972,7 +1039,7 @@ static int cmd_cap_ac_6_ii(const struct shell *sh, size_t argc, char **argv)
9721039
#if UNICAST_SINK_SUPPORTED && UNICAST_SRC_SUPPORTED
9731040
static int cmd_cap_ac_7_i(const struct shell *sh, size_t argc, char **argv)
9741041
{
975-
const struct bap_unicast_ac_param param = {
1042+
const struct cap_unicast_ac_param param = {
9761043
.name = "AC_7_I",
9771044
.conn_cnt = 1U,
9781045
.snk_cnt = {1U}, /* TODO: These should be separate CIS */
@@ -987,7 +1054,7 @@ static int cmd_cap_ac_7_i(const struct shell *sh, size_t argc, char **argv)
9871054
#if CONFIG_BT_MAX_CONN >= 2
9881055
static int cmd_cap_ac_7_ii(const struct shell *sh, size_t argc, char **argv)
9891056
{
990-
const struct bap_unicast_ac_param param = {
1057+
const struct cap_unicast_ac_param param = {
9911058
.name = "AC_7_II",
9921059
.conn_cnt = 2U,
9931060
.snk_cnt = {1U, 0U},
@@ -1003,7 +1070,7 @@ static int cmd_cap_ac_7_ii(const struct shell *sh, size_t argc, char **argv)
10031070
#if CONFIG_BT_BAP_UNICAST_CLIENT_ASE_SNK_COUNT > 1
10041071
static int cmd_cap_ac_8_i(const struct shell *sh, size_t argc, char **argv)
10051072
{
1006-
const struct bap_unicast_ac_param param = {
1073+
const struct cap_unicast_ac_param param = {
10071074
.name = "AC_8_I",
10081075
.conn_cnt = 1U,
10091076
.snk_cnt = {2U},
@@ -1019,7 +1086,7 @@ static int cmd_cap_ac_8_i(const struct shell *sh, size_t argc, char **argv)
10191086
#if CONFIG_BT_MAX_CONN >= 2
10201087
static int cmd_cap_ac_8_ii(const struct shell *sh, size_t argc, char **argv)
10211088
{
1022-
const struct bap_unicast_ac_param param = {
1089+
const struct cap_unicast_ac_param param = {
10231090
.name = "AC_8_II",
10241091
.conn_cnt = 2U,
10251092
.snk_cnt = {1U, 1U},
@@ -1035,7 +1102,7 @@ static int cmd_cap_ac_8_ii(const struct shell *sh, size_t argc, char **argv)
10351102
#if CONFIG_BT_BAP_UNICAST_CLIENT_ASE_SRC_COUNT > 1
10361103
static int cmd_cap_ac_9_i(const struct shell *sh, size_t argc, char **argv)
10371104
{
1038-
const struct bap_unicast_ac_param param = {
1105+
const struct cap_unicast_ac_param param = {
10391106
.name = "AC_9_I",
10401107
.conn_cnt = 1U,
10411108
.snk_cnt = {0U},
@@ -1051,7 +1118,7 @@ static int cmd_cap_ac_9_i(const struct shell *sh, size_t argc, char **argv)
10511118
#if CONFIG_BT_MAX_CONN >= 2 && CONFIG_BT_BAP_UNICAST_CLIENT_ASE_SRC_COUNT > 1
10521119
static int cmd_cap_ac_9_ii(const struct shell *sh, size_t argc, char **argv)
10531120
{
1054-
const struct bap_unicast_ac_param param = {
1121+
const struct cap_unicast_ac_param param = {
10551122
.name = "AC_9_II",
10561123
.conn_cnt = 2U,
10571124
.snk_cnt = {0U, 0U},
@@ -1067,7 +1134,7 @@ static int cmd_cap_ac_9_ii(const struct shell *sh, size_t argc, char **argv)
10671134
#if CONFIG_BT_BAP_UNICAST_CLIENT_ASE_SRC_COUNT > 1
10681135
static int cmd_cap_ac_10(const struct shell *sh, size_t argc, char **argv)
10691136
{
1070-
const struct bap_unicast_ac_param param = {
1137+
const struct cap_unicast_ac_param param = {
10711138
.name = "AC_10",
10721139
.conn_cnt = 1U,
10731140
.snk_cnt = {0U},
@@ -1083,7 +1150,7 @@ static int cmd_cap_ac_10(const struct shell *sh, size_t argc, char **argv)
10831150
#if CONFIG_BT_BAP_UNICAST_CLIENT_ASE_SNK_COUNT > 1 && CONFIG_BT_BAP_UNICAST_CLIENT_ASE_SRC_COUNT > 1
10841151
static int cmd_cap_ac_11_i(const struct shell *sh, size_t argc, char **argv)
10851152
{
1086-
const struct bap_unicast_ac_param param = {
1153+
const struct cap_unicast_ac_param param = {
10871154
.name = "AC_11_I",
10881155
.conn_cnt = 1U,
10891156
.snk_cnt = {2U},
@@ -1101,7 +1168,7 @@ static int cmd_cap_ac_11_i(const struct shell *sh, size_t argc, char **argv)
11011168
#if CONFIG_BT_MAX_CONN >= 2
11021169
static int cmd_cap_ac_11_ii(const struct shell *sh, size_t argc, char **argv)
11031170
{
1104-
const struct bap_unicast_ac_param param = {
1171+
const struct cap_unicast_ac_param param = {
11051172
.name = "AC_11_II",
11061173
.conn_cnt = 2U,
11071174
.snk_cnt = {1U, 1U},

0 commit comments

Comments
 (0)