From: Kiran K <kiran.k@intel.com>
To: linux-bluetooth@vger.kernel.org
Cc: ravishankar.srivatsa@intel.com, chethan.tumkur.narayan@intel.com,
Kiran K <kiran.k@intel.com>
Subject: [PATCH 1/2] profiles: Add support for Audio Locations
Date: Mon, 16 Oct 2023 12:22:27 +0530 [thread overview]
Message-ID: <20231016065228.424400-1-kiran.k@intel.com> (raw)
This adds support to provide Audio Locations for BAP Sink and Source Endpoints
---
profiles/audio/media.c | 25 +++++++++++++++++++++----
1 file changed, 21 insertions(+), 4 deletions(-)
diff --git a/profiles/audio/media.c b/profiles/audio/media.c
index 1d98ac5a1a70..51e3ab65d12d 100644
--- a/profiles/audio/media.c
+++ b/profiles/audio/media.c
@@ -99,6 +99,7 @@ struct media_endpoint {
size_t size; /* Endpoint capabilities size */
uint8_t *metadata; /* Endpoint property metadata */
size_t metadata_size; /* Endpoint metadata size */
+ uint32_t location; /* Endpoint location */
guint hs_watch;
guint ag_watch;
guint watch;
@@ -1445,6 +1446,7 @@ media_endpoint_create(struct media_adapter *adapter,
int size,
uint8_t *metadata,
int metadata_size,
+ uint32_t location,
int *err)
{
struct media_endpoint *endpoint;
@@ -1460,6 +1462,7 @@ media_endpoint_create(struct media_adapter *adapter,
endpoint->cid = cid;
endpoint->vid = vid;
endpoint->delay_reporting = delay_reporting;
+ endpoint->location = location;
if (qos)
endpoint->qos = *qos;
@@ -1525,7 +1528,8 @@ static int parse_properties(DBusMessageIter *props, const char **uuid,
uint16_t *cid, uint16_t *vid,
struct bt_bap_pac_qos *qos,
uint8_t **capabilities, int *size,
- uint8_t **metadata, int *metadata_size)
+ uint8_t **metadata, int *metadata_size,
+ uint32_t *location)
{
gboolean has_uuid = FALSE;
gboolean has_codec = FALSE;
@@ -1609,6 +1613,10 @@ static int parse_properties(DBusMessageIter *props, const char **uuid,
if (var != DBUS_TYPE_UINT16)
return -EINVAL;
dbus_message_iter_get_basic(&value, &qos->ppd_max);
+ } else if (strcasecmp(key, "Location") == 0) {
+ if (var != DBUS_TYPE_UINT32)
+ return -EINVAL;
+ dbus_message_iter_get_basic(&value, location);
}
dbus_message_iter_next(props);
@@ -1633,6 +1641,7 @@ static DBusMessage *register_endpoint(DBusConnection *conn, DBusMessage *msg,
int size = 0;
int metadata_size = 0;
int err;
+ uint32_t location;
sender = dbus_message_get_sender(msg);
@@ -1650,12 +1659,12 @@ static DBusMessage *register_endpoint(DBusConnection *conn, DBusMessage *msg,
if (parse_properties(&props, &uuid, &delay_reporting, &codec, &cid,
&vid, &qos, &capabilities, &size, &metadata,
- &metadata_size) < 0)
+ &metadata_size, &location) < 0)
return btd_error_invalid_args(msg);
if (media_endpoint_create(adapter, sender, path, uuid, delay_reporting,
codec, cid, vid, &qos, capabilities,
- size, metadata, metadata_size,
+ size, metadata, metadata_size, location,
&err) == NULL) {
if (err == -EPROTONOSUPPORT)
return btd_error_not_supported(msg);
@@ -2688,6 +2697,7 @@ static void app_register_endpoint(void *data, void *user_data)
int size = 0;
uint8_t *metadata = NULL;
int metadata_size = 0;
+ uint32_t location;
DBusMessageIter iter, array;
struct media_endpoint *endpoint;
@@ -2748,6 +2758,13 @@ static void app_register_endpoint(void *data, void *user_data)
&metadata_size);
}
+ if (g_dbus_proxy_get_property(proxy, "Location", &iter)) {
+ if (dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_UINT32)
+ goto fail;
+
+ dbus_message_iter_get_basic(&iter, &location);
+ }
+
/* Parse QoS preferences */
memset(&qos, 0, sizeof(qos));
if (g_dbus_proxy_get_property(proxy, "Framing", &iter)) {
@@ -2804,7 +2821,7 @@ static void app_register_endpoint(void *data, void *user_data)
vendor.cid, vendor.vid, &qos,
capabilities, size,
metadata, metadata_size,
- &app->err);
+ location, &app->err);
if (!endpoint) {
error("Unable to register endpoint %s:%s: %s", app->sender,
path, strerror(-app->err));
--
2.34.1
next reply other threads:[~2023-10-16 6:40 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-16 6:52 Kiran K [this message]
2023-10-16 6:52 ` [PATCH 2/2] shared/bap: Add support for Audio Locations Kiran K
2023-10-16 17:38 ` Luiz Augusto von Dentz
2023-10-17 2:31 ` K, Kiran
2023-10-16 8:08 ` [1/2] profiles: " bluez.test.bot
2023-10-16 16:13 ` [PATCH 1/2] " Pauli Virtanen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20231016065228.424400-1-kiran.k@intel.com \
--to=kiran.k@intel.com \
--cc=chethan.tumkur.narayan@intel.com \
--cc=linux-bluetooth@vger.kernel.org \
--cc=ravishankar.srivatsa@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.