Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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());
        }
Exemplo n.º 3
0
        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);
        }