@@ -2483,6 +2483,10 @@ static uint8_t pacs_supported_commands(const void *cmd, uint16_t cmd_len,
2483
2483
2484
2484
/* octet 0 */
2485
2485
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 );
2486
2490
2487
2491
* rsp_len = sizeof (* rp ) + 1 ;
2488
2492
@@ -2535,6 +2539,52 @@ static uint8_t pacs_update_characteristic(const void *cmd, uint16_t cmd_len,
2535
2539
return BTP_STATUS_SUCCESS ;
2536
2540
}
2537
2541
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
+
2538
2588
static const struct btp_handler pacs_handlers [] = {
2539
2589
{
2540
2590
.opcode = BTP_PACS_READ_SUPPORTED_COMMANDS ,
@@ -2547,6 +2597,21 @@ static const struct btp_handler pacs_handlers[] = {
2547
2597
.expect_len = sizeof (struct btp_pacs_update_characteristic_cmd ),
2548
2598
.func = pacs_update_characteristic ,
2549
2599
},
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
+ }
2550
2615
};
2551
2616
2552
2617
static uint8_t bap_supported_commands (const void * cmd , uint16_t cmd_len ,
0 commit comments