Files
buildroot/package/miyoo/joymap/0001-use-tv-instead-of-time-member-for-input_event.patch

128 lines
3.8 KiB
Diff

From 11ef6a05adf55fded350d46ff6ad771b626c0c30 Mon Sep 17 00:00:00 2001
From: Apaczer <94932128+Apaczer@users.noreply.github.com>
Date: Mon, 28 Oct 2024 22:21:09 +0100
Subject: [PATCH 1/2] use tv instead of time member for input_event
---
devices.c | 48 ++++++++++++++++++++++++++++++++++++++++--------
1 file changed, 40 insertions(+), 8 deletions(-)
diff --git a/devices.c b/devices.c
index 63cb104..00f3710 100644
--- a/devices.c
+++ b/devices.c
@@ -13,6 +13,14 @@
#include "program.h"
#include "mapper.h"
+#ifndef input_event_sec
+#define input_event_sec time.tv_sec
+#endif
+
+#ifndef input_event_usec
+#define input_event_usec time.tv_usec
+#endif
+
#define NUM_JOYSTICKS 10
#define INTERVAL 50
#define ABS_UL 1 + ABS_MAX / ULONG_BITS
@@ -343,7 +351,10 @@ void unregister_devices();
void press_key(int code, int value) {
struct input_event event;
- gettimeofday(&event.time, NULL);
+ struct timeval tv;
+ gettimeofday(&tv, NULL);
+ event.input_event_sec = tv.tv_sec;
+ event.input_event_usec = tv.tv_usec;
event.type=EV_KEY;
event.code=code;
event.value=value;
@@ -363,7 +374,10 @@ void release_keys(void) {
void press_mouse_button(int code, int value) {
struct input_event event;
- gettimeofday(&event.time, NULL);
+ struct timeval tv;
+ gettimeofday(&tv, NULL);
+ event.input_event_sec = tv.tv_sec;
+ event.input_event_usec = tv.tv_usec;
event.type=EV_KEY;
event.code=code;
event.value=value;
@@ -401,7 +415,10 @@ void move_mouse_wheel(int rdw) {
void send_move_mouse_x(int dx) {
struct input_event event;
- gettimeofday(&event.time, NULL);
+ struct timeval tv;
+ gettimeofday(&tv, NULL);
+ event.input_event_sec = tv.tv_sec;
+ event.input_event_usec = tv.tv_usec;
event.type=EV_REL;
event.code=REL_X;
event.value=dx;
@@ -414,7 +431,10 @@ void send_move_mouse_x(int dx) {
void send_move_mouse_wheel(int dwheel) {
struct input_event event;
- gettimeofday(&event.time, NULL);
+ struct timeval tv;
+ gettimeofday(&tv, NULL);
+ event.input_event_sec = tv.tv_sec;
+ event.input_event_usec = tv.tv_usec;
event.type=EV_REL;
event.code=REL_WHEEL;
event.value=dwheel;
@@ -427,7 +447,10 @@ void send_move_mouse_wheel(int dwheel) {
void send_move_mouse_y(int dy) {
struct input_event event;
- gettimeofday(&event.time, NULL);
+ struct timeval tv;
+ gettimeofday(&tv, NULL);
+ event.input_event_sec = tv.tv_sec;
+ event.input_event_usec = tv.tv_usec;
event.type=EV_REL;
event.code=REL_Y;
event.value=dy;
@@ -500,7 +523,10 @@ void release_mouse_buttons(void) {
void press_joy_button(int j, int code, int value) {
struct input_event event;
- gettimeofday(&event.time, NULL);
+ struct timeval tv;
+ gettimeofday(&tv, NULL);
+ event.input_event_sec = tv.tv_sec;
+ event.input_event_usec = tv.tv_usec;
if (j==255) {
event.type=EV_KEY;
event.code=code;
@@ -564,7 +590,10 @@ int calibrate(int j, int v) {
void set_joy_axis(int j, int axis, int value) {
struct input_event event;
- gettimeofday(&event.time, NULL);
+ struct timeval tv;
+ gettimeofday(&tv, NULL);
+ event.input_event_sec = tv.tv_sec;
+ event.input_event_usec = tv.tv_usec;
value = rescale(value);
if (j==255) {
event.type=EV_ABS;
@@ -590,7 +619,10 @@ void set_joy_axis(int j, int axis, int value) {
void set_joy_ff_status(int j, int effect, int value) {
struct input_event event;
- gettimeofday(&event.time, NULL);
+ struct timeval tv;
+ gettimeofday(&tv, NULL);
+ event.input_event_sec = tv.tv_sec;
+ event.input_event_usec = tv.tv_usec;
event.type=EV_FF_STATUS;
event.code=effect;
event.value=value;
--
2.45.2.windows.1