static HRESULT WINAPI effect_Start(IDirectInputEffect *iface, DWORD iterations, DWORD flags) { EffectImpl *This = impl_from_IDirectInputEffect(iface); TRACE("%p 0x%x 0x%x\n", This, iterations, flags); return osx_to_win32_hresult(FFEffectStart(This->effect, iterations, flags)); }
void JoypadOSX::joypad_vibration_start(int p_id, float p_magnitude, float p_duration, uint64_t p_timestamp) { joypad *joy = &device_list[get_joy_index(p_id)]; joy->ff_timestamp = p_timestamp; joy->ff_effect.dwDuration = p_duration * FF_SECONDS; joy->ff_effect.dwGain = p_magnitude * FF_FFNOMINALMAX; FFEffectSetParameters(joy->ff_object, &joy->ff_effect, FFEP_DURATION | FFEP_GAIN); FFEffectStart(joy->ff_object, 1, 0); }
/* * Runs an effect. */ int SDL_SYS_HapticRunEffect(SDL_Haptic * haptic, struct haptic_effect *effect, Uint32 iterations) { HRESULT ret; Uint32 iter; /* Check if it's infinite. */ if (iterations == SDL_HAPTIC_INFINITY) { iter = FF_INFINITE; } else iter = iterations; /* Run the effect. */ ret = FFEffectStart(effect->hweffect->ref, iter, 0); if (ret != FF_OK) { return SDL_SetError("Haptic: Unable to run the effect: %s.", FFStrError(ret)); } return 0; }