public override void ResumeHaptics() { if (m_leftRumbleValues.Equals(m_rightRumbleValues) && m_leftRumbleValues.HasValues) { var cmd = NPadDeviceIOCTLOutputCommand.Create(); cmd.positions = (byte)NPadDeviceIOCTLOutputCommand.NPadRumblePostion.All; m_leftRumbleValues.ApplyRumbleValues(ref cmd); ExecuteCommand(ref cmd); } else { if (m_leftRumbleValues.HasValues) { var cmd = NPadDeviceIOCTLOutputCommand.Create(); cmd.positions = (byte)NPadDeviceIOCTLOutputCommand.NPadRumblePostion.Left; m_leftRumbleValues.ApplyRumbleValues(ref cmd); ExecuteCommand(ref cmd); } if (m_rightRumbleValues.HasValues) { var cmd = NPadDeviceIOCTLOutputCommand.Create(); cmd.positions = (byte)NPadDeviceIOCTLOutputCommand.NPadRumblePostion.Right; m_rightRumbleValues.ApplyRumbleValues(ref cmd); ExecuteCommand(ref cmd); } } }
public void ApplyRumbleValues(ref NPadDeviceIOCTLOutputCommand cmd) { cmd.amplitudeLow = (float)amplitudeLow; cmd.frequencyLow = (float)frequencyLow; cmd.amplitudeHigh = (float)amplitudeHigh; cmd.frequencyHigh = (float)frequencyHigh; }
public override void ResetHaptics() { var cmd = NPadDeviceIOCTLOutputCommand.Create(); ExecuteCommand(ref cmd); m_leftRumbleValues.Reset(); m_rightRumbleValues.Reset(); }
/// <summary> /// Set the intensity and vibration frequency for the right low and high frequency rumble motors /// </summary> /// <param name="lowAmplitude">Low frequency motor's vibration intensity, 0..1 range</param> /// <param name="lowFrequency">Low frequency motor's vibration frequency in Hz</param> /// <param name="highAmplitude">High frequency motor's vibration intensity, 0..1 range</param> /// <param name="highFrequency">High frequency motor's vibration frequency in Hz</param> public void SetMotorSpeedRight(float lowAmplitude, float lowFrequency, float highAmplitude, float highFrequency) { m_rightRumbleValues.SetRumbleValues(lowAmplitude, lowFrequency, highAmplitude, highFrequency); var cmd = NPadDeviceIOCTLOutputCommand.Create(); cmd.positions = (byte)NPadDeviceIOCTLOutputCommand.NPadRumblePostion.Right; m_rightRumbleValues.ApplyRumbleValues(ref cmd); ExecuteCommand(ref cmd); }
public override void PauseHaptics() { var cmd = NPadDeviceIOCTLOutputCommand.Create(); ExecuteCommand(ref cmd); }