diff mbox series

[BlueZ,v2,4/8] adapter: Add btd_adapter_has_sixaxis_cable_pairing()

Message ID 20250423144020.358828-5-ludovico.denittis@collabora.com
State New
Headers show
Series Support Sixaxis gamepad with classic bonded only | expand

Commit Message

Ludovico de Nittis April 23, 2025, 2:40 p.m. UTC
Add a function that can be used to know if any of the known devices have
the `SixaxisCablePairing` property set.
---
 src/adapter.c | 17 +++++++++++++++++
 src/adapter.h |  1 +
 2 files changed, 18 insertions(+)
diff mbox series

Patch

diff --git a/src/adapter.c b/src/adapter.c
index c21b38095..75b962b5d 100644
--- a/src/adapter.c
+++ b/src/adapter.c
@@ -412,6 +412,23 @@  uint16_t btd_adapter_get_index(struct btd_adapter *adapter)
 	return adapter->dev_id;
 }
 
+bool btd_adapter_has_sixaxis_cable_pairing(struct btd_adapter *adapter)
+{
+	GSList *l;
+
+	if (!adapter)
+		return false;
+
+	for (l = adapter->devices; l; l = l->next) {
+		struct btd_device *device = l->data;
+
+		if (device_is_sixaxis_cable_pairing(device))
+			return true;
+	}
+
+	return false;
+}
+
 static gboolean process_auth_queue(gpointer user_data);
 
 static void dev_class_changed_callback(uint16_t index, uint16_t length,
diff --git a/src/adapter.h b/src/adapter.h
index 8dfbe762e..6caff5c84 100644
--- a/src/adapter.h
+++ b/src/adapter.h
@@ -30,6 +30,7 @@  struct queue;
 struct btd_adapter *btd_adapter_get_default(void);
 bool btd_adapter_is_default(struct btd_adapter *adapter);
 uint16_t btd_adapter_get_index(struct btd_adapter *adapter);
+bool btd_adapter_has_sixaxis_cable_pairing(struct btd_adapter *adapter);
 
 typedef void (*adapter_cb) (struct btd_adapter *adapter, gpointer user_data);