Esempio n. 1
0
        private HatPosition TranslateHat(XInputButtons buttons)
        {
            XInputButtons dir = 0;

            dir =XInputButtons.DPadUp | XInputButtons.DPadLeft;
            if ((buttons & dir) == dir)
                return HatPosition.UpLeft;
            dir = XInputButtons.DPadUp | XInputButtons.DPadRight;
            if ((buttons & dir) == dir)
                return HatPosition.UpRight;
            dir = XInputButtons.DPadDown | XInputButtons.DPadLeft;
            if ((buttons & dir) == dir)
                return HatPosition.DownLeft;
            dir = XInputButtons.DPadDown | XInputButtons.DPadRight;
            if ((buttons & dir) == dir)
                return HatPosition.DownRight;

            dir = XInputButtons.DPadUp;
            if ((buttons & dir) == dir)
                return HatPosition.Up;
            dir = XInputButtons.DPadRight;
            if ((buttons & dir) == dir)
                return HatPosition.Right;
            dir = XInputButtons.DPadDown;
            if ((buttons & dir) == dir)
                return HatPosition.Down;
            dir = XInputButtons.DPadLeft;
            if ((buttons & dir) == dir)
                return HatPosition.Left;

            return HatPosition.Centered;
        }
        private HatPosition TranslateHat(XInputButtons buttons)
        {
            XInputButtons dir = 0;

            dir = XInputButtons.DPadUp | XInputButtons.DPadLeft;
            if ((buttons & dir) == dir)
            {
                return(HatPosition.UpLeft);
            }

            dir = XInputButtons.DPadUp | XInputButtons.DPadRight;
            if ((buttons & dir) == dir)
            {
                return(HatPosition.UpRight);
            }

            dir = XInputButtons.DPadDown | XInputButtons.DPadLeft;
            if ((buttons & dir) == dir)
            {
                return(HatPosition.DownLeft);
            }

            dir = XInputButtons.DPadDown | XInputButtons.DPadRight;
            if ((buttons & dir) == dir)
            {
                return(HatPosition.DownRight);
            }

            dir = XInputButtons.DPadUp;
            if ((buttons & dir) == dir)
            {
                return(HatPosition.Up);
            }

            dir = XInputButtons.DPadRight;
            if ((buttons & dir) == dir)
            {
                return(HatPosition.Right);
            }

            dir = XInputButtons.DPadDown;
            if ((buttons & dir) == dir)
            {
                return(HatPosition.Down);
            }

            dir = XInputButtons.DPadLeft;
            if ((buttons & dir) == dir)
            {
                return(HatPosition.Left);
            }

            return(HatPosition.Centered);
        }
Esempio n. 3
0
        public static XInputErrorCodes UpdateGamepad()
        {
            if (!GamepadEnabled || !IsVista)
            {
                return(XInputErrorCodes.AccessDenied);
            }

            try
            {
                var ret = SafeNativeMethods.XInputGetState(0, out padState);
                GamepadAvailable = (ret == XInputErrorCodes.Success);
                if (ret == XInputErrorCodes.Success)
                {
                    GamepadState    = padState.GamePad;
                    GamepadHasInput = (padPacket != padState.PacketNumber);

                    if (GamepadHasInput)
                    {
                        var rawButtons = padState.GamePad.Buttons;
                        DPad = rawButtons & directionMask;
                        var newTrigs = rawButtons;                         // & triggerMask;
                        if (lastTrigs != newTrigs)
                        {
                            Triggers = lastTrigs = newTrigs;
                        }
                        else if (newTrigs == lastTrigs)
                        {
                            Triggers = lastTrigs = 0;
                        }
                    }

                    padPacket = padState.PacketNumber;
                }
                return(ret);
            }
            catch (DllNotFoundException)
            {
                //Thanks to Adamsk on #rgrd for bringing this to my attention.
                GamepadEnabled = false;
                return(XInputErrorCodes.AccessDenied);
            }
        }
