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