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