samples: Bluetooth: TMAP peripheral context fixes

The sample did not properly include the source
context in the advertising data.

It also set different contexts for PACS and the advertising data

Signed-off-by: Emil Gydesen <emil.gydesen@nordicsemi.no>
This commit is contained in:
Emil Gydesen 2023-08-28 14:38:15 +02:00 committed by Fabio Baltieri
commit 88fa4904ab
3 changed files with 25 additions and 14 deletions

View file

@ -20,15 +20,14 @@
#include <zephyr/bluetooth/audio/pacs.h>
#include <zephyr/bluetooth/audio/tbs.h>
#define AVAILABLE_SINK_CONTEXT CONFIG_BT_PACS_SNK_CONTEXT
#define AVAILABLE_SOURCE_CONTEXT CONFIG_BT_PACS_SRC_CONTEXT
#include "tmap_peripheral.h"
static const struct bt_audio_codec_cap lc3_codec_cap =
BT_AUDIO_CODEC_CAP_LC3(BT_AUDIO_CODEC_LC3_FREQ_16KHZ | BT_AUDIO_CODEC_LC3_FREQ_32KHZ |
BT_AUDIO_CODEC_LC3_FREQ_48KHZ,
BT_AUDIO_CODEC_LC3_DURATION_7_5 | BT_AUDIO_CODEC_LC3_DURATION_10,
BT_AUDIO_CODEC_LC3_CHAN_COUNT_SUPPORT(2), 30, 155u, 1u,
(CONFIG_BT_PACS_SNK_CONTEXT | CONFIG_BT_PACS_SRC_CONTEXT));
(AVAILABLE_SINK_CONTEXT | AVAILABLE_SOURCE_CONTEXT));
static struct bt_conn *default_conn;
static struct bt_bap_stream streams[CONFIG_BT_ASCS_ASE_SNK_COUNT + CONFIG_BT_ASCS_ASE_SRC_COUNT];
@ -331,7 +330,7 @@ int bap_unicast_sr_init(void)
{
bt_bap_unicast_server_register_cb(&unicast_server_cb);
if (IS_ENABLED(CONFIG_BT_PAC_SNK_LOC)) {
if (IS_ENABLED(CONFIG_BT_PAC_SNK)) {
/* Register CT required capabilities */
bt_pacs_cap_register(BT_AUDIO_DIR_SINK, &cap);
@ -347,7 +346,7 @@ int bap_unicast_sr_init(void)
AVAILABLE_SINK_CONTEXT);
}
if (IS_ENABLED(CONFIG_BT_ASCS_ASE_SRC)) {
if (IS_ENABLED(CONFIG_BT_PAC_SRC)) {
/* Register CT required capabilities */
bt_pacs_cap_register(BT_AUDIO_DIR_SOURCE, &cap);

View file

@ -24,20 +24,15 @@
#include "tmap_peripheral.h"
#define AVAILABLE_SINK_CONTEXT (BT_AUDIO_CONTEXT_TYPE_UNSPECIFIED | \
BT_AUDIO_CONTEXT_TYPE_CONVERSATIONAL | \
BT_AUDIO_CONTEXT_TYPE_MEDIA | \
BT_AUDIO_CONTEXT_TYPE_GAME | \
BT_AUDIO_CONTEXT_TYPE_INSTRUCTIONAL)
static struct bt_conn *default_conn;
static struct k_work_delayable call_terminate_set_work;
static struct k_work_delayable media_pause_set_work;
static uint8_t unicast_server_addata[] = {
BT_UUID_16_ENCODE(BT_UUID_ASCS_VAL), /* ASCS UUID */
BT_UUID_16_ENCODE(BT_UUID_ASCS_VAL), /* ASCS UUID */
BT_AUDIO_UNICAST_ANNOUNCEMENT_TARGETED, /* Target Announcement */
BT_BYTES_LIST_LE16(AVAILABLE_SINK_CONTEXT),
BT_BYTES_LIST_LE16(AVAILABLE_SOURCE_CONTEXT),
0x00, /* Metadata length */
};
@ -47,8 +42,8 @@ static const uint8_t cap_addata[] = {
};
static uint8_t tmap_addata[] = {
BT_UUID_16_ENCODE(BT_UUID_TMAS_VAL), /* TMAS UUID */
(BT_TMAP_ROLE_UMR | BT_TMAP_ROLE_CT), 0x00, /* TMAP Role */
BT_UUID_16_ENCODE(BT_UUID_TMAS_VAL), /* TMAS UUID */
BT_BYTES_LIST_LE16(BT_TMAP_ROLE_UMR | BT_TMAP_ROLE_CT), /* TMAP Role */
};
static uint8_t csis_rsi_addata[BT_CSIP_RSI_SIZE];

View file

@ -6,6 +6,23 @@
#include <zephyr/types.h>
#if defined(CONFIG_BT_ASCS_ASE_SNK)
#define AVAILABLE_SINK_CONTEXT \
(BT_AUDIO_CONTEXT_TYPE_UNSPECIFIED | BT_AUDIO_CONTEXT_TYPE_CONVERSATIONAL | \
BT_AUDIO_CONTEXT_TYPE_MEDIA | BT_AUDIO_CONTEXT_TYPE_GAME | \
BT_AUDIO_CONTEXT_TYPE_INSTRUCTIONAL)
#else
#define AVAILABLE_SINK_CONTEXT 0x0000
#endif /* CONFIG_BT_ASCS_ASE_SNK */
#if defined(CONFIG_BT_ASCS_ASE_SRC)
#define AVAILABLE_SOURCE_CONTEXT \
(BT_AUDIO_CONTEXT_TYPE_UNSPECIFIED | BT_AUDIO_CONTEXT_TYPE_CONVERSATIONAL | \
BT_AUDIO_CONTEXT_TYPE_MEDIA | BT_AUDIO_CONTEXT_TYPE_GAME | \
BT_AUDIO_CONTEXT_TYPE_INSTRUCTIONAL)
#else
#define AVAILABLE_SOURCE_CONTEXT 0x0000
#endif /* CONFIG_BT_ASCS_ASE_SRC */
/**
* @brief Initialize the VCP Volume Renderer role
*