Some refactorings in the Input namespace and added PercentageComplete and TestState attributes to most classes

This commit is contained in:
SND\AstrorEnales_cp 2012-09-01 16:20:44 +00:00
parent 0ad3ca056b
commit 379a1bc50e
31 changed files with 594 additions and 865 deletions

View File

@ -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

View File

@ -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,

View File

@ -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)

View File

@ -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;
}
}
}
}

View File

@ -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

View File

@ -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;
}
}
}

View File

@ -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

View File

@ -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;
}
}
}

View File

@ -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; } }
}
}

View File

@ -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;
}
}
}

View File

@ -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
}
}

View File

@ -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
}
}

View File

@ -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<IInputSystemCreator>().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<IInputSystemCreator>().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);
}
}
}

View File

@ -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<Keys> pressedKeys;
#endregion
#endregion // Private Members
public KeyState this[Keys key]
{
get
{
return keyState[(int)key];
}
}
public KeyboardState(params Keys[] keys)
{
pressedKeys = new List<Keys>();
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<Keys> value = new List<Keys>();
var result = new List<Keys>();
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;
}

View File

@ -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
}
}

View File

@ -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

View File

@ -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<IInputSystemCreator>().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);
}
}
}
}

View File

@ -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);
}
}
}

View File

@ -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,
}
}

View File

@ -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<TouchLocation>, ICollection<TouchLocation>, IEnumerable<TouchLocation>, IEnumerable
{
#region Enumerator (helper struct)

View File

@ -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<TouchLocation>
{
#region Private

View File

@ -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,
}
}

View File

@ -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

View File

@ -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; }
}
}

View File

@ -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);
}
}

View File

@ -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")]

View File

@ -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();
}

View File

@ -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)

View File

@ -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)

View File

@ -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

View File

@ -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();
}