add AssertHelper.CompareFloats(float xna, float anx, String test)

add AssertHelper.CompareString(String xna, String anx, String test)
add GamePadTriggersTest
Fix Gamepadtriggers Properties
This commit is contained in:
SND\rene87_cp 2011-11-16 23:30:37 +00:00
parent 1dafda1067
commit a0b0f8f869
6 changed files with 209 additions and 55 deletions

View File

@ -146,7 +146,33 @@ namespace ANX.Framework.TestCenter
{ {
return (float)Math.Abs((double)(a - b)) < epsilon; 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) public static void ConvertEquals(bool xna, bool anx, String test)
{ {
if (xna == anx) if (xna == anx)
@ -155,7 +181,7 @@ namespace ANX.Framework.TestCenter
} }
else 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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));
} }
} }

View File

@ -2,7 +2,7 @@
using System; using System;
using System.IO; using System.IO;
using ANX.Framework.NonXNA; using ANX.Framework.NonXNA;
using NUnit.Framework;
#endregion // Using Statements #endregion // Using Statements
using ANXGamePadDPad = ANX.Framework.Input.GamePadDPad; using ANXGamePadDPad = ANX.Framework.Input.GamePadDPad;
@ -11,7 +11,7 @@ using ANXButtonState = ANX.Framework.Input.ButtonState;
using XNAGamePadDPad = Microsoft.Xna.Framework.Input.GamePadDPad; using XNAGamePadDPad = Microsoft.Xna.Framework.Input.GamePadDPad;
using XNAButtons = Microsoft.Xna.Framework.Input.Buttons; using XNAButtons = Microsoft.Xna.Framework.Input.Buttons;
using XNAButtonState = Microsoft.Xna.Framework.Input.ButtonState; using XNAButtonState = Microsoft.Xna.Framework.Input.ButtonState;
using NUnit.Framework;
#region License #region License
@ -142,14 +142,9 @@ namespace ANX.Framework.TestCenter.Input
ANXGamePadDPad anx = new ANXGamePadDPad(upValue, downValue, leftValue, rightValue); ANXGamePadDPad anx = new ANXGamePadDPad(upValue, downValue, leftValue, rightValue);
XNAGamePadDPad xna = new XNAGamePadDPad(upValue2, downValue2, leftValue2, rightValue2); XNAGamePadDPad xna = new XNAGamePadDPad(upValue2, downValue2, leftValue2, rightValue2);
if (xna.ToString() == anx.ToString()) AssertHelper.CompareString(xna.ToString(), anx.ToString(), "ToString");
{
Assert.Pass("Pass ToString");
}
else
{
Assert.Fail("Fail ToString\n" + xna.ToString() + "\n" + anx.ToString());
}
} }
[TestCaseSource("Stats16")] [TestCaseSource("Stats16")]
public void Equal(ANXButtonState upValue, ANXButtonState downValue, ANXButtonState leftValue, ANXButtonState rightValue, XNAButtonState upValue2, XNAButtonState downValue2, XNAButtonState leftValue2, XNAButtonState rightValue2) public void Equal(ANXButtonState upValue, ANXButtonState downValue, ANXButtonState leftValue, ANXButtonState rightValue, XNAButtonState upValue2, XNAButtonState downValue2, XNAButtonState leftValue2, XNAButtonState rightValue2)

View File

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

View File

