Fixed issue with useDInput variable not being in correct state

This commit is contained in:
Travis Nickles 2018-10-08 05:51:27 -05:00
parent 3bbdbe3a0f
commit 5efe6b556e
2 changed files with 10 additions and 9 deletions

View File

@ -459,6 +459,10 @@ namespace DS4Windows
LogDebug("X360 Controller # " + xinputIndex + " failed. Using DInput only mode"); LogDebug("X360 Controller # " + xinputIndex + " failed. Using DInput only mode");
} }
} }
else
{
useDInputOnly[i] = true;
}
int tempIdx = i; int tempIdx = i;
device.Report += (sender, e) => device.Report += (sender, e) =>
@ -709,6 +713,10 @@ namespace DS4Windows
LogDebug("X360 Controller # " + xinputIndex + " failed. Using DInput only mode"); LogDebug("X360 Controller # " + xinputIndex + " failed. Using DInput only mode");
} }
} }
else
{
useDInputOnly[Index] = true;
}
TouchPadOn(Index, device); TouchPadOn(Index, device);
CheckProfileOptions(Index, device); CheckProfileOptions(Index, device);

View File

@ -2557,7 +2557,6 @@ namespace DS4Windows
{ {
if (device < 4) if (device < 4)
{ {
//bool changed = false;
DS4Device tempDevice = control.DS4Controllers[device]; DS4Device tempDevice = control.DS4Controllers[device];
bool exists = tempBool = (tempDevice != null); bool exists = tempBool = (tempDevice != null);
bool synced = tempBool = exists ? tempDevice.isSynced() : false; bool synced = tempBool = exists ? tempDevice.isSynced() : false;
@ -2569,23 +2568,17 @@ namespace DS4Windows
Global.useDInputOnly[device] = true; Global.useDInputOnly[device] = true;
xinputPlug = false; xinputPlug = false;
xinputStatus = true; xinputStatus = true;
//changed = true;
} }
else if (synced && isAlive) else if (synced && isAlive)
{ {
Global.useDInputOnly[device] = false; Global.useDInputOnly[device] = false;
xinputPlug = true; xinputPlug = true;
xinputStatus = true; xinputStatus = true;
//changed = true;
} }
else if (!synced)
/*if (changed)
{ {
System.Threading.Thread.Sleep(Global.XINPUT_UNPLUG_SETTLE_TIME); Global.useDInputOnly[device] = true;
} }
*/
} }
} }
} }