public void TestDPadConversion() { Assert.Equal(Direction.Right, GameControllerUtils.ButtonsToDirection(GamePadButton.PadRight)); Assert.Equal(Direction.Left, GameControllerUtils.ButtonsToDirection(GamePadButton.PadLeft)); Assert.Equal(Direction.None, GameControllerUtils.ButtonsToDirection(GamePadButton.None)); Assert.Equal(GamePadButton.PadRight, GameControllerUtils.DirectionToButtons(Direction.Right)); Assert.Equal(GamePadButton.PadLeft, GameControllerUtils.DirectionToButtons(Direction.Left)); Assert.Equal(GamePadButton.None, GameControllerUtils.DirectionToButtons(Direction.None)); // Test rounding Assert.Equal(GamePadButton.PadUp, GameControllerUtils.DirectionToButtons(Direction.FromTicks(99, 100))); Assert.Equal(GamePadButton.PadUp, GameControllerUtils.DirectionToButtons(Direction.FromTicks(1, 100))); Assert.Equal(GamePadButton.PadDown, GameControllerUtils.DirectionToButtons(Direction.FromTicks(49, 100))); Assert.Equal(GamePadButton.PadDown, GameControllerUtils.DirectionToButtons(Direction.FromTicks(51, 100))); }
/// <summary> /// Returns the value of a direction controller converted to a <see cref="GamePadButton"/> which has the matching Pad flags set /// </summary> /// <param name="device">The gamepad</param> /// <param name="index">The index of the direction controller</param> /// <returns></returns> public static GamePadButton GetDPad(this IGameControllerDevice device, int index) { var dir = device.GetDirection(index); return(dir.IsNeutral ? GamePadButton.None : GameControllerUtils.DirectionToButtons(dir)); }