e_info: add mouse_accel option 70/277570/1
authorJunkyeong Kim <jk0430.kim@samsung.com>
Fri, 8 Jul 2022 05:11:20 +0000 (14:11 +0900)
committerJunseok Kim <juns.kim@samsung.com>
Fri, 8 Jul 2022 08:37:24 +0000 (17:37 +0900)
make mouse acceleration set/unset option.
0: off, 1: on (default: on)

Change-Id: I2c7503e0b5223dacc5f90e18672ee4908e1955ef
Signed-off-by: Junkyeong Kim <jk0430.kim@samsung.com>
src/bin/e_info_client.c
src/bin/e_info_server.c

index 969a32a..4fd350d 100644 (file)
@@ -5748,6 +5748,10 @@ _e_info_client_inputgen_usage(void)
    printf("           enlightenment_info -mousegen --btn=1\n");
    printf("           enlightenment_info -mousegen --wheel=1\n");
    printf("           enlightenment_info -mousegen --hwheel=-1\n");
+   printf("\n\n");
+   printf("  enlightenment_info -mouse_accel\n");
+   printf("  \t--state: set mouse acceleration usage [off/0][on/1] (default: on)\n");
+   printf("  example> enlightenment_info -mouse_accel --state=0\n");
    printf("\n");
 }
 
@@ -6212,7 +6216,59 @@ _e_info_client_proc_mousegen(int argc, char **argv)
      return;
 }
 
+static void
+_e_info_client_cb_mouse_accel(const Eldbus_Message *msg)
+{
+   const char *errname = NULL, *errtext = NULL;
+   char *result = NULL;
+
+   EINA_SAFETY_ON_TRUE_GOTO(eldbus_message_error_get(msg, &errname, &errtext), err);
+
+   EINA_SAFETY_ON_FALSE_GOTO(eldbus_message_arguments_get(msg, "s", &result), err);
 
+   if (strncmp(result, E_INFO_INPUT_RESULT_NONE, sizeof(E_INFO_INPUT_RESULT_NONE)))
+     printf("Mouse_accel Failed: %s\n", result);
+
+   return;
+
+err:
+   if(errname || errtext)
+     printf("errname : %s, errmsg : %s\n", errname, errtext);
+   else
+     printf("Error occurred in _e_info_client_cb_mouse_accel\n");
+}
+
+void
+_e_info_client_proc_mouse_accel(int argc, char **argv)
+{
+   int state = 1;
+   char *tmp = NULL, *buf = NULL, *buf_ptr = NULL;
+
+   if (argc < 3)
+     {
+        _e_info_client_inputgen_usage();
+        return;
+     }
+
+   if (!strncmp(argv[2], "--state=", sizeof("--state=") - 1))
+     {
+        tmp = argv[2] + sizeof("--state=") - 1;
+        state = atoi(tmp);
+        if (!(state == 0 || state == 1))
+          {
+             printf("Please input correct mouse_accel state (off: 0), (on: 1)\n");
+             return;
+          }
+     }
+   else
+     {
+        _e_info_client_inputgen_usage();
+        return;
+     }
+
+   if (!_e_info_client_eldbus_message_with_args("mouse_accel", _e_info_client_cb_mouse_accel, "i", state))
+     return;
+}
 
 static void
 _e_info_client_cb_filter(const Eldbus_Message *msg)
@@ -6893,6 +6949,12 @@ ProcInfo procs_to_input[] =
       "Generate mouse events", /* Description */
       _e_info_client_proc_mousegen /* func */
    },
+   {
+      "mouse_accel",   /* Option */
+      NULL,/* Params */
+      "Set mouse acceleration", /* Description */
+      _e_info_client_proc_mouse_accel /* func */
+   },
 };
 
 static Eina_List *list_tracelogs = NULL;
index acd680a..df82d27 100644 (file)
@@ -7061,6 +7061,26 @@ _e_info_server_cb_mousegen(const Eldbus_Service_Interface *iface EINA_UNUSED, co
    return reply;
 }
 
+static Eldbus_Message *
+_e_info_server_cb_mouse_accel(const Eldbus_Service_Interface *iface EINA_UNUSED, const Eldbus_Message *msg)
+{
+   Eldbus_Message *reply;
+   char *result = NULL;
+   int state = 0;
+
+   if (!eldbus_message_arguments_get(msg, "i", &state))
+     {
+        return eldbus_message_error_new(msg, "Mouse_accelFailed",
+                                        "mouse_accel: an attempt to set mouse acceleration usage from method call message failed");
+     }
+
+   result = e_info_server_input_mouse_accel_set(state);
+   reply = eldbus_message_method_return_new(msg);
+
+   eldbus_message_arguments_append(reply, "s", result);
+
+   return reply;
+}
 
 static Eldbus_Message *
 _e_info_server_cb_filter(const Eldbus_Service_Interface *iface EINA_UNUSED, const Eldbus_Message *msg)
@@ -7503,6 +7523,7 @@ static const Eldbus_Method methods[] = {
    { "keygen", ELDBUS_ARGS({"sii", "key information"}), ELDBUS_ARGS({"s", "result message"}), _e_info_server_cb_keygen, 0},
    { "touchgen", ELDBUS_ARGS({"iiii", "touch information"}), ELDBUS_ARGS({"s", "result message"}), _e_info_server_cb_touchgen, 0},
    { "mousegen", ELDBUS_ARGS({"iiii", "mouse information"}), ELDBUS_ARGS({"s", "result message"}), _e_info_server_cb_mousegen, 0},
+   { "mouse_accel", ELDBUS_ARGS({"i", "set mouse acceleration"}), ELDBUS_ARGS({"s", "result message"}), _e_info_server_cb_mouse_accel, 0},
    { "filter", ELDBUS_ARGS({"sis", "win_id, on(1)/off(0), filter name"}), ELDBUS_ARGS({"s", "result of request"}), _e_info_server_cb_filter, 0},
    { "gcov", ELDBUS_ARGS({"i", "option"}), NULL, _e_info_server_cb_gcov, 0},
    { "basic_op_gen", ELDBUS_ARGS({"s","window id" }, {"s", "operation"}), NULL, _e_info_server_cb_basic_operation_generate, 0},