Diff between 0056b9b24985a33bd5fd8ce14c40fe0b05df3317 and e253e59b13630bfcd9c4da1baec14b1372f2af1c

Changed Files

File Additions Deletions Status
src/adapter.c +10 -0 modified
src/adapter.h +1 -0 modified

Full Patch

diff --git a/src/adapter.c b/src/adapter.c
index 1dae5f8..88b720a 100644
--- a/src/adapter.c
+++ b/src/adapter.c
@@ -3128,6 +3128,16 @@ bool btd_adapter_get_pairable(struct btd_adapter *adapter)
 	return false;
 }
 
+void adapter_set_pairable(struct btd_adapter *adapter, bool enable)
+{
+	bool current = (adapter->current_settings & MGMT_SETTING_PAIRABLE);
+
+	if (current == enable)
+		return;
+
+	set_mode(adapter, MGMT_OP_SET_PAIRABLE, 0x01);
+}
+
 bool btd_adapter_get_powered(struct btd_adapter *adapter)
 {
 	if (adapter->current_settings & MGMT_SETTING_POWERED)
diff --git a/src/adapter.h b/src/adapter.h
index 6801fee..923885c 100644
--- a/src/adapter.h
+++ b/src/adapter.h
@@ -75,6 +75,7 @@ struct btd_adapter *adapter_find(const bdaddr_t *sba);
 struct btd_adapter *adapter_find_by_id(int id);
 void adapter_foreach(adapter_cb func, gpointer user_data);
 
+void adapter_set_pairable(struct btd_adapter *adapter, bool enable);
 bool btd_adapter_get_pairable(struct btd_adapter *adapter);
 bool btd_adapter_get_powered(struct btd_adapter *adapter);
 bool btd_adapter_get_connectable(struct btd_adapter *adapter);