modified controller class to support more than one controller
This commit is contained in:
1 parent
40c470c184
commit
29212e4c81
4 files changed
+69
-14
No files matched your search
@@ -17,7 +17,7 @@
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<OutputPath>bin\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
@@ -25,7 +25,7 @@
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<OutputPath>bin\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -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<IController> _Controller;
|
||||
|
||||
private static List<SKeyEvent> _KeysPool;
|
||||
private static List<SMouseEvent> _MousePool;
|
||||
|
||||
public static void Init()
|
||||
{
|
||||
_Controller = new CWiiMote();
|
||||
_Controller = new List<IController>();
|
||||
_KeysPool = new List<SKeyEvent>();
|
||||
_MousePool = new List<SMouseEvent>();
|
||||
|
||||
_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<IController>();
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user