mirror of
https://github.com/cemu-project/DS4Windows.git
synced 2024-12-27 09:01:48 +01:00
Added new field array for specifying active controller types
Related to issue #871
This commit is contained in:
parent
bf86b891bb
commit
a871e750ee
@ -442,6 +442,7 @@ namespace DS4Windows
|
|||||||
if (contType == OutContType.X360)
|
if (contType == OutContType.X360)
|
||||||
{
|
{
|
||||||
LogDebug("Plugging in X360 Controller #" + (i + 1));
|
LogDebug("Plugging in X360 Controller #" + (i + 1));
|
||||||
|
Global.activeOutDevType[i] = OutContType.X360;
|
||||||
Xbox360OutDevice tempXbox = new Xbox360OutDevice(vigemTestClient);
|
Xbox360OutDevice tempXbox = new Xbox360OutDevice(vigemTestClient);
|
||||||
outputDevices[i] = tempXbox;
|
outputDevices[i] = tempXbox;
|
||||||
int devIndex = i;
|
int devIndex = i;
|
||||||
@ -456,6 +457,7 @@ namespace DS4Windows
|
|||||||
else if (contType == OutContType.DS4)
|
else if (contType == OutContType.DS4)
|
||||||
{
|
{
|
||||||
LogDebug("Plugging in DS4 Controller #" + (i + 1));
|
LogDebug("Plugging in DS4 Controller #" + (i + 1));
|
||||||
|
Global.activeOutDevType[i] = OutContType.DS4;
|
||||||
DS4OutDevice tempDS4 = new DS4OutDevice(vigemTestClient);
|
DS4OutDevice tempDS4 = new DS4OutDevice(vigemTestClient);
|
||||||
outputDevices[i] = tempDS4;
|
outputDevices[i] = tempDS4;
|
||||||
int devIndex = i;
|
int devIndex = i;
|
||||||
@ -471,6 +473,7 @@ namespace DS4Windows
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
useDInputOnly[i] = true;
|
useDInputOnly[i] = true;
|
||||||
|
Global.activeOutDevType[i] = OutContType.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
int tempIdx = i;
|
int tempIdx = i;
|
||||||
@ -606,6 +609,7 @@ namespace DS4Windows
|
|||||||
outputDevices[i]?.Disconnect();
|
outputDevices[i]?.Disconnect();
|
||||||
outputDevices[i] = null;
|
outputDevices[i] = null;
|
||||||
useDInputOnly[i] = true;
|
useDInputOnly[i] = true;
|
||||||
|
Global.activeOutDevType[i] = OutContType.None;
|
||||||
DS4Controllers[i] = null;
|
DS4Controllers[i] = null;
|
||||||
touchPad[i] = null;
|
touchPad[i] = null;
|
||||||
lag[i] = false;
|
lag[i] = false;
|
||||||
@ -723,6 +727,7 @@ namespace DS4Windows
|
|||||||
if (contType == OutContType.X360)
|
if (contType == OutContType.X360)
|
||||||
{
|
{
|
||||||
LogDebug("Plugging in X360 Controller #" + (Index + 1));
|
LogDebug("Plugging in X360 Controller #" + (Index + 1));
|
||||||
|
Global.activeOutDevType[Index] = OutContType.X360;
|
||||||
Xbox360OutDevice tempXbox = new Xbox360OutDevice(vigemTestClient);
|
Xbox360OutDevice tempXbox = new Xbox360OutDevice(vigemTestClient);
|
||||||
outputDevices[Index] = tempXbox;
|
outputDevices[Index] = tempXbox;
|
||||||
int devIndex = Index;
|
int devIndex = Index;
|
||||||
@ -737,6 +742,7 @@ namespace DS4Windows
|
|||||||
else if (contType == OutContType.DS4)
|
else if (contType == OutContType.DS4)
|
||||||
{
|
{
|
||||||
LogDebug("Plugging in DS4 Controller #" + (Index + 1));
|
LogDebug("Plugging in DS4 Controller #" + (Index + 1));
|
||||||
|
Global.activeOutDevType[Index] = OutContType.DS4;
|
||||||
DS4OutDevice tempDS4 = new DS4OutDevice(vigemTestClient);
|
DS4OutDevice tempDS4 = new DS4OutDevice(vigemTestClient);
|
||||||
outputDevices[Index] = tempDS4;
|
outputDevices[Index] = tempDS4;
|
||||||
int devIndex = Index;
|
int devIndex = Index;
|
||||||
@ -753,6 +759,7 @@ namespace DS4Windows
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
useDInputOnly[Index] = true;
|
useDInputOnly[Index] = true;
|
||||||
|
Global.activeOutDevType[Index] = OutContType.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
TouchPadOn(Index, device);
|
TouchPadOn(Index, device);
|
||||||
@ -1225,6 +1232,7 @@ namespace DS4Windows
|
|||||||
lag[ind] = false;
|
lag[ind] = false;
|
||||||
inWarnMonitor[ind] = false;
|
inWarnMonitor[ind] = false;
|
||||||
useDInputOnly[ind] = true;
|
useDInputOnly[ind] = true;
|
||||||
|
Global.activeOutDevType[ind] = OutContType.None;
|
||||||
uiContext?.Post(new SendOrPostCallback((state) =>
|
uiContext?.Post(new SendOrPostCallback((state) =>
|
||||||
{
|
{
|
||||||
OnControllerRemoved(this, ind);
|
OnControllerRemoved(this, ind);
|
||||||
|
@ -250,9 +250,14 @@ namespace DS4Windows
|
|||||||
public static bool[] useDInputOnly = new bool[5] { true, true, true, true, true };
|
public static bool[] useDInputOnly = new bool[5] { true, true, true, true, true };
|
||||||
public static bool[] linkedProfileCheck = new bool[4] { true, true, true, true };
|
public static bool[] linkedProfileCheck = new bool[4] { true, true, true, true };
|
||||||
public static bool[] touchpadActive = new bool[5] { true, true, true, true, true };
|
public static bool[] touchpadActive = new bool[5] { true, true, true, true, true };
|
||||||
|
// Used to hold device type desired from Profile Editor
|
||||||
public static OutContType[] outDevTypeTemp = new OutContType[5] { DS4Windows.OutContType.X360, DS4Windows.OutContType.X360,
|
public static OutContType[] outDevTypeTemp = new OutContType[5] { DS4Windows.OutContType.X360, DS4Windows.OutContType.X360,
|
||||||
DS4Windows.OutContType.X360, DS4Windows.OutContType.X360,
|
DS4Windows.OutContType.X360, DS4Windows.OutContType.X360,
|
||||||
DS4Windows.OutContType.X360 };
|
DS4Windows.OutContType.X360 };
|
||||||
|
// Used to hold the currently active controller output type in use for a slot
|
||||||
|
public static OutContType[] activeOutDevType = new OutContType[5] { DS4Windows.OutContType.None, DS4Windows.OutContType.None,
|
||||||
|
DS4Windows.OutContType.None, DS4Windows.OutContType.None,
|
||||||
|
DS4Windows.OutContType.None };
|
||||||
public static bool vigemInstalled = IsViGEmBusInstalled();
|
public static bool vigemInstalled = IsViGEmBusInstalled();
|
||||||
public static string vigembusVersion = ViGEmBusVersion();
|
public static string vigembusVersion = ViGEmBusVersion();
|
||||||
|
|
||||||
@ -1973,6 +1978,7 @@ namespace DS4Windows
|
|||||||
|
|
||||||
public bool[] trackballMode = new bool[5] { false, false, false, false, false };
|
public bool[] trackballMode = new bool[5] { false, false, false, false, false };
|
||||||
public double[] trackballFriction = new double[5] { 10.0, 10.0, 10.0, 10.0, 10.0 };
|
public double[] trackballFriction = new double[5] { 10.0, 10.0, 10.0, 10.0, 10.0 };
|
||||||
|
// Used to hold the controller type desired in a profile
|
||||||
public OutContType[] outputDevType = new OutContType[5] { OutContType.X360,
|
public OutContType[] outputDevType = new OutContType[5] { OutContType.X360,
|
||||||
OutContType.X360, OutContType.X360,
|
OutContType.X360, OutContType.X360,
|
||||||
OutContType.X360, OutContType.X360 };
|
OutContType.X360, OutContType.X360 };
|
||||||
@ -2800,7 +2806,7 @@ namespace DS4Windows
|
|||||||
DS4LightBar.forcedFlash[device] = 0;
|
DS4LightBar.forcedFlash[device] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
OutContType oldContType = outputDevType[device];
|
OutContType oldContType = Global.activeOutDevType[device];
|
||||||
|
|
||||||
// Make sure to reset currently set profile values before parsing
|
// Make sure to reset currently set profile values before parsing
|
||||||
ResetProfile(device);
|
ResetProfile(device);
|
||||||
@ -3641,11 +3647,13 @@ namespace DS4Windows
|
|||||||
tempOutDev.Disconnect();
|
tempOutDev.Disconnect();
|
||||||
tempOutDev = null;
|
tempOutDev = null;
|
||||||
control.outputDevices[device] = null;
|
control.outputDevices[device] = null;
|
||||||
|
Global.activeOutDevType[device] = OutContType.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
OutContType tempContType = outputDevType[device];
|
OutContType tempContType = outputDevType[device];
|
||||||
if (tempContType == OutContType.X360)
|
if (tempContType == OutContType.X360)
|
||||||
{
|
{
|
||||||
|
Global.activeOutDevType[device] = OutContType.X360;
|
||||||
Xbox360OutDevice tempXbox = new Xbox360OutDevice(control.vigemTestClient);
|
Xbox360OutDevice tempXbox = new Xbox360OutDevice(control.vigemTestClient);
|
||||||
control.outputDevices[device] = tempXbox;
|
control.outputDevices[device] = tempXbox;
|
||||||
tempXbox.cont.FeedbackReceived += (eventsender, args) =>
|
tempXbox.cont.FeedbackReceived += (eventsender, args) =>
|
||||||
@ -3658,6 +3666,7 @@ namespace DS4Windows
|
|||||||
}
|
}
|
||||||
else if (tempContType == OutContType.DS4)
|
else if (tempContType == OutContType.DS4)
|
||||||
{
|
{
|
||||||
|
Global.activeOutDevType[device] = OutContType.DS4;
|
||||||
DS4OutDevice tempDS4 = new DS4OutDevice(control.vigemTestClient);
|
DS4OutDevice tempDS4 = new DS4OutDevice(control.vigemTestClient);
|
||||||
control.outputDevices[device] = tempDS4;
|
control.outputDevices[device] = tempDS4;
|
||||||
tempDS4.cont.FeedbackReceived += (eventsender, args) =>
|
tempDS4.cont.FeedbackReceived += (eventsender, args) =>
|
||||||
@ -3679,6 +3688,7 @@ namespace DS4Windows
|
|||||||
control.outputDevices[device] = null;
|
control.outputDevices[device] = null;
|
||||||
Global.useDInputOnly[device] = true;
|
Global.useDInputOnly[device] = true;
|
||||||
AppLogger.LogToGui(tempType + " Controller #" + (device + 1) + " unplugged", false);
|
AppLogger.LogToGui(tempType + " Controller #" + (device + 1) + " unplugged", false);
|
||||||
|
Global.activeOutDevType[device] = OutContType.None;
|
||||||
}
|
}
|
||||||
|
|
||||||
tempDev.setRumble(0, 0);
|
tempDev.setRumble(0, 0);
|
||||||
|
@ -1758,10 +1758,7 @@ namespace DS4Windows.Forms
|
|||||||
default: break;
|
default: break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Global.outDevTypeTemp[device] != tempType)
|
|
||||||
{
|
|
||||||
Global.OutContType[device] = tempType;
|
Global.OutContType[device] = tempType;
|
||||||
}
|
|
||||||
|
|
||||||
switch (gyroOutputMode.SelectedIndex)
|
switch (gyroOutputMode.SelectedIndex)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user