diff --git a/ANX.Framework.TestCenter/Strukturen/Input/GamePadTest.cs b/ANX.Framework.TestCenter/Strukturen/Input/GamePadTest.cs index eb9fc269..857df23d 100644 --- a/ANX.Framework.TestCenter/Strukturen/Input/GamePadTest.cs +++ b/ANX.Framework.TestCenter/Strukturen/Input/GamePadTest.cs @@ -77,26 +77,58 @@ namespace ANX.Framework.TestCenter.Strukturen.Input class GamePadTest { - static object[] twoplayer = + static object[] playergets = { - new object[]{XNAPlayerIndex.One, ANXPlayerIndex.One}, - new object[]{XNAPlayerIndex.Two, ANXPlayerIndex.Two}, - new object[]{XNAPlayerIndex.Three, ANXPlayerIndex.Three}, - new object[]{XNAPlayerIndex.Four, ANXPlayerIndex.Four}, + new object[]{ANXPlayerIndex.One,new ANXGamePadState(new Vector2(100, 100), new Vector2(100, 100), 0.5f, 0.5f, ANXButtons.A, ANXButtons.B)}, + new object[]{ANXPlayerIndex.Two,new ANXGamePadState(new Vector2(200, 200), new Vector2(100, 100), 0.5f, 0.5f, ANXButtons.A, ANXButtons.BigButton)}, + new object[]{ ANXPlayerIndex.Three, new ANXGamePadState(new Vector2(100, 100), new Vector2(100, 100), 0.5f, 0.5f, ANXButtons.A, ANXButtons.X)}, + new object[]{ ANXPlayerIndex.Four,new ANXGamePadState()}, }; - - [TestCaseSource("twoplayer")] - public void GetState(XNAPlayerIndex xnaplayer, ANXPlayerIndex anxplayer) + static object[] playervib = + { + new object[]{ANXPlayerIndex.One,0.5f,0.5f,true}, + new object[]{ANXPlayerIndex.Two,0.7f,0.5f,true}, + new object[]{ ANXPlayerIndex.Three,-0.5f,0.7f,true}, + new object[]{ ANXPlayerIndex.Four,0.5f,0.5f,false}, + }; + [TestFixtureSetUp] + public void Setup() { AddInSystemFactory.Instance.Initialize(); - - AddInSystemFactory.Instance.SetPreferredSystem( - AddInType.InputSystem, "XInput"); - XNAGamePadState xnastate = XNAGamePad.GetState(xnaplayer); - ANXGamePadState anxstate = ANXGamePad.GetState(anxplayer); - - AssertHelper.ConvertEquals(xnastate, anxstate, "GetState"); + AddInSystemFactory.Instance.SetPreferredSystem(AddInType.InputSystem, "Test"); } + + [TestCaseSource("playergets")] + public void GetState(ANXPlayerIndex anxplayer, ANXGamePadState state) + { + + ANXGamePadState anxstate = ANXGamePad.GetState(anxplayer); + + AssertHelper.ConvertEquals(true, anxstate == state, "GetState"); + + } + + [TestCaseSource("playergets")] + public void GetState2(ANXPlayerIndex anxplayer, ANXGamePadState state) + { + + ANXGamePadState anxstate = ANXGamePad.GetState(anxplayer, Framework.Input.GamePadDeadZone.None); + + AssertHelper.ConvertEquals(true, anxstate == state, "GetState2"); + + } + [Test] + public void GetCapabilities() + { + ANX.Framework.Input.GamePadCapabilities test = new Framework.Input.GamePadCapabilities(); + AssertHelper.ConvertEquals(true, ANXGamePad.GetCapabilities(PlayerIndex.One).Equals(test), "GetCapabilities"); + } + [TestCaseSource("playervib")] + public void SetVibration(ANXPlayerIndex anxplayer, float left, float right, bool result) + { + + AssertHelper.ConvertEquals(result, ANXGamePad.SetVibration(anxplayer, left, right), "SetVibration"); + } } -} +} \ No newline at end of file diff --git a/InputSystems/ANX.InputDevices.Test/GamePad.cs b/InputSystems/ANX.InputDevices.Test/GamePad.cs index 6d5b7503..e3050212 100644 --- a/InputSystems/ANX.InputDevices.Test/GamePad.cs +++ b/InputSystems/ANX.InputDevices.Test/GamePad.cs @@ -8,6 +8,8 @@ using System.Runtime.InteropServices; using ANX.Framework.NonXNA; using NLog; using ANX.Framework.NonXNA.InputSystem; +using ANX.Framework.Input; +using ANX.Framework; #endregion // Using Statements @@ -59,26 +61,85 @@ using ANX.Framework.NonXNA.InputSystem; #endregion // License namespace ANX.InputDevices.Test { - public class GamePad:IGamePad + public class GamePad : IGamePad { - public Framework.Input.GamePadCapabilities GetCapabilities(Framework.PlayerIndex playerIndex) + public GamePadCapabilities GetCapabilities(PlayerIndex playerIndex) { - throw new NotImplementedException(); + + return new GamePadCapabilities(); } - public Framework.Input.GamePadState GetState(Framework.PlayerIndex playerIndex, out bool isConnected, out int packetNumber) + public GamePadState GetState(PlayerIndex playerIndex, out bool isConnected, out int packetNumber) { - throw new NotImplementedException(); + GamePadState gamepad; + switch (playerIndex) + { + case PlayerIndex.One: + isConnected = true; + packetNumber = 0; + gamepad = new GamePadState(new Vector2(100, 100), new Vector2(100, 100), 0.5f, 0.5f, Buttons.A, Buttons.B); + break; + case PlayerIndex.Two: + isConnected = true; + packetNumber = 0; + gamepad = new GamePadState(new Vector2(200, 200), new Vector2(100, 100), 0.5f, 0.5f, Buttons.A, Buttons.BigButton); + break; + case PlayerIndex.Three: + isConnected = true; + packetNumber = 0; + gamepad = new GamePadState(new Vector2(100, 100), new Vector2(100, 100), 0.5f, 0.5f, Buttons.A, Buttons.X); + break; + case PlayerIndex.Four: + default: + isConnected = false; + packetNumber = 0; + gamepad = new GamePadState(); + break; + } + return gamepad; } - public Framework.Input.GamePadState GetState(Framework.PlayerIndex playerIndex, Framework.Input.GamePadDeadZone deadZoneMode, out bool isConnected, out int packetNumber) + public GamePadState GetState(PlayerIndex playerIndex, GamePadDeadZone deadZoneMode, out bool isConnected, out int packetNumber) { - throw new NotImplementedException(); + return this.GetState(playerIndex, out isConnected, out packetNumber); } - public bool SetVibration(Framework.PlayerIndex playerIndex, float leftMotor, float rightMotor) + public bool SetVibration(PlayerIndex playerIndex, float leftMotor, float rightMotor) { - throw new NotImplementedException(); + switch (playerIndex) + { + case PlayerIndex.One: + if (leftMotor == 0.5f && rightMotor == 0.5f) + { + return true; + } + return false; + break; + case PlayerIndex.Two: + if (leftMotor == 0.7f && rightMotor == 0.5f) + { + return true; + } + return false; + break; + case PlayerIndex.Three: + if (leftMotor == -0.5f && rightMotor == 0.7f) + { + return true; + } + return false; + break; + case PlayerIndex.Four: + if (leftMotor == 0.5f && rightMotor == 0.5f) + { + return false; + } + return true; + + default: + return false; + break; + } } } }