@@ -65,7 +65,7 @@ struct shell_stream unicast_streams[CONFIG_BT_MAX_CONN *
65
65
MAX (UNICAST_SERVER_STREAM_COUNT , UNICAST_CLIENT_STREAM_COUNT )];
66
66
67
67
#if defined(CONFIG_BT_BAP_UNICAST_CLIENT )
68
- struct bt_bap_unicast_group * default_unicast_group ;
68
+ struct unicast_group default_unicast_group ;
69
69
static struct bt_bap_unicast_client_cb unicast_client_cbs ;
70
70
#if CONFIG_BT_BAP_UNICAST_CLIENT_ASE_SNK_COUNT > 0
71
71
struct bt_bap_ep * snks [CONFIG_BT_MAX_CONN ][CONFIG_BT_BAP_UNICAST_CLIENT_ASE_SNK_COUNT ];
@@ -876,7 +876,7 @@ int bap_ac_create_unicast_group(const struct bap_unicast_ac_param *param,
876
876
group_param .params = pair_params ;
877
877
group_param .params_count = pair_cnt ;
878
878
879
- return bt_bap_unicast_group_create (& group_param , & default_unicast_group );
879
+ return bt_bap_unicast_group_create (& group_param , & default_unicast_group . bap_group );
880
880
}
881
881
882
882
static uint8_t stream_dir (const struct bt_bap_stream * stream )
@@ -1492,7 +1492,7 @@ static int create_unicast_group(const struct shell *sh)
1492
1492
return err ;
1493
1493
}
1494
1494
1495
- err = bt_bap_unicast_group_create (& group_param , & default_unicast_group );
1495
+ err = bt_bap_unicast_group_create (& group_param , & default_unicast_group . bap_group );
1496
1496
if (err != 0 ) {
1497
1497
shell_error (sh , "Unable to create default unicast group: %d" , err );
1498
1498
@@ -1514,7 +1514,7 @@ static int reconfig_unicast_group(const struct shell *sh)
1514
1514
return err ;
1515
1515
}
1516
1516
1517
- err = bt_bap_unicast_group_reconfig (default_unicast_group , & group_param );
1517
+ err = bt_bap_unicast_group_reconfig (default_unicast_group . bap_group , & group_param );
1518
1518
if (err != 0 ) {
1519
1519
shell_error (sh , "Unable to create default unicast group: %d" , err );
1520
1520
@@ -1538,7 +1538,13 @@ static int cmd_qos(const struct shell *sh, size_t argc, char *argv[])
1538
1538
return - ENOEXEC ;
1539
1539
}
1540
1540
1541
- if (default_unicast_group == NULL ) {
1541
+ if (default_unicast_group .is_cap ) {
1542
+ shell_error (sh , "Cannot perform action on CAP unicast group" );
1543
+
1544
+ return - ENOEXEC ;
1545
+ }
1546
+
1547
+ if (default_unicast_group .bap_group == NULL ) {
1542
1548
err = create_unicast_group (sh );
1543
1549
if (err != 0 ) {
1544
1550
return err ;
@@ -1550,7 +1556,7 @@ static int cmd_qos(const struct shell *sh, size_t argc, char *argv[])
1550
1556
}
1551
1557
}
1552
1558
1553
- err = bt_bap_stream_qos (default_conn , default_unicast_group );
1559
+ err = bt_bap_stream_qos (default_conn , default_unicast_group . bap_group );
1554
1560
if (err ) {
1555
1561
shell_error (sh , "Unable to setup QoS: %d" , err );
1556
1562
return - ENOEXEC ;
@@ -3177,7 +3183,7 @@ static void stream_released_cb(struct bt_bap_stream *stream)
3177
3183
bt_shell_print ("Stream %p released\n" , stream );
3178
3184
3179
3185
#if defined(CONFIG_BT_BAP_UNICAST_CLIENT )
3180
- if (default_unicast_group != NULL ) {
3186
+ if (default_unicast_group . bap_group != NULL && ! default_unicast_group . is_cap ) {
3181
3187
bool group_can_be_deleted = true;
3182
3188
3183
3189
for (size_t i = 0U ; i < ARRAY_SIZE (unicast_streams ); i ++ ) {
@@ -3202,12 +3208,12 @@ static void stream_released_cb(struct bt_bap_stream *stream)
3202
3208
3203
3209
bt_shell_print ("All streams released, deleting group\n" );
3204
3210
3205
- err = bt_bap_unicast_group_delete (default_unicast_group );
3211
+ err = bt_bap_unicast_group_delete (default_unicast_group . bap_group );
3206
3212
3207
3213
if (err != 0 ) {
3208
3214
bt_shell_error ("Failed to delete unicast group: %d" , err );
3209
3215
} else {
3210
- default_unicast_group = NULL ;
3216
+ default_unicast_group . bap_group = NULL ;
3211
3217
}
3212
3218
}
3213
3219
}
0 commit comments