query devices already connected before devicemgr is initialized 86/177886/2
authorJengHyun Kang <jhyuni.kang@samsung.com>
Fri, 4 May 2018 06:59:46 +0000 (15:59 +0900)
committerJengHyun Kang <jhyuni.kang@samsung.com>
Fri, 4 May 2018 08:34:44 +0000 (17:34 +0900)
Change-Id: Iecbc470d82a6ad1e6c6424a608bc760cee66a67f

src/e_devicemgr_device.c

index 1d5549a37c2d0a4a79df6c7483bd742b788ea1e9..94ae96aaf5fee434e24d9a99a702ce71810ff9fa 100644 (file)
@@ -2103,6 +2103,23 @@ fail_create_device:
    return -1;
 }
 
+static void
+_e_devicemgr_device_query(void)
+{
+   Eina_List *list, *l;
+   Ecore_Device *dev;
+
+   list = (Eina_List *)ecore_device_list();
+
+   EINA_LIST_FOREACH(list, l, dev)
+     {
+        _e_devicemgr_add_device(ecore_device_name_get(dev),
+                                ecore_device_identifier_get(dev),
+                                ecore_device_name_get(dev),
+                                ecore_device_class_get(dev),
+                                ecore_device_subclass_get(dev));
+     }
+}
 
 int
 e_devicemgr_device_init(void)
@@ -2127,14 +2144,16 @@ e_devicemgr_device_init(void)
    e_comp_wl->input_device_manager.resources = NULL;
    e_comp_wl->input_device_manager.device_list = NULL;
 
-   E_LIST_HANDLER_APPEND(handlers, ECORE_EVENT_DEVICE_ADD, _cb_device_add, NULL);
-   E_LIST_HANDLER_APPEND(handlers, ECORE_EVENT_DEVICE_DEL, _cb_device_del, NULL);
-
    input_devmgr_data = E_NEW(e_devicemgr_input_devmgr_data, 1);
    EINA_SAFETY_ON_NULL_RETURN_VAL(input_devmgr_data, 0);
 
    input_devmgr_data->block_devtype = 0x0;
 
+   _e_devicemgr_device_query();
+
+   E_LIST_HANDLER_APPEND(handlers, ECORE_EVENT_DEVICE_ADD, _cb_device_add, NULL);
+   E_LIST_HANDLER_APPEND(handlers, ECORE_EVENT_DEVICE_DEL, _cb_device_del, NULL);
+
    /* initialization of cynara for checking privilege */
 #ifdef ENABLE_CYNARA
    ret = cynara_initialize(&input_devmgr_data->p_cynara, NULL);