public void Vibrate(XInputVibration strength, TimeSpan length) { XInput.XInputSetState(_playerIndex, ref strength); if (length != TimeSpan.MinValue) { _stopMotorTime = DateTime.Now.Add(length); _stopMotorTimerActive = true; } }
//Updates the state for the controller public void UpdateState() { int result = XInput.XInputGetState(_playerIndex, ref gamepadStateCurrent); IsConnected = (result == 0); UpdateBatteryState(); if (gamepadStateCurrent.PacketNumber != gamepadStatePrev.PacketNumber) { OnStateChanged(); } gamepadStatePrev.Copy(gamepadStateCurrent); if (_stopMotorTimerActive && (DateTime.Now >= _stopMotorTime)) { XInputVibration stopStrength = new XInputVibration() { LeftMotorSpeed = 0, RightMotorSpeed = 0 }; XInput.XInputSetState(_playerIndex, ref stopStrength); } }
public void Vibrate(XInputVibration strength) { _stopMotorTimerActive = false; XInput.XInputSetState(_playerIndex, ref strength); }