@@ -554,7 +554,7 @@ static int cmd_cap_initiator_unicast_cancel(const struct shell *sh, size_t argc,
554
554
return 0 ;
555
555
}
556
556
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 ,
558
558
struct bt_conn * connected_conns [],
559
559
struct shell_stream * snk_uni_streams [], size_t snk_cnt ,
560
560
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
739
739
return 0 ;
740
740
}
741
741
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 )
743
810
{
744
811
/* Allocate params large enough for any params, but only use what is required */
745
812
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
813
880
for (size_t j = 0U ; j < param -> src_cnt [i ]; j ++ ) {
814
881
struct shell_stream * src_uni_stream ;
815
882
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 ];
817
884
818
885
err = set_codec_config (sh , src_uni_stream , & default_source_preset ,
819
886
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
828
895
}
829
896
}
830
897
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 ,
832
899
src_cnt );
833
900
if (err != 0 ) {
834
901
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
858
925
#if UNICAST_SINK_SUPPORTED
859
926
static int cmd_cap_ac_1 (const struct shell * sh , size_t argc , char * * argv )
860
927
{
861
- const struct bap_unicast_ac_param param = {
928
+ const struct cap_unicast_ac_param param = {
862
929
.name = "AC_1" ,
863
930
.conn_cnt = 1U ,
864
931
.snk_cnt = {1U },
@@ -874,7 +941,7 @@ static int cmd_cap_ac_1(const struct shell *sh, size_t argc, char **argv)
874
941
#if UNICAST_SRC_SUPPORTED
875
942
static int cmd_cap_ac_2 (const struct shell * sh , size_t argc , char * * argv )
876
943
{
877
- const struct bap_unicast_ac_param param = {
944
+ const struct cap_unicast_ac_param param = {
878
945
.name = "AC_2" ,
879
946
.conn_cnt = 1U ,
880
947
.snk_cnt = {0U },
@@ -890,7 +957,7 @@ static int cmd_cap_ac_2(const struct shell *sh, size_t argc, char **argv)
890
957
#if UNICAST_SINK_SUPPORTED && UNICAST_SRC_SUPPORTED
891
958
static int cmd_cap_ac_3 (const struct shell * sh , size_t argc , char * * argv )
892
959
{
893
- const struct bap_unicast_ac_param param = {
960
+ const struct cap_unicast_ac_param param = {
894
961
.name = "AC_3" ,
895
962
.conn_cnt = 1U ,
896
963
.snk_cnt = {1U },
@@ -906,7 +973,7 @@ static int cmd_cap_ac_3(const struct shell *sh, size_t argc, char **argv)
906
973
#if UNICAST_SINK_SUPPORTED
907
974
static int cmd_cap_ac_4 (const struct shell * sh , size_t argc , char * * argv )
908
975
{
909
- const struct bap_unicast_ac_param param = {
976
+ const struct cap_unicast_ac_param param = {
910
977
.name = "AC_4" ,
911
978
.conn_cnt = 1 ,
912
979
.snk_cnt = {1U },
@@ -922,7 +989,7 @@ static int cmd_cap_ac_4(const struct shell *sh, size_t argc, char **argv)
922
989
#if UNICAST_SINK_SUPPORTED && UNICAST_SRC_SUPPORTED
923
990
static int cmd_cap_ac_5 (const struct shell * sh , size_t argc , char * * argv )
924
991
{
925
- const struct bap_unicast_ac_param param = {
992
+ const struct cap_unicast_ac_param param = {
926
993
.name = "AC_5" ,
927
994
.conn_cnt = 1U ,
928
995
.snk_cnt = {1U },
@@ -939,7 +1006,7 @@ static int cmd_cap_ac_5(const struct shell *sh, size_t argc, char **argv)
939
1006
#if CONFIG_BT_BAP_UNICAST_CLIENT_ASE_SNK_COUNT > 1
940
1007
static int cmd_cap_ac_6_i (const struct shell * sh , size_t argc , char * * argv )
941
1008
{
942
- const struct bap_unicast_ac_param param = {
1009
+ const struct cap_unicast_ac_param param = {
943
1010
.name = "AC_6_I" ,
944
1011
.conn_cnt = 1U ,
945
1012
.snk_cnt = {2U },
@@ -955,7 +1022,7 @@ static int cmd_cap_ac_6_i(const struct shell *sh, size_t argc, char **argv)
955
1022
#if CONFIG_BT_MAX_CONN >= 2
956
1023
static int cmd_cap_ac_6_ii (const struct shell * sh , size_t argc , char * * argv )
957
1024
{
958
- const struct bap_unicast_ac_param param = {
1025
+ const struct cap_unicast_ac_param param = {
959
1026
.name = "AC_6_II" ,
960
1027
.conn_cnt = 2U ,
961
1028
.snk_cnt = {1U , 1U },
@@ -972,7 +1039,7 @@ static int cmd_cap_ac_6_ii(const struct shell *sh, size_t argc, char **argv)
972
1039
#if UNICAST_SINK_SUPPORTED && UNICAST_SRC_SUPPORTED
973
1040
static int cmd_cap_ac_7_i (const struct shell * sh , size_t argc , char * * argv )
974
1041
{
975
- const struct bap_unicast_ac_param param = {
1042
+ const struct cap_unicast_ac_param param = {
976
1043
.name = "AC_7_I" ,
977
1044
.conn_cnt = 1U ,
978
1045
.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)
987
1054
#if CONFIG_BT_MAX_CONN >= 2
988
1055
static int cmd_cap_ac_7_ii (const struct shell * sh , size_t argc , char * * argv )
989
1056
{
990
- const struct bap_unicast_ac_param param = {
1057
+ const struct cap_unicast_ac_param param = {
991
1058
.name = "AC_7_II" ,
992
1059
.conn_cnt = 2U ,
993
1060
.snk_cnt = {1U , 0U },
@@ -1003,7 +1070,7 @@ static int cmd_cap_ac_7_ii(const struct shell *sh, size_t argc, char **argv)
1003
1070
#if CONFIG_BT_BAP_UNICAST_CLIENT_ASE_SNK_COUNT > 1
1004
1071
static int cmd_cap_ac_8_i (const struct shell * sh , size_t argc , char * * argv )
1005
1072
{
1006
- const struct bap_unicast_ac_param param = {
1073
+ const struct cap_unicast_ac_param param = {
1007
1074
.name = "AC_8_I" ,
1008
1075
.conn_cnt = 1U ,
1009
1076
.snk_cnt = {2U },
@@ -1019,7 +1086,7 @@ static int cmd_cap_ac_8_i(const struct shell *sh, size_t argc, char **argv)
1019
1086
#if CONFIG_BT_MAX_CONN >= 2
1020
1087
static int cmd_cap_ac_8_ii (const struct shell * sh , size_t argc , char * * argv )
1021
1088
{
1022
- const struct bap_unicast_ac_param param = {
1089
+ const struct cap_unicast_ac_param param = {
1023
1090
.name = "AC_8_II" ,
1024
1091
.conn_cnt = 2U ,
1025
1092
.snk_cnt = {1U , 1U },
@@ -1035,7 +1102,7 @@ static int cmd_cap_ac_8_ii(const struct shell *sh, size_t argc, char **argv)
1035
1102
#if CONFIG_BT_BAP_UNICAST_CLIENT_ASE_SRC_COUNT > 1
1036
1103
static int cmd_cap_ac_9_i (const struct shell * sh , size_t argc , char * * argv )
1037
1104
{
1038
- const struct bap_unicast_ac_param param = {
1105
+ const struct cap_unicast_ac_param param = {
1039
1106
.name = "AC_9_I" ,
1040
1107
.conn_cnt = 1U ,
1041
1108
.snk_cnt = {0U },
@@ -1051,7 +1118,7 @@ static int cmd_cap_ac_9_i(const struct shell *sh, size_t argc, char **argv)
1051
1118
#if CONFIG_BT_MAX_CONN >= 2 && CONFIG_BT_BAP_UNICAST_CLIENT_ASE_SRC_COUNT > 1
1052
1119
static int cmd_cap_ac_9_ii (const struct shell * sh , size_t argc , char * * argv )
1053
1120
{
1054
- const struct bap_unicast_ac_param param = {
1121
+ const struct cap_unicast_ac_param param = {
1055
1122
.name = "AC_9_II" ,
1056
1123
.conn_cnt = 2U ,
1057
1124
.snk_cnt = {0U , 0U },
@@ -1067,7 +1134,7 @@ static int cmd_cap_ac_9_ii(const struct shell *sh, size_t argc, char **argv)
1067
1134
#if CONFIG_BT_BAP_UNICAST_CLIENT_ASE_SRC_COUNT > 1
1068
1135
static int cmd_cap_ac_10 (const struct shell * sh , size_t argc , char * * argv )
1069
1136
{
1070
- const struct bap_unicast_ac_param param = {
1137
+ const struct cap_unicast_ac_param param = {
1071
1138
.name = "AC_10" ,
1072
1139
.conn_cnt = 1U ,
1073
1140
.snk_cnt = {0U },
@@ -1083,7 +1150,7 @@ static int cmd_cap_ac_10(const struct shell *sh, size_t argc, char **argv)
1083
1150
#if CONFIG_BT_BAP_UNICAST_CLIENT_ASE_SNK_COUNT > 1 && CONFIG_BT_BAP_UNICAST_CLIENT_ASE_SRC_COUNT > 1
1084
1151
static int cmd_cap_ac_11_i (const struct shell * sh , size_t argc , char * * argv )
1085
1152
{
1086
- const struct bap_unicast_ac_param param = {
1153
+ const struct cap_unicast_ac_param param = {
1087
1154
.name = "AC_11_I" ,
1088
1155
.conn_cnt = 1U ,
1089
1156
.snk_cnt = {2U },
@@ -1101,7 +1168,7 @@ static int cmd_cap_ac_11_i(const struct shell *sh, size_t argc, char **argv)
1101
1168
#if CONFIG_BT_MAX_CONN >= 2
1102
1169
static int cmd_cap_ac_11_ii (const struct shell * sh , size_t argc , char * * argv )
1103
1170
{
1104
- const struct bap_unicast_ac_param param = {
1171
+ const struct cap_unicast_ac_param param = {
1105
1172
.name = "AC_11_II" ,
1106
1173
.conn_cnt = 2U ,
1107
1174
.snk_cnt = {1U , 1U },
0 commit comments