public void SetButtonState(DualShock4Button button, bool pressed) { switch (button) { case DualShock4SpecialButton specialButton: if (pressed) { _nativeReport.bSpecial |= (byte)specialButton.Value; } else { _nativeReport.bSpecial &= (byte)~specialButton.Value; } break; case DualShock4Button normalButton: if (pressed) { _nativeReport.wButtons |= (ushort)normalButton.Value; } else { _nativeReport.wButtons &= (ushort)~normalButton.Value; } break; } if (AutoSubmitReport) { SubmitNativeReport(_nativeReport); } }
public bool this[DualShock4Button button] { get { return(State[(int)button]); } private set { State[(int)button] = value; } }
private void SetValueIfNeeded(DualShock4Button button, bool?value) { if (value.HasValue) { var newValue = value.Value; controller.SetButtonState(button, newValue); } }
private void SetButton(ref uint buttons, int index, DualShock4Button button) { var state = CurrentDualShock.Buttons[button]; if (button == GestureConfirmButton) { state |= GestureConfirmActive; } SetButton(ref buttons, index, state); }
public bool this[DualShock4Button button] { get { return State[(int)button]; } private set { State[(int)button] = value; } }
private void SetButton(ref uint buttons, int index, DualShock4Button button) { var state = CurrentDualShock.Buttons[button]; if (button == GestureConfirmButton) state |= GestureConfirmActive; SetButton(ref buttons, index, state); }