From c6b81344affb0ca9af7de50aff8db7749981aa39 Mon Sep 17 00:00:00 2001 From: Junkyeong Kim Date: Fri, 8 Jul 2022 14:11:20 +0900 Subject: [PATCH] e_info: add mouse_accel option make mouse acceleration set/unset option. 0: off, 1: on (default: on) Change-Id: I2c7503e0b5223dacc5f90e18672ee4908e1955ef Signed-off-by: Junkyeong Kim --- src/bin/e_info_client.c | 62 +++++++++++++++++++++++++++++++++++++++++++++++++ src/bin/e_info_server.c | 21 +++++++++++++++++ 2 files changed, 83 insertions(+) diff --git a/src/bin/e_info_client.c b/src/bin/e_info_client.c index 969a32a..4fd350d 100644 --- a/src/bin/e_info_client.c +++ b/src/bin/e_info_client.c @@ -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; diff --git a/src/bin/e_info_server.c b/src/bin/e_info_server.c index acd680a..df82d27 100644 --- a/src/bin/e_info_server.c +++ b/src/bin/e_info_server.c @@ -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}, -- 2.7.4