From f38e4edbb59b45963e96a29653bd01200442af06 Mon Sep 17 00:00:00 2001 From: Edgar Simo Date: Thu, 31 Jul 2008 16:13:37 +0000 Subject: [PATCH] Another set of fixes to try to get haptic subsystem compiling on windows. --- src/haptic/win32/SDL_syshaptic.c | 49 ++++++++++++++++++++++++++++++-- 1 file changed, 46 insertions(+), 3 deletions(-) diff --git a/src/haptic/win32/SDL_syshaptic.c b/src/haptic/win32/SDL_syshaptic.c index fba8c2290..f8bbf92d5 100644 --- a/src/haptic/win32/SDL_syshaptic.c +++ b/src/haptic/win32/SDL_syshaptic.c @@ -200,6 +200,48 @@ DI_EffectCallback(LPCDIEffectInfo pei, LPVOID pv) haptic->supported = 0; /* Get supported. */ + switch (pei->guid) { + case GUID_Spring: + haptic->supported |= SDL_HAPTIC_SPRING; + break; + case GUID_Damper: + haptic->supported |= SDL_HAPTIC_DAMPER; + break; + case GUID_Inertia: + haptic->supported |= SDL_HAPTIC_INERTIA; + break; + case GUID_Friction: + haptic->supported |= SDL_HAPTIC_FRICTION; + break; + case GUID_ConstantForce: + haptic->supported |= SDL_HAPTIC_CONSTANT; + break; + case GUID_CustomForce: + haptic->supported |= SDL_HAPTIC_CUSTOM; + break; + case GUID_Sine: + haptic->supported |= SDL_HAPTIC_SINE; + break; + case GUID_Square: + haptic->supported |= SDL_HAPTIC_SQUARE; + break; + case GUID_Triangle: + haptic->supported |= SDL_HAPTIC_TRIANGLE; + break; + case GUID_SawtoothUp: + haptic->supported |= SDL_HAPTIC_SAWTOOTHUP; + break; + case GUID_SawtoothDown: + haptic->supported |= SDL_HAPTIC_SAWTOOTHDOWN; + break; + case GUID_RampForce: + haptic->supported |= SDL_HAPTIC_RAMP; + break; + + default: + break; + } +/* EFFECT_TEST(GUID_Spring, SDL_HAPTIC_SPRING); EFFECT_TEST(GUID_Damper, SDL_HAPTIC_DAMPER); EFFECT_TEST(GUID_Inertia, SDL_HAPTIC_INERTIA); @@ -212,6 +254,7 @@ DI_EffectCallback(LPCDIEffectInfo pei, LPVOID pv) EFFECT_TEST(GUID_SawtoothUp, SDL_HAPTIC_SAWTOOTHUP); EFFECT_TEST(GUID_SawtoothDown, SDL_HAPTIC_SAWTOOTHDOWN); EFFECT_TEST(GUID_RampForce, SDL_HAPTIC_RAMP); +*/ /* Check for more. */ return DIENUM_CONTINUE; @@ -246,8 +289,8 @@ SDL_SYS_HapticOpenFromInstance(SDL_Haptic * haptic, DIDEVICEINSTANCE instance) SDL_memset(haptic->hwdata, 0, sizeof(*haptic->hwdata)); /* Open the device */ - ret = IDirectInput_CreateDevice( dinput, &instance, - guidInstance, &device ); + ret = IDirectInput_CreateDevice( dinput, &instance.guidInstance, + &device, NULL ); if (FAILED(ret)) { DI_SetError("Creating DirectInput device",ret); goto creat_err; @@ -300,7 +343,7 @@ SDL_SYS_HapticOpenFromInstance(SDL_Haptic * haptic, DIDEVICEINSTANCE instance) /* Get capabilities. */ ret = IDirectInputDevice2_GetCapabilities( haptic->hwdata->device, - haptic->hwdata->capabilities ); + &haptic->hwdata->capabilities ); if (FAILED(ret)) { DI_SetError("Getting device capabilities",ret); goto acquire_err;