public JoystickState GetState(int index) { XInputState xstate; XInputErrorCode error = xinput.GetState((XInputUserIndex)index, out xstate); JoystickState state = new JoystickState(); if (error == XInputErrorCode.Success) { state.SetIsConnected(true); state.SetAxis(0, (short)xstate.GamePad.ThumbLX); state.SetAxis(1, (short)Math.Min(short.MaxValue, -xstate.GamePad.ThumbLY)); state.SetAxis(2, (short)Common.HidHelper.ScaleValue(xstate.GamePad.LeftTrigger, 0, byte.MaxValue, short.MinValue, short.MaxValue)); state.SetAxis(3, (short)xstate.GamePad.ThumbRX); state.SetAxis(4, (short)Math.Min(short.MaxValue, -xstate.GamePad.ThumbRY)); state.SetAxis(5, (short)Common.HidHelper.ScaleValue(xstate.GamePad.RightTrigger, 0, byte.MaxValue, short.MinValue, short.MaxValue)); state.SetButton(0, (xstate.GamePad.Buttons & XInputButtons.A) != 0); state.SetButton(1, (xstate.GamePad.Buttons & XInputButtons.B) != 0); state.SetButton(2, (xstate.GamePad.Buttons & XInputButtons.X) != 0); state.SetButton(3, (xstate.GamePad.Buttons & XInputButtons.Y) != 0); state.SetButton(4, (xstate.GamePad.Buttons & XInputButtons.LeftShoulder) != 0); state.SetButton(5, (xstate.GamePad.Buttons & XInputButtons.RightShoulder) != 0); state.SetButton(6, (xstate.GamePad.Buttons & XInputButtons.Back) != 0); state.SetButton(7, (xstate.GamePad.Buttons & XInputButtons.Start) != 0); state.SetButton(8, (xstate.GamePad.Buttons & XInputButtons.LeftThumb) != 0); state.SetButton(9, (xstate.GamePad.Buttons & XInputButtons.RightThumb) != 0); state.SetButton(10, (xstate.GamePad.Buttons & XInputButtons.Guide) != 0); state.SetHat(JoystickHat.Hat0, new JoystickHatState(TranslateHat(xstate.GamePad.Buttons))); } return(state); }
public JoystickCapabilities GetCapabilities(int index) { XInputDeviceCapabilities xcaps; XInputErrorCode error = xinput.GetCapabilities( (XInputUserIndex)index, XInputCapabilitiesFlags.Default, out xcaps); if (error == XInputErrorCode.Success) { //GamePadType type = TranslateSubType(xcaps.SubType); int buttons = TranslateButtons(xcaps.GamePad.Buttons); int axes = TranslateAxes(ref xcaps.GamePad); return(new JoystickCapabilities(axes, buttons, 1, true)); } return(new JoystickCapabilities()); }
public GamePadState GetState(int index) { XInputState xstate; XInputErrorCode error = xinput.GetState((XInputUserIndex)index, out xstate); GamePadState state = new GamePadState(); if (error == XInputErrorCode.Success) { state.SetConnected(true); state.SetAxis(GamePadAxes.LeftX, xstate.GamePad.ThumbLX); state.SetAxis(GamePadAxes.LeftY, xstate.GamePad.ThumbLY); state.SetAxis(GamePadAxes.RightX, xstate.GamePad.ThumbRX); state.SetAxis(GamePadAxes.RightY, xstate.GamePad.ThumbRY); state.SetTriggers(xstate.GamePad.LeftTrigger, xstate.GamePad.RightTrigger); state.SetButton(TranslateButtons(xstate.GamePad.Buttons), true); } return(state); }