e_input: add a new API e_input_device_mouse_accel_speed_set() 66/182966/4
authorJengHyun Kang <jhyuni.kang@samsung.com>
Fri, 29 Jun 2018 07:50:50 +0000 (16:50 +0900)
committerJengHyun Kang <jhyuni.kang@samsung.com>
Mon, 2 Jul 2018 06:57:41 +0000 (15:57 +0900)
Change-Id: I4275c39c031142626172d71c02745213e7132d10

src/bin/e_input.h
src/bin/e_input_device.c
src/bin/e_input_evdev.c

index ab09da5..4817178 100644 (file)
@@ -116,9 +116,11 @@ EINTERN const char *e_input_evdev_sysname_get(E_Input_Evdev *evdev);
 EINTERN Eina_Bool e_input_evdev_key_remap_enable(E_Input_Evdev *edev, Eina_Bool enable);
 EINTERN Eina_Bool e_input_evdev_key_remap_set(E_Input_Evdev *edev, int *from_keys, int *to_keys, int num);
 EINTERN Eina_Bool e_input_evdev_touch_calibration_set(E_Input_Evdev *edev, float matrix[6]);
+EINTERN Eina_Bool e_input_evdev_mouse_accel_speed_set(E_Input_Evdev *edev, double speed);
 
 E_API const Eina_List *e_input_devices_get(void);
 E_API Eina_Bool e_input_device_pointer_warp(E_Input_Device *dev, int x, int y);
+E_API Eina_Bool e_input_device_mouse_accel_speed_set(E_Input_Device *dev, double speed);
 
 E_API const char *e_input_evdev_name_get(E_Input_Evdev *evdev);
 E_API Eina_List *e_input_seat_evdev_list_get(E_Input_Seat *seat);
index 4e79282..37777e0 100644 (file)
@@ -1154,3 +1154,26 @@ e_input_devices_get(void)
    return einput_devices;
 }
 
+EAPI Eina_Bool
+e_input_device_mouse_accel_speed_set(E_Input_Device *dev, double speed)
+{
+   E_Input_Seat *seat = NULL;
+   E_Input_Evdev *edev = NULL;
+   Eina_List *l = NULL, *l2 = NULL;
+   Eina_Bool res = EINA_TRUE, ret = EINA_TRUE;
+
+   EINA_SAFETY_ON_NULL_RETURN_VAL(dev, EINA_FALSE);
+   EINA_SAFETY_ON_NULL_RETURN_VAL(dev->seats, EINA_FALSE);
+
+   EINA_LIST_FOREACH(dev->seats, l, seat)
+     {
+        EINA_LIST_FOREACH(e_input_seat_evdev_list_get(seat), l2, edev)
+          {
+             if (edev->caps & E_INPUT_SEAT_POINTER)
+               res = e_input_evdev_mouse_accel_speed_set(edev, speed);
+             if (!res) ret = EINA_FALSE;
+          }
+     }
+
+   return ret;
+}
index 485d94f..e9c2297 100644 (file)
@@ -1381,3 +1381,25 @@ e_input_evdev_touch_calibration_set(E_Input_Evdev *edev, float matrix[6])
    return EINA_TRUE;
 }
 
+EAPI Eina_Bool
+e_input_evdev_mouse_accel_speed_set(E_Input_Evdev *edev, double speed)
+{
+   EINA_SAFETY_ON_NULL_RETURN_VAL(edev, EINA_FALSE);
+   EINA_SAFETY_ON_NULL_RETURN_VAL(edev->device, EINA_FALSE);
+
+   if (!libinput_device_has_capability(edev->device, LIBINPUT_DEVICE_CAP_POINTER))
+     return EINA_FALSE;
+
+   if (!libinput_device_config_accel_is_available(edev->device))
+     return EINA_FALSE;
+
+   if (libinput_device_config_accel_set_speed(edev->device, speed) !=
+       LIBINPUT_CONFIG_STATUS_SUCCESS)
+     {
+        WRN("Failed to set mouse accel about device: %s\n",
+            libinput_device_get_name(edev->device));
+        return EINA_FALSE;
+     }
+
+   return EINA_TRUE;
+}