void SDL_DINPUT_HapticDestroyEffect(SDL_Haptic * haptic, struct haptic_effect *effect) { HRESULT ret; ret = IDirectInputEffect_Unload(effect->hweffect->ref); if (FAILED(ret)) { DI_SetError("Removing effect from the device", ret); } SDL_SYS_HapticFreeDIEFFECT(&effect->hweffect->effect, effect->effect.type); }
/* * Frees the effect. */ void SDL_SYS_HapticDestroyEffect(SDL_Haptic * haptic, struct haptic_effect *effect) { HRESULT ret; if (haptic->hwdata->bXInputHaptic) { SDL_SYS_HapticStopEffect(haptic, effect); } else { ret = IDirectInputEffect_Unload(effect->hweffect->ref); if (FAILED(ret)) { DI_SetError("Removing effect from the device", ret); } SDL_SYS_HapticFreeDIEFFECT(&effect->hweffect->effect, effect->effect.type); } SDL_free(effect->hweffect); effect->hweffect = NULL; }