From: Mikel Astiz <mikel.astiz@xxxxxxxxxxxx> This method is useful to search or than one device fulfulling certain criteria. --- audio/manager.c | 25 ++++++++++++++++++++++--- audio/manager.h | 6 ++++++ 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/audio/manager.c b/audio/manager.c index 20453e6..9c7d0d3 100644 --- a/audio/manager.c +++ b/audio/manager.c @@ -1300,12 +1300,13 @@ void audio_manager_exit(void) btd_unregister_device_driver(&audio_driver); } -struct audio_device *manager_find_device(const char *path, +GSList *manager_find_devices(const char *path, const bdaddr_t *src, const bdaddr_t *dst, const char *interface, gboolean connected) { + GSList *result = NULL; GSList *l; for (l = devices; l != NULL; l = l->next) { @@ -1343,10 +1344,28 @@ struct audio_device *manager_find_device(const char *path, if (connected && !audio_device_is_active(dev, interface)) continue; - return dev; + result = g_slist_append(result, dev); } - return NULL; + return result; +} + +struct audio_device *manager_find_device(const char *path, + const bdaddr_t *src, + const bdaddr_t *dst, + const char *interface, + gboolean connected) +{ + struct audio_device *result; + GSList *l; + + l = manager_find_devices(path, src, dst, interface, connected); + if (l == NULL) + return NULL; + + result = l->data; + g_slist_free(l); + return result; } struct audio_device *manager_get_device(const bdaddr_t *src, diff --git a/audio/manager.h b/audio/manager.h index cfc646c..f1d3021 100644 --- a/audio/manager.h +++ b/audio/manager.h @@ -46,6 +46,12 @@ struct audio_device *manager_find_device(const char *path, const char *interface, gboolean connected); +GSList *manager_find_devices(const char *path, + const bdaddr_t *src, + const bdaddr_t *dst, + const char *interface, + gboolean connected); + struct audio_device *manager_get_device(const bdaddr_t *src, const bdaddr_t *dst, gboolean create); -- 1.7.7.6 -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html