Bruno Jesus : dinput: Fix phase conversion on periodic effects.

Alexandre Julliard julliard at winehq.org
Wed Sep 14 10:28:51 CDT 2016


Module: wine
Branch: master
Commit: 5ab0126f1d6f2c0edbee7668214c9fbef86a6563
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=5ab0126f1d6f2c0edbee7668214c9fbef86a6563

Author: Bruno Jesus <00cpxxx at gmail.com>
Date:   Wed Sep 14 02:25:32 2016 -0300

dinput: Fix phase conversion on periodic effects.

Based on idea by Elias Vanderstuyft.

Signed-off-by: Bruno Jesus <00cpxxx at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/dinput/effect_linuxinput.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/dlls/dinput/effect_linuxinput.c b/dlls/dinput/effect_linuxinput.c
index 9205c9c..bb45792 100644
--- a/dlls/dinput/effect_linuxinput.c
+++ b/dlls/dinput/effect_linuxinput.c
@@ -632,7 +632,8 @@ static HRESULT WINAPI LinuxInputEffectImpl_SetParameters(
 
             This->effect.u.periodic.magnitude = (tsp->dwMagnitude / 10) * 32;
             This->effect.u.periodic.offset = (tsp->lOffset / 10) * 32;
-            This->effect.u.periodic.phase = (tsp->dwPhase / 9) * 8; /* == (/ 36 * 32) */
+            /* phase ranges from 0 - 35999 in dinput and 0 - 65535 on linux */
+            This->effect.u.periodic.phase = (tsp->dwPhase / 36) * 65;
             /* dinput uses microseconds, linux uses miliseconds */
             if (tsp->dwPeriod <= 1000)
                 This->effect.u.periodic.period = 1;




More information about the wine-cvs mailing list