+e_devicemgr_inputgen_device_ready_send(E_Devicemgr_Input_Device *dev)
+{
+ E_Devicemgr_Inputgen_Resource_Data *rdata;
+ Eina_List *l;
+ int ret = TIZEN_INPUT_DEVICE_MANAGER_ERROR_NONE;
+
+ EINA_LIST_FOREACH(e_devicemgr->inputgen.resource_list, l, rdata)
+ {
+ if (e_devicemgr_strcmp(rdata->name, dev->name) == EINA_FALSE) continue;
+ if (rdata->sync_timer)
+ {
+ e_devicemgr_wl_generator_with_sync_send_event(rdata->resource, ret);
+
+ ecore_timer_del(rdata->sync_timer);
+ rdata->sync_timer = NULL;
+ }
+ }
+}
+
+Eina_Bool
+_e_devicemgr_inputgen_sync_timer(void *data)
+{
+ E_Devicemgr_Inputgen_Resource_Data *rdata = data;
+ int ret = TIZEN_INPUT_DEVICE_MANAGER_ERROR_NO_SYSTEM_RESOURCES;
+
+ DMDBG("Init Generator with sync. timer expired!!! dev: %s", rdata->name);
+
+ if (!rdata || !rdata->resource) return ECORE_CALLBACK_CANCEL;
+
+ e_devicemgr_wl_generator_with_sync_send_event(rdata->resource, ret);
+
+ rdata->sync_timer = NULL;
+
+ return ECORE_CALLBACK_CANCEL;
+}
+
+void
+e_devicemgr_inputgen_add_with_sync(struct wl_client *client, struct wl_resource *resource, uint32_t clas, const char *name)
+{
+ int ret = TIZEN_INPUT_DEVICE_MANAGER_ERROR_NONE;
+ E_Devicemgr_Inputgen_Resource_Data *rdata;
+
+ if (clas & TIZEN_INPUT_DEVICE_MANAGER_CLAS_KEYBOARD)
+ ret = _e_devicemgr_inputgen_create_device(ECORE_DEVICE_CLASS_KEYBOARD, client, name);
+ if (clas & TIZEN_INPUT_DEVICE_MANAGER_CLAS_MOUSE)
+ ret = _e_devicemgr_inputgen_create_device(ECORE_DEVICE_CLASS_MOUSE, client, name);
+ if (clas & TIZEN_INPUT_DEVICE_MANAGER_CLAS_TOUCHSCREEN)
+ ret = _e_devicemgr_inputgen_create_device(ECORE_DEVICE_CLASS_TOUCH, client, name);
+
+ if (ret == TIZEN_INPUT_DEVICE_MANAGER_ERROR_NONE)
+ {
+ _e_devicemgr_inputgen_client_add(client, clas);
+ rdata = _e_devicemgr_inputgen_resource_add(resource, name);
+ if (!rdata) return;
+ rdata->sync_timer = ecore_timer_add(1.0, _e_devicemgr_inputgen_sync_timer, rdata);
+ }
+
+ return;
+}
+
+void