From 379a1bc50e6569d1ad2e5f8a5d4b8d8f64e5bee0 Mon Sep 17 00:00:00 2001 From: "SND\\AstrorEnales_cp" Date: Sat, 1 Sep 2012 16:20:44 +0000 Subject: [PATCH] Some refactorings in the Input namespace and added PercentageComplete and TestState attributes to most classes --- ANX.Framework/Input/ButtonState.cs | 5 - ANX.Framework/Input/Buttons.cs | 5 +- ANX.Framework/Input/GamePad.cs | 17 +- ANX.Framework/Input/GamePadButtons.cs | 195 +++-------- ANX.Framework/Input/GamePadCapabilities.cs | 4 + ANX.Framework/Input/GamePadDPad.cs | 121 +++---- ANX.Framework/Input/GamePadDeadZone.cs | 5 - ANX.Framework/Input/GamePadState.cs | 123 +++---- ANX.Framework/Input/GamePadThumbSticks.cs | 26 +- ANX.Framework/Input/GamePadTriggers.cs | 98 ++---- ANX.Framework/Input/GamePadType.cs | 31 +- ANX.Framework/Input/KeyState.cs | 15 +- ANX.Framework/Input/Keyboard.cs | 65 ++-- ANX.Framework/Input/KeyboardState.cs | 69 ++-- ANX.Framework/Input/Keys.cs | 331 +++++++++--------- .../MotionSensing/MotionSensingDeviceType.cs | 5 - ANX.Framework/Input/Mouse.cs | 47 +-- ANX.Framework/Input/MouseState.cs | 95 +++-- ANX.Framework/Input/Touch/GestureType.cs | 33 +- ANX.Framework/Input/Touch/TouchCollection.cs | 3 + ANX.Framework/Input/Touch/TouchLocation.cs | 6 +- .../Input/Touch/TouchLocationState.cs | 19 +- ANX.Framework/Input/Touch/TouchPanel.cs | 3 + .../Input/Touch/TouchPanelCapabilities.cs | 26 +- ANX.Framework/NonXNA/InputSystem/IGamePad.cs | 4 +- ANX.Framework/Properties/AssemblyInfo.cs | 1 + .../ANX.InputDevices.OpenTK/GamePad.cs | 16 +- .../ANX.InputDevices.PsVita/GamePad.cs | 20 +- InputSystems/ANX.InputDevices.Test/GamePad.cs | 44 +-- .../GamePad.cs | 23 +- .../RecordingGamePad.cs | 4 +- 31 files changed, 594 insertions(+), 865 deletions(-) diff --git a/ANX.Framework/Input/ButtonState.cs b/ANX.Framework/Input/ButtonState.cs index 4f0178f8..9e9a9535 100644 --- a/ANX.Framework/Input/ButtonState.cs +++ b/ANX.Framework/Input/ButtonState.cs @@ -1,8 +1,3 @@ -#region Using Statements -using System; - -#endregion // Using Statements - // This file is part of the ANX.Framework created by the // "ANX.Framework developer group" and released under the Ms-PL license. // For details see: http://anxframework.codeplex.com/license diff --git a/ANX.Framework/Input/Buttons.cs b/ANX.Framework/Input/Buttons.cs index 0ba69688..37dbbb4b 100644 --- a/ANX.Framework/Input/Buttons.cs +++ b/ANX.Framework/Input/Buttons.cs @@ -1,15 +1,12 @@ -#region Using Statements using System; -#endregion // Using Statements - // This file is part of the ANX.Framework created by the // "ANX.Framework developer group" and released under the Ms-PL license. // For details see: http://anxframework.codeplex.com/license namespace ANX.Framework.Input { - [FlagsAttribute] + [Flags] public enum Buttons { DPadUp = 1, diff --git a/ANX.Framework/Input/GamePad.cs b/ANX.Framework/Input/GamePad.cs index bfa7baac..646d10f1 100644 --- a/ANX.Framework/Input/GamePad.cs +++ b/ANX.Framework/Input/GamePad.cs @@ -1,4 +1,5 @@ using ANX.Framework.NonXNA; +using ANX.Framework.NonXNA.Development; // This file is part of the ANX.Framework created by the // "ANX.Framework developer group" and released under the Ms-PL license. @@ -6,6 +7,8 @@ using ANX.Framework.NonXNA; namespace ANX.Framework.Input { + [PercentageComplete(100)] + [TestState(TestStateAttribute.TestState.Tested)] public static class GamePad { private static IGamePad gamePad; @@ -22,22 +25,12 @@ namespace ANX.Framework.Input public static GamePadState GetState(PlayerIndex playerIndex) { - bool isConnected; - int packetNumber; - GamePadState ret = gamePad.GetState(playerIndex, out isConnected, out packetNumber); - ret.IsConnected = isConnected; - ret.PacketNumber = packetNumber; - return ret; + return gamePad.GetState(playerIndex); } public static GamePadState GetState(PlayerIndex playerIndex, GamePadDeadZone deadZoneMode) { - bool isConnected; - int packetNumber; - GamePadState ret = gamePad.GetState(playerIndex, deadZoneMode, out isConnected, out packetNumber); - ret.IsConnected = isConnected; - ret.PacketNumber = packetNumber; - return ret; + return gamePad.GetState(playerIndex, deadZoneMode); } public static bool SetVibration(PlayerIndex playerIndex, float leftMotor, float rightMotor) diff --git a/ANX.Framework/Input/GamePadButtons.cs b/ANX.Framework/Input/GamePadButtons.cs index c5963aae..6a4307ce 100644 --- a/ANX.Framework/Input/GamePadButtons.cs +++ b/ANX.Framework/Input/GamePadButtons.cs @@ -1,9 +1,5 @@ -#region Using Statements using System; -using System.IO; -using ANX.Framework.NonXNA; - -#endregion // Using Statements +using ANX.Framework.NonXNA.Development; // This file is part of the ANX.Framework created by the // "ANX.Framework developer group" and released under the Ms-PL license. @@ -11,60 +7,59 @@ using ANX.Framework.NonXNA; namespace ANX.Framework.Input { + [PercentageComplete(100)] + [TestState(TestStateAttribute.TestState.Untested)] public struct GamePadButtons { - #region Private Members - internal Buttons buttonValue; - - internal ButtonState button_a; - internal ButtonState button_b; - internal ButtonState button_x; - internal ButtonState button_y; - internal ButtonState stick_left; - internal ButtonState stick_right; - internal ButtonState shoulder_left; - internal ButtonState shoulder_right; - internal ButtonState button_back; - internal ButtonState button_start; - internal ButtonState button_big; - - #endregion // Private Members + #region Public + public ButtonState A { get; private set; } + public ButtonState B { get; private set; } + public ButtonState Back { get; private set; } + public ButtonState BigButton { get; private set; } + public ButtonState LeftShoulder { get; private set; } + public ButtonState LeftStick { get; private set; } + public ButtonState RightShoulder { get; private set; } + public ButtonState RightStick { get; private set; } + public ButtonState Start { get; private set; } + public ButtonState X { get; private set; } + public ButtonState Y { get; private set; } + internal Buttons Buttons { get; private set; } + #endregion public GamePadButtons(Buttons buttons) + : this() { - this.button_a = GetButtonState(buttons, Buttons.A); - this.button_b = GetButtonState(buttons, Buttons.B); - this.button_x = GetButtonState(buttons, Buttons.X); - this.button_y = GetButtonState(buttons, Buttons.Y); - this.stick_left = GetButtonState(buttons, Buttons.LeftStick); - this.stick_right = GetButtonState(buttons, Buttons.RightStick); - this.shoulder_left = GetButtonState(buttons, Buttons.LeftShoulder); - this.shoulder_right = GetButtonState(buttons, Buttons.RightShoulder); - this.button_back = GetButtonState(buttons, Buttons.Back); - this.button_start = GetButtonState(buttons, Buttons.Start); - this.button_big = GetButtonState(buttons, Buttons.BigButton); + A = GetButtonState(buttons, Buttons.A); + B = GetButtonState(buttons, Buttons.B); + X = GetButtonState(buttons, Buttons.X); + Y = GetButtonState(buttons, Buttons.Y); + LeftStick = GetButtonState(buttons, Buttons.LeftStick); + RightStick = GetButtonState(buttons, Buttons.RightStick); + LeftShoulder = GetButtonState(buttons, Buttons.LeftShoulder); + RightShoulder = GetButtonState(buttons, Buttons.RightShoulder); + Back = GetButtonState(buttons, Buttons.Back); + Start = GetButtonState(buttons, Buttons.Start); + BigButton = GetButtonState(buttons, Buttons.BigButton); - this.buttonValue = buttons; + Buttons = buttons; } public override bool Equals(object obj) { if (obj != null && obj.GetType() == typeof(GamePadButtons)) - { return this == (GamePadButtons)obj; - } return false; } public static bool operator ==(GamePadButtons lhs, GamePadButtons rhs) { - return lhs.buttonValue == rhs.buttonValue; + return lhs.Buttons == rhs.Buttons; } public static bool operator !=(GamePadButtons lhs, GamePadButtons rhs) { - return lhs.buttonValue != rhs.buttonValue; + return lhs.Buttons != rhs.Buttons; } private static ButtonState GetButtonState(Buttons buttons, Buttons button) @@ -72,129 +67,29 @@ namespace ANX.Framework.Input return (buttons & button) == button ? ButtonState.Pressed : ButtonState.Released; } - public ButtonState A - { - get - { - return this.button_a; - } - } - - public ButtonState B - { - get - { - return this.button_b; - } - } - - public ButtonState Back - { - get - { - return this.button_back; - } - } - - public ButtonState BigButton - { - get - { - return this.button_big; - } - } - - public ButtonState LeftShoulder - { - get - { - return this.shoulder_left; - } - } - - public ButtonState LeftStick - { - get - { - return stick_left; - } - } - - public ButtonState RightShoulder - { - get - { - return this.shoulder_right; - } - } - - public ButtonState RightStick - { - get - { - return this.stick_right; - } - } - - public ButtonState Start - { - get - { - return this.button_start; - } - } - - public ButtonState X - { - get - { - return this.button_x; - } - } - - public ButtonState Y - { - get - { - return this.button_y; - } - } - public override int GetHashCode() { - return (int)this.buttonValue; + return (int)Buttons; } public override string ToString() { - String buttons = String.Empty; + string buttons = A == ButtonState.Pressed ? "A" : ""; + buttons += B == ButtonState.Pressed ? (buttons.Length > 0 ? " " : "") + "B" : ""; + buttons += X == ButtonState.Pressed ? (buttons.Length > 0 ? " " : "") + "X" : ""; + buttons += Y == ButtonState.Pressed ? (buttons.Length > 0 ? " " : "") + "Y" : ""; + buttons += LeftShoulder == ButtonState.Pressed ? (buttons.Length > 0 ? " " : "") + "LeftShoulder" : ""; + buttons += RightShoulder == ButtonState.Pressed ? (buttons.Length > 0 ? " " : "") + "RightShoulder" : ""; + buttons += LeftStick == ButtonState.Pressed ? (buttons.Length > 0 ? " " : "") + "LeftStick" : ""; + buttons += RightStick == ButtonState.Pressed ? (buttons.Length > 0 ? " " : "") + "RightStick" : ""; + buttons += Start == ButtonState.Pressed ? (buttons.Length > 0 ? " " : "") + "Start" : ""; + buttons += Back == ButtonState.Pressed ? (buttons.Length > 0 ? " " : "") + "Back" : ""; + buttons += BigButton == ButtonState.Pressed ? (buttons.Length > 0 ? " " : "") + "BigButton" : ""; - buttons += this.button_a == ButtonState.Pressed ? (buttons.Length > 0 ? " " : "") + "A" : ""; - buttons += this.button_b == ButtonState.Pressed ? (buttons.Length > 0 ? " " : "") + "B" : ""; - buttons += this.button_x == ButtonState.Pressed ? (buttons.Length > 0 ? " " : "") + "X" : ""; - buttons += this.button_y == ButtonState.Pressed ? (buttons.Length > 0 ? " " : "") + "Y" : ""; - buttons += this.shoulder_left == ButtonState.Pressed ? (buttons.Length > 0 ? " " : "") + "LeftShoulder" : ""; - buttons += this.shoulder_right == ButtonState.Pressed ? (buttons.Length > 0 ? " " : "") + "RightShoulder" : ""; - buttons += this.stick_left == ButtonState.Pressed ? (buttons.Length > 0 ? " " : "") + "LeftStick" : ""; - buttons += this.stick_right == ButtonState.Pressed ? (buttons.Length > 0 ? " " : "") + "RightStick" : ""; - buttons += this.button_start == ButtonState.Pressed ? (buttons.Length > 0 ? " " : "") + "Start" : ""; - buttons += this.button_back == ButtonState.Pressed ? (buttons.Length > 0 ? " " : "") + "Back" : ""; - buttons += this.button_big == ButtonState.Pressed ? (buttons.Length > 0 ? " " : "") + "BigButton" : ""; - - if (string.IsNullOrEmpty(buttons)) - { + if (String.IsNullOrEmpty(buttons)) buttons = "None"; - } return String.Format("{{Buttons:{0}}}", buttons); } - - internal Buttons Buttons - { - get - { - return this.buttonValue; - } - } } } diff --git a/ANX.Framework/Input/GamePadCapabilities.cs b/ANX.Framework/Input/GamePadCapabilities.cs index e426f237..64dc3abe 100644 --- a/ANX.Framework/Input/GamePadCapabilities.cs +++ b/ANX.Framework/Input/GamePadCapabilities.cs @@ -1,9 +1,13 @@ +using ANX.Framework.NonXNA.Development; + // This file is part of the ANX.Framework created by the // "ANX.Framework developer group" and released under the Ms-PL license. // For details see: http://anxframework.codeplex.com/license namespace ANX.Framework.Input { + [PercentageComplete(100)] + [TestState(TestStateAttribute.TestState.Tested)] public struct GamePadCapabilities { public GamePadType GamePadType diff --git a/ANX.Framework/Input/GamePadDPad.cs b/ANX.Framework/Input/GamePadDPad.cs index f8e3f8ce..1bf51f5b 100644 --- a/ANX.Framework/Input/GamePadDPad.cs +++ b/ANX.Framework/Input/GamePadDPad.cs @@ -1,9 +1,5 @@ -#region Using Statements using System; -using System.IO; -using ANX.Framework.NonXNA; - -#endregion // Using Statements +using ANX.Framework.NonXNA.Development; // This file is part of the ANX.Framework created by the // "ANX.Framework developer group" and released under the Ms-PL license. @@ -11,92 +7,63 @@ using ANX.Framework.NonXNA; namespace ANX.Framework.Input { + [PercentageComplete(100)] + [TestState(TestStateAttribute.TestState.Untested)] public struct GamePadDPad { - #region Private Members - private Buttons buttons; - - private ButtonState up; - private ButtonState down; - private ButtonState left; - private ButtonState right; - - #endregion // Private Members + public ButtonState Down { get; private set; } + public ButtonState Left { get; private set; } + public ButtonState Right { get; private set; } + public ButtonState Up { get; private set; } + internal Buttons Buttons { get; private set; } public GamePadDPad(ButtonState upValue, ButtonState downValue, ButtonState leftValue, ButtonState rightValue) + : this() { - this.up = upValue; - this.down = downValue; - this.left = leftValue; - this.right = rightValue; - - buttons = 0; - buttons |= (upValue == ButtonState.Pressed ? Buttons.DPadUp : 0); - buttons |= (downValue == ButtonState.Pressed ? Buttons.DPadDown : 0); - buttons |= (leftValue == ButtonState.Pressed ? Buttons.DPadLeft : 0); - buttons |= (rightValue == ButtonState.Pressed ? Buttons.DPadRight : 0); + Up = upValue; + Down = downValue; + Left = leftValue; + Right = rightValue; + AddToButtonsIfPressed(upValue, Buttons.DPadUp); + AddToButtonsIfPressed(downValue, Buttons.DPadDown); + AddToButtonsIfPressed(leftValue, Buttons.DPadLeft); + AddToButtonsIfPressed(rightValue, Buttons.DPadRight); } - internal GamePadDPad(Buttons buttons) + internal GamePadDPad(Buttons buttons) + : this() { - this.buttons = buttons; - - this.up = (buttons & Buttons.DPadUp) == Buttons.DPadUp ? ButtonState.Pressed : ButtonState.Released; - this.left = (buttons & Buttons.DPadLeft) == Buttons.DPadLeft ? ButtonState.Pressed : ButtonState.Released; - this.down = (buttons & Buttons.DPadDown) == Buttons.DPadDown ? ButtonState.Pressed : ButtonState.Released; - this.right = (buttons & Buttons.DPadRight) == Buttons.DPadRight ? ButtonState.Pressed : ButtonState.Released; + Buttons = buttons; + Up = GetButtonStateFrom(Buttons.DPadUp); + Left = GetButtonStateFrom(Buttons.DPadLeft); + Down = GetButtonStateFrom(Buttons.DPadDown); + Right = GetButtonStateFrom(Buttons.DPadRight); } - public ButtonState Down - { - get - { - return down; - } - } + private ButtonState GetButtonStateFrom(Buttons button) + { + return (Buttons & button) == button ? ButtonState.Pressed : ButtonState.Released; + } - public ButtonState Left - { - get - { - return left; - } - } - - public ButtonState Right - { - get - { - return right; - } - } - - public ButtonState Up - { - get - { - return up; - } - } + private void AddToButtonsIfPressed(ButtonState state, Buttons button) + { + Buttons |= (state == ButtonState.Pressed ? button : 0); + } public override int GetHashCode() { - return (int)buttons; + return (int)Buttons; } public override string ToString() { - String buttons = String.Empty; - - buttons += this.up == ButtonState.Pressed ? (buttons.Length > 0 ? " " : "") + "Up" : ""; - buttons += this.down == ButtonState.Pressed ? (buttons.Length > 0 ? " " : "") + "Down" : ""; - buttons += this.left == ButtonState.Pressed ? (buttons.Length > 0 ? " " : "") + "Left" : ""; - buttons += this.right == ButtonState.Pressed ? (buttons.Length > 0 ? " " : "") + "Right" : ""; + string buttons = Up == ButtonState.Pressed ? "Up" : ""; + buttons += Down == ButtonState.Pressed ? (buttons.Length > 0 ? " " : "") + "Down" : ""; + buttons += Left == ButtonState.Pressed ? (buttons.Length > 0 ? " " : "") + "Left" : ""; + buttons += Right == ButtonState.Pressed ? (buttons.Length > 0 ? " " : "") + "Right" : ""; if (String.IsNullOrEmpty(buttons)) - { buttons = "None"; - } return String.Format("{{DPad:{0}}}", buttons); } @@ -104,29 +71,19 @@ namespace ANX.Framework.Input public override bool Equals(object obj) { if (obj != null && obj.GetType() == typeof(GamePadDPad)) - { return this == (GamePadDPad)obj; - } return false; } public static bool operator ==(GamePadDPad lhs, GamePadDPad rhs) { - return lhs.buttons == rhs.buttons; + return lhs.Buttons == rhs.Buttons; } public static bool operator !=(GamePadDPad lhs, GamePadDPad rhs) { - return lhs.buttons != rhs.buttons; - } - - internal Buttons Buttons - { - get - { - return this.buttons; - } + return lhs.Buttons != rhs.Buttons; } } } diff --git a/ANX.Framework/Input/GamePadDeadZone.cs b/ANX.Framework/Input/GamePadDeadZone.cs index c409383f..3ed24bc4 100644 --- a/ANX.Framework/Input/GamePadDeadZone.cs +++ b/ANX.Framework/Input/GamePadDeadZone.cs @@ -1,8 +1,3 @@ -#region Using Statements -using System; - -#endregion // Using Statements - // This file is part of the ANX.Framework created by the // "ANX.Framework developer group" and released under the Ms-PL license. // For details see: http://anxframework.codeplex.com/license diff --git a/ANX.Framework/Input/GamePadState.cs b/ANX.Framework/Input/GamePadState.cs index a230dff4..f36c5025 100644 --- a/ANX.Framework/Input/GamePadState.cs +++ b/ANX.Framework/Input/GamePadState.cs @@ -1,9 +1,5 @@ -#region Using Statements using System; -using System.IO; -using ANX.Framework.NonXNA; - -#endregion // Using Statements +using ANX.Framework.NonXNA.Development; // This file is part of the ANX.Framework created by the // "ANX.Framework developer group" and released under the Ms-PL license. @@ -11,67 +7,87 @@ using ANX.Framework.NonXNA; namespace ANX.Framework.Input { + [PercentageComplete(100)] + [TestState(TestStateAttribute.TestState.Untested)] public struct GamePadState { - #region Private Members + #region Private private GamePadThumbSticks thumbSticks; private GamePadTriggers triggers; private GamePadButtons buttons; private GamePadDPad dPad; private Buttons buttonsValue; + #endregion - private bool isConnected; - private int packetNumber; + #region Public + public GamePadButtons Buttons + { + get { return this.buttons; } + } - #endregion // Private Members + public GamePadDPad DPad + { + get { return this.dPad; } + } - public GamePadState(GamePadThumbSticks thumbSticks, GamePadTriggers triggers, GamePadButtons buttons, GamePadDPad dPad) + public bool IsConnected + { + get; + internal set; + } + + public int PacketNumber + { + get; + internal set; + } + + public GamePadThumbSticks ThumbSticks + { + get { return this.thumbSticks; } + } + public GamePadTriggers Triggers + { + get { return this.triggers; } + } + #endregion + + public GamePadState(GamePadThumbSticks thumbSticks, GamePadTriggers triggers, GamePadButtons buttons, GamePadDPad dPad) + : this() { this.thumbSticks = thumbSticks; this.triggers = triggers; this.buttons = buttons; - this.dPad = dPad; - this.isConnected = true; - this.packetNumber = 0; - this.buttonsValue = this.buttons.Buttons | this.dPad.Buttons; + this.dPad = dPad; + this.buttonsValue = this.buttons.Buttons | this.dPad.Buttons; + this.IsConnected = true; + this.PacketNumber = 0; } - public GamePadState(Vector2 leftThumbStick, Vector2 rightThumbStick, float leftTrigger, float rightTrigger, params Buttons[] buttons) + public GamePadState(Vector2 leftThumbStick, Vector2 rightThumbStick, float leftTrigger, float rightTrigger, + params Buttons[] buttons) + : this() { this.thumbSticks = new GamePadThumbSticks(leftThumbStick, rightThumbStick); this.triggers = new GamePadTriggers(leftTrigger, rightTrigger); Buttons buttonField = 0; for (int i = 0; i < buttons.Length; i++) - { buttonField |= buttons[i]; - } - this.buttonsValue = buttonField; - this.isConnected = true; - this.packetNumber = 0; + + this.buttonsValue = buttonField; + this.IsConnected = true; + this.PacketNumber = 0; this.buttons = new GamePadButtons(this.buttonsValue); this.dPad = new GamePadDPad(this.buttonsValue); } - //public GamePadState(int value, bool isConnected, int packetNumber, Vector2 thumbStickLeft, Vector2 thumbStickRight, float triggerLeft, float triggerRight) - //{ - // this.buttonsValue = value; - // //TODO: this.buttons = new GamePadButtons(value); - // this.dPad = new GamePadDPad(value); - // this.isConnected = isConnected; - // this.packetNumber = packetNumber; - // this.thumbSticks = new GamePadThumbSticks(thumbStickLeft, thumbStickRight); - // this.triggers = new GamePadTriggers(triggerLeft, triggerRight); - //} - public override bool Equals(object obj) { if (obj != null && obj.GetType() == typeof(GamePadState)) - { return this == (GamePadState)obj; - } return false; } @@ -96,39 +112,14 @@ namespace ANX.Framework.Input return String.Format("{{IsConnected:{0}}}", IsConnected); } - public bool IsButtonDown(Buttons button) { return ((this.buttonsValue & button) == button); } - public bool IsButtonUp(Buttons button) { return ((this.buttonsValue & button) != button); } - public GamePadButtons Buttons { get { return this.buttons; } } - public GamePadDPad DPad { get { return this.dPad; } } - - public bool IsConnected - { - get - { - return this.isConnected; - } - internal set - { - this.isConnected = value; - } - } - - public int PacketNumber - { - get - { - return this.packetNumber; - } - internal set - { - this.packetNumber = value; - } - } - - public GamePadThumbSticks ThumbSticks { get { return this.thumbSticks; } } - public GamePadTriggers Triggers { get { return this.triggers; } } - - + public bool IsButtonDown(Buttons button) + { + return (this.buttonsValue & button) == button; + } + public bool IsButtonUp(Buttons button) + { + return (this.buttonsValue & button) != button; + } } } diff --git a/ANX.Framework/Input/GamePadThumbSticks.cs b/ANX.Framework/Input/GamePadThumbSticks.cs index 9f468219..97e4a5a2 100644 --- a/ANX.Framework/Input/GamePadThumbSticks.cs +++ b/ANX.Framework/Input/GamePadThumbSticks.cs @@ -1,9 +1,5 @@ -#region Using Statements using System; -using System.IO; -using ANX.Framework.NonXNA; - -#endregion // Using Statements +using ANX.Framework.NonXNA.Development; // This file is part of the ANX.Framework created by the // "ANX.Framework developer group" and released under the Ms-PL license. @@ -11,13 +7,24 @@ using ANX.Framework.NonXNA; namespace ANX.Framework.Input { + [PercentageComplete(100)] + [TestState(TestStateAttribute.TestState.Untested)] public struct GamePadThumbSticks { - #region Private Members + #region Private private Vector2 left; private Vector2 right; + #endregion - #endregion // Private Members + public Vector2 Left + { + get { return this.left; } + } + + public Vector2 Right + { + get { return this.right; } + } public GamePadThumbSticks (Vector2 leftThumbstick, Vector2 rightThumbstick) { @@ -28,9 +35,7 @@ namespace ANX.Framework.Input public override bool Equals(object obj) { if (obj != null && obj.GetType() == typeof(GamePadThumbSticks)) - { return this == (GamePadThumbSticks)obj; - } return false; } @@ -55,8 +60,5 @@ namespace ANX.Framework.Input return String.Format("{{Left:{0} Right:{1}}}", left, right); } - public Vector2 Left { get { return this.left; } } - public Vector2 Right { get { return this.right; } } - } } diff --git a/ANX.Framework/Input/GamePadTriggers.cs b/ANX.Framework/Input/GamePadTriggers.cs index ebf5ac53..d3a2c199 100644 --- a/ANX.Framework/Input/GamePadTriggers.cs +++ b/ANX.Framework/Input/GamePadTriggers.cs @@ -1,9 +1,5 @@ -#region Using Statements using System; -using System.IO; -using ANX.Framework.NonXNA; - -#endregion // Using Statements +using ANX.Framework.NonXNA.Development; // This file is part of the ANX.Framework created by the // "ANX.Framework developer group" and released under the Ms-PL license. @@ -11,68 +7,46 @@ using ANX.Framework.NonXNA; namespace ANX.Framework.Input { - public struct GamePadTriggers - { - #region Private Members - private float left; - private float right; + [PercentageComplete(100)] + [TestState(TestStateAttribute.TestState.Untested)] + public struct GamePadTriggers + { + public float Left { get; private set; } + public float Right { get; private set; } - #endregion // Private Members + public GamePadTriggers(float leftTrigger, float rightTrigger) + : this() + { + Left = MathHelper.Clamp(leftTrigger, 0f, 1f); + Right = MathHelper.Clamp(rightTrigger, 0f, 1f); + } - public GamePadTriggers (float leftTrigger,float rightTrigger) - { - if (leftTrigger>1) - { - leftTrigger = 1; - } - if (leftTrigger<0) - { - leftTrigger = 0; - } - if (rightTrigger>1) - { - rightTrigger = 1; - } - if (rightTrigger<0) - { - rightTrigger = 0; - } - left = leftTrigger; - right = rightTrigger; - } + public override int GetHashCode() + { + return Left.GetHashCode() ^ Right.GetHashCode(); + } - public override int GetHashCode() - { - return left.GetHashCode() ^ right.GetHashCode(); - } + public override string ToString() + { + return String.Format("{{Left:{0} Right:{1}}}", Left, Right); + } - public override string ToString() - { - return String.Format("{{Left:{0} Right:{1}}}", left, right); - } + public override bool Equals(object obj) + { + if (obj != null && obj.GetType() == typeof(GamePadTriggers)) + return this == (GamePadTriggers)obj; - public override bool Equals(object obj) - { - if (obj != null && obj.GetType() == typeof(GamePadTriggers)) - { - return this == (GamePadTriggers)obj; - } + return false; + } - return false; - } + public static bool operator ==(GamePadTriggers lhs, GamePadTriggers rhs) + { + return lhs.Left == rhs.Left && lhs.Right == rhs.Right; + } - public static bool operator ==(GamePadTriggers lhs, GamePadTriggers rhs) - { - return lhs.left == rhs.left && lhs.right == rhs.right; - } - - public static bool operator !=(GamePadTriggers lhs, GamePadTriggers rhs) - { - return lhs.left != rhs.left || lhs.right != rhs.right; - } - - public float Left { get { return this.left; } } - public float Right { get { return this.right; } } - - } + public static bool operator !=(GamePadTriggers lhs, GamePadTriggers rhs) + { + return lhs.Left != rhs.Left || lhs.Right != rhs.Right; + } + } } diff --git a/ANX.Framework/Input/GamePadType.cs b/ANX.Framework/Input/GamePadType.cs index 53ccbff5..f80154af 100644 --- a/ANX.Framework/Input/GamePadType.cs +++ b/ANX.Framework/Input/GamePadType.cs @@ -1,25 +1,20 @@ -#region Using Statements -using System; - -#endregion // Using Statements - // This file is part of the ANX.Framework created by the // "ANX.Framework developer group" and released under the Ms-PL license. // For details see: http://anxframework.codeplex.com/license namespace ANX.Framework.Input { - public enum GamePadType :short - { - Unknown, - GamePad, - Wheel, - ArcadeStick, - FlightStick, - DancePad, - Guitar, - AlternateGuitar, - DrumKit, - BigButtonPad=768 - } + public enum GamePadType : short + { + Unknown, + GamePad, + Wheel, + ArcadeStick, + FlightStick, + DancePad, + Guitar, + AlternateGuitar, + DrumKit, + BigButtonPad = 768 + } } diff --git a/ANX.Framework/Input/KeyState.cs b/ANX.Framework/Input/KeyState.cs index 8d9e9f26..f72f9b8c 100644 --- a/ANX.Framework/Input/KeyState.cs +++ b/ANX.Framework/Input/KeyState.cs @@ -1,17 +1,12 @@ -#region Using Statements -using System; - -#endregion // Using Statements - // This file is part of the ANX.Framework created by the // "ANX.Framework developer group" and released under the Ms-PL license. // For details see: http://anxframework.codeplex.com/license namespace ANX.Framework.Input { - public enum KeyState - { - Up, - Down - } + public enum KeyState + { + Up, + Down + } } diff --git a/ANX.Framework/Input/Keyboard.cs b/ANX.Framework/Input/Keyboard.cs index 60ae45d8..9fbea8aa 100644 --- a/ANX.Framework/Input/Keyboard.cs +++ b/ANX.Framework/Input/Keyboard.cs @@ -1,8 +1,6 @@ -#region Using Statements using System; using ANX.Framework.NonXNA; - -#endregion // Using Statements +using ANX.Framework.NonXNA.Development; // This file is part of the ANX.Framework created by the // "ANX.Framework developer group" and released under the Ms-PL license. @@ -10,39 +8,38 @@ using ANX.Framework.NonXNA; namespace ANX.Framework.Input { - public static class Keyboard - { - private static IKeyboard keyboard; + [PercentageComplete(100)] + [TestState(TestStateAttribute.TestState.Tested)] + public static class Keyboard + { + private static IKeyboard keyboard; - static Keyboard() - { - keyboard = AddInSystemFactory.Instance.GetDefaultCreator().Keyboard; - } + internal static IntPtr WindowHandle + { + get + { + return keyboard != null ? keyboard.WindowHandle : IntPtr.Zero; + } + set + { + if (keyboard != null) + keyboard.WindowHandle = value; + } + } - internal static IntPtr WindowHandle - { - get - { - return keyboard != null ? keyboard.WindowHandle : IntPtr.Zero; - } - set - { - if (keyboard != null) - { - keyboard.WindowHandle = value; - } - } - } + static Keyboard() + { + keyboard = AddInSystemFactory.Instance.GetDefaultCreator().Keyboard; + } - public static KeyboardState GetState() - { - return keyboard.GetState(); - } + public static KeyboardState GetState() + { + return keyboard.GetState(); + } - public static KeyboardState GetState (PlayerIndex playerIndex) - { - return keyboard.GetState(playerIndex); - } - - } + public static KeyboardState GetState(PlayerIndex playerIndex) + { + return keyboard.GetState(playerIndex); + } + } } diff --git a/ANX.Framework/Input/KeyboardState.cs b/ANX.Framework/Input/KeyboardState.cs index 514240a5..6f25a623 100644 --- a/ANX.Framework/Input/KeyboardState.cs +++ b/ANX.Framework/Input/KeyboardState.cs @@ -1,8 +1,6 @@ -#region Using Statements using System; using System.Collections.Generic; - -#endregion // Using Statements +using ANX.Framework.NonXNA.Development; // This file is part of the ANX.Framework created by the // "ANX.Framework developer group" and released under the Ms-PL license. @@ -10,36 +8,37 @@ using System.Collections.Generic; namespace ANX.Framework.Input { + [PercentageComplete(100)] + [TestState(TestStateAttribute.TestState.Untested)] public struct KeyboardState { - #region Private Members + #region Private private KeyState[] keyState; - private List pressedKeys; + #endregion - #endregion // Private Members + public KeyState this[Keys key] + { + get + { + return keyState[(int)key]; + } + } public KeyboardState(params Keys[] keys) { - pressedKeys = new List(); - pressedKeys.AddRange(keys); - keyState = new KeyState[255]; - keyState.Initialize(); - for (int i = 0; i < keys.Length; i++) - { keyState[(int)keys[i]] = KeyState.Down; - } } public bool IsKeyDown(Keys key) { - return keyState != null ? keyState[(int)key] == KeyState.Down : false; + return keyState[(int)key] == KeyState.Down; } public bool IsKeyUp(Keys key) { - return keyState != null ? keyState[(int)key] == KeyState.Up : true; + return keyState[(int)key] == KeyState.Up; } public override int GetHashCode() @@ -50,9 +49,7 @@ namespace ANX.Framework.Input public override bool Equals(object obj) { if (obj != null && obj.GetType() == typeof(KeyboardState)) - { return this == (KeyboardState)obj; - } return false; } @@ -60,56 +57,46 @@ namespace ANX.Framework.Input public static bool operator ==(KeyboardState lhs, KeyboardState rhs) { if (lhs.keyState.Length != rhs.keyState.Length) - { return false; - } for (int i = 0; i < lhs.keyState.Length; i++) - { if (lhs.keyState[i] != rhs.keyState[i]) - { return false; - } - } return true; } public static bool operator !=(KeyboardState lhs, KeyboardState rhs) - { - return !(lhs == rhs); - } + { + if (lhs.keyState.Length == rhs.keyState.Length) + { + for (int i = 0; i < lhs.keyState.Length; i++) + if (lhs.keyState[i] != rhs.keyState[i]) + return true; - public KeyState this[Keys key] - { - get - { - return keyState[(int)key]; - } + return false; + } + + return true; } public Keys[] GetPressedKeys() { - List value = new List(); + var result = new List(); for (int i = 0; i < keyState.Length; ++i) - { if (keyState[i] == KeyState.Down) - { - value.Add((Keys)i); - } - } - return value.ToArray(); + result.Add((Keys)i); + + return result.ToArray(); } internal void AddPressedKey(Keys key) { - this.pressedKeys.Add(key); this.keyState[(int)key] = KeyState.Down; } internal void RemovePressedKey(Keys key) { - this.pressedKeys.Remove(key); this.keyState[(int)key] = KeyState.Up; } diff --git a/ANX.Framework/Input/Keys.cs b/ANX.Framework/Input/Keys.cs index 76e86975..eac4b8d4 100644 --- a/ANX.Framework/Input/Keys.cs +++ b/ANX.Framework/Input/Keys.cs @@ -1,175 +1,170 @@ -#region Using Statements -using System; - -#endregion // Using Statements - // This file is part of the ANX.Framework created by the // "ANX.Framework developer group" and released under the Ms-PL license. // For details see: http://anxframework.codeplex.com/license namespace ANX.Framework.Input { - public enum Keys : byte - { - None = 0, - Back = 8, - Tab = 9, - Enter = 13, - Pause = 19, - CapsLock = 20, - Kana = 21, - Kanji = 25, - Escape = 27, - ImeConvert = 28, - ImeNoConvert = 29, - Space = 32, - PageUp = 33, - PageDown = 34, - End = 35, - Home = 36, - Left = 37, - Up = 38, - Right = 39, - Down = 40, - Select = 41, - Print = 42, - Execute = 43, - PrintScreen = 44, - Insert = 45, - Delete = 46, - Help = 47, - D0 = 48, - D1 = 49, - D2 = 50, - D3 = 51, - D4 = 52, - D5 = 53, - D6 = 54, - D7 = 55, - D8 = 56, - D9 = 57, - A = 65, - B = 66, - C = 67, - D = 68, - E = 69, - F = 70, - G = 71, - H = 72, - I = 73, - J = 74, - K = 75, - L = 76, - M = 77, - N = 78, - O = 79, - P = 80, - Q = 81, - R = 82, - S = 83, - T = 84, - U = 85, - V = 86, - W = 87, - X = 88, - Y = 89, - Z = 90, - LeftWindows = 91, - RightWindows = 92, - Apps = 93, - Sleep = 95, - NumPad0 = 96, - NumPad1 = 97, - NumPad2 = 98, - NumPad3 = 99, - NumPad4 = 100, - NumPad5 = 101, - NumPad6 = 102, - NumPad7 = 103, - NumPad8 = 104, - NumPad9 = 105, - Multiply = 106, - Add = 107, - Separator = 108, - Subtract = 109, - Decimal = 110, - Divide = 111, - F1 = 112, - F2 = 113, - F3 = 114, - F4 = 115, - F5 = 116, - F6 = 117, - F7 = 118, - F8 = 119, - F9 = 120, - F10 = 121, - F11 = 122, - F12 = 123, - F13 = 124, - F14 = 125, - F15 = 126, - F16 = 127, - F17 = 128, - F18 = 129, - F19 = 130, - F20 = 131, - F21 = 132, - F22 = 133, - F23 = 134, - F24 = 135, - NumLock = 144, - Scroll = 145, - LeftShift = 160, - RightShift = 161, - LeftControl = 162, - RightControl = 163, - LeftAlt = 164, - RightAlt = 165, - BrowserBack = 166, - BrowserForward = 167, - BrowserRefresh = 168, - BrowserStop = 169, - BrowserSearch = 170, - BrowserFavorites = 171, - BrowserHome = 172, - VolumeMute = 173, - VolumeDown = 174, - VolumeUp = 175, - MediaNextTrack = 176, - MediaPreviousTrack = 177, - MediaStop = 178, - MediaPlayPause = 179, - LaunchMail = 180, - SelectMedia = 181, - LaunchApplication1 = 182, - LaunchApplication2 = 183, - OemSemicolon = 186, - OemPlus = 187, - OemComma = 188, - OemMinus = 189, - OemPeriod = 190, - OemQuestion = 191, - OemTilde = 192, - ChatPadGreen = 202, - ChatPadOrange = 203, - OemOpenBrackets = 219, - OemPipe = 220, - OemCloseBrackets = 221, - OemQuotes = 222, - Oem8 = 223, - OemBackslash = 226, - ProcessKey = 229, - OemCopy = 242, - OemAuto = 243, - OemEnlW = 244, - Attn = 246, - Crsel = 247, - Exsel = 248, - EraseEof = 249, - Play = 250, - Zoom = 251, - Pa1 = 253, - OemClear = 254 - } + public enum Keys : byte + { + None = 0, + Back = 8, + Tab = 9, + Enter = 13, + Pause = 19, + CapsLock = 20, + Kana = 21, + Kanji = 25, + Escape = 27, + ImeConvert = 28, + ImeNoConvert = 29, + Space = 32, + PageUp = 33, + PageDown = 34, + End = 35, + Home = 36, + Left = 37, + Up = 38, + Right = 39, + Down = 40, + Select = 41, + Print = 42, + Execute = 43, + PrintScreen = 44, + Insert = 45, + Delete = 46, + Help = 47, + D0 = 48, + D1 = 49, + D2 = 50, + D3 = 51, + D4 = 52, + D5 = 53, + D6 = 54, + D7 = 55, + D8 = 56, + D9 = 57, + A = 65, + B = 66, + C = 67, + D = 68, + E = 69, + F = 70, + G = 71, + H = 72, + I = 73, + J = 74, + K = 75, + L = 76, + M = 77, + N = 78, + O = 79, + P = 80, + Q = 81, + R = 82, + S = 83, + T = 84, + U = 85, + V = 86, + W = 87, + X = 88, + Y = 89, + Z = 90, + LeftWindows = 91, + RightWindows = 92, + Apps = 93, + Sleep = 95, + NumPad0 = 96, + NumPad1 = 97, + NumPad2 = 98, + NumPad3 = 99, + NumPad4 = 100, + NumPad5 = 101, + NumPad6 = 102, + NumPad7 = 103, + NumPad8 = 104, + NumPad9 = 105, + Multiply = 106, + Add = 107, + Separator = 108, + Subtract = 109, + Decimal = 110, + Divide = 111, + F1 = 112, + F2 = 113, + F3 = 114, + F4 = 115, + F5 = 116, + F6 = 117, + F7 = 118, + F8 = 119, + F9 = 120, + F10 = 121, + F11 = 122, + F12 = 123, + F13 = 124, + F14 = 125, + F15 = 126, + F16 = 127, + F17 = 128, + F18 = 129, + F19 = 130, + F20 = 131, + F21 = 132, + F22 = 133, + F23 = 134, + F24 = 135, + NumLock = 144, + Scroll = 145, + LeftShift = 160, + RightShift = 161, + LeftControl = 162, + RightControl = 163, + LeftAlt = 164, + RightAlt = 165, + BrowserBack = 166, + BrowserForward = 167, + BrowserRefresh = 168, + BrowserStop = 169, + BrowserSearch = 170, + BrowserFavorites = 171, + BrowserHome = 172, + VolumeMute = 173, + VolumeDown = 174, + VolumeUp = 175, + MediaNextTrack = 176, + MediaPreviousTrack = 177, + MediaStop = 178, + MediaPlayPause = 179, + LaunchMail = 180, + SelectMedia = 181, + LaunchApplication1 = 182, + LaunchApplication2 = 183, + OemSemicolon = 186, + OemPlus = 187, + OemComma = 188, + OemMinus = 189, + OemPeriod = 190, + OemQuestion = 191, + OemTilde = 192, + ChatPadGreen = 202, + ChatPadOrange = 203, + OemOpenBrackets = 219, + OemPipe = 220, + OemCloseBrackets = 221, + OemQuotes = 222, + Oem8 = 223, + OemBackslash = 226, + ProcessKey = 229, + OemCopy = 242, + OemAuto = 243, + OemEnlW = 244, + Attn = 246, + Crsel = 247, + Exsel = 248, + EraseEof = 249, + Play = 250, + Zoom = 251, + Pa1 = 253, + OemClear = 254 + } } \ No newline at end of file diff --git a/ANX.Framework/Input/MotionSensing/MotionSensingDeviceType.cs b/ANX.Framework/Input/MotionSensing/MotionSensingDeviceType.cs index 931b368d..86b79284 100644 --- a/ANX.Framework/Input/MotionSensing/MotionSensingDeviceType.cs +++ b/ANX.Framework/Input/MotionSensing/MotionSensingDeviceType.cs @@ -1,8 +1,3 @@ -#region Using Statements -using System; - -#endregion // Using Statements - // This file is part of the ANX.Framework created by the // "ANX.Framework developer group" and released under the Ms-PL license. // For details see: http://anxframework.codeplex.com/license diff --git a/ANX.Framework/Input/Mouse.cs b/ANX.Framework/Input/Mouse.cs index 2e6ef26c..249e10c1 100644 --- a/ANX.Framework/Input/Mouse.cs +++ b/ANX.Framework/Input/Mouse.cs @@ -1,8 +1,6 @@ -#region Using Statements using System; using ANX.Framework.NonXNA; - -#endregion // Using Statements +using ANX.Framework.NonXNA.Development; // This file is part of the ANX.Framework created by the // "ANX.Framework developer group" and released under the Ms-PL license. @@ -10,48 +8,39 @@ using ANX.Framework.NonXNA; namespace ANX.Framework.Input { + [PercentageComplete(100)] + [TestState(TestStateAttribute.TestState.Tested)] public static class Mouse { - private static IMouse mouse; + private static IMouse mouse; + + public static IntPtr WindowHandle + { + get + { + return mouse != null ? mouse.WindowHandle : IntPtr.Zero; + } + set + { + if (mouse != null) + mouse.WindowHandle = value; + } + } static Mouse() { mouse = AddInSystemFactory.Instance.GetDefaultCreator().Mouse; } - public static IntPtr WindowHandle - { - get - { - return mouse != null ? mouse.WindowHandle : IntPtr.Zero; - } - set - { - if (mouse != null) - { - mouse.WindowHandle = value; - } - } - } - public static MouseState GetState() { - if (mouse != null) - { - return mouse.GetState(); - } - else - { - return new MouseState(); - } + return (mouse != null) ? mouse.GetState() : new MouseState(); } public static void SetPosition(int x, int y) { if (mouse != null) - { mouse.SetPosition(x, y); - } } } } diff --git a/ANX.Framework/Input/MouseState.cs b/ANX.Framework/Input/MouseState.cs index 09423d93..8e880eaf 100644 --- a/ANX.Framework/Input/MouseState.cs +++ b/ANX.Framework/Input/MouseState.cs @@ -1,7 +1,5 @@ -#region Using Statements using System; - -#endregion // Using Statements +using ANX.Framework.NonXNA.Development; // This file is part of the ANX.Framework created by the // "ANX.Framework developer group" and released under the Ms-PL license. @@ -10,38 +8,34 @@ using System; namespace ANX.Framework.Input { #if !WINDOWSMETRO //TODO: search replacement for Win8 - [SerializableAttribute] + [Serializable] #endif - public struct MouseState - { - private int x; - private int y; - private int scrollWheel; - private ButtonState leftButton; - private ButtonState middleButton; - private ButtonState rightButton; - private ButtonState xButton1; - private ButtonState xButton2; - public MouseState (int x, int y, int scrollWheel,ButtonState leftButton,ButtonState middleButton,ButtonState rightButton,ButtonState xButton1,ButtonState xButton2) - { - this.x = x; - this.y = y; - this.scrollWheel = scrollWheel; - this.leftButton = leftButton; - this.middleButton = middleButton; - this.rightButton = rightButton; - this.xButton1 = xButton1; - this.xButton2 = xButton2; - } + [PercentageComplete(100)] + [TestState(TestStateAttribute.TestState.Untested)] + public struct MouseState + { + public ButtonState LeftButton { get; private set; } + public ButtonState MiddleButton { get; private set; } + public ButtonState RightButton { get; private set; } + public ButtonState XButton1 { get; private set; } + public ButtonState XButton2 { get; private set; } + public int ScrollWheelValue { get; private set; } + public int X { get; private set; } + public int Y { get; private set; } - public ButtonState LeftButton { get { return this.leftButton; } } - public ButtonState MiddleButton { get { return this.middleButton; } } - public ButtonState RightButton { get { return this.rightButton; } } - public ButtonState XButton1 { get { return this.xButton1; } } - public ButtonState XButton2 { get { return this.xButton2; } } - public int ScrollWheelValue { get { return this.scrollWheel; } } - public int X { get { return this.x; } } - public int Y { get { return this.y; } } + public MouseState(int x, int y, int scrollWheel, ButtonState leftButton, ButtonState middleButton, + ButtonState rightButton, ButtonState xButton1, ButtonState xButton2) + : this() + { + X = x; + Y = y; + ScrollWheelValue = scrollWheel; + LeftButton = leftButton; + MiddleButton = middleButton; + RightButton = rightButton; + XButton1 = xButton1; + XButton2 = xButton2; + } public static bool operator ==(MouseState left, MouseState right) { @@ -69,30 +63,27 @@ namespace ANX.Framework.Input public override bool Equals(object obj) { - if (obj is MouseState) - { + if (obj != null && obj is MouseState) return this == (MouseState)obj; - } return false; } - public override int GetHashCode() - { - return ((((((this.x.GetHashCode() ^ this.y.GetHashCode()) ^ this.leftButton.GetHashCode()) ^ this.rightButton.GetHashCode()) ^ this.middleButton.GetHashCode()) ^ this.xButton1.GetHashCode()) ^ this.xButton2.GetHashCode()) ^ this.scrollWheel.GetHashCode(); - } + public override int GetHashCode() + { + return X.GetHashCode() ^ Y.GetHashCode() ^ LeftButton.GetHashCode() ^ RightButton.GetHashCode() ^ + MiddleButton.GetHashCode() ^ XButton1.GetHashCode() ^ XButton2.GetHashCode() ^ ScrollWheelValue.GetHashCode(); + } - public override string ToString() - { - string buttons = String.Empty; + public override string ToString() + { + string buttons = LeftButton == ButtonState.Pressed ? "Left" : ""; + buttons += RightButton == ButtonState.Pressed ? (buttons.Length > 0 ? " " : "") + "Right" : ""; + buttons += MiddleButton == ButtonState.Pressed ? (buttons.Length > 0 ? " " : "") + "Middle" : ""; + buttons += XButton1 == ButtonState.Pressed ? (buttons.Length > 0 ? " " : "") + "XButton1" : ""; + buttons += XButton2 == ButtonState.Pressed ? (buttons.Length > 0 ? " " : "") + "XButton2" : ""; - buttons += leftButton == ButtonState.Pressed ? "Left" : ""; - buttons += rightButton == ButtonState.Pressed ? (buttons.Length > 0 ? " " : "") + "Right" : ""; - buttons += middleButton == ButtonState.Pressed ? (buttons.Length > 0 ? " " : "") + "Middle" : ""; - buttons += xButton1 == ButtonState.Pressed ? (buttons.Length > 0 ? " " : "") + "XButton1" : ""; - buttons += xButton2 == ButtonState.Pressed ? (buttons.Length > 0 ? " " : "") + "XButton2" : ""; - - return string.Format("{{X:{0} Y:{1} Buttons:{2} Wheel:{3}}}", this.x, this.y, buttons, this.scrollWheel); - } - } + return String.Format("{{X:{0} Y:{1} Buttons:{2} Wheel:{3}}}", X, Y, buttons, ScrollWheelValue); + } + } } diff --git a/ANX.Framework/Input/Touch/GestureType.cs b/ANX.Framework/Input/Touch/GestureType.cs index 91309157..a12b06fd 100644 --- a/ANX.Framework/Input/Touch/GestureType.cs +++ b/ANX.Framework/Input/Touch/GestureType.cs @@ -1,27 +1,24 @@ -#region Using Statements using System; -#endregion // Using Statements - // This file is part of the ANX.Framework created by the // "ANX.Framework developer group" and released under the Ms-PL license. // For details see: http://anxframework.codeplex.com/license namespace ANX.Framework.Input.Touch { - [Flags] - public enum GestureType - { - None = 0, - Tap = 1, - DoubleTap = 2, - Hold = 4, - HorizontalDrag = 8, - VerticalDrag = 16, - FreeDrag = 32, - Pinch = 64, - Flick = 128, - DragComplete = 256, - PinchComplete = 512, - } + [Flags] + public enum GestureType + { + None = 0, + Tap = 1, + DoubleTap = 2, + Hold = 4, + HorizontalDrag = 8, + VerticalDrag = 16, + FreeDrag = 32, + Pinch = 64, + Flick = 128, + DragComplete = 256, + PinchComplete = 512, + } } diff --git a/ANX.Framework/Input/Touch/TouchCollection.cs b/ANX.Framework/Input/Touch/TouchCollection.cs index cf806e78..2897894a 100644 --- a/ANX.Framework/Input/Touch/TouchCollection.cs +++ b/ANX.Framework/Input/Touch/TouchCollection.cs @@ -1,6 +1,7 @@ using System; using System.Collections; using System.Collections.Generic; +using ANX.Framework.NonXNA.Development; // This file is part of the ANX.Framework created by the // "ANX.Framework developer group" and released under the Ms-PL license. @@ -8,6 +9,8 @@ using System.Collections.Generic; namespace ANX.Framework.Input.Touch { + [PercentageComplete(90)] + [TestState(TestStateAttribute.TestState.Untested)] public struct TouchCollection : IList, ICollection, IEnumerable, IEnumerable { #region Enumerator (helper struct) diff --git a/ANX.Framework/Input/Touch/TouchLocation.cs b/ANX.Framework/Input/Touch/TouchLocation.cs index da9f9ea1..78e85af7 100644 --- a/ANX.Framework/Input/Touch/TouchLocation.cs +++ b/ANX.Framework/Input/Touch/TouchLocation.cs @@ -1,7 +1,5 @@ -#region Using Statements using System; - -#endregion // Using Statements +using ANX.Framework.NonXNA.Development; // This file is part of the ANX.Framework created by the // "ANX.Framework developer group" and released under the Ms-PL license. @@ -9,6 +7,8 @@ using System; namespace ANX.Framework.Input.Touch { + [PercentageComplete(100)] + [TestState(TestStateAttribute.TestState.Untested)] public struct TouchLocation : IEquatable { #region Private diff --git a/ANX.Framework/Input/Touch/TouchLocationState.cs b/ANX.Framework/Input/Touch/TouchLocationState.cs index 1b5229e6..f2499c7b 100644 --- a/ANX.Framework/Input/Touch/TouchLocationState.cs +++ b/ANX.Framework/Input/Touch/TouchLocationState.cs @@ -1,19 +1,14 @@ -#region Using Statements -using System; - -#endregion // Using Statements - // This file is part of the ANX.Framework created by the // "ANX.Framework developer group" and released under the Ms-PL license. // For details see: http://anxframework.codeplex.com/license namespace ANX.Framework.Input.Touch { - public enum TouchLocationState - { - Invalid = 0, - Released = 1, - Pressed = 2, - Moved = 3, - } + public enum TouchLocationState + { + Invalid = 0, + Released = 1, + Pressed = 2, + Moved = 3, + } } diff --git a/ANX.Framework/Input/Touch/TouchPanel.cs b/ANX.Framework/Input/Touch/TouchPanel.cs index 12edf5a3..0f668c55 100644 --- a/ANX.Framework/Input/Touch/TouchPanel.cs +++ b/ANX.Framework/Input/Touch/TouchPanel.cs @@ -1,5 +1,6 @@ using System; using ANX.Framework.NonXNA; +using ANX.Framework.NonXNA.Development; using ANX.Framework.NonXNA.InputSystem; // This file is part of the ANX.Framework created by the @@ -8,6 +9,8 @@ using ANX.Framework.NonXNA.InputSystem; namespace ANX.Framework.Input.Touch { + [PercentageComplete(100)] + [TestState(TestStateAttribute.TestState.Untested)] public static class TouchPanel { #region Private diff --git a/ANX.Framework/Input/Touch/TouchPanelCapabilities.cs b/ANX.Framework/Input/Touch/TouchPanelCapabilities.cs index 65e12834..b369cc09 100644 --- a/ANX.Framework/Input/Touch/TouchPanelCapabilities.cs +++ b/ANX.Framework/Input/Touch/TouchPanelCapabilities.cs @@ -1,7 +1,4 @@ -#region Using Statements -using System; - -#endregion // Using Statements +using ANX.Framework.NonXNA.Development; // This file is part of the ANX.Framework created by the // "ANX.Framework developer group" and released under the Ms-PL license. @@ -9,18 +6,11 @@ using System; namespace ANX.Framework.Input.Touch { - public struct TouchPanelCapabilities - { - public bool IsConnected - { - get; - set; - } - - public int MaximumTouchCount - { - get; - set; - } - } + [PercentageComplete(100)] + [TestState(TestStateAttribute.TestState.Tested)] + public struct TouchPanelCapabilities + { + public bool IsConnected { get; set; } + public int MaximumTouchCount { get; set; } + } } diff --git a/ANX.Framework/NonXNA/InputSystem/IGamePad.cs b/ANX.Framework/NonXNA/InputSystem/IGamePad.cs index 4d51c18a..df3b4aba 100644 --- a/ANX.Framework/NonXNA/InputSystem/IGamePad.cs +++ b/ANX.Framework/NonXNA/InputSystem/IGamePad.cs @@ -9,8 +9,8 @@ namespace ANX.Framework.NonXNA public interface IGamePad { GamePadCapabilities GetCapabilities(PlayerIndex playerIndex); - GamePadState GetState(PlayerIndex playerIndex, out bool isConnected, out int packetNumber); - GamePadState GetState(PlayerIndex playerIndex, GamePadDeadZone deadZoneMode, out bool isConnected, out int packetNumber); + GamePadState GetState(PlayerIndex playerIndex); + GamePadState GetState(PlayerIndex playerIndex, GamePadDeadZone deadZoneMode); bool SetVibration(PlayerIndex playerIndex, float leftMotor, float rightMotor); } } diff --git a/ANX.Framework/Properties/AssemblyInfo.cs b/ANX.Framework/Properties/AssemblyInfo.cs index 87928d49..3b9835c8 100644 --- a/ANX.Framework/Properties/AssemblyInfo.cs +++ b/ANX.Framework/Properties/AssemblyInfo.cs @@ -44,6 +44,7 @@ using System.Runtime.InteropServices; [assembly: InternalsVisibleTo("ANX.Framework.Windows.XAudio")] [assembly: InternalsVisibleTo("ANX.InputSystem.Recording")] [assembly: InternalsVisibleTo("ANX.InputDevices.PsVita")] +[assembly: InternalsVisibleTo("ANX.InputDevices.Test")] [assembly: InternalsVisibleTo("ANX.InputDevices.Windows.XInput")] [assembly: InternalsVisibleTo("ANX.PlatformSystem.Windows")] [assembly: InternalsVisibleTo("ANX.PlatformSystem.Linux")] diff --git a/InputSystems/ANX.InputDevices.OpenTK/GamePad.cs b/InputSystems/ANX.InputDevices.OpenTK/GamePad.cs index ac45ef16..b07e49c7 100644 --- a/InputSystems/ANX.InputDevices.OpenTK/GamePad.cs +++ b/InputSystems/ANX.InputDevices.OpenTK/GamePad.cs @@ -1,12 +1,8 @@ -#region Using Statements using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; +using ANX.Framework; +using ANX.Framework.Input; using ANX.Framework.NonXNA; -#endregion // Using Statements - // This file is part of the ANX.Framework created by the // "ANX.Framework developer group" and released under the Ms-PL license. // For details see: http://anxframework.codeplex.com/license @@ -15,22 +11,22 @@ namespace ANX.InputDevices.OpenTK { public class GamePad : IGamePad { - public Framework.Input.GamePadCapabilities GetCapabilities(Framework.PlayerIndex playerIndex) + public GamePadCapabilities GetCapabilities(PlayerIndex playerIndex) { throw new NotImplementedException(); } - public Framework.Input.GamePadState GetState(Framework.PlayerIndex playerIndex, out bool isConnected, out int packetNumber) + public GamePadState GetState(PlayerIndex playerIndex) { throw new NotImplementedException(); } - 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) { throw new NotImplementedException(); } - public bool SetVibration(Framework.PlayerIndex playerIndex, float leftMotor, float rightMotor) + public bool SetVibration(PlayerIndex playerIndex, float leftMotor, float rightMotor) { throw new NotImplementedException(); } diff --git a/InputSystems/ANX.InputDevices.PsVita/GamePad.cs b/InputSystems/ANX.InputDevices.PsVita/GamePad.cs index 08a9e1d6..aa16cf4c 100644 --- a/InputSystems/ANX.InputDevices.PsVita/GamePad.cs +++ b/InputSystems/ANX.InputDevices.PsVita/GamePad.cs @@ -47,27 +47,23 @@ namespace ANX.InputDevices.PsVita }; } - public GamePadState GetState(PlayerIndex playerIndex, out bool isConnected, out int packetNumber) + public GamePadState GetState(PlayerIndex playerIndex) { - SceInput.GamePadData data = SceInput.GamePad.GetData((int)playerIndex); - isConnected = data.Skip == false; - packetNumber = 0; // TODO - - return new GamePadState(new Vector2(data.AnalogLeftX, data.AnalogLeftY), - new Vector2(data.AnalogRightX, data.AnalogRightY), 0f, 0f, ConvertButtons(data.ButtonsDown)); + return GetState(playerIndex, GamePadDeadZone.None); } - public GamePadState GetState(PlayerIndex playerIndex, GamePadDeadZone deadZoneMode, - out bool isConnected, out int packetNumber) + public GamePadState GetState(PlayerIndex playerIndex, GamePadDeadZone deadZoneMode) { // TODO: GamePadDeadZone SceInput.GamePadData data = SceInput.GamePad.GetData((int)playerIndex); - isConnected = data.Skip == false; - packetNumber = 0; // TODO return new GamePadState(new Vector2(data.AnalogLeftX, data.AnalogLeftY), - new Vector2(data.AnalogRightX, data.AnalogRightY), 0f, 0f, ConvertButtons(data.ButtonsDown)); + new Vector2(data.AnalogRightX, data.AnalogRightY), 0f, 0f, ConvertButtons(data.ButtonsDown)) + { + IsConnected = data.Skip == false, + PacketNumber = 0 // TODO + }; } public bool SetVibration(PlayerIndex playerIndex, float leftMotor, float rightMotor) diff --git a/InputSystems/ANX.InputDevices.Test/GamePad.cs b/InputSystems/ANX.InputDevices.Test/GamePad.cs index 7e4fa4e6..40798c9e 100644 --- a/InputSystems/ANX.InputDevices.Test/GamePad.cs +++ b/InputSystems/ANX.InputDevices.Test/GamePad.cs @@ -15,47 +15,51 @@ namespace ANX.InputDevices.Test return new GamePadCapabilities(); } - public GamePadState GetState(PlayerIndex playerIndex, out bool isConnected, - out int packetNumber) + public GamePadState GetState(PlayerIndex playerIndex) { 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); + gamepad = new GamePadState(new Vector2(100, 100), new Vector2(100, 100), 0.5f, 0.5f, Buttons.A, Buttons.B) + { + IsConnected = true, + PacketNumber = 0, + }; 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); + gamepad = new GamePadState(new Vector2(200, 200), new Vector2(100, 100), 0.5f, 0.5f, Buttons.A, + Buttons.BigButton) + { + IsConnected = true, + PacketNumber = 0, + }; 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); + gamepad = new GamePadState(new Vector2(100, 100), new Vector2(100, 100), 0.5f, 0.5f, Buttons.A, Buttons.X) + { + IsConnected = true, + PacketNumber = 0, + }; break; case PlayerIndex.Four: default: - isConnected = false; - packetNumber = 0; - gamepad = new GamePadState(); + gamepad = new GamePadState() + { + IsConnected = false, + PacketNumber = 0, + }; break; } return gamepad; } - public GamePadState GetState(PlayerIndex playerIndex, GamePadDeadZone deadZoneMode, - out bool isConnected, out int packetNumber) + public GamePadState GetState(PlayerIndex playerIndex, GamePadDeadZone deadZoneMode) { - return this.GetState(playerIndex, out isConnected, out packetNumber); + return GetState(playerIndex); } public bool SetVibration(PlayerIndex playerIndex, float leftMotor, float rightMotor) diff --git a/InputSystems/ANX.InputDevices.Windows.XInput/GamePad.cs b/InputSystems/ANX.InputDevices.Windows.XInput/GamePad.cs index 985c2156..18aa67ed 100644 --- a/InputSystems/ANX.InputDevices.Windows.XInput/GamePad.cs +++ b/InputSystems/ANX.InputDevices.Windows.XInput/GamePad.cs @@ -88,20 +88,16 @@ namespace ANX.InputDevices.Windows.XInput #endregion #region GetState - public GamePadState GetState(PlayerIndex playerIndex, out bool isConnected, out int packetNumber) + public GamePadState GetState(PlayerIndex playerIndex) { - return GetState(playerIndex, GamePadDeadZone.None, out isConnected, out packetNumber); + return GetState(playerIndex, GamePadDeadZone.None); } - public GamePadState GetState(PlayerIndex playerIndex, GamePadDeadZone deadZoneMode, out bool isConnected, - out int packetNumber) + public GamePadState GetState(PlayerIndex playerIndex, GamePadDeadZone deadZoneMode) { - isConnected = controller[(int)playerIndex].IsConnected; + bool isConnected = controller[(int)playerIndex].IsConnected; if (isConnected == false) - { - packetNumber = 0; return emptyState; - } State nativeState = controller[(int)playerIndex].GetState(); Vector2 leftThumb = ApplyDeadZone(nativeState.Gamepad.LeftThumbX, nativeState.Gamepad.LeftThumbY, @@ -109,11 +105,12 @@ namespace ANX.InputDevices.Windows.XInput Vector2 rightThumb = ApplyDeadZone(nativeState.Gamepad.RightThumbX, nativeState.Gamepad.RightThumbY, RightThumbDeadZoneSquare, deadZoneMode); - var result = new GamePadState(leftThumb, rightThumb, nativeState.Gamepad.LeftTrigger * triggerRangeFactor, - nativeState.Gamepad.RightTrigger * triggerRangeFactor, FormatConverter.Translate(nativeState.Gamepad.Buttons)); - - packetNumber = nativeState.PacketNumber; - return result; + return new GamePadState(leftThumb, rightThumb, nativeState.Gamepad.LeftTrigger * triggerRangeFactor, + nativeState.Gamepad.RightTrigger * triggerRangeFactor, FormatConverter.Translate(nativeState.Gamepad.Buttons)) + { + PacketNumber = nativeState.PacketNumber, + IsConnected = isConnected + }; } #endregion diff --git a/InputSystems/ANX.InputSystem.Recording/RecordingGamePad.cs b/InputSystems/ANX.InputSystem.Recording/RecordingGamePad.cs index 0b80f5a5..da8c9d07 100644 --- a/InputSystems/ANX.InputSystem.Recording/RecordingGamePad.cs +++ b/InputSystems/ANX.InputSystem.Recording/RecordingGamePad.cs @@ -62,12 +62,12 @@ namespace ANX.InputSystem.Recording return realGamePad.GetCapabilities(playerIndex); } - public GamePadState GetState(PlayerIndex playerIndex, out bool isConnected, out int packetNumber) + public GamePadState GetState(PlayerIndex playerIndex) { throw new NotImplementedException(); } - public GamePadState GetState(PlayerIndex playerIndex, GamePadDeadZone deadZoneMode, out bool isConnected, out int packetNumber) + public GamePadState GetState(PlayerIndex playerIndex, GamePadDeadZone deadZoneMode) { throw new NotImplementedException(); }