Diff between f82bc288a8d80042198b0c29fb82f283a7fd4d44 and 14f868fd141a3b2f9664bfb25911e1fe8d35c6a6

Changed Files

File Additions Deletions Status
profiles/audio/media.c +5 -0 modified
profiles/audio/media.h +1 -0 modified
profiles/audio/transport.c +5 -0 modified

Full Patch

diff --git a/profiles/audio/media.c b/profiles/audio/media.c
index deb321e..a7a8575 100644
--- a/profiles/audio/media.c
+++ b/profiles/audio/media.c
@@ -3488,6 +3488,11 @@ const char *media_endpoint_get_uuid(struct media_endpoint *endpoint)
 	return endpoint->uuid;
 }
 
+bool media_endpoint_get_delay_reporting(struct media_endpoint *endpoint)
+{
+	return endpoint->delay_reporting;
+}
+
 uint8_t media_endpoint_get_codec(struct media_endpoint *endpoint)
 {
 	return endpoint->codec;
diff --git a/profiles/audio/media.h b/profiles/audio/media.h
index d3954ab..380951f 100644
--- a/profiles/audio/media.h
+++ b/profiles/audio/media.h
@@ -19,6 +19,7 @@ void media_unregister(struct btd_adapter *btd_adapter);
 
 struct a2dp_sep *media_endpoint_get_sep(struct media_endpoint *endpoint);
 const char *media_endpoint_get_uuid(struct media_endpoint *endpoint);
+bool media_endpoint_get_delay_reporting(struct media_endpoint *endpoint);
 uint8_t media_endpoint_get_codec(struct media_endpoint *endpoint);
 struct btd_adapter *media_endpoint_get_btd_adapter(
 					struct media_endpoint *endpoint);
diff --git a/profiles/audio/transport.c b/profiles/audio/transport.c
index 08ed699..08ca360 100644
--- a/profiles/audio/transport.c
+++ b/profiles/audio/transport.c
@@ -1011,8 +1011,13 @@ static gboolean delay_reporting_exists(const GDBusPropertyTable *property,
 							void *data)
 {
 	struct media_transport *transport = data;
+	struct media_endpoint *endpoint = transport->endpoint;
 	struct avdtp_stream *stream;
 
+	/* Local A2DP sink decides itself if it has delay reporting */
+	if (!strcmp(media_endpoint_get_uuid(endpoint), A2DP_SINK_UUID))
+		return media_endpoint_get_delay_reporting(endpoint);
+
 	stream = media_transport_get_stream(transport);
 	if (stream == NULL)
 		return FALSE;