From 9cd2e9ec8fc0127393dfce9c0359d500c8c238be Mon Sep 17 00:00:00 2001
From: Edward Rudd <urkle@outoforder.cc>
Date: Tue, 09 Apr 2019 02:22:50 +0000
Subject: [PATCH] updae source to 2.0.9 source
---
source/src/haptic/linux/SDL_syshaptic.c | 12 ++++++++----
1 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/source/src/haptic/linux/SDL_syshaptic.c b/source/src/haptic/linux/SDL_syshaptic.c
index 9c11a2f..4e4f8a5 100644
--- a/source/src/haptic/linux/SDL_syshaptic.c
+++ b/source/src/haptic/linux/SDL_syshaptic.c
@@ -181,6 +181,9 @@
SDL_UDEV_Quit();
return SDL_SetError("Could not setup haptic <-> udev callback");
}
+
+ /* Force a scan to build the initial device list */
+ SDL_UDEV_Scan();
#endif /* SDL_USE_LIBUDEV */
return numhaptics;
@@ -798,7 +801,8 @@
else if (periodic->type == SDL_HAPTIC_SAWTOOTHDOWN)
dest->u.periodic.waveform = FF_SAW_DOWN;
dest->u.periodic.period = CLAMP(periodic->period);
- dest->u.periodic.magnitude = periodic->magnitude;
+ /* Linux expects 0-65535, so multiply by 2 */
+ dest->u.periodic.magnitude = CLAMP(periodic->magnitude) * 2;
dest->u.periodic.offset = periodic->offset;
/* Linux phase is defined in interval "[0x0000, 0x10000[", corresponds with "[0deg, 360deg[" phase shift. */
dest->u.periodic.phase = ((Uint32)periodic->phase * 0x10000U) / 36000;
@@ -905,9 +909,9 @@
dest->trigger.button = 0;
dest->trigger.interval = 0;
- /* Rumble */
- dest->u.rumble.strong_magnitude = leftright->large_magnitude;
- dest->u.rumble.weak_magnitude = leftright->small_magnitude;
+ /* Rumble (Linux expects 0-65535, so multiply by 2) */
+ dest->u.rumble.strong_magnitude = CLAMP(leftright->large_magnitude) * 2;
+ dest->u.rumble.weak_magnitude = CLAMP(leftright->small_magnitude) * 2;
break;
--
Gitblit v1.9.3