From 74995883b3450d47dde26494232037e452e23c43 Mon Sep 17 00:00:00 2001 From: Saurav Babu Date: Thu, 1 Feb 2018 18:03:36 +0530 Subject: [PATCH] demo: Append only new devices to found_device_list Signed-off-by: Saurav Babu --- capi/demo/comp-manager.c | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/capi/demo/comp-manager.c b/capi/demo/comp-manager.c index e9ec973..43975aa 100644 --- a/capi/demo/comp-manager.c +++ b/capi/demo/comp-manager.c @@ -444,12 +444,35 @@ bool _device_found_cb(companion_device_h device, void *user_data) char *ip = NULL; char *device_id = NULL; char *device_type = NULL; + GList *iter = NULL; + gboolean is_exist = FALSE; companion_device_information_get_device_id(device, &device_id); companion_device_information_get_ip(device, &ip); companion_device_information_get_device_type(device, &device_type); - msgp("\r[ID] %s [IP] %s [Ver] %s", device_id, ip, device_type); + iter = found_device_list; + while (iter != NULL) { + companion_device_h temp = (companion_device_h ) iter->data; + char *temp_device_id; + + companion_device_information_get_device_id(temp, &temp_device_id); + + if (g_strcmp0(device_id, temp_device_id) == 0) { + is_exist = TRUE; + free(temp_device_id); + companion_device_information_destroy(device); + break; + } + + free(temp_device_id); + iter = g_list_next(iter); + } + + if (is_exist == FALSE) { + found_device_list = g_list_append(found_device_list, device); + msgp("\r[ID] %s [IP] %s [Ver] %s", device_id, ip, device_type); + } if (device_id) free(device_id); @@ -458,8 +481,6 @@ bool _device_found_cb(companion_device_h device, void *user_data) if (device_type) free(device_type); - found_device_list = g_list_append(found_device_list, device); - return TRUE; } -- 2.7.4