Add CIG, CIS, and PHY properties to BAP transport. The other QoS
properties are there, and these may also be useful to clients, e.g. to
manage CIG/CIS allocation as client.
Hide transport QoS properties when they are not configured.
---
Notes:
v2: no change
profiles/audio/transport.c | 67 ++++++++++++++++++++++++++++++++++----
1 file changed, 61 insertions(+), 6 deletions(-)
diff --git a/profiles/audio/transport.c b/profiles/audio/transport.c
index 457590746..53bf13175 100644
--- a/profiles/audio/transport.c
+++ b/profiles/audio/transport.c
@@ -811,6 +811,38 @@ static const GDBusPropertyTable a2dp_properties[] = {
{ }
};
+static gboolean qos_exists(const GDBusPropertyTable *property, void *data)
+{
+ struct media_transport *transport = data;
+ struct bap_transport *bap = transport->data;
+
+ return bap->qos.phy != 0x00;
+}
+
+static gboolean get_cig(const GDBusPropertyTable *property,
+ DBusMessageIter *iter, void *data)
+{
+ struct media_transport *transport = data;
+ struct bap_transport *bap = transport->data;
+
+ dbus_message_iter_append_basic(iter, DBUS_TYPE_BYTE,
+ &bap->qos.cig_id);
+
+ return TRUE;
+}
+
+static gboolean get_cis(const GDBusPropertyTable *property,
+ DBusMessageIter *iter, void *data)
+{
+ struct media_transport *transport = data;
+ struct bap_transport *bap = transport->data;
+
+ dbus_message_iter_append_basic(iter, DBUS_TYPE_BYTE,
+ &bap->qos.cis_id);
+
+ return TRUE;
+}
+
static gboolean get_interval(const GDBusPropertyTable *property,
DBusMessageIter *iter, void *data)
{
@@ -835,6 +867,17 @@ static gboolean get_framing(const GDBusPropertyTable *property,
return TRUE;
}
+static gboolean get_phy(const GDBusPropertyTable *property,
+ DBusMessageIter *iter, void *data)
+{
+ struct media_transport *transport = data;
+ struct bap_transport *bap = transport->data;
+
+ dbus_message_iter_append_basic(iter, DBUS_TYPE_BYTE, &bap->qos.phy);
+
+ return TRUE;
+}
+
static gboolean get_sdu(const GDBusPropertyTable *property,
DBusMessageIter *iter, void *data)
{
@@ -962,12 +1005,15 @@ static const GDBusPropertyTable bap_properties[] = {
{ "Codec", "y", get_codec },
{ "Configuration", "ay", get_configuration },
{ "State", "s", get_state },
- { "Interval", "u", get_interval },
- { "Framing", "b", get_framing },
- { "SDU", "q", get_sdu },
- { "Retransmissions", "y", get_retransmissions },
- { "Latency", "q", get_latency },
- { "Delay", "u", get_delay },
+ { "CIG", "y", get_cig, NULL, qos_exists },
+ { "CIS", "y", get_cis, NULL, qos_exists },
+ { "Interval", "u", get_interval, NULL, qos_exists },
+ { "Framing", "b", get_framing, NULL, qos_exists },
+ { "PHY", "y", get_phy, NULL, qos_exists },
+ { "SDU", "q", get_sdu, NULL, qos_exists },
+ { "Retransmissions", "y", get_retransmissions, NULL, qos_exists },
+ { "Latency", "q", get_latency, NULL, qos_exists },
+ { "Delay", "u", get_delay, NULL, qos_exists },
{ "Endpoint", "o", get_endpoint, NULL, endpoint_exists },
{ "Location", "u", get_location },
{ "Metadata", "ay", get_metadata },
@@ -1191,12 +1237,21 @@ static void bap_update_qos(const struct media_transport *transport)
bap->qos = *qos;
+ g_dbus_emit_property_changed(btd_get_dbus_connection(),
+ transport->path, MEDIA_TRANSPORT_INTERFACE,
+ "CIG");
+ g_dbus_emit_property_changed(btd_get_dbus_connection(),
+ transport->path, MEDIA_TRANSPORT_INTERFACE,
+ "CIS");
g_dbus_emit_property_changed(btd_get_dbus_connection(),
transport->path, MEDIA_TRANSPORT_INTERFACE,
"Interval");
g_dbus_emit_property_changed(btd_get_dbus_connection(),
transport->path, MEDIA_TRANSPORT_INTERFACE,
"Framing");
+ g_dbus_emit_property_changed(btd_get_dbus_connection(),
+ transport->path, MEDIA_TRANSPORT_INTERFACE,
+ "PHY");
g_dbus_emit_property_changed(btd_get_dbus_connection(),
transport->path, MEDIA_TRANSPORT_INTERFACE,
"SDU");
--
2.39.2
This is automated email and please do not reply to this email!
Dear submitter,
Thank you for submitting the patches to the linux bluetooth mailing list.
This is a CI test results with your patch series:
PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=730524
---Test result---
Test Summary:
CheckPatch PASS 0.75 seconds
GitLint FAIL 0.76 seconds
BuildEll PASS 26.01 seconds
BluezMake PASS 736.33 seconds
MakeCheck PASS 10.85 seconds
MakeDistcheck PASS 146.21 seconds
CheckValgrind PASS 238.48 seconds
CheckSmatch PASS 318.73 seconds
bluezmakeextell PASS 95.66 seconds
IncrementalBuild PASS 1200.09 seconds
ScanBuild PASS 935.85 seconds
Details
##############################
Test: GitLint - FAIL
Desc: Run gitlint
Output:
[BlueZ,v2,1/2] transport: add CIG/CIS/PHY properties, don't show unset QoS properties
WARNING: I3 - ignore-body-lines: gitlint will be switching from using Python regex 'match' (match beginning) to 'search' (match anywhere) semantics. Please review your ignore-body-lines.regex option accordingly. To remove this warning, set general.regex-style-search=True. More details: https://jorisroovers.github.io/gitlint/configuration/#regex-style-search
1: T1 Title exceeds max length (85>80): "[BlueZ,v2,1/2] transport: add CIG/CIS/PHY properties, don't show unset QoS properties"
---
Regards,
Linux Bluetooth
Hello:
This series was applied to bluetooth/bluez.git (master)
by Luiz Augusto von Dentz <[email protected]>:
On Wed, 15 Mar 2023 22:16:38 +0000 you wrote:
> Add CIG, CIS, and PHY properties to BAP transport. The other QoS
> properties are there, and these may also be useful to clients, e.g. to
> manage CIG/CIS allocation as client.
>
> Hide transport QoS properties when they are not configured.
> ---
>
> [...]
Here is the summary with links:
- [BlueZ,v2,1/2] transport: add CIG/CIS/PHY properties, don't show unset QoS properties
https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=28422cd23119
- [BlueZ,v2,2/2] doc: describe new ISO Transport properties
https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=39260c3cfa05
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html