@ -134,7 +134,7 @@ namespace ANX.Framework.TestCenter.Strukturen
{ {
float xna = XNAMath.Barycentric(value1, tangent1, value2, tangent2, amount); float xna = XNAMath.Barycentric(value1, tangent1, value2, tangent2, amount);
float anx = ANXMath.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")] [TestCaseSource("fivefloats")]
@ -142,7 +142,7 @@ namespace ANX.Framework.TestCenter.Strukturen
{ {
float xna = XNAMath.CatmullRom(value1, tangent1, value2, tangent2, amount); float xna = XNAMath.CatmullRom(value1, tangent1, value2, tangent2, amount);
float anx = ANXMath.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")] [Test, TestCaseSource("threefloats")]
@ -150,7 +150,7 @@ namespace ANX.Framework.TestCenter.Strukturen
{ {
float xna = XNAMath.Clamp(value1, value2, amount); float xna = XNAMath.Clamp(value1, value2, amount);
float anx = ANXMath.Clamp(value1, value2, amount); float anx = ANXMath.Clamp(value1, value2, amount);
TestFloat(xna, anx, "Clamp"); AssertHelper.CompareFloats(xna, anx, "Clamp");
} }
[Test, TestCaseSource("threefloats")] [Test, TestCaseSource("threefloats")]
@ -158,7 +158,7 @@ namespace ANX.Framework.TestCenter.Strukturen
{ {
float xna = XNAMath.SmoothStep(value1, value2, amount); float xna = XNAMath.SmoothStep(value1, value2, amount);
float anx = ANXMath.SmoothStep(value1, value2, amount); float anx = ANXMath.SmoothStep(value1, value2, amount);
TestFloat(xna, anx, "SmoothStep"); AssertHelper.CompareFloats(xna, anx, "SmoothStep");
} }
[Test, TestCaseSource("threefloats")] [Test, TestCaseSource("threefloats")]
@ -166,7 +166,7 @@ namespace ANX.Framework.TestCenter.Strukturen
{ {
float xna = XNAMath.Lerp(value1, value2, amount); float xna = XNAMath.Lerp(value1, value2, amount);
float anx = ANXMath.Lerp(value1, value2, amount); float anx = ANXMath.Lerp(value1, value2, amount);
TestFloat(xna, anx, "Lerp"); AssertHelper.CompareFloats(xna, anx, "Lerp");
} }
[TestCaseSource("twofloats")] [TestCaseSource("twofloats")]
@ -174,7 +174,7 @@ namespace ANX.Framework.TestCenter.Strukturen
{ {
float xna = XNAMath.Distance(min, max); float xna = XNAMath.Distance(min, max);
float anx = ANXMath.Distance(min, max); float anx = ANXMath.Distance(min, max);
TestFloat(xna, anx, "Distance"); AssertHelper.CompareFloats(xna, anx, "Distance");
} }
[TestCaseSource("twofloats")] [TestCaseSource("twofloats")]
@ -182,7 +182,7 @@ namespace ANX.Framework.TestCenter.Strukturen
{ {
float xna = XNAMath.Max(min, max); float xna = XNAMath.Max(min, max);
float anx = ANXMath.Max(min, max); float anx = ANXMath.Max(min, max);
TestFloat(xna, anx, "Max"); AssertHelper.CompareFloats(xna, anx, "Max");
} }
[TestCaseSource("twofloats")] [TestCaseSource("twofloats")]
@ -190,7 +190,7 @@ namespace ANX.Framework.TestCenter.Strukturen
{ {
float xna = XNAMath.Min(min, max); float xna = XNAMath.Min(min, max);
float anx = ANXMath.Min(min, max); float anx = ANXMath.Min(min, max);
TestFloat(xna, anx, "Min"); AssertHelper.CompareFloats(xna, anx, "Min");
} }
[TestCaseSource("onefloat")] [TestCaseSource("onefloat")]
@ -198,7 +198,7 @@ namespace ANX.Framework.TestCenter.Strukturen
{ {
float xna = XNAMath.ToDegrees(one); float xna = XNAMath.ToDegrees(one);
float anx = ANXMath.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 xna = XNAMath.ToRadians(one);
float anx = ANXMath.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 xna = XNAMath.WrapAngle(one);
float anx = ANXMath.WrapAngle(one); float anx = ANXMath.WrapAngle(one);
TestFloat(xna, anx, "WrapAngle"); AssertHelper.CompareFloats(xna, anx, "WrapAngle");
} }
[TestCaseSource("fivefloats")] [TestCaseSource("fivefloats")]
@ -224,24 +224,9 @@ namespace ANX.Framework.TestCenter.Strukturen
{ {
float xna = XNAMath.Hermite(value1, tangent1, value2, tangent2, amount); float xna = XNAMath.Hermite(value1, tangent1, value2, tangent2, amount);
float anx = ANXMath.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));
}
}
} }
} }

View File

@ -64,7 +64,23 @@ namespace ANX.Framework.Input
public GamePadTriggers (float leftTrigger,float rightTrigger) 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; right = rightTrigger;
} }

View File

@ -31,6 +31,12 @@
<WarningLevel>4</WarningLevel> <WarningLevel>4</WarningLevel>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="SharpDX, Version=2.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\lib\SharpDX\Bin\SharpDX.dll</HintPath>
</Reference>
<Reference Include="SharpDX.XAudio2">
<HintPath>..\..\lib\SharpDX\Bin\SharpDX.XAudio2.dll</HintPath>
</Reference>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Core" /> <Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" /> <Reference Include="System.Xml.Linq" />