diff --git a/input/drivers/udev_input.c b/input/drivers/udev_input.c
index 35208ac7ca..a136d4eef4 100644
--- a/input/drivers/udev_input.c
+++ b/input/drivers/udev_input.c
@@ -13,14 +13,9 @@
* If not, see .
*/
-#include "../input_common.h"
-#include "../input_joypad.h"
-#include "../input_keymaps.h"
-#include "../../general.h"
-#include
-#include
#include
#include
+
#include
#include
#include
@@ -35,16 +30,23 @@
#include
#include
+#include
+
+#include "../input_joypad.h"
+#include "../input_keymaps.h"
+#include "../../general.h"
+
#ifdef HAVE_CONFIG_H
#include "../../config.h"
#endif
-/* Need libxkbcommon to translate raw evdev events to characters
- * which can be passed to keyboard callback in a sensible way. */
-
#ifdef HAVE_XKBCOMMON
+/* We need libxkbcommon to translate raw evdev events to characters
+ * which can be passed to keyboard callback in a sensible way. */
#include
+
#define MOD_MAP_SIZE 5
+
#endif
typedef struct udev_input udev_input_t;
@@ -141,12 +143,11 @@ static void udev_handle_touchpad(udev_input_t *udev,
{
case ABS_X:
{
- int x = event->value - dev->state.touchpad.info_x.minimum;
- int range = dev->state.touchpad.info_x.maximum -
+ int x = event->value - dev->state.touchpad.info_x.minimum;
+ int range = dev->state.touchpad.info_x.maximum -
dev->state.touchpad.info_x.minimum;
float x_norm = (float)x / range;
-
- float rel_x = x_norm - dev->state.touchpad.x;
+ float rel_x = x_norm - dev->state.touchpad.x;
if (dev->state.touchpad.touch)
udev->mouse_x += (int16_t)
@@ -160,12 +161,11 @@ static void udev_handle_touchpad(udev_input_t *udev,
case ABS_Y:
{
- int y = event->value - dev->state.touchpad.info_y.minimum;
- int range = dev->state.touchpad.info_y.maximum -
+ int y = event->value - dev->state.touchpad.info_y.minimum;
+ int range = dev->state.touchpad.info_y.maximum -
dev->state.touchpad.info_y.minimum;
float y_norm = (float)y / range;
-
- float rel_y = y_norm - dev->state.touchpad.y;
+ float rel_y = y_norm - dev->state.touchpad.y;
if (dev->state.touchpad.touch)
udev->mouse_y += (int16_t)roundf(dev->state.touchpad.mod_y * rel_y);
@@ -262,7 +262,7 @@ static bool udev_input_hotplug_available(udev_input_t *udev)
if (!udev || !udev->monitor)
return false;
- fds.fd = udev_monitor_get_fd(udev->monitor);
+ fds.fd = udev_monitor_get_fd(udev->monitor);
fds.events = POLLIN;
return (poll(&fds, 1, 0) == 1) && (fds.revents & POLLIN);
@@ -272,8 +272,8 @@ static bool add_device(udev_input_t *udev,
const char *devnode, device_handle_cb cb)
{
int fd;
- struct stat st;
struct input_device **tmp;
+ struct stat st = {0};
struct input_device *device = NULL;
struct epoll_event event = {0};
@@ -291,8 +291,8 @@ static bool add_device(udev_input_t *udev,
return false;
}
- device->fd = fd;
- device->dev = st.st_dev;
+ device->fd = fd;
+ device->dev = st.st_dev;
device->handle_cb = cb;
strlcpy(device->devnode, devnode, sizeof(device->devnode));
@@ -320,7 +320,7 @@ static bool add_device(udev_input_t *udev,
tmp[udev->num_devices++] = device;
udev->devices = tmp;
- event.events = EPOLLIN;
+ event.events = EPOLLIN;
event.data.ptr = device;
/* Shouldn't happen, but just check it. */
@@ -363,15 +363,15 @@ static void udev_input_handle_hotplug(udev_input_t *udev)
if (!dev)
return;
- val_keyboard = udev_device_get_property_value(dev, "ID_INPUT_KEYBOARD");
- val_mouse = udev_device_get_property_value(dev, "ID_INPUT_MOUSE");
- val_touchpad = udev_device_get_property_value(dev, "ID_INPUT_TOUCHPAD");
- action = udev_device_get_action(dev);
- devnode = udev_device_get_devnode(dev);
+ val_keyboard = udev_device_get_property_value(dev, "ID_INPUT_KEYBOARD");
+ val_mouse = udev_device_get_property_value(dev, "ID_INPUT_MOUSE");
+ val_touchpad = udev_device_get_property_value(dev, "ID_INPUT_TOUCHPAD");
+ action = udev_device_get_action(dev);
+ devnode = udev_device_get_devnode(dev);
- is_keyboard = val_keyboard && !strcmp(val_keyboard, "1") && devnode;
- is_mouse = val_mouse && !strcmp(val_mouse, "1") && devnode;
- is_touchpad = val_touchpad && !strcmp(val_touchpad, "1") && devnode;
+ is_keyboard = val_keyboard && !strcmp(val_keyboard, "1") && devnode;
+ is_mouse = val_mouse && !strcmp(val_mouse, "1") && devnode;
+ is_touchpad = val_touchpad && !strcmp(val_touchpad, "1") && devnode;
if (!is_keyboard && !is_mouse && !is_touchpad)
goto end;
@@ -413,8 +413,8 @@ static void udev_input_poll(void *data)
struct epoll_event events[32];
udev_input_t *udev = (udev_input_t*)data;
- udev->mouse_x = udev->mouse_y = 0;
- udev->mouse_wu = udev->mouse_wd = 0;
+ udev->mouse_x = udev->mouse_y = 0;
+ udev->mouse_wu = udev->mouse_wd = 0;
udev->mouse_whu = udev->mouse_whd = 0;
while (udev_input_hotplug_available(udev))
@@ -556,7 +556,7 @@ static int16_t udev_input_state(void *data, const struct retro_keybind **binds,
static bool udev_input_bind_button_pressed(void *data, int key)
{
- udev_input_t *udev = (udev_input_t*)data;
+ udev_input_t *udev = (udev_input_t*)data;
settings_t *settings = config_get_ptr();
return udev_input_is_pressed(udev, settings->input.binds[0], key) ||