Skip to content

Commit f977457

Browse files
MSEEHenrikjhedberg
authored andcommitted
bluetooth: tester: pacs: Added set Locations and Contexts.
- Set Locations. - Set Available Contexts. - Set Supported Contexts. Signed-off-by: Henrik Eriksen <[email protected]>
1 parent 1ecd4fd commit f977457

File tree

2 files changed

+84
-1
lines changed

2 files changed

+84
-1
lines changed

tests/bluetooth/tester/src/btp/btp_pacs.h

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,25 @@ struct btp_pacs_read_supported_commands_rp {
1919
#define BTP_PACS_CHARACTERISTIC_AVAILABLE_AUDIO_CONTEXTS 0x05
2020
#define BTP_PACS_CHARACTERISTIC_SUPPORTED_AUDIO_CONTEXTS 0x06
2121

22-
#define BTP_PACS_UPDATE_CHARACTERISTIC 0x02
22+
#define BTP_PACS_UPDATE_CHARACTERISTIC 0x02
2323
struct btp_pacs_update_characteristic_cmd {
2424
uint8_t characteristic;
2525
} __packed;
26+
27+
#define BTP_PACS_SET_LOCATION 0x03
28+
struct btp_pacs_set_location_cmd {
29+
uint8_t dir;
30+
uint32_t location;
31+
} __packed;
32+
33+
#define BTP_PACS_SET_AVAILABLE_CONTEXTS 0x04
34+
struct btp_pacs_set_available_contexts_cmd {
35+
uint16_t sink_contexts;
36+
uint16_t source_contexts;
37+
} __packed;
38+
39+
#define BTP_PACS_SET_SUPPORTED_CONTEXTS 0x05
40+
struct btp_pacs_set_supported_contexts_cmd {
41+
uint16_t sink_contexts;
42+
uint16_t source_contexts;
43+
} __packed;

tests/bluetooth/tester/src/btp_bap.c

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2483,6 +2483,10 @@ static uint8_t pacs_supported_commands(const void *cmd, uint16_t cmd_len,
24832483

24842484
/* octet 0 */
24852485
tester_set_bit(rp->data, BTP_PACS_READ_SUPPORTED_COMMANDS);
2486+
tester_set_bit(rp->data, BTP_PACS_UPDATE_CHARACTERISTIC);
2487+
tester_set_bit(rp->data, BTP_PACS_SET_LOCATION);
2488+
tester_set_bit(rp->data, BTP_PACS_SET_AVAILABLE_CONTEXTS);
2489+
tester_set_bit(rp->data, BTP_PACS_SET_SUPPORTED_CONTEXTS);
24862490

24872491
*rsp_len = sizeof(*rp) + 1;
24882492

@@ -2535,6 +2539,52 @@ static uint8_t pacs_update_characteristic(const void *cmd, uint16_t cmd_len,
25352539
return BTP_STATUS_SUCCESS;
25362540
}
25372541

2542+
static uint8_t pacs_set_location(const void *cmd, uint16_t cmd_len,
2543+
void *rsp, uint16_t *rsp_len)
2544+
{
2545+
const struct btp_pacs_set_location_cmd *cp = cmd;
2546+
int err;
2547+
2548+
err = bt_pacs_set_location((enum bt_audio_dir)cp->dir,
2549+
(enum bt_audio_location)cp->location);
2550+
2551+
return (err) ? BTP_STATUS_FAILED : BTP_STATUS_SUCCESS;
2552+
}
2553+
2554+
static uint8_t pacs_set_available_contexts(const void *cmd, uint16_t cmd_len,
2555+
void *rsp, uint16_t *rsp_len)
2556+
{
2557+
const struct btp_pacs_set_available_contexts_cmd *cp = cmd;
2558+
int err;
2559+
2560+
err = bt_pacs_set_available_contexts(BT_AUDIO_DIR_SINK,
2561+
(enum bt_audio_context)cp->sink_contexts);
2562+
if (err) {
2563+
return BTP_STATUS_FAILED;
2564+
}
2565+
err = bt_pacs_set_available_contexts(BT_AUDIO_DIR_SOURCE,
2566+
(enum bt_audio_context)cp->source_contexts);
2567+
2568+
return (err) ? BTP_STATUS_FAILED : BTP_STATUS_SUCCESS;
2569+
}
2570+
2571+
static uint8_t pacs_set_supported_contexts(const void *cmd, uint16_t cmd_len,
2572+
void *rsp, uint16_t *rsp_len)
2573+
{
2574+
const struct btp_pacs_set_supported_contexts_cmd *cp = cmd;
2575+
int err;
2576+
2577+
err = bt_pacs_set_supported_contexts(BT_AUDIO_DIR_SINK,
2578+
(enum bt_audio_context)cp->sink_contexts);
2579+
if (err) {
2580+
return BTP_STATUS_FAILED;
2581+
}
2582+
err = bt_pacs_set_supported_contexts(BT_AUDIO_DIR_SOURCE,
2583+
(enum bt_audio_context)cp->source_contexts);
2584+
2585+
return (err) ? BTP_STATUS_FAILED : BTP_STATUS_SUCCESS;
2586+
}
2587+
25382588
static const struct btp_handler pacs_handlers[] = {
25392589
{
25402590
.opcode = BTP_PACS_READ_SUPPORTED_COMMANDS,
@@ -2547,6 +2597,21 @@ static const struct btp_handler pacs_handlers[] = {
25472597
.expect_len = sizeof(struct btp_pacs_update_characteristic_cmd),
25482598
.func = pacs_update_characteristic,
25492599
},
2600+
{
2601+
.opcode = BTP_PACS_SET_LOCATION,
2602+
.expect_len = sizeof(struct btp_pacs_set_location_cmd),
2603+
.func = pacs_set_location
2604+
},
2605+
{
2606+
.opcode = BTP_PACS_SET_AVAILABLE_CONTEXTS,
2607+
.expect_len = sizeof(struct btp_pacs_set_available_contexts_cmd),
2608+
.func = pacs_set_available_contexts
2609+
},
2610+
{
2611+
.opcode = BTP_PACS_SET_SUPPORTED_CONTEXTS,
2612+
.expect_len = sizeof(struct btp_pacs_set_supported_contexts_cmd),
2613+
.func = pacs_set_supported_contexts
2614+
}
25502615
};
25512616

25522617
static uint8_t bap_supported_commands(const void *cmd, uint16_t cmd_len,

0 commit comments

Comments
 (0)