protected override PadState GetState(int index)
        {
            GamePadState state    = GamePad.GetState((PlayerIndex)index, GamePadDeadZone.Circular);
            PadState     padState = new PadState();

            foreach (object obj in Enum.GetValues(typeof(PadButton)))
            {
                if (state.IsButtonDown((Buttons)obj))
                {
                    padState.buttons |= (PadButton)obj;
                }
            }
            padState.sticks.left    = (Vec2)state.ThumbSticks.Left;
            padState.sticks.right   = (Vec2)state.ThumbSticks.Right;
            padState.triggers.left  = state.Triggers.Left;
            padState.triggers.right = state.Triggers.Right;
            return(padState);
        }
        private PadState ConvertDInputState(DInputState state)
        {
            PadState padState = new PadState();

            if (state == null)
            {
                return(padState);
            }
            if (state.buttons[0])
            {
                padState.buttons |= PadButton.X;
            }
            if (state.buttons[3])
            {
                padState.buttons |= PadButton.Y;
            }
            if (state.buttons[1])
            {
                padState.buttons |= PadButton.A;
            }
            if (state.buttons[2])
            {
                padState.buttons |= PadButton.B;
            }
            if (state.buttons[4])
            {
                padState.buttons |= PadButton.LeftShoulder;
            }
            if (state.buttons[5])
            {
                padState.buttons |= PadButton.RightShoulder;
            }
            if (state.buttons[6])
            {
                padState.buttons      |= PadButton.LeftTrigger;
                padState.triggers.left = 1f;
            }
            if (state.buttons[7])
            {
                padState.buttons       |= PadButton.RightTrigger;
                padState.triggers.right = 1f;
            }
            if (state.buttons[8])
            {
                padState.buttons |= PadButton.Back;
            }
            if (state.buttons[9])
            {
                padState.buttons |= PadButton.Start;
            }
            if (state.buttons[11])
            {
                padState.buttons |= PadButton.LeftStick;
            }
            if (state.buttons[12])
            {
                padState.buttons |= PadButton.RightStick;
            }
            if (state.left)
            {
                padState.buttons |= PadButton.DPadLeft;
            }
            if (state.right)
            {
                padState.buttons |= PadButton.DPadRight;
            }
            if (state.up)
            {
                padState.buttons |= PadButton.DPadUp;
            }
            if (state.down)
            {
                padState.buttons |= PadButton.DPadDown;
            }
            padState.sticks.left  = new Vec2(state.leftX, state.leftY * -1f);
            padState.sticks.right = new Vec2(state.leftZ, -state.rightX);
            if ((double)padState.sticks.left.Length() < 0.100000001490116)
            {
                padState.sticks.left = Vec2.Zero;
            }
            if ((double)padState.sticks.right.Length() < 0.100000001490116)
            {
                padState.sticks.right = Vec2.Zero;
            }
            return(padState);
        }