diff --git a/ANX.Framework.TestCenter/AssertHelper.cs b/ANX.Framework.TestCenter/AssertHelper.cs
index 12e533c1..ffe5ec31 100644
--- a/ANX.Framework.TestCenter/AssertHelper.cs
+++ b/ANX.Framework.TestCenter/AssertHelper.cs
@@ -146,7 +146,33 @@ namespace ANX.Framework.TestCenter
{
return (float)Math.Abs((double)(a - b)) < epsilon;
}
+ public static void CompareFloats(float xna, float anx, String test)
+ {
+ if (AssertHelper.CompareFloats(xna, anx, 0.000001f))
+ {
+ Assert.Pass(test + " passed");
+ }
+ else
+ {
+ if (xna.ToString() == anx.ToString())
+ {
+ Assert.Pass(test + " passed");
+ }
+ Assert.Fail(String.Format("{0} failed: xna: ({1}) anx: ({2})", test, xna.ToString(), anx.ToString()));
+ }
+ }
+ public static void CompareString(String xna, String anx, String test)
+ {
+ if (xna == anx)
+ {
+ Assert.Pass(test + " passed");
+ }
+ else
+ {
+ Assert.Fail(String.Format("{0} failed: xna: ({1}) anx: ({2})", test, xna, anx));
+ }
+ }
public static void ConvertEquals(bool xna, bool anx, String test)
{
if (xna == anx)
@@ -155,7 +181,7 @@ namespace ANX.Framework.TestCenter
}
else
{
- Assert.Fail(String.Format("{0] failed: xna: ({1}) anx: ({2})", test, xna.ToString(), anx.ToString()));
+ Assert.Fail(String.Format("{0} failed: xna: ({1}) anx: ({2})", test, xna.ToString(), anx.ToString()));
}
}
@@ -167,7 +193,7 @@ namespace ANX.Framework.TestCenter
}
else
{
- Assert.Fail(String.Format("{0] failed: Bgr565 XNA: ({1}) Bgr565 ANX: ({2})", test, lhs, rhs));
+ Assert.Fail(String.Format("{0} failed: Bgr565 XNA: ({1}) Bgr565 ANX: ({2})", test, lhs, rhs));
}
}
@@ -179,7 +205,7 @@ namespace ANX.Framework.TestCenter
}
else
{
- Assert.Fail(String.Format("{0] failed: Bgra5551 XNA: ({1}) Bgra5551 ANX: ({2})", test, lhs, rhs));
+ Assert.Fail(String.Format("{0} failed: Bgra5551 XNA: ({1}) Bgra5551 ANX: ({2})", test, lhs, rhs));
}
}
@@ -191,7 +217,7 @@ namespace ANX.Framework.TestCenter
}
else
{
- Assert.Fail(String.Format("{0] failed: Bgra4444 XNA: ({1}) Bgra4444 ANX: ({2})", test, lhs, rhs));
+ Assert.Fail(String.Format("{0} failed: Bgra4444 XNA: ({1}) Bgra4444 ANX: ({2})", test, lhs, rhs));
}
}
@@ -203,7 +229,7 @@ namespace ANX.Framework.TestCenter
}
else
{
- Assert.Fail(String.Format("{0] failed: Byte4 XNA: ({1}) Byte4 ANX: ({2})", test, lhs, rhs));
+ Assert.Fail(String.Format("{0} failed: Byte4 XNA: ({1}) Byte4 ANX: ({2})", test, lhs, rhs));
}
}
@@ -215,7 +241,7 @@ namespace ANX.Framework.TestCenter
}
else
{
- Assert.Fail(String.Format("{0] failed: HalfSingle XNA: ({1}) HalfSingle ANX: ({2})", test, lhs, rhs));
+ Assert.Fail(String.Format("{0} failed: HalfSingle XNA: ({1}) HalfSingle ANX: ({2})", test, lhs, rhs));
}
}
@@ -227,7 +253,7 @@ namespace ANX.Framework.TestCenter
}
else
{
- Assert.Fail(String.Format("{0] failed: HalfVector2 XNA: ({1}) HalfVector2 ANX: ({2})", test, lhs, rhs));
+ Assert.Fail(String.Format("{0} failed: HalfVector2 XNA: ({1}) HalfVector2 ANX: ({2})", test, lhs, rhs));
}
}
@@ -239,7 +265,7 @@ namespace ANX.Framework.TestCenter
}
else
{
- Assert.Fail(String.Format("{0] failed: HalfVector4 XNA: ({1}) HalfVector4 ANX: ({2})", test, lhs, rhs));
+ Assert.Fail(String.Format("{0} failed: HalfVector4 XNA: ({1}) HalfVector4 ANX: ({2})", test, lhs, rhs));
}
}
@@ -251,7 +277,7 @@ namespace ANX.Framework.TestCenter
}
else
{
- Assert.Fail(String.Format("{0] failed: Rg32 XNA: ({1}) Rg32 ANX: ({2})", test, lhs, rhs));
+ Assert.Fail(String.Format("{0} failed: Rg32 XNA: ({1}) Rg32 ANX: ({2})", test, lhs, rhs));
}
}
@@ -263,7 +289,7 @@ namespace ANX.Framework.TestCenter
}
else
{
- Assert.Fail(String.Format("{0] failed: Rgba1010102 XNA: ({1}) Rgba1010102 ANX: ({2})", test, lhs, rhs));
+ Assert.Fail(String.Format("{0} failed: Rgba1010102 XNA: ({1}) Rgba1010102 ANX: ({2})", test, lhs, rhs));
}
}
@@ -275,7 +301,7 @@ namespace ANX.Framework.TestCenter
}
else
{
- Assert.Fail(String.Format("{0] failed: Rgba64 XNA: ({1}) Rgba64 ANX: ({2})", test, lhs, rhs));
+ Assert.Fail(String.Format("{0} failed: Rgba64 XNA: ({1}) Rgba64 ANX: ({2})", test, lhs, rhs));
}
}
@@ -287,7 +313,7 @@ namespace ANX.Framework.TestCenter
}
else
{
- Assert.Fail(String.Format("{0] failed: NormalizedByte2 XNA: ({1}) NormalizedByte2 ANX: ({2})", test, lhs, rhs));
+ Assert.Fail(String.Format("{0} failed: NormalizedByte2 XNA: ({1}) NormalizedByte2 ANX: ({2})", test, lhs, rhs));
}
}
@@ -299,7 +325,7 @@ namespace ANX.Framework.TestCenter
}
else
{
- Assert.Fail(String.Format("{0] failed: NormalizedByte4 XNA: ({1}) NormalizedByte4 ANX: ({2})", test, lhs, rhs));
+ Assert.Fail(String.Format("{0} failed: NormalizedByte4 XNA: ({1}) NormalizedByte4 ANX: ({2})", test, lhs, rhs));
}
}
@@ -311,7 +337,7 @@ namespace ANX.Framework.TestCenter
}
else
{
- Assert.Fail(String.Format("{0] failed: NormalizedShort2 XNA: ({1}) NormalizedShort2 ANX: ({2})", test, lhs, rhs));
+ Assert.Fail(String.Format("{0} failed: NormalizedShort2 XNA: ({1}) NormalizedShort2 ANX: ({2})", test, lhs, rhs));
}
}
@@ -323,7 +349,7 @@ namespace ANX.Framework.TestCenter
}
else
{
- Assert.Fail(String.Format("{0] failed: NormalizedShort4 XNA: ({1}) NormalizedShort4 ANX: ({2})", test, lhs, rhs));
+ Assert.Fail(String.Format("{0} failed: NormalizedShort4 XNA: ({1}) NormalizedShort4 ANX: ({2})", test, lhs, rhs));
}
}
@@ -335,7 +361,7 @@ namespace ANX.Framework.TestCenter
}
else
{
- Assert.Fail(String.Format("{0] failed: Short2 XNA: ({1}) Short2 ANX: ({2})", test, lhs, rhs));
+ Assert.Fail(String.Format("{0} failed: Short2 XNA: ({1}) Short2 ANX: ({2})", test, lhs, rhs));
}
}
@@ -347,7 +373,7 @@ namespace ANX.Framework.TestCenter
}
else
{
- Assert.Fail(String.Format("{0] failed: Short4 XNA: ({1}) Short4 ANX: ({2})", test, lhs, rhs));
+ Assert.Fail(String.Format("{0} failed: Short4 XNA: ({1}) Short4 ANX: ({2})", test, lhs, rhs));
}
}
diff --git a/ANX.Framework.TestCenter/Input/GamePadDPadTest.cs b/ANX.Framework.TestCenter/Input/GamePadDPadTest.cs
index 02f819b9..dc9fe628 100644
--- a/ANX.Framework.TestCenter/Input/GamePadDPadTest.cs
+++ b/ANX.Framework.TestCenter/Input/GamePadDPadTest.cs
@@ -2,7 +2,7 @@
using System;
using System.IO;
using ANX.Framework.NonXNA;
-
+using NUnit.Framework;
#endregion // Using Statements
using ANXGamePadDPad = ANX.Framework.Input.GamePadDPad;
@@ -11,7 +11,7 @@ using ANXButtonState = ANX.Framework.Input.ButtonState;
using XNAGamePadDPad = Microsoft.Xna.Framework.Input.GamePadDPad;
using XNAButtons = Microsoft.Xna.Framework.Input.Buttons;
using XNAButtonState = Microsoft.Xna.Framework.Input.ButtonState;
-using NUnit.Framework;
+
#region License
@@ -142,14 +142,9 @@ namespace ANX.Framework.TestCenter.Input
ANXGamePadDPad anx = new ANXGamePadDPad(upValue, downValue, leftValue, rightValue);
XNAGamePadDPad xna = new XNAGamePadDPad(upValue2, downValue2, leftValue2, rightValue2);
- if (xna.ToString() == anx.ToString())
- {
- Assert.Pass("Pass ToString");
- }
- else
- {
- Assert.Fail("Fail ToString\n" + xna.ToString() + "\n" + anx.ToString());
- }
+ AssertHelper.CompareString(xna.ToString(), anx.ToString(), "ToString");
+
+
}
[TestCaseSource("Stats16")]
public void Equal(ANXButtonState upValue, ANXButtonState downValue, ANXButtonState leftValue, ANXButtonState rightValue, XNAButtonState upValue2, XNAButtonState downValue2, XNAButtonState leftValue2, XNAButtonState rightValue2)
diff --git a/ANX.Framework.TestCenter/Input/GamePadTriggersTest.cs b/ANX.Framework.TestCenter/Input/GamePadTriggersTest.cs
new file mode 100644
index 00000000..8029aa2f
--- /dev/null
+++ b/ANX.Framework.TestCenter/Input/GamePadTriggersTest.cs
@@ -0,0 +1,126 @@
+#region Using Statements
+using System;
+using System.IO;
+using ANX.Framework.NonXNA;
+using NUnit.Framework;
+
+#endregion // Using Statements
+
+using ANXGamePadTriggers = ANX.Framework.Input.GamePadTriggers;
+using XNAGamePadTriggers = Microsoft.Xna.Framework.Input.GamePadTriggers;
+
+
+#region License
+
+//
+// This file is part of the ANX.Framework created by the "ANX.Framework developer group".
+//
+// This file is released under the Ms-PL license.
+//
+//
+//
+// Microsoft Public License (Ms-PL)
+//
+// This license governs use of the accompanying software. If you use the software, you accept this license.
+// If you do not accept the license, do not use the software.
+//
+// 1.Definitions
+// The terms "reproduce," "reproduction," "derivative works," and "distribution" have the same meaning
+// here as under U.S. copyright law.
+// A "contribution" is the original software, or any additions or changes to the software.
+// A "contributor" is any person that distributes its contribution under this license.
+// "Licensed patents" are a contributor's patent claims that read directly on its contribution.
+//
+// 2.Grant of Rights
+// (A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations
+// in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to
+// reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution
+// or any derivative works that you create.
+// (B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in
+// section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed
+// patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution
+// in the software or derivative works of the contribution in the software.
+//
+// 3.Conditions and Limitations
+// (A) No Trademark License- This license does not grant you rights to use any contributors' name, logo, or trademarks.
+// (B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your
+// patent license from such contributor to the software ends automatically.
+// (C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution
+// notices that are present in the software.
+// (D) If you distribute any portion of the software in source code form, you may do so only under this license by including
+// a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or
+// object code form, you may only do so under a license that complies with this license.
+// (E) The software is licensed "as-is." You bear the risk of using it. The contributors give no express warranties, guarantees,
+// or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the
+// extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a
+// particular purpose and non-infringement.
+
+#endregion // License
+namespace ANX.Framework.TestCenter.Input
+{
+ [TestFixture]
+ class GamePadTriggersTest
+ {
+ static object[] twofloats =
+ {
+ new object[] { DataFactory.RandomFloat, DataFactory.RandomFloat },
+ new object[] { DataFactory.RandomFloat, DataFactory.RandomFloat },
+ new object[] { DataFactory.RandomFloat, DataFactory.RandomFloat },
+ new object[] { DataFactory.RandomFloat, DataFactory.RandomFloat },
+ new object[] { DataFactory.RandomFloat, DataFactory.RandomFloat },
+ new object[] { DataFactory.RandomFloat, DataFactory.RandomFloat }
+ };
+ [TestCaseSource("twofloats")]
+ public void Left(float leftTrigger, float rightTrigger)
+ {
+ ANXGamePadTriggers anx = new ANXGamePadTriggers(leftTrigger, rightTrigger);
+ XNAGamePadTriggers xna = new XNAGamePadTriggers(leftTrigger, rightTrigger);
+ AssertHelper.CompareFloats(xna.Left, anx.Left, "Left");
+ }
+ [TestCaseSource("twofloats")]
+ public void Right(float leftTrigger, float rightTrigger)
+ {
+ ANXGamePadTriggers anx = new ANXGamePadTriggers(leftTrigger, rightTrigger);
+ XNAGamePadTriggers xna = new XNAGamePadTriggers(leftTrigger, rightTrigger);
+ AssertHelper.CompareFloats(xna.Right, anx.Right, "Right");
+ }
+ [TestCaseSource("twofloats")]
+ public void ToString(float leftTrigger, float rightTrigger)
+ {
+ ANXGamePadTriggers anx = new ANXGamePadTriggers(leftTrigger, rightTrigger);
+ XNAGamePadTriggers xna = new XNAGamePadTriggers(leftTrigger, rightTrigger);
+ AssertHelper.CompareString(xna.ToString(), anx.ToString(), "ToString");
+ }
+ [TestCaseSource("twofloats")]
+ public void Equals(float leftTrigger, float rightTrigger)
+ {
+ ANXGamePadTriggers anx = new ANXGamePadTriggers(leftTrigger, rightTrigger);
+ XNAGamePadTriggers xna = new XNAGamePadTriggers(leftTrigger, rightTrigger);
+ ANXGamePadTriggers anx2 = new ANXGamePadTriggers(leftTrigger, rightTrigger);
+ XNAGamePadTriggers xna2 = new XNAGamePadTriggers(leftTrigger, rightTrigger);
+ AssertHelper.ConvertEquals(xna == xna2, anx == anx2, "Equals");
+ }
+ [TestCaseSource("twofloats")]
+ public void Equals2(float leftTrigger, float rightTrigger)
+ {
+ ANXGamePadTriggers anx = new ANXGamePadTriggers(leftTrigger, rightTrigger);
+ XNAGamePadTriggers xna = new XNAGamePadTriggers(leftTrigger, rightTrigger);
+ ANXGamePadTriggers anx2 = new ANXGamePadTriggers(leftTrigger, rightTrigger);
+ XNAGamePadTriggers xna2 = new XNAGamePadTriggers(leftTrigger, rightTrigger);
+ AssertHelper.ConvertEquals(xna.Equals(xna2), anx.Equals(anx2), "Equals2");
+ }
+ [TestCaseSource("twofloats")]
+ public void NotEquals(float leftTrigger, float rightTrigger)
+ {
+ ANXGamePadTriggers anx = new ANXGamePadTriggers(leftTrigger, rightTrigger);
+ XNAGamePadTriggers xna = new XNAGamePadTriggers(leftTrigger, rightTrigger);
+ while (leftTrigger==rightTrigger)
+ {
+ leftTrigger = DataFactory.RandomFloat;
+ }
+ ANXGamePadTriggers anx2 = new ANXGamePadTriggers(rightTrigger,leftTrigger);
+ XNAGamePadTriggers xna2 = new XNAGamePadTriggers(rightTrigger,leftTrigger);
+ AssertHelper.ConvertEquals(xna != xna2, anx != anx2, "NotEquals");
+ }
+ }
+}
diff --git a/ANX.Framework.TestCenter/Strukturen/MathHelperTest.cs b/ANX.Framework.TestCenter/Strukturen/MathHelperTest.cs
index 48b924ad..7b9c6143 100644
--- a/ANX.Framework.TestCenter/Strukturen/MathHelperTest.cs
+++ b/ANX.Framework.TestCenter/Strukturen/MathHelperTest.cs
@@ -134,7 +134,7 @@ namespace ANX.Framework.TestCenter.Strukturen
{
float xna = XNAMath.Barycentric(value1, tangent1, value2, tangent2, amount);
float anx = ANXMath.Barycentric(value1, tangent1, value2, tangent2, amount);
- TestFloat(xna, anx, "Barycentric");
+ AssertHelper.CompareFloats(xna, anx, "Barycentric");
}
[TestCaseSource("fivefloats")]
@@ -142,7 +142,7 @@ namespace ANX.Framework.TestCenter.Strukturen
{
float xna = XNAMath.CatmullRom(value1, tangent1, value2, tangent2, amount);
float anx = ANXMath.CatmullRom(value1, tangent1, value2, tangent2, amount);
- TestFloat(xna, anx, "CatmullRom");
+ AssertHelper.CompareFloats(xna, anx, "CatmullRom");
}
[Test, TestCaseSource("threefloats")]
@@ -150,7 +150,7 @@ namespace ANX.Framework.TestCenter.Strukturen
{
float xna = XNAMath.Clamp(value1, value2, amount);
float anx = ANXMath.Clamp(value1, value2, amount);
- TestFloat(xna, anx, "Clamp");
+ AssertHelper.CompareFloats(xna, anx, "Clamp");
}
[Test, TestCaseSource("threefloats")]
@@ -158,7 +158,7 @@ namespace ANX.Framework.TestCenter.Strukturen
{
float xna = XNAMath.SmoothStep(value1, value2, amount);
float anx = ANXMath.SmoothStep(value1, value2, amount);
- TestFloat(xna, anx, "SmoothStep");
+ AssertHelper.CompareFloats(xna, anx, "SmoothStep");
}
[Test, TestCaseSource("threefloats")]
@@ -166,7 +166,7 @@ namespace ANX.Framework.TestCenter.Strukturen
{
float xna = XNAMath.Lerp(value1, value2, amount);
float anx = ANXMath.Lerp(value1, value2, amount);
- TestFloat(xna, anx, "Lerp");
+ AssertHelper.CompareFloats(xna, anx, "Lerp");
}
[TestCaseSource("twofloats")]
@@ -174,7 +174,7 @@ namespace ANX.Framework.TestCenter.Strukturen
{
float xna = XNAMath.Distance(min, max);
float anx = ANXMath.Distance(min, max);
- TestFloat(xna, anx, "Distance");
+ AssertHelper.CompareFloats(xna, anx, "Distance");
}
[TestCaseSource("twofloats")]
@@ -182,7 +182,7 @@ namespace ANX.Framework.TestCenter.Strukturen
{
float xna = XNAMath.Max(min, max);
float anx = ANXMath.Max(min, max);
- TestFloat(xna, anx, "Max");
+ AssertHelper.CompareFloats(xna, anx, "Max");
}
[TestCaseSource("twofloats")]
@@ -190,7 +190,7 @@ namespace ANX.Framework.TestCenter.Strukturen
{
float xna = XNAMath.Min(min, max);
float anx = ANXMath.Min(min, max);
- TestFloat(xna, anx, "Min");
+ AssertHelper.CompareFloats(xna, anx, "Min");
}
[TestCaseSource("onefloat")]
@@ -198,7 +198,7 @@ namespace ANX.Framework.TestCenter.Strukturen
{
float xna = XNAMath.ToDegrees(one);
float anx = ANXMath.ToDegrees(one);
- TestFloat(xna, anx, "ToRadians");
+ AssertHelper.CompareFloats(xna, anx, "ToRadians");
}
@@ -207,7 +207,7 @@ namespace ANX.Framework.TestCenter.Strukturen
{
float xna = XNAMath.ToRadians(one);
float anx = ANXMath.ToRadians(one);
- TestFloat(xna, anx, "ToRadians");
+ AssertHelper.CompareFloats(xna, anx, "ToRadians");
}
@@ -216,7 +216,7 @@ namespace ANX.Framework.TestCenter.Strukturen
{
float xna = XNAMath.WrapAngle(one);
float anx = ANXMath.WrapAngle(one);
- TestFloat(xna, anx, "WrapAngle");
+ AssertHelper.CompareFloats(xna, anx, "WrapAngle");
}
[TestCaseSource("fivefloats")]
@@ -224,24 +224,9 @@ namespace ANX.Framework.TestCenter.Strukturen
{
float xna = XNAMath.Hermite(value1, tangent1, value2, tangent2, amount);
float anx = ANXMath.Hermite(value1, tangent1, value2, tangent2, amount);
- TestFloat(xna, anx, "Hermite");
+ AssertHelper.CompareFloats(xna, anx, "Hermite");
}
- private static void TestFloat(float xna, float anx, string funktion)
- {
- if (AssertHelper.CompareFloats(xna, anx, 0.000001f))
- {
- Assert.Pass(funktion+" passed");
- }
- else
- {
- if (xna.ToString() == anx.ToString())
- {
- Assert.Pass(funktion+" passed");
- }
- Assert.Fail(String.Format(funktion + " failed: xna({0}) anx({1})", xna, anx));
- }
- }
}
}
diff --git a/ANX.Framework/Input/GamePadTriggers.cs b/ANX.Framework/Input/GamePadTriggers.cs
index 61da51ec..6edf6067 100644
--- a/ANX.Framework/Input/GamePadTriggers.cs
+++ b/ANX.Framework/Input/GamePadTriggers.cs
@@ -64,7 +64,23 @@ namespace ANX.Framework.Input
public GamePadTriggers (float leftTrigger,float rightTrigger)
{
- left = leftTrigger;
+ if (leftTrigger>1)
+ {
+ leftTrigger = 1;
+ }
+ if (leftTrigger<0)
+ {
+ leftTrigger = 0;
+ }
+ if (rightTrigger>1)
+ {
+ rightTrigger = 1;
+ }
+ if (rightTrigger<0)
+ {
+ rightTrigger = 0;
+ }
+ left = leftTrigger;
right = rightTrigger;
}
diff --git a/SoundSystems/ANX.SoundSystem.Windows.XAudio/ANX.SoundSystem.Windows.XAudio.csproj b/SoundSystems/ANX.SoundSystem.Windows.XAudio/ANX.SoundSystem.Windows.XAudio.csproj
index bca3e988..91fb85df 100644
--- a/SoundSystems/ANX.SoundSystem.Windows.XAudio/ANX.SoundSystem.Windows.XAudio.csproj
+++ b/SoundSystems/ANX.SoundSystem.Windows.XAudio/ANX.SoundSystem.Windows.XAudio.csproj
@@ -31,6 +31,12 @@
4
+
+ ..\..\lib\SharpDX\Bin\SharpDX.dll
+
+
+ ..\..\lib\SharpDX\Bin\SharpDX.XAudio2.dll
+