public static bool GetButtonDown(InputButtons button, int index)
        {
            var gIndex = IntToIndex(index);

            bool result = false;

            if (gIndex == Index.Any)
            {
                for (int i = 0; i < 4; i++)
                {
                    if (XInput.GetButtonDown(Buttons[button], i))
                    {
                        result = true;
                    }
                }
                if (KbInput.GetButtonDown(Buttons[button]))
                {
                    result = true;
                }
            }
            else if (gIndex == Index.Kbm)
            {
                result = KbInput.GetButtonDown(Buttons[button]);
            }
            else
            {
                result = XInput.GetButtonDown(Buttons[button], index);
            }

            return(result);
        }
        public static Vector2 GetAxis(Axis axis, int index)
        {
            var axes   = GetAxisFromMap(axis);
            var gIndex = IntToIndex(index);

            Vector2 result = new Vector2(0, 0);

            if (gIndex == Index.Any)
            {
                for (int i = 0; i < 4; i++)
                {
                    result.x += XInput.GetAxis(axes[0], i);
                    result.y += XInput.GetAxis(axes[1], i);
                }

                result.x += KbInput.GetAxis(axes[0]);
                result.y += KbInput.GetAxis(axes[1]);
            }
            else if (gIndex == Index.Kbm)
            {
                result.x = KbInput.GetAxis(axes[0]);
                result.y = KbInput.GetAxis(axes[1]);
            }
            else
            {
                result.x = XInput.GetAxis(axes[0], index);
                result.y = XInput.GetAxis(axes[1], index);
            }

            return(result);
        }