Re: [PATCH BlueZ v2 1/1] adapter: Allow broadcaster to be passed up to application

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Claudia,

On Wed, Jul 5, 2023 at 2:02 AM Claudia Draghicescu <claudia.rosu@xxxxxxx> wrote:
>
> Allow a broadcast advertiser to be passed up to application,
> if the scanner is an ISO Sync Receiver capable device.
> This allows for a broadcast sink to discover broadcast sources.
>
> ---
>  src/adapter.c | 16 ++++++++++++++++
>  1 file changed, 16 insertions(+)
>
> diff --git a/src/adapter.c b/src/adapter.c
> index 2679d4302..9c971d488 100644
> --- a/src/adapter.c
> +++ b/src/adapter.c
> @@ -7031,6 +7031,16 @@ static bool is_filter_match(GSList *discovery_filter, struct eir_data *eir_data,
>         return got_match;
>  }
>
> +static bool accept_bcast_adv(struct btd_adapter *adapter,
> +                               struct eir_data *eir_data)
> +{
> +       if ((btd_adapter_has_settings(adapter, MGMT_SETTING_ISO_SYNC_RECEIVER))
> +               && !(eir_data->flags & (EIR_LIM_DISC | EIR_GEN_DISC)))
> +               return true;
> +
> +       return false;
> +}
> +
>  static void filter_duplicate_data(void *data, void *user_data)
>  {
>         struct discovery_client *client = data;
> @@ -7154,12 +7164,18 @@ void btd_adapter_device_found(struct btd_adapter *adapter,
>                         return;
>                 }
>
> +               if (accept_bcast_adv(adapter, &eir_data))
> +                       monitoring = true;
> +
>                 if (!discoverable && !monitoring && !eir_data.rsi) {
>                         eir_data_free(&eir_data);
>                         return;
>                 }

Lets match by advertising UUID since it should contain a broadcast
audio announcement to be considered a broadcaster.

>                 dev = adapter_create_device(adapter, bdaddr, bdaddr_type);
> +
> +               if (accept_bcast_adv(adapter, &eir_data))
> +                       btd_device_set_temporary(dev, false);

I wouldn't persist broadcasters like that, at least not until we
synchronize with it, that said, if it is using a random address it
probably cannot be stored anyway.

>         }
>
>         if (!dev) {
> --
> 2.34.1
>


-- 
Luiz Augusto von Dentz




[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux