From 98f3b39d213dd0eccb6155578a5c6d17a0a29a54 Mon Sep 17 00:00:00 2001 From: Szymon Czapracki Date: Mon, 15 Apr 2024 14:56:19 +0200 Subject: [PATCH] [WIP][DNM] Initial commit adding BASS in bttester Adding BASS support in bttester --- apps/bttester/src/btp/btp_bass.h | 37 ++++++++++++++++ apps/bttester/src/btp/bttester.h | 5 +++ apps/bttester/src/btp_bass.c | 73 ++++++++++++++++++++++++++++++++ apps/bttester/src/btp_core.c | 4 +- apps/bttester/syscfg.yml | 2 + 5 files changed, 120 insertions(+), 1 deletion(-) create mode 100644 apps/bttester/src/btp/btp_bass.h create mode 100644 apps/bttester/src/btp_bass.c diff --git a/apps/bttester/src/btp/btp_bass.h b/apps/bttester/src/btp/btp_bass.h new file mode 100644 index 0000000000..8e840037e3 --- /dev/null +++ b/apps/bttester/src/btp/btp_bass.h @@ -0,0 +1,37 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +#ifndef H_BTP_BASS_ +#define H_BTP_BASS_ + +#include "nimble/ble.h" +#include + +#ifndef __packed +#define __packed __attribute__((__packed__)) +#endif + +/* BAS Service */ +/* commands */ +#define BTP_BASS_READ_SUPPORTED_COMMANDS 0x01 +struct btp_bass_read_supported_commands_rp { + uint8_t data[0]; +} __packed; + +#endif /* H_BTP_BASS_ */ \ No newline at end of file diff --git a/apps/bttester/src/btp/bttester.h b/apps/bttester/src/btp/bttester.h index 7cb82b5c92..15f3931273 100644 --- a/apps/bttester/src/btp/bttester.h +++ b/apps/bttester/src/btp/bttester.h @@ -148,6 +148,11 @@ tester_init_bap(void); uint8_t tester_unregister_bap(void); #endif /* MYNEWT_VAL(BLE_ISO_BROADCAST_SOURCE) */ +uint8_t +tester_init_bass(void); +uint8_t +tester_unregister_bass(void); +#endif /* MYNEWT_VAL(BLE_ISO_BROADCASTER) */ #endif /* __BTTESTER_H__ */ diff --git a/apps/bttester/src/btp_bass.c b/apps/bttester/src/btp_bass.c new file mode 100644 index 0000000000..3fb0648855 --- /dev/null +++ b/apps/bttester/src/btp_bass.c @@ -0,0 +1,73 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +/* btp_bass.c - Bluetooth Broadcast Audio Stream Service Tester */ + +#include "syscfg/syscfg.h" +#include + +#if MYNEWT_VAL(BLE_AUDIO) + +#include "btp/btp_bass.h" + + +#include "btp/btp.h" +#include "console/console.h" + +#include "nimble/ble.h" +#include "host/ble_hs.h" +#include "host/util/util.h" +#include "math.h" + +#include "audio/ble_audio_broadcast_source.h" +#include "audio/ble_audio.h" +#include "host/ble_iso.h" + +#include "bsp/bsp.h" + +static uint8_t +supported_commands(const void *cmd, uint16_t cmd_len, + void *rsp, uint16_t *rsp_len) +{ + return BTP_STATUS_SUCCESS; +} + +static const struct btp_nahdler handlers[] = { + { + .opcode = BTP_BASS_READ_SUPPORTED_COMMANDS, + .index = BTP_INDEX_NONE, + .expect_len = 0, + .func = supported_commands, + }, +}; + +uint8_t +tester_init_bass(void) +{ + return BTP_STATUS_SUCCESS; +} + +uint8_t +tester_unregister_bass(void) +{ + return BTP_STATUS_SUCCESS; +} + +#endif /* MYNEWT_VAL(BLE_AUDIO) */ + diff --git a/apps/bttester/src/btp_core.c b/apps/bttester/src/btp_core.c index a7b1878322..317f5f3779 100644 --- a/apps/bttester/src/btp_core.c +++ b/apps/bttester/src/btp_core.c @@ -105,8 +105,9 @@ register_service(const void *cmd, uint16_t cmd_len, #if MYNEWT_VAL(BLE_ISO_BROADCAST_SOURCE) case BTP_SERVICE_ID_BAP: status = tester_init_bap(); + status = tester_init_bass(); break; -#endif /* MYNEWT_VAL(BLE_ISO_BROADCAST_SOURCE) */ +#endif /* MYNEWT_VAL(BLE_ISO_BROADCASTER) */ case BTP_SERVICE_ID_GATTC: status = tester_init_gatt_cl(); break; @@ -162,6 +163,7 @@ unregister_service(const void *cmd, uint16_t cmd_len, #if MYNEWT_VAL(BLE_ISO_BROADCAST_SOURCE) case BTP_SERVICE_ID_BAP: status = tester_unregister_bap(); + status = tester_unregister_bass(); break; #endif /* MYNEWT_VAL(BLE_ISO_BROADCAST_SOURCE) */ default: diff --git a/apps/bttester/syscfg.yml b/apps/bttester/syscfg.yml index 80c377a7c1..14eb014416 100644 --- a/apps/bttester/syscfg.yml +++ b/apps/bttester/syscfg.yml @@ -94,6 +94,8 @@ syscfg.vals: BLE_ISO: 1 BLE_AUDIO: 1 BLE_ROLE_BROADCASTER: 1 + BLE_ISO_BROADCAST_SOURCE: 1 + BLE_ISO_BROADCAST_SINK: 1 BLE_ISO_MAX_BISES: 1 BLE_ISO_MAX_BIGS: 1 BLE_EXT_ADV: 1