mirror of
https://github.com/XProger/OpenLara.git
synced 2025-08-20 11:51:36 +02:00
analogue stick fix for raspberry pi (#463)
* Calibrate analogue gamepad sticks on rpi * Allow overriding analogue stick centre on rpi --------- Co-authored-by: twojstaryzdomu <twojstaryzdomu@github.com>
This commit is contained in:
@@ -197,6 +197,7 @@ int inputDevices[MAX_INPUT_DEVICES];
|
|||||||
udev *udevObj;
|
udev *udevObj;
|
||||||
udev_monitor *udevMon;
|
udev_monitor *udevMon;
|
||||||
int udevMon_fd;
|
int udevMon_fd;
|
||||||
|
int joy_centre;
|
||||||
|
|
||||||
vec2 joyL, joyR;
|
vec2 joyL, joyR;
|
||||||
|
|
||||||
@@ -347,6 +348,10 @@ bool inputInit() {
|
|||||||
}
|
}
|
||||||
udev_enumerate_unref(e);
|
udev_enumerate_unref(e);
|
||||||
|
|
||||||
|
const char *temp = getenv("JOY_CENTRE");
|
||||||
|
if (temp && (joy_centre = atoi(temp)))
|
||||||
|
LOG("input: joy centred at %d\n", joy_centre);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -359,11 +364,13 @@ void inputFree() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#define JOY_DEAD_ZONE_STICK 8192
|
#define JOY_DEAD_ZONE_STICK 8192
|
||||||
|
#define JOY_CENTRE 32768
|
||||||
|
|
||||||
float joyAxisValue(int value) {
|
float joyAxisValue(int value) {
|
||||||
|
value -= joy_centre ? joy_centre : JOY_CENTRE;
|
||||||
if (value > -JOY_DEAD_ZONE_STICK && value < JOY_DEAD_ZONE_STICK)
|
if (value > -JOY_DEAD_ZONE_STICK && value < JOY_DEAD_ZONE_STICK)
|
||||||
return 0.0f;
|
return 0.0f;
|
||||||
return value / 32767.0f;
|
return value / 32768.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
float joyTrigger(int value) {
|
float joyTrigger(int value) {
|
||||||
|
Reference in New Issue
Block a user