Esempio n. 4
0
        Buttons TranslateButtons(XInputButtons xbuttons)
        {
            Buttons buttons = 0;

            buttons |= (xbuttons & XInputButtons.A) != 0 ? Buttons.A : 0;
            buttons |= (xbuttons & XInputButtons.B) != 0 ? Buttons.B : 0;
            buttons |= (xbuttons & XInputButtons.X) != 0 ? Buttons.X : 0;
            buttons |= (xbuttons & XInputButtons.Y) != 0 ? Buttons.Y : 0;
            buttons |= (xbuttons & XInputButtons.Start) != 0 ? Buttons.Start : 0;
            buttons |= (xbuttons & XInputButtons.Back) != 0 ? Buttons.Back : 0;
            //buttons |= (xbuttons & XInputButtons.BigButton) != 0 ? Buttons.BigButton : 0;
            buttons |= (xbuttons & XInputButtons.LeftShoulder) != 0 ? Buttons.LeftShoulder : 0;
            buttons |= (xbuttons & XInputButtons.RightShoulder) != 0 ? Buttons.RightShoulder : 0;
            buttons |= (xbuttons & XInputButtons.LeftThumb) != 0 ? Buttons.LeftStick : 0;
            buttons |= (xbuttons & XInputButtons.RightThumb) != 0 ? Buttons.RightStick : 0;
            buttons |= (xbuttons & XInputButtons.DPadDown) != 0 ? Buttons.DPadDown : 0;
            buttons |= (xbuttons & XInputButtons.DPadUp) != 0 ? Buttons.DPadUp : 0;
            buttons |= (xbuttons & XInputButtons.DPadLeft) != 0 ? Buttons.DPadLeft : 0;
            buttons |= (xbuttons & XInputButtons.DPadRight) != 0 ? Buttons.DPadRight : 0;
            return(buttons);
        }
 private int TranslateButtons(XInputButtons xbuttons)
 {
     return(NumberOfSetBits((int)xbuttons));
 }
Esempio n. 6
0
 /// <summary>
 /// Function to retrieve the buttons for the joystick/gamepad.
 /// </summary>
 /// <returns>
 /// The list of buttons for the joystick/gamepad.
 /// </returns>
 /// <remarks>Implementors must implement this method so the object can get the list of buttons for the device.</remarks>
 protected override JoystickButtons GetButtons()
 {
     _buttonList = new XInputButtons();
     return(_buttonList);
 }
Esempio n. 7
0
 public static void ReleaseTriggers()
 {
     Triggers = 0;
 }
Esempio n. 8
0
 Buttons TranslateButtons(XInputButtons xbuttons)
 {
     Buttons buttons = 0;
     buttons |= (xbuttons & XInputButtons.A) != 0 ? Buttons.A : 0;
     buttons |= (xbuttons & XInputButtons.B) != 0 ? Buttons.B : 0;
     buttons |= (xbuttons & XInputButtons.X) != 0 ? Buttons.X : 0;
     buttons |= (xbuttons & XInputButtons.Y) != 0 ? Buttons.Y : 0;
     buttons |= (xbuttons & XInputButtons.Start) != 0 ? Buttons.Start : 0;
     buttons |= (xbuttons & XInputButtons.Back) != 0 ? Buttons.Back : 0;
     //buttons |= (xbuttons & XInputButtons.BigButton) != 0 ? Buttons.BigButton : 0;
     buttons |= (xbuttons & XInputButtons.LeftShoulder) != 0 ? Buttons.LeftShoulder : 0;
     buttons |= (xbuttons & XInputButtons.RightShoulder) != 0 ? Buttons.RightShoulder : 0;
     buttons |= (xbuttons & XInputButtons.LeftThumb) != 0 ? Buttons.LeftStick : 0;
     buttons |= (xbuttons & XInputButtons.RightThumb) != 0 ? Buttons.RightStick : 0;
     buttons |= (xbuttons & XInputButtons.DPadDown) != 0 ? Buttons.DPadDown : 0;
     buttons |= (xbuttons & XInputButtons.DPadUp) != 0 ? Buttons.DPadUp : 0;
     buttons |= (xbuttons & XInputButtons.DPadLeft) != 0 ? Buttons.DPadLeft : 0;
     buttons |= (xbuttons & XInputButtons.DPadRight) != 0 ? Buttons.DPadRight : 0;
     return buttons;
 }
Esempio n. 9
0
 public bool IsKeyReleased(XInputButtons Button)
 {
     return(!curr_state.Gamepad.IsButtonPressed(Button) & prev_state.Gamepad.IsButtonPressed(Button));
 }
Esempio n. 10
0
 public bool IsButtonTriggered(XInputButtons Button)
 {
     return(curr_state.Gamepad.IsButtonPressed(Button) & !prev_state.Gamepad.IsButtonPressed(Button));
 }
Esempio n. 11
0
 public bool IsButtonPressed(XInputButtons Flag)
 {
     return((Buttons & (short)Flag) != 0);
 }
Esempio n. 12
0
 int TranslateButtons(XInputButtons xbuttons)
 {
     return NumberOfSetBits((int)xbuttons);
 }
Esempio n. 13
0
 public bool IsButtonDown(XInputButtons button)
 {
     return((Buttons & button) != 0);
 }