mirror of
https://github.com/cemu-project/DS4Windows.git
synced 2024-12-23 23:21:49 +01:00
Code clean up. Reset xinput mapping for more bound actions.
This commit is contained in:
parent
f3c9e08398
commit
edeaa30b59
@ -127,7 +127,6 @@ namespace DS4Windows
|
||||
|
||||
WarnExclusiveModeFailure(device);
|
||||
DS4Controllers[i] = device;
|
||||
//device.Removal -= DS4Devices.On_Removal;
|
||||
device.Removal += this.On_DS4Removal;
|
||||
device.Removal += DS4Devices.On_Removal;
|
||||
touchPad[i] = new Mouse(i, device);
|
||||
@ -190,7 +189,6 @@ namespace DS4Windows
|
||||
Log.LogToTray(logMessage);
|
||||
}
|
||||
|
||||
//ControllerStatusChanged(this);
|
||||
runHotPlug = true;
|
||||
|
||||
return true;
|
||||
@ -281,11 +279,6 @@ namespace DS4Windows
|
||||
{
|
||||
device.StopUpdate();
|
||||
device.DisconnectBT(true);
|
||||
/*Task temp = Task.Delay(50).ContinueWith((t) => {
|
||||
while (!device.IsRemoved) { System.Threading.Thread.Sleep(10); }
|
||||
});
|
||||
temp.Wait(100);
|
||||
*/
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -323,7 +316,6 @@ namespace DS4Windows
|
||||
LogDebug(Properties.Resources.FoundController + device.getMacAddress() + " (" + device.getConnectionType() + ")");
|
||||
WarnExclusiveModeFailure(device);
|
||||
DS4Controllers[Index] = device;
|
||||
//device.Removal -= DS4Devices.On_Removal;
|
||||
device.Removal += this.On_DS4Removal;
|
||||
device.Removal += DS4Devices.On_Removal;
|
||||
touchPad[Index] = new Mouse(Index, device);
|
||||
@ -367,8 +359,6 @@ namespace DS4Windows
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//ControllerStatusChanged(this);
|
||||
}
|
||||
|
||||
return true;
|
||||
@ -551,7 +541,8 @@ namespace DS4Windows
|
||||
|
||||
public bool[] lag = { false, false, false, false };
|
||||
public bool[] inWarnMonitor = { false, false, false, false };
|
||||
//Called every time the new input report has arrived
|
||||
|
||||
//Called every time a new input report has arrived
|
||||
protected virtual void On_Report(object sender, EventArgs e)
|
||||
{
|
||||
DS4Device device = (DS4Device)sender;
|
||||
@ -801,138 +792,6 @@ namespace DS4Windows
|
||||
return result;
|
||||
}
|
||||
|
||||
/* TODO: Not used. Possible candidate for removal. Currently keeping for reference. */
|
||||
/*public DS4Controls GetInputkeysDS4(int ind)
|
||||
{
|
||||
DS4State cState = CurrentState[ind];
|
||||
DS4StateExposed eState = ExposedState[ind];
|
||||
Mouse tp = touchPad[ind];
|
||||
DS4Controls result = DS4Controls.None;
|
||||
|
||||
if (DS4Controllers[ind] != null)
|
||||
{
|
||||
if (Mapping.getBoolButtonMapping(cState.Cross))
|
||||
{
|
||||
result = DS4Controls.Cross;
|
||||
}
|
||||
else if (Mapping.getBoolButtonMapping(cState.Circle))
|
||||
{
|
||||
result = DS4Controls.Circle;
|
||||
}
|
||||
else if (Mapping.getBoolButtonMapping(cState.Triangle))
|
||||
{
|
||||
result = DS4Controls.Triangle;
|
||||
}
|
||||
else if (Mapping.getBoolButtonMapping(cState.Square))
|
||||
{
|
||||
result = DS4Controls.Square;
|
||||
}
|
||||
else if (Mapping.getBoolButtonMapping(cState.L1))
|
||||
{
|
||||
result = DS4Controls.L1;
|
||||
}
|
||||
else if (Mapping.getBoolTriggerMapping(cState.L2))
|
||||
{
|
||||
result = DS4Controls.L2;
|
||||
}
|
||||
else if (Mapping.getBoolButtonMapping(cState.L3))
|
||||
{
|
||||
result = DS4Controls.L3;
|
||||
}
|
||||
else if (Mapping.getBoolButtonMapping(cState.R1))
|
||||
{
|
||||
result = DS4Controls.R1;
|
||||
}
|
||||
else if (Mapping.getBoolTriggerMapping(cState.R2))
|
||||
{
|
||||
result = DS4Controls.R2;
|
||||
}
|
||||
else if (Mapping.getBoolButtonMapping(cState.R3))
|
||||
{
|
||||
result = DS4Controls.R3;
|
||||
}
|
||||
else if (Mapping.getBoolButtonMapping(cState.DpadUp))
|
||||
{
|
||||
result = DS4Controls.DpadUp;
|
||||
}
|
||||
else if (Mapping.getBoolButtonMapping(cState.DpadDown))
|
||||
{
|
||||
result = DS4Controls.DpadDown;
|
||||
}
|
||||
else if (Mapping.getBoolButtonMapping(cState.DpadLeft))
|
||||
{
|
||||
result = DS4Controls.DpadLeft;
|
||||
}
|
||||
else if (Mapping.getBoolButtonMapping(cState.DpadRight))
|
||||
{
|
||||
result = DS4Controls.DpadRight;
|
||||
}
|
||||
else if (Mapping.getBoolButtonMapping(cState.Share))
|
||||
{
|
||||
result = DS4Controls.Share;
|
||||
}
|
||||
else if (Mapping.getBoolButtonMapping(cState.Options))
|
||||
{
|
||||
result = DS4Controls.Options;
|
||||
}
|
||||
else if (Mapping.getBoolButtonMapping(cState.PS))
|
||||
{
|
||||
result = DS4Controls.PS;
|
||||
}
|
||||
else if (Mapping.getBoolAxisDirMapping(cState.LX, true))
|
||||
{
|
||||
result = DS4Controls.LXPos;
|
||||
}
|
||||
else if (Mapping.getBoolAxisDirMapping(cState.LX, false))
|
||||
{
|
||||
result = DS4Controls.LXNeg;
|
||||
}
|
||||
else if (Mapping.getBoolAxisDirMapping(cState.LY, true))
|
||||
{
|
||||
result = DS4Controls.LYPos;
|
||||
}
|
||||
else if (Mapping.getBoolAxisDirMapping(cState.LY, false))
|
||||
{
|
||||
result = DS4Controls.LYNeg;
|
||||
}
|
||||
else if (Mapping.getBoolAxisDirMapping(cState.RX, true))
|
||||
{
|
||||
result = DS4Controls.RXPos;
|
||||
}
|
||||
else if (Mapping.getBoolAxisDirMapping(cState.RX, false))
|
||||
{
|
||||
result = DS4Controls.RXNeg;
|
||||
}
|
||||
else if (Mapping.getBoolAxisDirMapping(cState.RY, true))
|
||||
{
|
||||
result = DS4Controls.RYPos;
|
||||
}
|
||||
else if (Mapping.getBoolAxisDirMapping(cState.RY, false))
|
||||
{
|
||||
result = DS4Controls.RYNeg;
|
||||
}
|
||||
else if (Mapping.getBoolTouchMapping(tp.leftDown))
|
||||
{
|
||||
result = DS4Controls.TouchLeft;
|
||||
}
|
||||
else if (Mapping.getBoolTouchMapping(tp.rightDown))
|
||||
{
|
||||
result = DS4Controls.TouchRight;
|
||||
}
|
||||
else if (Mapping.getBoolTouchMapping(tp.multiDown))
|
||||
{
|
||||
result = DS4Controls.TouchMulti;
|
||||
}
|
||||
else if (Mapping.getBoolTouchMapping(tp.upperDown))
|
||||
{
|
||||
result = DS4Controls.TouchUpper;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
*/
|
||||
|
||||
public bool[] touchreleased = { true, true, true, true }, touchslid = { false, false, false, false };
|
||||
public byte[] oldtouchvalue = { 0, 0, 0, 0 };
|
||||
public int[] oldscrollvalue = { 0, 0, 0, 0 };
|
@ -1,7 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Drawing;
|
||||
using static System.Math;
|
||||
using static DS4Windows.Global;
|
||||
|
@ -1,7 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace DS4Windows
|
||||
{
|
||||
|
@ -886,13 +886,15 @@ namespace DS4Windows
|
||||
bool active = getBoolMapping2(device, dcs.control, cState, eState, tp, fieldMapping);
|
||||
if (active)
|
||||
{
|
||||
resetToDefaultValue2(dcs.control, MappedState, outputfieldMapping);
|
||||
PlayMacro(device, macroControl, string.Join("/", (int[])action), dcs.control, keyType);
|
||||
}
|
||||
else
|
||||
{
|
||||
EndMacro(device, macroControl, string.Join("/", (int[])action), dcs.control);
|
||||
}
|
||||
|
||||
// erase default mappings for things that are remapped
|
||||
resetToDefaultValue2(dcs.control, MappedState, outputfieldMapping);
|
||||
}
|
||||
else if (actionType == DS4ControlSettings.ActionType.Key)
|
||||
{
|
||||
@ -900,7 +902,6 @@ namespace DS4Windows
|
||||
ushort value = Convert.ToUInt16(action);
|
||||
if (getBoolActionMapping2(device, dcs.control, cState, eState, tp, fieldMapping))
|
||||
{
|
||||
resetToDefaultValue2(dcs.control, MappedState, outputfieldMapping);
|
||||
SyntheticState.KeyPresses kp;
|
||||
if (!deviceState.keyPresses.TryGetValue(value, out kp))
|
||||
deviceState.keyPresses[value] = kp = new SyntheticState.KeyPresses();
|
||||
@ -923,6 +924,9 @@ namespace DS4Windows
|
||||
}
|
||||
else
|
||||
pressedonce[value] = false;
|
||||
|
||||
// erase default mappings for things that are remapped
|
||||
resetToDefaultValue2(dcs.control, MappedState, outputfieldMapping);
|
||||
}
|
||||
else if (actionType == DS4ControlSettings.ActionType.Button)
|
||||
{
|
||||
@ -1096,7 +1100,8 @@ namespace DS4Windows
|
||||
}
|
||||
}
|
||||
|
||||
resetToDefaultValue2(dcs.control, MappedState, outputfieldMapping); // erase default mappings for things that are remapped
|
||||
// erase default mappings for things that are remapped
|
||||
resetToDefaultValue2(dcs.control, MappedState, outputfieldMapping);
|
||||
}
|
||||
}
|
||||
|
||||
@ -3401,6 +3406,8 @@ namespace DS4Windows
|
||||
else if (controlType == DS4StateFieldMapping.ControlType.AxisDir)
|
||||
{
|
||||
fieldMap.axisdirs[controlNum] = 127;
|
||||
int controlRelation = (controlNum % 2 == 0 ? controlNum - 1 : controlNum + 1);
|
||||
fieldMap.axisdirs[controlRelation] = 127;
|
||||
}
|
||||
else if (controlType == DS4StateFieldMapping.ControlType.Trigger)
|
||||
{
|
||||
|
@ -1,8 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace DS4Windows
|
||||
{
|
||||
|
@ -1,7 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace DS4Windows
|
||||
{
|
||||
|
@ -12,7 +12,7 @@ using System.Threading.Tasks;
|
||||
namespace DS4Windows
|
||||
{
|
||||
[Flags]
|
||||
public enum DS4KeyType : byte { None = 0, ScanCode = 1, Toggle = 2, Unbound = 4, Macro = 8, HoldMacro = 16, RepeatMacro = 32 }; //Increment by exponents of 2*, starting at 2^0
|
||||
public enum DS4KeyType : byte { None = 0, ScanCode = 1, Toggle = 2, Unbound = 4, Macro = 8, HoldMacro = 16, RepeatMacro = 32 }; // Increment by exponents of 2*, starting at 2^0
|
||||
public enum Ds3PadId : byte { None = 0xFF, One = 0x00, Two = 0x01, Three = 0x02, Four = 0x03, All = 0x04 };
|
||||
public enum DS4Controls : byte { None, LXNeg, LXPos, LYNeg, LYPos, RXNeg, RXPos, RYNeg, RYPos, L1, L2, L3, R1, R2, R3, Square, Triangle, Circle, Cross, DpadUp, DpadRight, DpadDown, DpadLeft, PS, TouchLeft, TouchUpper, TouchMulti, TouchRight, Share, Options, GyroXPos, GyroXNeg, GyroZPos, GyroZNeg, SwipeLeft, SwipeRight, SwipeUp, SwipeDown };
|
||||
public enum X360Controls : byte { None, LXNeg, LXPos, LYNeg, LYPos, RXNeg, RXPos, RYNeg, RYPos, LB, LT, LS, RB, RT, RS, X, Y, B, A, DpadUp, DpadRight, DpadDown, DpadLeft, Guide, Back, Start, LeftMouse, RightMouse, MiddleMouse, FourthMouse, FifthMouse, WUP, WDOWN, MouseUp, MouseDown, MouseLeft, MouseRight, Unbound };
|
||||
@ -231,6 +231,7 @@ namespace DS4Windows
|
||||
X360Controls.None, X360Controls.None, X360Controls.None, X360Controls.None
|
||||
};
|
||||
|
||||
// Create mapping array at runtime
|
||||
public static DS4Controls[] reverseX360ButtonMapping = new Func<DS4Controls[]>(() =>
|
||||
{
|
||||
DS4Controls[] temp = new DS4Controls[defaultButtonMapping.Length];
|
||||
@ -252,6 +253,7 @@ namespace DS4Windows
|
||||
m_Config.m_Profile = appdatapath + "\\Profiles.xml";
|
||||
m_Config.m_Actions = appdatapath + "\\Actions.xml";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Check if Admin Rights are needed to write in Appliplation Directory
|
||||
/// </summary>
|
||||
@ -320,6 +322,7 @@ namespace DS4Windows
|
||||
set { m_Config.useExclusiveMode = value; }
|
||||
get { return m_Config.useExclusiveMode; }
|
||||
}
|
||||
|
||||
public static bool getUseExclusiveMode()
|
||||
{
|
||||
return m_Config.useExclusiveMode;
|
||||
@ -336,83 +339,100 @@ namespace DS4Windows
|
||||
set { m_Config.CheckWhen = value; }
|
||||
get { return m_Config.CheckWhen; }
|
||||
}
|
||||
|
||||
public static int Notifications
|
||||
{
|
||||
set { m_Config.notifications = value; }
|
||||
get { return m_Config.notifications; }
|
||||
}
|
||||
|
||||
public static bool DCBTatStop
|
||||
{
|
||||
set { m_Config.disconnectBTAtStop = value; }
|
||||
get { return m_Config.disconnectBTAtStop; }
|
||||
}
|
||||
|
||||
public static bool SwipeProfiles
|
||||
{
|
||||
set { m_Config.swipeProfiles = value; }
|
||||
get { return m_Config.swipeProfiles; }
|
||||
}
|
||||
|
||||
public static bool DS4Mapping
|
||||
{
|
||||
set { m_Config.ds4Mapping = value; }
|
||||
get { return m_Config.ds4Mapping; }
|
||||
}
|
||||
|
||||
public static bool QuickCharge
|
||||
{
|
||||
set { m_Config.quickCharge = value; }
|
||||
get { return m_Config.quickCharge; }
|
||||
}
|
||||
|
||||
public static bool getQuickCharge()
|
||||
{
|
||||
return m_Config.quickCharge;
|
||||
}
|
||||
|
||||
public static int FirstXinputPort
|
||||
{
|
||||
set { m_Config.firstXinputPort = value; }
|
||||
get { return m_Config.firstXinputPort; }
|
||||
}
|
||||
|
||||
public static bool CloseMini
|
||||
{
|
||||
set { m_Config.closeMini = value; }
|
||||
get { return m_Config.closeMini; }
|
||||
}
|
||||
|
||||
public static bool StartMinimized
|
||||
{
|
||||
set { m_Config.startMinimized = value; }
|
||||
get { return m_Config.startMinimized; }
|
||||
}
|
||||
|
||||
public static int FormWidth
|
||||
{
|
||||
set { m_Config.formWidth = value; }
|
||||
get { return m_Config.formWidth;}
|
||||
}
|
||||
|
||||
public static int FormHeight
|
||||
{
|
||||
set { m_Config.formHeight = value; }
|
||||
get { return m_Config.formHeight; }
|
||||
}
|
||||
|
||||
public static bool DownloadLang
|
||||
{
|
||||
set { m_Config.downloadLang = value; }
|
||||
get { return m_Config.downloadLang; }
|
||||
}
|
||||
|
||||
public static bool FlashWhenLate
|
||||
{
|
||||
set { m_Config.flashWhenLate = value; }
|
||||
get { return m_Config.flashWhenLate; }
|
||||
}
|
||||
|
||||
public static bool getFlashWhenLate()
|
||||
{
|
||||
return m_Config.flashWhenLate;
|
||||
}
|
||||
|
||||
public static int FlashWhenLateAt
|
||||
{
|
||||
set { m_Config.flashWhenLateAt = value; }
|
||||
get { return m_Config.flashWhenLateAt; }
|
||||
}
|
||||
|
||||
public static int getFlashWhenLateAt()
|
||||
{
|
||||
return m_Config.flashWhenLateAt;
|
||||
}
|
||||
|
||||
public static bool UseWhiteIcon
|
||||
{
|
||||
set { m_Config.useWhiteIcon = value; }
|
||||
@ -421,40 +441,48 @@ namespace DS4Windows
|
||||
|
||||
// controller/profile specfic values
|
||||
public static int[] ButtonMouseSensitivity => m_Config.buttonMouseSensitivity;
|
||||
|
||||
public static byte[] RumbleBoost => m_Config.rumble;
|
||||
public static byte getRumbleBoost(int index)
|
||||
{
|
||||
return m_Config.rumble[index];
|
||||
}
|
||||
|
||||
public static double[] Rainbow => m_Config.rainbow;
|
||||
public static double getRainbow(int index)
|
||||
{
|
||||
return m_Config.rainbow[index];
|
||||
}
|
||||
|
||||
public static bool[] FlushHIDQueue => m_Config.flushHIDQueue;
|
||||
public static bool getFlushHIDQueue(int index)
|
||||
{
|
||||
return m_Config.flushHIDQueue[index];
|
||||
}
|
||||
|
||||
public static bool[] EnableTouchToggle => m_Config.enableTouchToggle;
|
||||
public static bool getEnableTouchToggle(int index)
|
||||
{
|
||||
return m_Config.enableTouchToggle[index];
|
||||
}
|
||||
|
||||
public static int[] IdleDisconnectTimeout => m_Config.idleDisconnectTimeout;
|
||||
public static int getIdleDisconnectTimeout(int index)
|
||||
{
|
||||
return m_Config.idleDisconnectTimeout[index];
|
||||
}
|
||||
|
||||
public static byte[] TouchSensitivity => m_Config.touchSensitivity;
|
||||
public static byte[] getTouchSensitivity()
|
||||
{
|
||||
return m_Config.touchSensitivity;
|
||||
}
|
||||
|
||||
public static byte getTouchSensitivity(int index)
|
||||
{
|
||||
return m_Config.touchSensitivity[index];
|
||||
}
|
||||
|
||||
public static byte[] FlashType => m_Config.flashType;
|
||||
public static byte getFlashType(int index)
|
||||
{
|
||||
@ -472,51 +500,61 @@ namespace DS4Windows
|
||||
{
|
||||
return m_Config.ledAsBattery[index];
|
||||
}
|
||||
|
||||
public static int[] ChargingType => m_Config.chargingType;
|
||||
public static int getChargingType(int index)
|
||||
{
|
||||
return m_Config.chargingType[index];
|
||||
}
|
||||
|
||||
public static bool[] DinputOnly => m_Config.dinputOnly;
|
||||
public static bool getDInputOnly(int index)
|
||||
{
|
||||
return m_Config.dinputOnly[index];
|
||||
}
|
||||
|
||||
public static bool[] StartTouchpadOff => m_Config.startTouchpadOff;
|
||||
public static bool[] StartTouchpadOff => m_Config.startTouchpadOff;
|
||||
|
||||
public static bool[] UseTPforControls => m_Config.useTPforControls;
|
||||
public static bool getUseTPforControls(int index)
|
||||
{
|
||||
return m_Config.useTPforControls[index];
|
||||
}
|
||||
|
||||
public static bool[] UseSAforMouse => m_Config.useSAforMouse;
|
||||
public static bool isUsingSAforMouse(int index)
|
||||
{
|
||||
return m_Config.useSAforMouse[index];
|
||||
}
|
||||
|
||||
public static string[] SATriggers => m_Config.sATriggers;
|
||||
public static int[] GyroSensitivity => m_Config.gyroSensitivity;
|
||||
public static int[] GyroInvert => m_Config.gyroInvert;
|
||||
|
||||
public static DS4Color[] MainColor => m_Config.m_Leds;
|
||||
public static DS4Color getMainColor(int index)
|
||||
{
|
||||
return m_Config.m_Leds[index];
|
||||
}
|
||||
|
||||
public static DS4Color[] LowColor => m_Config.m_LowLeds;
|
||||
public static DS4Color getLowColor(int index)
|
||||
{
|
||||
return m_Config.m_LowLeds[index];
|
||||
}
|
||||
|
||||
public static DS4Color[] ChargingColor => m_Config.m_ChargingLeds;
|
||||
public static DS4Color getChargingColor(int index)
|
||||
{
|
||||
return m_Config.m_ChargingLeds[index];
|
||||
}
|
||||
|
||||
public static DS4Color[] CustomColor => m_Config.m_CustomLeds;
|
||||
public static DS4Color getCustomColor(int index)
|
||||
{
|
||||
return m_Config.m_CustomLeds[index];
|
||||
}
|
||||
|
||||
public static bool[] UseCustomLed => m_Config.useCustomLeds;
|
||||
public static bool getUseCustomLed(int index)
|
||||
{
|
||||
@ -528,8 +566,10 @@ namespace DS4Windows
|
||||
{
|
||||
return m_Config.m_FlashLeds[index];
|
||||
}
|
||||
|
||||
public static byte[] TapSensitivity => m_Config.tapSensitivity;
|
||||
public static bool[] DoubleTap => m_Config.doubleTap;
|
||||
public static bool[] DoubleTap => m_Config.doubleTap;
|
||||
|
||||
public static int[] ScrollSensitivity => m_Config.scrollSensitivity;
|
||||
public static int[] getScrollSensitivity()
|
||||
{
|
||||
@ -548,128 +588,154 @@ namespace DS4Windows
|
||||
{
|
||||
return m_Config.l2Deadzone[index];
|
||||
}
|
||||
|
||||
public static byte[] R2Deadzone => m_Config.r2Deadzone;
|
||||
public static byte getR2Deadzone(int index)
|
||||
{
|
||||
return m_Config.r2Deadzone[index];
|
||||
}
|
||||
|
||||
public static double[] SXDeadzone => m_Config.SXDeadzone;
|
||||
public static double getSXDeadzone(int index)
|
||||
{
|
||||
return m_Config.SXDeadzone[index];
|
||||
}
|
||||
|
||||
public static double[] SZDeadzone => m_Config.SZDeadzone;
|
||||
public static double getSZDeadzone(int index)
|
||||
{
|
||||
return m_Config.SZDeadzone[index];
|
||||
}
|
||||
|
||||
public static int[] LSDeadzone => m_Config.LSDeadzone;
|
||||
public static int getLSDeadzone(int index)
|
||||
{
|
||||
return m_Config.LSDeadzone[index];
|
||||
}
|
||||
|
||||
public static int[] RSDeadzone => m_Config.RSDeadzone;
|
||||
public static int getRSDeadzone(int index)
|
||||
{
|
||||
return m_Config.RSDeadzone[index];
|
||||
}
|
||||
|
||||
public static int[] LSAntiDeadzone => m_Config.LSAntiDeadzone;
|
||||
public static int getLSAntiDeadzone(int index)
|
||||
{
|
||||
return m_Config.LSAntiDeadzone[index];
|
||||
}
|
||||
|
||||
public static int[] RSAntiDeadzone => m_Config.RSAntiDeadzone;
|
||||
public static int getRSAntiDeadzone(int index)
|
||||
{
|
||||
return m_Config.RSAntiDeadzone[index];
|
||||
}
|
||||
|
||||
public static int[] LSMaxzone => m_Config.LSMaxzone;
|
||||
public static int getLSMaxzone(int index)
|
||||
{
|
||||
return m_Config.LSMaxzone[index];
|
||||
}
|
||||
|
||||
public static int[] RSMaxzone => m_Config.RSMaxzone;
|
||||
public static int getRSMaxzone(int index)
|
||||
{
|
||||
return m_Config.RSMaxzone[index];
|
||||
}
|
||||
|
||||
public static int[] L2AntiDeadzone => m_Config.l2AntiDeadzone;
|
||||
public static int getL2AntiDeadzone(int index)
|
||||
{
|
||||
return m_Config.l2AntiDeadzone[index];
|
||||
}
|
||||
|
||||
public static int[] R2AntiDeadzone => m_Config.r2AntiDeadzone;
|
||||
public static int getR2AntiDeadzone(int index)
|
||||
{
|
||||
return m_Config.r2AntiDeadzone[index];
|
||||
}
|
||||
|
||||
public static int[] L2Maxzone => m_Config.l2Maxzone;
|
||||
public static int getL2Maxzone(int index)
|
||||
{
|
||||
return m_Config.l2Maxzone[index];
|
||||
}
|
||||
|
||||
public static int[] R2Maxzone => m_Config.r2Maxzone;
|
||||
public static int getR2Maxzone(int index)
|
||||
{
|
||||
return m_Config.r2Maxzone[index];
|
||||
}
|
||||
|
||||
public static int[] LSCurve => m_Config.lsCurve;
|
||||
public static int getLSCurve(int index)
|
||||
{
|
||||
return m_Config.lsCurve[index];
|
||||
}
|
||||
|
||||
public static int[] RSCurve => m_Config.rsCurve;
|
||||
public static int getRSCurve(int index)
|
||||
{
|
||||
return m_Config.rsCurve[index];
|
||||
}
|
||||
|
||||
public static double[] L2Sens => m_Config.l2Sens;
|
||||
public static double getL2Sens(int index)
|
||||
{
|
||||
return m_Config.l2Sens[index];
|
||||
}
|
||||
|
||||
public static double[] R2Sens => m_Config.r2Sens;
|
||||
public static double getR2Sens(int index)
|
||||
{
|
||||
return m_Config.r2Sens[index];
|
||||
}
|
||||
|
||||
public static double[] SXSens => m_Config.SXSens;
|
||||
public static double getSXSens(int index)
|
||||
{
|
||||
return m_Config.SXSens[index];
|
||||
}
|
||||
|
||||
public static double[] SZSens => m_Config.SZSens;
|
||||
public static double getSZSens(int index)
|
||||
{
|
||||
return m_Config.SZSens[index];
|
||||
}
|
||||
|
||||
public static double[] LSSens => m_Config.LSSens;
|
||||
public static double getLSSens(int index)
|
||||
{
|
||||
return m_Config.LSSens[index];
|
||||
}
|
||||
|
||||
public static double[] RSSens => m_Config.RSSens;
|
||||
public static double getRSSens(int index)
|
||||
{
|
||||
return m_Config.RSSens[index];
|
||||
}
|
||||
|
||||
public static bool[] MouseAccel => m_Config.mouseAccel;
|
||||
public static bool getMouseAccel(int device)
|
||||
{
|
||||
return m_Config.mouseAccel[device];
|
||||
}
|
||||
|
||||
public static string[] LaunchProgram => m_Config.launchProgram;
|
||||
public static string[] ProfilePath => m_Config.profilePath;
|
||||
public static bool[] DistanceProfiles = m_Config.distanceProfiles;
|
||||
|
||||
public static List<string>[] ProfileActions => m_Config.profileActions;
|
||||
public static int getProfileActionCount(int index)
|
||||
{
|
||||
return m_Config.profileActionCount[index];
|
||||
}
|
||||
|
||||
public static void calculateProfileActionCount(int index)
|
||||
{
|
||||
m_Config.profileActionCount[index] = m_Config.profileActions[index].Count;
|
||||
}
|
||||
|
||||
public static List<string> getProfileActions(int index)
|
||||
{
|
||||
return m_Config.profileActions[index];
|
||||
@ -681,6 +747,7 @@ namespace DS4Windows
|
||||
m_Config.containsCustomAction[deviceNum] = m_Config.HasCustomActions(deviceNum);
|
||||
m_Config.containsCustomExtras[deviceNum] = m_Config.HasCustomExtras(deviceNum);
|
||||
}
|
||||
|
||||
public static void UpdateDS4Extra(int deviceNum, string buttonName, bool shift, string exts)
|
||||
{
|
||||
m_Config.UpdateDS4CExtra(deviceNum, buttonName, shift, exts);
|
||||
@ -699,10 +766,12 @@ namespace DS4Windows
|
||||
public static DS4ControlSettings getDS4CSetting(int deviceNum, DS4Controls control) => m_Config.getDS4CSetting(deviceNum, control);
|
||||
public static bool HasCustomActions(int deviceNum) => m_Config.HasCustomActions(deviceNum);
|
||||
public static bool HasCustomExtras(int deviceNum) => m_Config.HasCustomExtras(deviceNum);
|
||||
|
||||
public static bool containsCustomAction(int deviceNum)
|
||||
{
|
||||
return m_Config.containsCustomAction[deviceNum];
|
||||
}
|
||||
|
||||
public static bool containsCustomExtras(int deviceNum)
|
||||
{
|
||||
return m_Config.containsCustomExtras[deviceNum];
|
||||
@ -744,8 +813,11 @@ namespace DS4Windows
|
||||
public static SpecialAction GetAction(string name)
|
||||
{
|
||||
foreach (SpecialAction sA in m_Config.actions)
|
||||
{
|
||||
if (sA.name == name)
|
||||
return sA;
|
||||
}
|
||||
|
||||
return new SpecialAction("null", "null", "null", "null");
|
||||
}
|
||||
|
||||
@ -3063,6 +3135,7 @@ namespace DS4Windows
|
||||
public string extra;
|
||||
public bool pressRelease = false;
|
||||
public DS4KeyType keyType;
|
||||
|
||||
public SpecialAction(string name, string controls, string type, string details, double delay = 0, string extras = "")
|
||||
{
|
||||
this.name = name;
|
||||
|
@ -1,10 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace DS4Windows
|
||||
@ -25,7 +21,7 @@ namespace DS4Windows
|
||||
bool loading = true;
|
||||
private int alphacolor;
|
||||
private Color reg, full;
|
||||
int bgc = 240; //Color of the form background, If greyscale color
|
||||
int bgc = 240; // Color of the form background, If greyscale color
|
||||
private bool extraChanged;
|
||||
|
||||
public KBM360(int deviceNum, Options ooo, Button buton)
|
||||
@ -46,13 +42,22 @@ namespace DS4Windows
|
||||
btnDefault.Text = Properties.Resources.FallBack;
|
||||
}
|
||||
else if (button.Name.StartsWith("bn"))
|
||||
{
|
||||
Text = Properties.Resources.SelectActionTitle.Replace("*action*", button.Name.Substring(2));
|
||||
}
|
||||
|
||||
foreach (Control control in Controls)
|
||||
{
|
||||
if (control is Button)
|
||||
((Button)control).Click += anybtn_Click;
|
||||
}
|
||||
|
||||
foreach (Control control in pnl360Controls.Controls)
|
||||
{
|
||||
if (control is Button)
|
||||
((Button)control).Click += anybtn_Click;
|
||||
}
|
||||
|
||||
if (button.Name.Contains("Touch") || button.Name.Contains("Swipe"))
|
||||
{
|
||||
btnMOUSEDOWN.Visible = false;
|
||||
@ -60,6 +65,7 @@ namespace DS4Windows
|
||||
btnMOUSERIGHT.Visible = false;
|
||||
btnMOUSEUP.Visible = false;
|
||||
}
|
||||
|
||||
ActiveControl = lBMacroOn;
|
||||
guideText = btnGuide.Text;
|
||||
btnGuide.Text = "";
|
||||
@ -74,7 +80,9 @@ namespace DS4Windows
|
||||
InitializeComponent();
|
||||
sA = ooo;
|
||||
button = buton;
|
||||
Size = new Size(btnVolUp.Location.X + btnVolUp.Size.Width * 2, btnNUMENTER.Location.Y + btnNUMENTER.Size.Height * 2);
|
||||
Size = new Size(btnVolUp.Location.X + btnVolUp.Size.Width * 2,
|
||||
btnNUMENTER.Location.Y + btnNUMENTER.Size.Height * 2);
|
||||
|
||||
if (extras)
|
||||
{
|
||||
cBScanCode.Checked = button.Text.Contains("(SC)");
|
||||
@ -85,13 +93,17 @@ namespace DS4Windows
|
||||
cBScanCode.Visible = false;
|
||||
cBToggle.Visible = false;
|
||||
}
|
||||
|
||||
gBExtras.Visible = false;
|
||||
bnMacro.Visible = false;
|
||||
X360Label.Visible = false;
|
||||
Text = Properties.Resources.SelectActionTitle.Replace("*action*", "Trigger");
|
||||
foreach (Control control in Controls)
|
||||
{
|
||||
if (control is Button)
|
||||
((Button)control).Click += anybtn_Click;
|
||||
}
|
||||
|
||||
btnMOUSEDOWN.Visible = false;
|
||||
btnMOUSELEFT.Visible = false;
|
||||
btnMOUSERIGHT.Visible = false;
|
||||
@ -130,20 +142,21 @@ namespace DS4Windows
|
||||
keyname = "How did you get here?";
|
||||
}
|
||||
else */
|
||||
if (((Button)sender).Tag == null)
|
||||
keyname = ((Button)sender).Text;
|
||||
else if (((Button)sender).Tag.ToString().Contains("X360"))
|
||||
keyname = ((Button)sender).Tag.ToString().Substring(4);
|
||||
else if (((Button)sender).Tag != null && ushort.TryParse(((Button)sender).Tag.ToString(), out val))
|
||||
if (bn.Tag == null)
|
||||
keyname = bn.Text;
|
||||
else if (bn.Tag.ToString().Contains("X360"))
|
||||
keyname = bn.Tag.ToString().Substring(4);
|
||||
else if (bn.Tag != null && ushort.TryParse(bn.Tag.ToString(), out val))
|
||||
keyname = ((Keys)val).ToString();
|
||||
else
|
||||
keyname = ((Button)sender).Tag.ToString();
|
||||
keyname = bn.Tag.ToString();
|
||||
|
||||
object keytag;
|
||||
//ushort val;
|
||||
if (((Button)sender).Tag != null && ((Button)sender).Tag.ToString().Contains("X360"))
|
||||
if (bn.Tag != null && bn.Tag.ToString().Contains("X360"))
|
||||
{
|
||||
//keytag = ((Button)sender).Tag.ToString().Substring(4);
|
||||
keytag = Global.getX360ControlsByName(((Button)sender).Tag.ToString().Substring(4));
|
||||
keytag = Global.getX360ControlsByName(bn.Tag.ToString().Substring(4));
|
||||
DS4Controls psButton = Global.getDS4ControlsByName(button.Name);
|
||||
if ((X360Controls)keytag == Global.getDefaultX360ControlBinding(psButton) &&
|
||||
!cBScanCode.Checked && !cBToggle.Checked && !rBShiftModifer.Checked)
|
||||
@ -152,10 +165,10 @@ namespace DS4Windows
|
||||
keytag = null;
|
||||
}
|
||||
}
|
||||
else if (((Button)sender).Tag != null && ushort.TryParse(((Button)sender).Tag.ToString(), out val))
|
||||
else if (bn.Tag != null && ushort.TryParse(bn.Tag.ToString(), out val))
|
||||
keytag = val;
|
||||
else
|
||||
keytag = ((Button)sender).Tag;
|
||||
keytag = bn.Tag;
|
||||
|
||||
lBMacroOn.Visible = false;
|
||||
string extras = GetExtras();
|
||||
@ -166,13 +179,18 @@ namespace DS4Windows
|
||||
bool scanavail = tagisint;
|
||||
bool toggleavil = tagisint;
|
||||
if (ops != null)
|
||||
ops.ChangeButtonText(button, rBShiftModifer.Checked, tag, (scanavail ? cBScanCode.Checked : false), (toggleavil ? cBToggle.Checked : false), false, false, cBShiftButton.SelectedIndex);
|
||||
{
|
||||
ops.ChangeButtonText(button, rBShiftModifer.Checked, tag,
|
||||
(scanavail ? cBScanCode.Checked : false), (toggleavil ? cBToggle.Checked : false),
|
||||
false, false, cBShiftButton.SelectedIndex);
|
||||
}
|
||||
else if (sA != null)
|
||||
{
|
||||
button.Text = keyname;
|
||||
button.Tag = keytag;
|
||||
button.ForeColor = Color.Black;
|
||||
}
|
||||
|
||||
this.Close();
|
||||
}
|
||||
}
|
||||
@ -182,6 +200,7 @@ namespace DS4Windows
|
||||
string t =(byte)nUDHeavy.Value + "," + (byte)nUDLight.Value + "," +
|
||||
(cBLightbar.Checked ? "1" + "," + tBRedBar.Value + "," + tBGreenBar.Value + "," + tBBlueBar.Value + "," + nUDLightFlash.Value: "0,0,0,0,0") + "," +
|
||||
(cBMouse.Checked ? "1" + "," + (byte)nUDMouse.Value : "0,0");
|
||||
|
||||
return t;
|
||||
}
|
||||
|
||||
@ -243,13 +262,17 @@ namespace DS4Windows
|
||||
KeyValuePair<object, string> tag = new KeyValuePair<object, string>(e.KeyValue, extras);
|
||||
newaction = true;
|
||||
if (ops != null)
|
||||
ops.ChangeButtonText(button, rBShiftModifer.Checked, tag, cBScanCode.Checked, cBToggle.Checked, false, false, cBShiftButton.SelectedIndex);
|
||||
{
|
||||
ops.ChangeButtonText(button, rBShiftModifer.Checked, tag,
|
||||
cBScanCode.Checked, cBToggle.Checked, false, false, cBShiftButton.SelectedIndex);
|
||||
}
|
||||
else if (sA != null)
|
||||
{
|
||||
button.Text = e.KeyCode.ToString();
|
||||
button.Tag = e.KeyValue;
|
||||
button.ForeColor = Color.Black;
|
||||
}
|
||||
|
||||
this.Close();
|
||||
}
|
||||
}
|
||||
@ -263,22 +286,21 @@ namespace DS4Windows
|
||||
KeyValuePair<object, string> tag = new KeyValuePair<object, string>(e.KeyValue, extras);
|
||||
newaction = true;
|
||||
if (ops != null)
|
||||
ops.ChangeButtonText(button, rBShiftModifer.Checked, tag, cBScanCode.Checked, cBToggle.Checked, false, false, cBShiftButton.SelectedIndex);
|
||||
{
|
||||
ops.ChangeButtonText(button, rBShiftModifer.Checked, tag,
|
||||
cBScanCode.Checked, cBToggle.Checked, false, false, cBShiftButton.SelectedIndex);
|
||||
}
|
||||
else if (sA != null)
|
||||
{
|
||||
button.Text = e.KeyCode.ToString();
|
||||
button.Tag = e.KeyValue;
|
||||
button.ForeColor = Color.Black;
|
||||
}
|
||||
|
||||
this.Close();
|
||||
}
|
||||
}
|
||||
|
||||
private void cbToggle_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private void btnMacro_Click(object sender, EventArgs e)
|
||||
{
|
||||
gBExtras.Controls.Add(cBScanCode);
|
||||
@ -301,11 +323,14 @@ namespace DS4Windows
|
||||
case Keys.Up:
|
||||
case Keys.Down:
|
||||
return true;
|
||||
case Keys.Shift | Keys.Right:
|
||||
case Keys.Shift | Keys.Left:
|
||||
case Keys.Shift | Keys.Up:
|
||||
case Keys.Shift | Keys.Down:
|
||||
|
||||
case (Keys.Shift | Keys.Right):
|
||||
case (Keys.Shift | Keys.Left):
|
||||
case (Keys.Shift | Keys.Up):
|
||||
case (Keys.Shift | Keys.Down):
|
||||
return true;
|
||||
|
||||
default: break;
|
||||
}
|
||||
return base.IsInputKey(keyData);
|
||||
}
|
||||
@ -318,6 +343,7 @@ namespace DS4Windows
|
||||
case Keys.Right:
|
||||
case Keys.Up:
|
||||
case Keys.Down:
|
||||
{
|
||||
if (e.Shift)
|
||||
{
|
||||
|
||||
@ -326,6 +352,8 @@ namespace DS4Windows
|
||||
{
|
||||
}
|
||||
break;
|
||||
}
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -340,6 +368,7 @@ namespace DS4Windows
|
||||
int som = bgc + 11 * (int)(value * 0.0039215);
|
||||
tb.BackColor = Color.FromArgb(tb.Name.ToLower().Contains("red") ? som : sat, tb.Name.ToLower().Contains("green") ? som : sat, tb.Name.ToLower().Contains("blue") ? som : sat);
|
||||
}
|
||||
|
||||
alphacolor = Math.Max(tBRedBar.Value, Math.Max(tBGreenBar.Value, tBBlueBar.Value));
|
||||
reg = Color.FromArgb(tBRedBar.Value, tBGreenBar.Value, tBBlueBar.Value);
|
||||
full = HuetoRGB(reg.GetHue(), reg.GetBrightness(), reg);
|
||||
@ -378,6 +407,7 @@ namespace DS4Windows
|
||||
tBBlueBar.Value = advColorDialog.Color.B;
|
||||
extraChanged = true;
|
||||
}
|
||||
|
||||
if (device < 4)
|
||||
DS4LightBar.forcelight[device] = false;
|
||||
}
|
||||
@ -416,8 +446,10 @@ namespace DS4Windows
|
||||
if (s[i] >= 'A' && s[i] <= 'Z')
|
||||
s = s.Insert(i, " ");
|
||||
}
|
||||
|
||||
if (s == "Guide")
|
||||
s = guideText;
|
||||
|
||||
return s;
|
||||
}
|
||||
|
||||
@ -431,6 +463,7 @@ namespace DS4Windows
|
||||
{
|
||||
if (!loading && extraChanged)
|
||||
Global.UpdateDS4Extra(device, button.Name, !rBShiftModifer.Checked, GetExtras());
|
||||
|
||||
object tagO = Global.GetDS4Action(device, button.Name, rBShiftModifer.Checked);
|
||||
if (rBShiftModifer.Checked)
|
||||
btnDefault.Text = Properties.Resources.FallBack;
|
||||
@ -443,8 +476,11 @@ namespace DS4Windows
|
||||
newaction = false;
|
||||
Highlight_Leave(null, null);
|
||||
foreach (Control control in Controls)
|
||||
{
|
||||
if (control is Button)
|
||||
((Button)control).BackColor = SystemColors.Control;
|
||||
}
|
||||
|
||||
if (tagO != null)
|
||||
{
|
||||
if (tagO is int || tagO is ushort)
|
||||
@ -452,19 +488,24 @@ namespace DS4Windows
|
||||
int tag = int.Parse(tagO.ToString());
|
||||
int i;
|
||||
foreach (Control control in Controls)
|
||||
{
|
||||
if (control is Button)
|
||||
{
|
||||
if (int.TryParse(control.Tag?.ToString(), out i) && i == tag)
|
||||
{
|
||||
((Button)control).BackColor = Color.LightGreen;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (tagO is int[])
|
||||
{
|
||||
int[] tag = (int[])tagO;
|
||||
lBMacroOn.Visible = true;
|
||||
foreach (int i in tag)
|
||||
macrostag.Add(i);
|
||||
lBMacroOn.Visible = true;
|
||||
foreach (int i in tag)
|
||||
macrostag.Add(i);
|
||||
|
||||
if (Global.GetDS4KeyType(device, button.Name, rBShiftModifer.Checked).HasFlag(DS4KeyType.HoldMacro))
|
||||
macrorepeat = true;
|
||||
}
|
||||
@ -472,25 +513,33 @@ namespace DS4Windows
|
||||
{
|
||||
string tag;
|
||||
if (tagO is X360Controls)
|
||||
{
|
||||
tag = getX360ControlsByName((X360Controls)tagO);
|
||||
}
|
||||
else
|
||||
tag = tagO.ToString();
|
||||
|
||||
foreach (Control control in Controls)
|
||||
{
|
||||
if (control is Button)
|
||||
{
|
||||
if (control.Tag?.ToString() == tag)
|
||||
{
|
||||
((Button)control).BackColor = Color.LightGreen;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach (Control control in pnl360Controls.Controls)
|
||||
{
|
||||
if (control is Button)
|
||||
{
|
||||
if (control.Tag?.ToString().Substring(4) == tag)
|
||||
{
|
||||
Hightlight_Hover(((Button)control), null);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -504,22 +553,33 @@ namespace DS4Windows
|
||||
tag = getX360ControlsByName((X360Controls)tagO);
|
||||
else
|
||||
tag = tagO.ToString();
|
||||
|
||||
foreach (Control control in Controls)
|
||||
{
|
||||
if (control is Button)
|
||||
{
|
||||
if (control.Tag != null && control.Tag.ToString().Contains("X360") ? control.Tag?.ToString().Substring(4) == tag : control.Tag?.ToString() == tag)
|
||||
{
|
||||
((Button)control).BackColor = Color.LightGreen;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach (Control control in pnl360Controls.Controls)
|
||||
{
|
||||
if (control is Button)
|
||||
{
|
||||
if (control.Tag?.ToString().Substring(4) == tag)
|
||||
{
|
||||
Hightlight_Hover(((Button)control), null);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
string dcExtras = Global.GetDS4Extra(device, button.Name, rBShiftModifer.Checked);
|
||||
string[] extras = null;
|
||||
if (!string.IsNullOrEmpty(dcExtras))
|
||||
@ -535,6 +595,7 @@ namespace DS4Windows
|
||||
if (int.TryParse(extras[0], out b)) nUDHeavy.Value = b;
|
||||
if (int.TryParse(extras[1], out b)) nUDLight.Value = b;
|
||||
if (int.TryParse(extras[2], out b))
|
||||
{
|
||||
if (b == 1)
|
||||
{
|
||||
cBLightbar.Checked = true;
|
||||
@ -552,7 +613,10 @@ namespace DS4Windows
|
||||
nUDLightFlash.Value = 0;
|
||||
cBLightbar.Checked = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (int.TryParse(extras[7], out b))
|
||||
{
|
||||
if (b == 1)
|
||||
{
|
||||
cBMouse.Checked = true;
|
||||
@ -563,7 +627,7 @@ namespace DS4Windows
|
||||
nUDMouse.Value = 25;
|
||||
cBMouse.Checked = false;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
@ -627,34 +691,41 @@ namespace DS4Windows
|
||||
case X360Controls.MouseLeft: return "Mouse Left";
|
||||
case X360Controls.MouseRight: return "Mouse Right";
|
||||
case X360Controls.Unbound: return "Unbound";
|
||||
default: break;
|
||||
}
|
||||
|
||||
return "Unbound";
|
||||
}
|
||||
|
||||
private void bnTest_Click(object sender, EventArgs e)
|
||||
{
|
||||
Button btn = (Button)sender;
|
||||
if (device < 4)
|
||||
if (((Button)sender).Text == Properties.Resources.TestText)
|
||||
{
|
||||
if (btn.Text == Properties.Resources.TestText)
|
||||
{
|
||||
Program.rootHub.setRumble((byte)nUDHeavy.Value, (byte)nUDLight.Value, device);
|
||||
((Button)sender).Text = Properties.Resources.StopText;
|
||||
btn.Text = Properties.Resources.StopText;
|
||||
}
|
||||
else
|
||||
{
|
||||
Program.rootHub.setRumble(0, 0, device);
|
||||
((Button)sender).Text = Properties.Resources.TestText;
|
||||
btn.Text = Properties.Resources.TestText;
|
||||
}
|
||||
}
|
||||
else
|
||||
if (((Button)sender).Text == Properties.Resources.TestText)
|
||||
{
|
||||
if (btn.Text == Properties.Resources.TestText)
|
||||
{
|
||||
Program.rootHub.setRumble((byte)nUDHeavy.Value, (byte)nUDLight.Value, 0);
|
||||
((Button)sender).Text = Properties.Resources.StopText;
|
||||
btn.Text = Properties.Resources.StopText;
|
||||
}
|
||||
else
|
||||
{
|
||||
Program.rootHub.setRumble(0, 0, 0);
|
||||
((Button)sender).Text = Properties.Resources.TestText;
|
||||
btn.Text = Properties.Resources.TestText;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void ExtraChanged(object sender, EventArgs e)
|
||||
@ -671,6 +742,7 @@ namespace DS4Windows
|
||||
else
|
||||
Program.rootHub.setRumble((byte)nUDHeavy.Value, (byte)nUDLight.Value, 0);
|
||||
}
|
||||
|
||||
extraChanged = true;
|
||||
}
|
||||
|
||||
|
285
DS4Windows/DS4Forms/Options.Designer.cs
generated
285
DS4Windows/DS4Forms/Options.Designer.cs
generated
@ -266,6 +266,15 @@
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.nUDLSAntiDead = new System.Windows.Forms.NumericUpDown();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.maxZoneTabPage = new System.Windows.Forms.TabPage();
|
||||
this.nUDR2Maxzone = new System.Windows.Forms.NumericUpDown();
|
||||
this.nUDL2Maxzone = new System.Windows.Forms.NumericUpDown();
|
||||
this.label8 = new System.Windows.Forms.Label();
|
||||
this.label7 = new System.Windows.Forms.Label();
|
||||
this.nUDRSMaxZone = new System.Windows.Forms.NumericUpDown();
|
||||
this.label6 = new System.Windows.Forms.Label();
|
||||
this.nUDLSMaxZone = new System.Windows.Forms.NumericUpDown();
|
||||
this.label5 = new System.Windows.Forms.Label();
|
||||
this.fLPSettings = new System.Windows.Forms.FlowLayoutPanel();
|
||||
this.gBGyro = new System.Windows.Forms.GroupBox();
|
||||
this.rBSAControls = new System.Windows.Forms.RadioButton();
|
||||
@ -312,15 +321,6 @@
|
||||
this.shareToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.pSToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.alwaysOnToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.maxZoneTabPage = new System.Windows.Forms.TabPage();
|
||||
this.label5 = new System.Windows.Forms.Label();
|
||||
this.nUDLSMaxZone = new System.Windows.Forms.NumericUpDown();
|
||||
this.label6 = new System.Windows.Forms.Label();
|
||||
this.nUDRSMaxZone = new System.Windows.Forms.NumericUpDown();
|
||||
this.label7 = new System.Windows.Forms.Label();
|
||||
this.label8 = new System.Windows.Forms.Label();
|
||||
this.nUDL2Maxzone = new System.Windows.Forms.NumericUpDown();
|
||||
this.nUDR2Maxzone = new System.Windows.Forms.NumericUpDown();
|
||||
this.advColorDialog = new DS4Windows.AdvancedColorDialog();
|
||||
((System.ComponentModel.ISupportInitialize)(this.nUDRainbow)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.tBBlueBar)).BeginInit();
|
||||
@ -386,6 +386,11 @@
|
||||
((System.ComponentModel.ISupportInitialize)(this.nUDL2AntiDead)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.nUDRSAntiDead)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.nUDLSAntiDead)).BeginInit();
|
||||
this.maxZoneTabPage.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.nUDR2Maxzone)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.nUDL2Maxzone)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.nUDRSMaxZone)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.nUDLSMaxZone)).BeginInit();
|
||||
this.fLPSettings.SuspendLayout();
|
||||
this.gBGyro.SuspendLayout();
|
||||
this.pnlSAMouse.SuspendLayout();
|
||||
@ -398,11 +403,6 @@
|
||||
((System.ComponentModel.ISupportInitialize)(this.nUDSXS)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.nUDSZS)).BeginInit();
|
||||
this.cMGyroTriggers.SuspendLayout();
|
||||
this.maxZoneTabPage.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.nUDLSMaxZone)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.nUDRSMaxZone)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.nUDL2Maxzone)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.nUDR2Maxzone)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// lowColorChooserButton
|
||||
@ -2759,6 +2759,128 @@
|
||||
resources.ApplyResources(this.label1, "label1");
|
||||
this.label1.Name = "label1";
|
||||
//
|
||||
// maxZoneTabPage
|
||||
//
|
||||
this.maxZoneTabPage.Controls.Add(this.nUDR2Maxzone);
|
||||
this.maxZoneTabPage.Controls.Add(this.nUDL2Maxzone);
|
||||
this.maxZoneTabPage.Controls.Add(this.label8);
|
||||
this.maxZoneTabPage.Controls.Add(this.label7);
|
||||
this.maxZoneTabPage.Controls.Add(this.nUDRSMaxZone);
|
||||
this.maxZoneTabPage.Controls.Add(this.label6);
|
||||
this.maxZoneTabPage.Controls.Add(this.nUDLSMaxZone);
|
||||
this.maxZoneTabPage.Controls.Add(this.label5);
|
||||
resources.ApplyResources(this.maxZoneTabPage, "maxZoneTabPage");
|
||||
this.maxZoneTabPage.Name = "maxZoneTabPage";
|
||||
this.maxZoneTabPage.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// nUDR2Maxzone
|
||||
//
|
||||
this.nUDR2Maxzone.DecimalPlaces = 2;
|
||||
this.nUDR2Maxzone.Increment = new decimal(new int[] {
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
65536});
|
||||
resources.ApplyResources(this.nUDR2Maxzone, "nUDR2Maxzone");
|
||||
this.nUDR2Maxzone.Maximum = new decimal(new int[] {
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.nUDR2Maxzone.Name = "nUDR2Maxzone";
|
||||
this.nUDR2Maxzone.Value = new decimal(new int[] {
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.nUDR2Maxzone.ValueChanged += new System.EventHandler(this.nUDR2Maxzone_ValueChanged);
|
||||
//
|
||||
// nUDL2Maxzone
|
||||
//
|
||||
this.nUDL2Maxzone.DecimalPlaces = 2;
|
||||
this.nUDL2Maxzone.Increment = new decimal(new int[] {
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
65536});
|
||||
resources.ApplyResources(this.nUDL2Maxzone, "nUDL2Maxzone");
|
||||
this.nUDL2Maxzone.Maximum = new decimal(new int[] {
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.nUDL2Maxzone.Name = "nUDL2Maxzone";
|
||||
this.nUDL2Maxzone.Value = new decimal(new int[] {
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.nUDL2Maxzone.ValueChanged += new System.EventHandler(this.nUDL2Maxzone_ValueChanged);
|
||||
//
|
||||
// label8
|
||||
//
|
||||
resources.ApplyResources(this.label8, "label8");
|
||||
this.label8.Name = "label8";
|
||||
//
|
||||
// label7
|
||||
//
|
||||
resources.ApplyResources(this.label7, "label7");
|
||||
this.label7.Name = "label7";
|
||||
//
|
||||
// nUDRSMaxZone
|
||||
//
|
||||
this.nUDRSMaxZone.DecimalPlaces = 2;
|
||||
this.nUDRSMaxZone.Increment = new decimal(new int[] {
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
65536});
|
||||
resources.ApplyResources(this.nUDRSMaxZone, "nUDRSMaxZone");
|
||||
this.nUDRSMaxZone.Maximum = new decimal(new int[] {
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.nUDRSMaxZone.Name = "nUDRSMaxZone";
|
||||
this.nUDRSMaxZone.Value = new decimal(new int[] {
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.nUDRSMaxZone.ValueChanged += new System.EventHandler(this.nUDRSMaxZone_ValueChanged);
|
||||
//
|
||||
// label6
|
||||
//
|
||||
resources.ApplyResources(this.label6, "label6");
|
||||
this.label6.Name = "label6";
|
||||
//
|
||||
// nUDLSMaxZone
|
||||
//
|
||||
this.nUDLSMaxZone.DecimalPlaces = 2;
|
||||
this.nUDLSMaxZone.Increment = new decimal(new int[] {
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
65536});
|
||||
resources.ApplyResources(this.nUDLSMaxZone, "nUDLSMaxZone");
|
||||
this.nUDLSMaxZone.Maximum = new decimal(new int[] {
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.nUDLSMaxZone.Name = "nUDLSMaxZone";
|
||||
this.nUDLSMaxZone.Value = new decimal(new int[] {
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.nUDLSMaxZone.ValueChanged += new System.EventHandler(this.nUDLSMaxZone_ValueChanged);
|
||||
//
|
||||
// label5
|
||||
//
|
||||
resources.ApplyResources(this.label5, "label5");
|
||||
this.label5.Name = "label5";
|
||||
//
|
||||
// fLPSettings
|
||||
//
|
||||
resources.ApplyResources(this.fLPSettings, "fLPSettings");
|
||||
@ -3262,128 +3384,6 @@
|
||||
resources.ApplyResources(this.alwaysOnToolStripMenuItem, "alwaysOnToolStripMenuItem");
|
||||
this.alwaysOnToolStripMenuItem.CheckedChanged += new System.EventHandler(this.SATrigger_CheckedChanged);
|
||||
//
|
||||
// maxZoneTabPage
|
||||
//
|
||||
this.maxZoneTabPage.Controls.Add(this.nUDR2Maxzone);
|
||||
this.maxZoneTabPage.Controls.Add(this.nUDL2Maxzone);
|
||||
this.maxZoneTabPage.Controls.Add(this.label8);
|
||||
this.maxZoneTabPage.Controls.Add(this.label7);
|
||||
this.maxZoneTabPage.Controls.Add(this.nUDRSMaxZone);
|
||||
this.maxZoneTabPage.Controls.Add(this.label6);
|
||||
this.maxZoneTabPage.Controls.Add(this.nUDLSMaxZone);
|
||||
this.maxZoneTabPage.Controls.Add(this.label5);
|
||||
resources.ApplyResources(this.maxZoneTabPage, "maxZoneTabPage");
|
||||
this.maxZoneTabPage.Name = "maxZoneTabPage";
|
||||
this.maxZoneTabPage.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// label5
|
||||
//
|
||||
resources.ApplyResources(this.label5, "label5");
|
||||
this.label5.Name = "label5";
|
||||
//
|
||||
// nUDLSMaxZone
|
||||
//
|
||||
this.nUDLSMaxZone.DecimalPlaces = 2;
|
||||
this.nUDLSMaxZone.Increment = new decimal(new int[] {
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
65536});
|
||||
resources.ApplyResources(this.nUDLSMaxZone, "nUDLSMaxZone");
|
||||
this.nUDLSMaxZone.Maximum = new decimal(new int[] {
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.nUDLSMaxZone.Name = "nUDLSMaxZone";
|
||||
this.nUDLSMaxZone.Value = new decimal(new int[] {
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.nUDLSMaxZone.ValueChanged += new System.EventHandler(this.nUDLSMaxZone_ValueChanged);
|
||||
//
|
||||
// label6
|
||||
//
|
||||
resources.ApplyResources(this.label6, "label6");
|
||||
this.label6.Name = "label6";
|
||||
//
|
||||
// nUDRSMaxZone
|
||||
//
|
||||
this.nUDRSMaxZone.DecimalPlaces = 2;
|
||||
this.nUDRSMaxZone.Increment = new decimal(new int[] {
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
65536});
|
||||
resources.ApplyResources(this.nUDRSMaxZone, "nUDRSMaxZone");
|
||||
this.nUDRSMaxZone.Maximum = new decimal(new int[] {
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.nUDRSMaxZone.Name = "nUDRSMaxZone";
|
||||
this.nUDRSMaxZone.Value = new decimal(new int[] {
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.nUDRSMaxZone.ValueChanged += new System.EventHandler(this.nUDRSMaxZone_ValueChanged);
|
||||
//
|
||||
// label7
|
||||
//
|
||||
resources.ApplyResources(this.label7, "label7");
|
||||
this.label7.Name = "label7";
|
||||
//
|
||||
// label8
|
||||
//
|
||||
resources.ApplyResources(this.label8, "label8");
|
||||
this.label8.Name = "label8";
|
||||
//
|
||||
// nUDL2Maxzone
|
||||
//
|
||||
this.nUDL2Maxzone.DecimalPlaces = 2;
|
||||
this.nUDL2Maxzone.Increment = new decimal(new int[] {
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
65536});
|
||||
resources.ApplyResources(this.nUDL2Maxzone, "nUDL2Maxzone");
|
||||
this.nUDL2Maxzone.Maximum = new decimal(new int[] {
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.nUDL2Maxzone.Name = "nUDL2Maxzone";
|
||||
this.nUDL2Maxzone.Value = new decimal(new int[] {
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.nUDL2Maxzone.ValueChanged += new System.EventHandler(this.nUDL2Maxzone_ValueChanged);
|
||||
//
|
||||
// nUDR2Maxzone
|
||||
//
|
||||
this.nUDR2Maxzone.DecimalPlaces = 2;
|
||||
this.nUDR2Maxzone.Increment = new decimal(new int[] {
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
65536});
|
||||
resources.ApplyResources(this.nUDR2Maxzone, "nUDR2Maxzone");
|
||||
this.nUDR2Maxzone.Maximum = new decimal(new int[] {
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.nUDR2Maxzone.Name = "nUDR2Maxzone";
|
||||
this.nUDR2Maxzone.Value = new decimal(new int[] {
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.nUDR2Maxzone.ValueChanged += new System.EventHandler(this.nUDR2Maxzone_ValueChanged);
|
||||
//
|
||||
// Options
|
||||
//
|
||||
resources.ApplyResources(this, "$this");
|
||||
@ -3395,7 +3395,6 @@
|
||||
this.MinimizeBox = false;
|
||||
this.Name = "Options";
|
||||
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Options_FormClosing);
|
||||
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.Options_Closed);
|
||||
this.Resize += new System.EventHandler(this.Options_Resize);
|
||||
((System.ComponentModel.ISupportInitialize)(this.nUDRainbow)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.tBBlueBar)).EndInit();
|
||||
@ -3473,6 +3472,12 @@
|
||||
((System.ComponentModel.ISupportInitialize)(this.nUDL2AntiDead)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.nUDRSAntiDead)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.nUDLSAntiDead)).EndInit();
|
||||
this.maxZoneTabPage.ResumeLayout(false);
|
||||
this.maxZoneTabPage.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.nUDR2Maxzone)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.nUDL2Maxzone)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.nUDRSMaxZone)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.nUDLSMaxZone)).EndInit();
|
||||
this.fLPSettings.ResumeLayout(false);
|
||||
this.gBGyro.ResumeLayout(false);
|
||||
this.gBGyro.PerformLayout();
|
||||
@ -3488,12 +3493,6 @@
|
||||
((System.ComponentModel.ISupportInitialize)(this.nUDSXS)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.nUDSZS)).EndInit();
|
||||
this.cMGyroTriggers.ResumeLayout(false);
|
||||
this.maxZoneTabPage.ResumeLayout(false);
|
||||
this.maxZoneTabPage.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.nUDLSMaxZone)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.nUDRSMaxZone)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.nUDL2Maxzone)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.nUDR2Maxzone)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
@ -1690,22 +1690,6 @@ namespace DS4Windows
|
||||
e.Cancel = true;
|
||||
}
|
||||
|
||||
private void Options_Closed(object sender, FormClosedEventArgs e)
|
||||
{
|
||||
/*for (int i = 0; i < 4; i++)
|
||||
LoadProfile(i, false, Program.rootHub); //Refreshes all profiles in case other controllers are using the same profile
|
||||
if (olddinputcheck != cBDinput.Checked)
|
||||
{
|
||||
root.btnStartStop_Clicked(false);
|
||||
root.btnStartStop_Clicked(false);
|
||||
}
|
||||
if (btnRumbleHeavyTest.Text == Properties.Resources.StopText)
|
||||
Program.rootHub.setRumble(0, 0, (int)nUDSixaxis.Value - 1);
|
||||
inputtimer.Stop();
|
||||
sixaxisTimer.Stop();*/
|
||||
//e.c
|
||||
}
|
||||
|
||||
private void cBSlide_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
bool slideChecked = cBSlide.Checked;
|
||||
|
@ -7778,7 +7778,7 @@ with profile</value>
|
||||
<value>advColorDialog</value>
|
||||
</data>
|
||||
<data name=">>advColorDialog.Type" xml:space="preserve">
|
||||
<value>DS4Windows.AdvancedColorDialog, DS4Windows, Version=1.4.67.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
<value>DS4Windows.AdvancedColorDialog, DS4Windows, Version=1.4.69.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
</data>
|
||||
<data name=">>$this.Name" xml:space="preserve">
|
||||
<value>Options</value>
|
||||
|
@ -4,15 +4,9 @@ using System.ComponentModel;
|
||||
using System.Threading;
|
||||
|
||||
using System.Runtime.InteropServices;
|
||||
using Microsoft.Win32.SafeHandles;
|
||||
using System.Diagnostics;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.IO;
|
||||
using System.Collections;
|
||||
using System.Drawing;
|
||||
using DS4Windows.DS4Library;
|
||||
|
||||
@ -23,7 +17,7 @@ namespace DS4Windows
|
||||
public byte red;
|
||||
public byte green;
|
||||
public byte blue;
|
||||
public DS4Color(System.Drawing.Color c)
|
||||
public DS4Color(Color c)
|
||||
{
|
||||
red = c.R;
|
||||
green = c.G;
|
||||
@ -508,7 +502,8 @@ namespace DS4Windows
|
||||
int thisError = Marshal.GetLastWin32Error();
|
||||
if (lastError != thisError)
|
||||
{
|
||||
Console.WriteLine(MacAddress.ToString() + " " + System.DateTime.UtcNow.ToString("o") + "> encountered write failure: " + thisError);
|
||||
Console.WriteLine(Mac.ToString() + " " + System.DateTime.UtcNow.ToString("o") + "> encountered write failure: " + thisError);
|
||||
Log.LogToGui(Mac.ToString() + " encountered write failure: " + thisError, true);
|
||||
lastError = thisError;
|
||||
}
|
||||
}
|
||||
@ -579,7 +574,18 @@ namespace DS4Windows
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine(MacAddress.ToString() + " " + System.DateTime.UtcNow.ToString("o") + "> disconnect due to read failure: " + Marshal.GetLastWin32Error());
|
||||
|
||||
if (res == HidDevice.ReadStatus.WaitTimedOut)
|
||||
{
|
||||
Log.LogToGui(Mac.ToString() + " disconnected due to timeout", true);
|
||||
}
|
||||
else
|
||||
{
|
||||
int winError = Marshal.GetLastWin32Error();
|
||||
Console.WriteLine(Mac.ToString() + " " + System.DateTime.UtcNow.ToString("o") + "> disconnect due to read failure: " + winError);
|
||||
Log.LogToGui(Mac.ToString() + " disconnected due to read failure: " + winError, true);
|
||||
}
|
||||
|
||||
sendOutputReport(true); // Kick Windows into noticing the disconnection.
|
||||
StopOutputUpdate();
|
||||
isDisconnecting = true;
|
||||
@ -588,10 +594,6 @@ namespace DS4Windows
|
||||
Removal?.Invoke(this, EventArgs.Empty);
|
||||
}), null);
|
||||
|
||||
/*
|
||||
if (Removal != null)
|
||||
Removal(this, EventArgs.Empty);
|
||||
*/
|
||||
return;
|
||||
|
||||
}
|
||||
@ -603,7 +605,17 @@ namespace DS4Windows
|
||||
HidDevice.ReadStatus res = hDevice.ReadAsyncWithFileStream(inputReport, READ_STREAM_TIMEOUT);
|
||||
if (res != HidDevice.ReadStatus.Success)
|
||||
{
|
||||
Console.WriteLine(MacAddress.ToString() + " " + System.DateTime.UtcNow.ToString("o") + "> disconnect due to read failure: " + Marshal.GetLastWin32Error());
|
||||
if (res == HidDevice.ReadStatus.WaitTimedOut)
|
||||
{
|
||||
Log.LogToGui(Mac.ToString() + " disconnected due to timeout", true);
|
||||
}
|
||||
else
|
||||
{
|
||||
int winError = Marshal.GetLastWin32Error();
|
||||
Console.WriteLine(Mac.ToString() + " " + System.DateTime.UtcNow.ToString("o") + "> disconnect due to read failure: " + winError);
|
||||
Log.LogToGui(Mac.ToString() + " disconnected due to read failure: " + winError, true);
|
||||
}
|
||||
|
||||
StopOutputUpdate();
|
||||
isDisconnecting = true;
|
||||
uiContext.Send(new SendOrPostCallback(delegate (object state4)
|
||||
@ -611,8 +623,6 @@ namespace DS4Windows
|
||||
Removal?.Invoke(this, EventArgs.Empty);
|
||||
}), null);
|
||||
|
||||
//if (Removal != null)
|
||||
// Removal(this, EventArgs.Empty);
|
||||
return;
|
||||
}
|
||||
else
|
||||
@ -756,6 +766,8 @@ namespace DS4Windows
|
||||
|
||||
if (shouldDisconnect)
|
||||
{
|
||||
Log.LogToGui(Mac.ToString() + " disconnecting due to idle disconnect", false);
|
||||
|
||||
if (conType == ConnectionType.BT)
|
||||
{
|
||||
if (DisconnectBT(true))
|
||||
@ -843,7 +855,9 @@ namespace DS4Windows
|
||||
{
|
||||
if (!writeOutput())
|
||||
{
|
||||
Console.WriteLine(MacAddress.ToString() + " " + System.DateTime.UtcNow.ToString("o") + "> encountered synchronous write failure: " + Marshal.GetLastWin32Error());
|
||||
int winError = Marshal.GetLastWin32Error();
|
||||
Console.WriteLine(Mac.ToString() + " " + System.DateTime.UtcNow.ToString("o") + "> encountered synchronous write failure: " + winError);
|
||||
Log.LogToGui(Mac.ToString() + " encountered synchronous write failure: " + winError, true);
|
||||
quitOutputThread = true;
|
||||
}
|
||||
}
|
||||
@ -927,8 +941,6 @@ namespace DS4Windows
|
||||
{
|
||||
Removal?.Invoke(this, EventArgs.Empty);
|
||||
}), null);
|
||||
|
||||
//Removal?.Invoke(this, EventArgs.Empty);
|
||||
}
|
||||
}
|
||||
|
||||
@ -960,11 +972,6 @@ namespace DS4Windows
|
||||
{
|
||||
Removal?.Invoke(this, EventArgs.Empty);
|
||||
}), null);
|
||||
|
||||
/*
|
||||
if (Removal != null)
|
||||
Removal(this, EventArgs.Empty);
|
||||
*/
|
||||
}
|
||||
else if (result && !remove)
|
||||
{
|
||||
|
@ -99,7 +99,7 @@
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="DS4Control\ControlSerivce.cs" />
|
||||
<Compile Include="DS4Control\ControlService.cs" />
|
||||
<Compile Include="DS4Control\DS4LightBar.cs" />
|
||||
<Compile Include="DS4Control\DS4StateFieldMapping.cs" />
|
||||
<Compile Include="DS4Control\InputMethods.cs" />
|
||||
|
@ -304,14 +304,21 @@ namespace DS4Windows
|
||||
if (!safeReadHandle.IsInvalid && fileStream.CanRead)
|
||||
{
|
||||
Task<int> readTask = fileStream.ReadAsync(inputBuffer, 0, inputBuffer.Length);
|
||||
readTask.Wait(timeout);
|
||||
if (readTask.Result > 0)
|
||||
bool success = readTask.Wait(timeout);
|
||||
if (success)
|
||||
{
|
||||
return ReadStatus.Success;
|
||||
if (readTask.Result > 0)
|
||||
{
|
||||
return ReadStatus.Success;
|
||||
}
|
||||
else
|
||||
{
|
||||
return ReadStatus.NoDataRead;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return ReadStatus.NoDataRead;
|
||||
return ReadStatus.WaitTimedOut;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user