diff --git a/ClientServerLib/ClientServerLib/ClientServerLib.csproj b/ClientServerLib/ClientServerLib/ClientServerLib.csproj index 4a958128..90c0aa91 100644 --- a/ClientServerLib/ClientServerLib/ClientServerLib.csproj +++ b/ClientServerLib/ClientServerLib/ClientServerLib.csproj @@ -17,7 +17,7 @@ true full false - bin\Debug\ + bin\ DEBUG;TRACE prompt 4 @@ -25,7 +25,7 @@ pdbonly true - bin\Release\ + bin\ TRACE prompt 4 diff --git a/ClientServerLib/ClientTest/bin/Debug/ClientTest.exe b/ClientServerLib/ClientTest/bin/Debug/ClientTest.exe deleted file mode 100644 index f1ed2a57..00000000 Binary files a/ClientServerLib/ClientTest/bin/Debug/ClientTest.exe and /dev/null differ diff --git a/ClientServerLib/ClientTest/bin/Debug/ClientTest.vshost.exe b/ClientServerLib/ClientTest/bin/Debug/ClientTest.vshost.exe deleted file mode 100644 index bb84a51a..00000000 Binary files a/ClientServerLib/ClientTest/bin/Debug/ClientTest.vshost.exe and /dev/null differ diff --git a/Vocaluxe/Base/CController.cs b/Vocaluxe/Base/CController.cs index 5014eef8..bbe42c4d 100644 --- a/Vocaluxe/Base/CController.cs +++ b/Vocaluxe/Base/CController.cs @@ -17,6 +17,9 @@ // */ #endregion +using System; +using System.Collections.Generic; + using Vocaluxe.Lib.Input; using Vocaluxe.Lib.Input.WiiMote; using VocaluxeLib.Menu; @@ -25,54 +28,106 @@ namespace Vocaluxe.Base { static class CController { - private static IController _Controller; + private static List _Controller; + + private static List _KeysPool; + private static List _MousePool; public static void Init() { - _Controller = new CWiiMote(); + _Controller = new List(); + _KeysPool = new List(); + _MousePool = new List(); + + _Controller.Add(new CWiiMote()); - _Controller.Init(); + foreach (IController controller in _Controller) + { + controller.Init(); + } } public static void Close() { - _Controller.Close(); - _Controller = null; + foreach (IController controller in _Controller) + { + controller.Close(); + } + + _Controller = new List(); } public static void Connect() { - _Controller.Connect(); + foreach (IController controller in _Controller) + { + controller.Connect(); + } } public static void Disconnect() { - _Controller.Disconnect(); + foreach (IController controller in _Controller) + { + controller.Disconnect(); + } } public static bool IsConnected() { - return _Controller.IsConnected(); + //return _Controller.IsConnected(); + return false; //should be changed } public static void Update() { - _Controller.Update(); + foreach (IController controller in _Controller) + { + controller.Update(); + + SKeyEvent ke = new SKeyEvent(); + while (controller.PollKeyEvent(ref ke)) + { + _KeysPool.Add(ke); + } + + SMouseEvent me = new SMouseEvent(); + while (controller.PollMouseEvent(ref me)) + { + _MousePool.Add(me); + } + } + } public static bool PollKeyEvent(ref SKeyEvent keyEvent) { - return _Controller.PollKeyEvent(ref keyEvent); + if (_KeysPool.Count > 0) + { + keyEvent = _KeysPool[0]; + _KeysPool.RemoveAt(0); + return true; + } + return false; } public static bool PollMouseEvent(ref SMouseEvent mouseEvent) { - return _Controller.PollMouseEvent(ref mouseEvent); + if (_MousePool.Count > 0) + { + mouseEvent = _MousePool[0]; + _MousePool.RemoveAt(0); + return true; + } + return false; } public static void SetRumble(float duration) { - _Controller.SetRumble(duration); + foreach (IController controller in _Controller) + { + controller.SetRumble(duration); + } } } } \ No newline at end of file