diff --git a/src/adapter.c b/src/adapter.c
index f56b000..e50e646 100644
--- a/src/adapter.c
+++ b/src/adapter.c
}
}
-void adapter_mode_changed(struct btd_adapter *adapter, uint8_t scan_mode)
+static uint8_t create_mode(bool connectable, bool discoverable)
+{
+ uint8_t mode = 0;
+
+ if (connectable)
+ mode |= SCAN_PAGE;
+
+ if (discoverable)
+ mode |= SCAN_INQUIRY;
+
+ return mode;
+}
+
+void adapter_mode_changed(struct btd_adapter *adapter, bool connectable,
+ bool discoverable)
{
bool emit_pairable = false;
+ uint8_t scan_mode;
+
+ scan_mode = create_mode(connectable, discoverable);
DBG("old 0x%02x new 0x%02x", adapter->scan_mode, scan_mode);
diff --git a/src/adapter.h b/src/adapter.h
index 3b2d14f..7c20e29 100644
--- a/src/adapter.h
+++ b/src/adapter.h
uint8_t bdaddr_type, int8_t rssi,
bool confirm_name, bool legacy,
uint8_t *data, uint8_t data_len);
-void adapter_mode_changed(struct btd_adapter *adapter, uint8_t scan_mode);
+void adapter_mode_changed(struct btd_adapter *adapter, bool connectable,
+ bool discoverable);
int adapter_set_name(struct btd_adapter *adapter, const char *name);
void adapter_name_changed(struct btd_adapter *adapter, const char *name);
void adapter_service_insert(struct btd_adapter *adapter, void *rec);
diff --git a/src/mgmt.c b/src/mgmt.c
index dfcf558..cc54e8b 100644
--- a/src/mgmt.c
+++ b/src/mgmt.c
return (settings & MGMT_SETTING_LE) != 0;
}
-static uint8_t create_mode(uint32_t settings)
-{
- uint8_t mode = 0;
-
- if (mgmt_connectable(settings))
- mode |= SCAN_PAGE;
-
- if (mgmt_discoverable(settings))
- mode |= SCAN_INQUIRY;
-
- return mode;
-}
-
static void update_settings(struct btd_adapter *adapter, uint32_t settings)
{
struct controller_info *info;
info = &controllers[index];
if (mgmt_powered(settings))
- adapter_mode_changed(adapter, create_mode(settings));
+ adapter_mode_changed(adapter, mgmt_connectable(settings),
+ mgmt_discoverable(settings));
if (mgmt_pairable(settings) != pairable)
mgmt_set_pairable(index, pairable);
if (new_power != old_power)
mgmt_update_powered(adapter, info, settings);
else if (new_power && mode_changed(settings, info->current_settings))
- adapter_mode_changed(adapter, create_mode(settings));
+ adapter_mode_changed(adapter, mgmt_connectable(settings),
+ mgmt_discoverable(settings));
old_pairable = mgmt_pairable(info->current_settings);
new_pairable = mgmt_pairable(settings);