2023-10-01 12:06:05

by Pauli Virtanen

[permalink] [raw]
Subject: [PATCH BlueZ 2/2] doc: clarify org.bluez.MediaEndpoint documentation

Document the actual input and output parameter values used in
SelectProperties. These differ from SetConfiguration.

Mention SelectProperties is used for unicast only.

Document SetConfiguration input parameters.
---
doc/org.bluez.MediaEndpoint.rst | 42 ++++++++++++++++++++++++++-------
1 file changed, 34 insertions(+), 8 deletions(-)

diff --git a/doc/org.bluez.MediaEndpoint.rst b/doc/org.bluez.MediaEndpoint.rst
index 0e201ff9d..11b7280bd 100644
--- a/doc/org.bluez.MediaEndpoint.rst
+++ b/doc/org.bluez.MediaEndpoint.rst
@@ -24,14 +24,24 @@ Interface
Methods
-------

+.. _SetConfiguration:
+
void SetConfiguration(object transport, dict properties)
````````````````````````````````````````````````````````

Set configuration for the transport.

- For client role transport must be set with a server endpoint oject which
- will be configured and the properties must contain the following
- properties:
+ :object transport:
+
+ Configured transport object.
+
+ :dict properties:
+
+ Configured **org.bluez.MediaTransport(5)** properties.
+
+ For client role transport must be set with a server endpoint
+ object which will be configured and the properties must
+ contain the following properties:

:array{byte} Capabilities [Mandatory]:

@@ -59,13 +69,29 @@ array{byte} SelectConfiguration(array{byte} capabilities)
dict SelectProperties(dict capabilities)
````````````````````````````````````````

- Select configuration from the supported capabilities:
+ Select BAP unicast configuration from the supported capabilities:

- :object Endpoint [ISO only]:
- :Refer to SetConfiguration for the list of other possible properties.:
+ :object Endpoint:
+ :array{byte} Capabilities:
+ :array{byte} Metadata:
+ :uint32 Locations:
+ :byte Framing:
+ :byte PHY:
+ :uint16 MaximumLatency:
+ :uint32 MinimumDelay:
+ :uint32 MaximumDelay:
+ :uint32 PreferredMinimumDelay:
+ :uint32 PreferredMaximumDelay:

- Returns a configuration which can be used to setup a transport, see
- **org.bluez.MediaTransport(5)** for possible values.
+ See `MediaEndpoint Properties`_ for their possible values.
+
+ Returns a configuration which can be used to setup a transport:
+
+ :array{byte} Capabilities:
+ :array{byte} Metadata [optional]:
+ :dict QoS:
+
+ See `SetConfiguration`_ for their possible values.

Note: There is no need to cache the selected properties since on
success the configuration is send back as parameter of SetConfiguration.
--
2.41.0


2023-10-02 21:22:22

by Luiz Augusto von Dentz

[permalink] [raw]
Subject: Re: [PATCH BlueZ 2/2] doc: clarify org.bluez.MediaEndpoint documentation

Hi Pauli,

On Sun, Oct 1, 2023 at 5:06 AM Pauli Virtanen <[email protected]> wrote:
>
> Document the actual input and output parameter values used in
> SelectProperties. These differ from SetConfiguration.
>
> Mention SelectProperties is used for unicast only.
>
> Document SetConfiguration input parameters.
> ---
> doc/org.bluez.MediaEndpoint.rst | 42 ++++++++++++++++++++++++++-------
> 1 file changed, 34 insertions(+), 8 deletions(-)
>
> diff --git a/doc/org.bluez.MediaEndpoint.rst b/doc/org.bluez.MediaEndpoint.rst
> index 0e201ff9d..11b7280bd 100644
> --- a/doc/org.bluez.MediaEndpoint.rst
> +++ b/doc/org.bluez.MediaEndpoint.rst
> @@ -24,14 +24,24 @@ Interface
> Methods
> -------
>
> +.. _SetConfiguration:
> +
> void SetConfiguration(object transport, dict properties)
> ````````````````````````````````````````````````````````
>
> Set configuration for the transport.
>
> - For client role transport must be set with a server endpoint oject which
> - will be configured and the properties must contain the following
> - properties:
> + :object transport:
> +
> + Configured transport object.
> +
> + :dict properties:
> +
> + Configured **org.bluez.MediaTransport(5)** properties.
> +
> + For client role transport must be set with a server endpoint
> + object which will be configured and the properties must
> + contain the following properties:
>
> :array{byte} Capabilities [Mandatory]:
>
> @@ -59,13 +69,29 @@ array{byte} SelectConfiguration(array{byte} capabilities)
> dict SelectProperties(dict capabilities)
> ````````````````````````````````````````
>
> - Select configuration from the supported capabilities:
> + Select BAP unicast configuration from the supported capabilities:
>
> - :object Endpoint [ISO only]:
> - :Refer to SetConfiguration for the list of other possible properties.:
> + :object Endpoint:
> + :array{byte} Capabilities:
> + :array{byte} Metadata:
> + :uint32 Locations:

The idea is these below are passed as in one container as in
MediaEndpoint.QoS, looks like I missed changing the handling on
pac_select since bluetoothctl doesn't check it but most likely
pipewire does.

> + :byte Framing:
> + :byte PHY:
> + :uint16 MaximumLatency:
> + :uint32 MinimumDelay:
> + :uint32 MaximumDelay:
> + :uint32 PreferredMinimumDelay:
> + :uint32 PreferredMaximumDelay:
>
> - Returns a configuration which can be used to setup a transport, see
> - **org.bluez.MediaTransport(5)** for possible values.
> + See `MediaEndpoint Properties`_ for their possible values.
> +
> + Returns a configuration which can be used to setup a transport:
> +
> + :array{byte} Capabilities:
> + :array{byte} Metadata [optional]:
> + :dict QoS:
> +
> + See `SetConfiguration`_ for their possible values.

Interesting, need to check if the references works on manpages as well.

> Note: There is no need to cache the selected properties since on
> success the configuration is send back as parameter of SetConfiguration.
> --
> 2.41.0
>


--
Luiz Augusto von Dentz