2012-08-30 12:09:02

by Ganir, Chen

[permalink] [raw]
Subject: [PATCH] adapter: add API to find an existing device by D-Bus path

From: Chen Ganir <[email protected]>

This allows us to get a btd_device from information passed in D-Bus
method calls or signals.
---
src/adapter.c | 15 +++++++++++++++
src/adapter.h | 2 ++
2 files changed, 17 insertions(+)

diff --git a/src/adapter.c b/src/adapter.c
index 50779fd..6aee982 100644
--- a/src/adapter.c
+++ b/src/adapter.c
@@ -3479,6 +3479,21 @@ void adapter_bonding_complete(struct btd_adapter *adapter, bdaddr_t *bdaddr,
}
}

+struct btd_device *adapter_get_device_by_path(struct btd_adapter *adapter,
+ const char *path)
+{
+ GSList *l;
+
+ for (l = adapter->devices; l != NULL; l = g_slist_next(l))
+ if (g_strcmp0(device_get_path(l->data), path) == 0)
+ break;
+
+ if (!l)
+ return NULL;
+
+ return l->data;
+}
+
int btd_adapter_read_local_oob_data(struct btd_adapter *adapter)
{
return mgmt_read_local_oob_data(adapter->dev_id);
diff --git a/src/adapter.h b/src/adapter.h
index 5a0247e..6435dfb 100644
--- a/src/adapter.h
+++ b/src/adapter.h
@@ -232,3 +232,5 @@ int btd_adapter_gatt_server_start(struct btd_adapter *adapter);
void btd_adapter_gatt_server_stop(struct btd_adapter *adapter);

int btd_adapter_ssp_enabled(struct btd_adapter *adapter);
+struct btd_device *adapter_get_device_by_path(struct btd_adapter *adapter,
+ const char *path);
--
1.7.9.5



2012-08-30 13:03:07

by Daniele Forsi

[permalink] [raw]
Subject: Re: [PATCH] adapter: add API to find an existing device by D-Bus path

2012/8/30 <chen.ganir@ti...>:

> + for (l = adapter->devices; l != NULL; l = g_slist_next(l))
> + if (g_strcmp0(device_get_path(l->data), path) == 0)
> + break;

what about returning l->data here instead of breaking the loop, so you
don't need the following NULL check?

> +
> + if (!l)
> + return NULL;
> +
> + return l->data;
> +}

--
Daniele Forsi