e_test_helper: implement key event generation with e_devicemgr API 65/216365/2
authorSung-Jin Park <sj76.park@samsung.com>
Thu, 24 Oct 2019 02:34:54 +0000 (11:34 +0900)
committerSung-Jin Park <sj76.park@samsung.com>
Thu, 24 Oct 2019 04:44:55 +0000 (04:44 +0000)
Change-Id: Ib69d5859915a06786e0d687614a8968ffa73d24b

src/bin/e_devicemgr.h
src/bin/e_devicemgr_inputgen.c
src/bin/e_test_helper.c

index 992f111757bcf7e1b07e0c226de5ca670b7e1ae4..74fc448553b2f812e5ae57d7e70f45e7ad7eda2d 100644 (file)
@@ -96,6 +96,7 @@ E_API E_Devicemgr_Intercept_Hook *e_devicemgr_intercept_hook_add(E_Devicemgr_Int
 E_API void e_devicemgr_intercept_hook_del(E_Devicemgr_Intercept_Hook *ch);
 E_API Eina_Bool e_devicemgr_intercept_hook_call(E_Devicemgr_Intercept_Hook_Point hookpoint, void *event);
 E_API Eina_Bool e_devicemgr_is_blocking_event(Ecore_Device_Class clas);
+E_API int e_devicemgr_inputgen_key_event_add(const char *key, Eina_Bool pressed, char *identifier);
 
 E_API int e_devicemgr_init(void);
 E_API int e_devicemgr_shutdown(void);
index a86f9f4eb75e1981a027ce7f61058117c0b52766..1c8d5d40a703b6d46f811d3011512dcd0f4999be 100644 (file)
@@ -67,8 +67,8 @@ _e_devicemgr_inputgen_key_event_free(void *data EINA_UNUSED, void *ev)
    free(e);
 }
 
-int
-_e_devicemgr_inputgen_key_event_add(const char *key, Eina_Bool pressed, char *identifier)
+E_API int
+e_devicemgr_inputgen_key_event_add(const char *key, Eina_Bool pressed, char *identifier)
 {
    Ecore_Event_Key *e;
    unsigned int keycode;
@@ -506,7 +506,7 @@ _e_devicemgr_inputgen_remove_device(E_Devicemgr_Inputgen_Device_Data *device)
         case ECORE_DEVICE_CLASS_KEYBOARD:
           EINA_LIST_FOREACH_SAFE(device->key.pressed, l, l_next, str_data)
             {
-               ret = _e_devicemgr_inputgen_key_event_add(str_data, EINA_FALSE, device->identifier);
+               ret = e_devicemgr_inputgen_key_event_add(str_data, EINA_FALSE, device->identifier);
                if (ret != TIZEN_INPUT_DEVICE_MANAGER_ERROR_NONE)
                  DMWRN("Failed to generate key up event: %d\n", ret);
                eina_stringshare_del(str_data);
@@ -931,7 +931,7 @@ e_devicemgr_inputgen_generate_key(struct wl_client *client, struct wl_resource *
           }
      }
 
-   ret = _e_devicemgr_inputgen_key_event_add(keyname, pressed, identifier);
+   ret = e_devicemgr_inputgen_key_event_add(keyname, pressed, identifier);
    return ret;
 }
 
index 735f8d170325c6f6549460c03f070e778698600d..527486af3e991a0c785a4df78bc5d0f4f1f02392 100644 (file)
@@ -697,6 +697,31 @@ _e_test_helper_cb_ev_mouse(const Eldbus_Service_Interface *iface, const Eldbus_M
    return reply;
 }
 
+static int
+_e_test_helper_key_event_add(char *key_name, unsigned int type)
+{
+   int res;
+   char *device_identifier = NULL;
+
+   EINA_SAFETY_ON_NULL_RETURN_VAL(key_name, EINA_FALSE);
+   EINA_SAFETY_ON_NULL_RETURN_VAL(e_devicemgr, EINA_FALSE);
+   EINA_SAFETY_ON_NULL_RETURN_VAL(e_devicemgr->last_device_kbd, EINA_FALSE);
+
+   device_identifier = (char *)e_devicemgr->last_device_kbd->identifier;
+
+   EINA_SAFETY_ON_NULL_RETURN_VAL(device_identifier, EINA_FALSE);
+
+   res = e_devicemgr_inputgen_key_event_add(key_name, (Eina_Bool)type, device_identifier);
+
+   if (res)
+     {
+        ERR("[E_Test_Helper] Failed on generating key event ! (key_name=%s, type=%d)\n", key_name, type);
+        return EINA_FALSE;
+     }
+
+   return EINA_TRUE;
+}
+
 static Eldbus_Message *
 _e_test_helper_cb_ev_key(const Eldbus_Service_Interface *iface, const Eldbus_Message *msg)
 {
@@ -716,11 +741,9 @@ _e_test_helper_cb_ev_key(const Eldbus_Service_Interface *iface, const Eldbus_Mes
      {
       case 0:
          /* key down */
-         accept = EINA_TRUE;
-         break;
       case 1:
          /* key up */
-         accept = EINA_TRUE;
+         accept = _e_test_helper_key_event_add(key, type);
          break;
       default:
          break;