From 4ba0ba4c70480f4d275b2fd07ecee4bc44bd1e56 Mon Sep 17 00:00:00 2001 From: Grant Date: Tue, 22 Jun 2021 22:06:19 +0100 Subject: [PATCH 1/2] fix up logging that can confuse users --- input/drivers/udev_input.c | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/input/drivers/udev_input.c b/input/drivers/udev_input.c index 73ed70e428..cfebeaac34 100644 --- a/input/drivers/udev_input.c +++ b/input/drivers/udev_input.c @@ -1216,8 +1216,8 @@ static bool open_devices(udev_input_t *udev, struct udev_list_entry *devs = NULL; struct udev_list_entry *item = NULL; struct udev_enumerate *enumerate = udev_enumerate_new(udev->udev); - int device_index = 0; - + static int device_keyboard = 0; + static int device_mouse = 0; if (!enumerate) return false; @@ -1241,19 +1241,33 @@ static bool open_devices(udev_input_t *udev, if (fd != -1) { bool check = udev_input_add_device(udev, type, devnode, cb); - +#ifdef DEBUG if (!check) RARCH_DBG("[udev] udev_input_add_device SKIPPED : %s (%s).\n", devnode, strerror(errno)); - else +#endif + if (check) { char ident[255]; if (ioctl(fd, EVIOCGNAME(sizeof(ident)), ident) < 0) ident[0] = '\0'; - RARCH_LOG("[udev]: Added Device %s %s (%s).\n", - type == UDEV_INPUT_KEYBOARD ? "Keyboard" : "Mouse", + if ( type == UDEV_INPUT_KEYBOARD) + { + RARCH_LOG("[udev]: Added Device Keyboard#%d %s (%s) .\n", + device_keyboard, ident, devnode); + device_keyboard++; + } + else + { + RARCH_LOG("[udev]: Added Device mouse#%d %s (%s) .\n", + device_mouse, + ident, + devnode); + device_mouse++; + } + } (void)check; From c73592d3794c1387255fc931ec9b1359eb1ea670 Mon Sep 17 00:00:00 2001 From: Grant Date: Tue, 22 Jun 2021 23:00:50 +0100 Subject: [PATCH 2/2] skip mouse with no button errors and keep the rest --- input/drivers/udev_input.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/input/drivers/udev_input.c b/input/drivers/udev_input.c index cfebeaac34..ad65ddd125 100644 --- a/input/drivers/udev_input.c +++ b/input/drivers/udev_input.c @@ -479,7 +479,7 @@ static void udev_handle_mouse(void *data, } } -static bool udev_input_add_device(udev_input_t *udev, +static int udev_input_add_device(udev_input_t *udev, enum udev_input_dev_type type, const char *devnode, device_handle_cb cb) { unsigned char keycaps[(KEY_MAX / 8) + 1]; @@ -518,7 +518,7 @@ static bool udev_input_add_device(udev_input_t *udev, if (type == UDEV_INPUT_MOUSE || type == UDEV_INPUT_TOUCHPAD ) { if (ioctl(fd, EVIOCGBIT(EV_KEY, sizeof (keycaps)), keycaps) == -1) - return 0; /* gotta have some buttons! :) */ + return -1; /* gotta have some buttons! return -1 to skip error logging for this:) */ if (ioctl(fd, EVIOCGABS(ABS_X), &absinfo) >= 0) { @@ -1240,13 +1240,11 @@ static bool open_devices(udev_input_t *udev, if (fd != -1) { - bool check = udev_input_add_device(udev, type, devnode, cb); -#ifdef DEBUG - if (!check) - RARCH_DBG("[udev] udev_input_add_device SKIPPED : %s (%s).\n", + int check = udev_input_add_device(udev, type, devnode, cb); + if (!check && check != -1 ) + RARCH_DBG("[udev] udev_input_add_device error : %s (%s).\n", devnode, strerror(errno)); -#endif - if (check) + else if (check != -1 && check != 0) { char ident[255]; if (ioctl(fd, EVIOCGNAME(sizeof(ident)), ident) < 0)