Version 1.4.156

Significant CPU usage decrease by reworking how single instances work,
on a mobile i7 for example with a single controller connected usage went
from 4-6% to .5-1.5%. With no controllers connected the usage went from
2.5-4.5% to 0%!
As mentioned before, single instances has been reworked, so trying to
relaunch DS4W more reliably opens the previous instance
Fixed Shift modifier not working if main controls were not modified
Fixed Tilt Left for Shift modifier
Fixed default text of shift controls
Remove touchpad movement notification when swipe for controls is enabled
Can test the rumble motors separately via Heavy and Light
Truly implemented Flush HID (I think)
Slight change in profiles, when loading profiles in for the first time
in this new version, there may be a slight delay
Updated French Translations
Removed mouse moving as an option for touch swipes controls, as they
weren't implemented nor have a purpose to be
This commit is contained in:
jays2kings 2014-11-18 16:23:41 -05:00
parent a4e59cacb8
commit b4a6249fa3
36 changed files with 7334 additions and 7013 deletions

View File

@ -397,6 +397,8 @@ namespace DS4Control
if (ind != -1) if (ind != -1)
{ {
if (Global.getFlushHIDQueue(ind))
device.FlushHID();
device.getExposedState(ExposedState[ind], CurrentState[ind]); device.getExposedState(ExposedState[ind], CurrentState[ind]);
DS4State cState = CurrentState[ind]; DS4State cState = CurrentState[ind];
device.getPreviousState(PreviousState[ind]); device.getPreviousState(PreviousState[ind]);
@ -406,7 +408,7 @@ namespace DS4Control
CheckForHotkeys(ind, cState, pState); CheckForHotkeys(ind, cState, pState);
GetInputkeys(ind); GetInputkeys(ind);
if (Global.getHasCustomKeysorButtons(ind)) if (Global.getHasCustomKeysorButtons(ind) || Global.getHasShiftCustomKeysorButtons(ind))
{ {
if (!recordingMacro) if (!recordingMacro)
Mapping.MapCustom(ind, cState, MappedState[ind], ExposedState[ind], touchPad[ind]); Mapping.MapCustom(ind, cState, MappedState[ind], ExposedState[ind], touchPad[ind]);
@ -534,7 +536,7 @@ namespace DS4Control
d = null; d = null;
} }
} }
if (cState.Touch1 && pState.PS) if (!Global.getUseTPforControls(deviceID) && cState.Touch1 && pState.PS)
{ {
if (Global.getTouchSensitivity(deviceID) > 0 && touchreleased[deviceID]) if (Global.getTouchSensitivity(deviceID) > 0 && touchreleased[deviceID])
{ {

View File

@ -883,20 +883,20 @@ namespace DS4Control
try try
{ {
XmlNode Node; XmlNode Node;
XmlNode xmlControls = m_Xdoc.SelectSingleNode("/ScpControl/Control"); XmlNode xmlControls = m_Xdoc.SelectSingleNode("/DS4Windows/Control");
XmlNode xmlShiftControls = m_Xdoc.SelectSingleNode("/ScpControl/ShiftControl"); XmlNode xmlShiftControls = m_Xdoc.SelectSingleNode("/DS4Windows/ShiftControl");
m_Xdoc.RemoveAll(); m_Xdoc.RemoveAll();
Node = m_Xdoc.CreateXmlDeclaration("1.0", "utf-8", String.Empty); Node = m_Xdoc.CreateXmlDeclaration("1.0", "utf-8", String.Empty);
m_Xdoc.AppendChild(Node); m_Xdoc.AppendChild(Node);
Node = m_Xdoc.CreateComment(String.Format(" ScpControl Configuration Data. {0} ", DateTime.Now)); Node = m_Xdoc.CreateComment(String.Format(" DS4Windows Configuration Data. {0} ", DateTime.Now));
m_Xdoc.AppendChild(Node); m_Xdoc.AppendChild(Node);
Node = m_Xdoc.CreateWhitespace("\r\n"); Node = m_Xdoc.CreateWhitespace("\r\n");
m_Xdoc.AppendChild(Node); m_Xdoc.AppendChild(Node);
Node = m_Xdoc.CreateNode(XmlNodeType.Element, "ScpControl", null); Node = m_Xdoc.CreateNode(XmlNodeType.Element, "DS4Windows", null);
XmlNode xmlFlushHIDQueue = m_Xdoc.CreateNode(XmlNodeType.Element, "flushHIDQueue", null); xmlFlushHIDQueue.InnerText = flushHIDQueue[device].ToString(); Node.AppendChild(xmlFlushHIDQueue); XmlNode xmlFlushHIDQueue = m_Xdoc.CreateNode(XmlNodeType.Element, "flushHIDQueue", null); xmlFlushHIDQueue.InnerText = flushHIDQueue[device].ToString(); Node.AppendChild(xmlFlushHIDQueue);
XmlNode xmlIdleDisconnectTimeout = m_Xdoc.CreateNode(XmlNodeType.Element, "idleDisconnectTimeout", null); xmlIdleDisconnectTimeout.InnerText = idleDisconnectTimeout[device].ToString(); Node.AppendChild(xmlIdleDisconnectTimeout); XmlNode xmlIdleDisconnectTimeout = m_Xdoc.CreateNode(XmlNodeType.Element, "idleDisconnectTimeout", null); xmlIdleDisconnectTimeout.InnerText = idleDisconnectTimeout[device].ToString(); Node.AppendChild(xmlIdleDisconnectTimeout);
@ -1112,6 +1112,48 @@ namespace DS4Control
case "bnGyroZP": return DS4Controls.GyroZPos; case "bnGyroZP": return DS4Controls.GyroZPos;
case "bnGyroZN": return DS4Controls.GyroZNeg; case "bnGyroZN": return DS4Controls.GyroZNeg;
#region OldShiftname
case "sbnShare": return DS4Controls.Share;
case "sbnL3": return DS4Controls.L3;
case "sbnR3": return DS4Controls.R3;
case "sbnOptions": return DS4Controls.Options;
case "sbnUp": return DS4Controls.DpadUp;
case "sbnRight": return DS4Controls.DpadRight;
case "sbnDown": return DS4Controls.DpadDown;
case "sbnLeft": return DS4Controls.DpadLeft;
case "sbnL1": return DS4Controls.L1;
case "sbnR1": return DS4Controls.R1;
case "sbnTriangle": return DS4Controls.Triangle;
case "sbnCircle": return DS4Controls.Circle;
case "sbnCross": return DS4Controls.Cross;
case "sbnSquare": return DS4Controls.Square;
case "sbnPS": return DS4Controls.PS;
case "sbnLSLeft": return DS4Controls.LXNeg;
case "sbnLSUp": return DS4Controls.LYNeg;
case "sbnRSLeft": return DS4Controls.RXNeg;
case "sbnRSUp": return DS4Controls.RYNeg;
case "sbnLSRight": return DS4Controls.LXPos;
case "sbnLSDown": return DS4Controls.LYPos;
case "sbnRSRight": return DS4Controls.RXPos;
case "sbnRSDown": return DS4Controls.RYPos;
case "sbnL2": return DS4Controls.L2;
case "sbnR2": return DS4Controls.R2;
case "sbnTouchLeft": return DS4Controls.TouchLeft;
case "sbnTouchMulti": return DS4Controls.TouchMulti;
case "sbnTouchUpper": return DS4Controls.TouchUpper;
case "sbnTouchRight": return DS4Controls.TouchRight;
case "sbnGsyroXP": return DS4Controls.GyroXPos;
case "sbnGyroXN": return DS4Controls.GyroXNeg;
case "sbnGyroZP": return DS4Controls.GyroZPos;
case "sbnGyroZN": return DS4Controls.GyroZNeg;
#endregion
case "bnSwipeUp": return DS4Controls.SwipeUp; case "bnSwipeUp": return DS4Controls.SwipeUp;
case "bnSwipeDown": return DS4Controls.SwipeDown; case "bnSwipeDown": return DS4Controls.SwipeDown;
case "bnSwipeLeft": return DS4Controls.SwipeLeft; case "bnSwipeLeft": return DS4Controls.SwipeLeft;
@ -1150,7 +1192,7 @@ namespace DS4Control
case "bnShiftTouchMulti": return DS4Controls.TouchMulti; case "bnShiftTouchMulti": return DS4Controls.TouchMulti;
case "bnShiftTouchUpper": return DS4Controls.TouchUpper; case "bnShiftTouchUpper": return DS4Controls.TouchUpper;
case "bnShiftTouchRight": return DS4Controls.TouchRight; case "bnShiftTouchRight": return DS4Controls.TouchRight;
case "bnShiftGsyroXP": return DS4Controls.GyroXPos; case "bnShiftGyroXP": return DS4Controls.GyroXPos;
case "bnShiftGyroXN": return DS4Controls.GyroXNeg; case "bnShiftGyroXN": return DS4Controls.GyroXNeg;
case "bnShiftGyroZP": return DS4Controls.GyroZPos; case "bnShiftGyroZP": return DS4Controls.GyroZPos;
case "bnShiftGyroZN": return DS4Controls.GyroZNeg; case "bnShiftGyroZN": return DS4Controls.GyroZNeg;
@ -1224,6 +1266,7 @@ namespace DS4Control
Dictionary<DS4Controls, UInt16> shiftCustomMapKeys = new Dictionary<DS4Controls, UInt16>(); Dictionary<DS4Controls, UInt16> shiftCustomMapKeys = new Dictionary<DS4Controls, UInt16>();
Dictionary<DS4Controls, X360Controls> shiftCustomMapButtons = new Dictionary<DS4Controls, X360Controls>(); Dictionary<DS4Controls, X360Controls> shiftCustomMapButtons = new Dictionary<DS4Controls, X360Controls>();
Dictionary<DS4Controls, String> shiftCustomMapMacros = new Dictionary<DS4Controls, String>(); Dictionary<DS4Controls, String> shiftCustomMapMacros = new Dictionary<DS4Controls, String>();
string rootname = "DS4Windows";
Boolean missingSetting = false; Boolean missingSetting = false;
string profilepath; string profilepath;
if (propath == "") if (propath == "")
@ -1235,16 +1278,20 @@ namespace DS4Control
XmlNode Item; XmlNode Item;
m_Xdoc.Load(profilepath); m_Xdoc.Load(profilepath);
if (m_Xdoc.SelectSingleNode(rootname) == null)
{
rootname = "ScpControl";
missingSetting = true;
}
try { Item = m_Xdoc.SelectSingleNode("/"+ rootname + "/flushHIDQueue"); Boolean.TryParse(Item.InnerText, out flushHIDQueue[device]); }
catch { missingSetting = true; }//rootname = }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/flushHIDQueue"); Boolean.TryParse(Item.InnerText, out flushHIDQueue[device]); } try { Item = m_Xdoc.SelectSingleNode("/" + rootname + "/idleDisconnectTimeout"); Int32.TryParse(Item.InnerText, out idleDisconnectTimeout[device]); }
catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/idleDisconnectTimeout"); Int32.TryParse(Item.InnerText, out idleDisconnectTimeout[device]); }
catch { missingSetting = true; } catch { missingSetting = true; }
//New method for saving color //New method for saving color
try try
{ {
Item = m_Xdoc.SelectSingleNode("/ScpControl/Color"); Item = m_Xdoc.SelectSingleNode("/" + rootname + "/Color");
string[] colors; string[] colors;
if (!string.IsNullOrEmpty(Item.InnerText)) if (!string.IsNullOrEmpty(Item.InnerText))
colors = Item.InnerText.Split(','); colors = Item.InnerText.Split(',');
@ -1254,35 +1301,35 @@ namespace DS4Control
m_Leds[device][i] = byte.Parse(colors[i]); m_Leds[device][i] = byte.Parse(colors[i]);
} }
catch { missingSetting = true; } catch { missingSetting = true; }
if (m_Xdoc.SelectSingleNode("/ScpControl/Color") == null) if (m_Xdoc.SelectSingleNode("/" + rootname + "/Color") == null)
{ {
//Old method of color saving //Old method of color saving
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/Red"); Byte.TryParse(Item.InnerText, out m_Leds[device][0]); } try { Item = m_Xdoc.SelectSingleNode("/" + rootname + "/Red"); Byte.TryParse(Item.InnerText, out m_Leds[device][0]); }
catch { missingSetting = true; } catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/Green"); Byte.TryParse(Item.InnerText, out m_Leds[device][1]); } try { Item = m_Xdoc.SelectSingleNode("/" + rootname + "/Green"); Byte.TryParse(Item.InnerText, out m_Leds[device][1]); }
catch { missingSetting = true; } catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/Blue"); Byte.TryParse(Item.InnerText, out m_Leds[device][2]); } try { Item = m_Xdoc.SelectSingleNode("/" + rootname + "/Blue"); Byte.TryParse(Item.InnerText, out m_Leds[device][2]); }
catch { missingSetting = true; } catch { missingSetting = true; }
} }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/RumbleBoost"); Byte.TryParse(Item.InnerText, out m_Rumble[device]); } try { Item = m_Xdoc.SelectSingleNode("/" + rootname + "/RumbleBoost"); Byte.TryParse(Item.InnerText, out m_Rumble[device]); }
catch { missingSetting = true; } catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/ledAsBatteryIndicator"); Boolean.TryParse(Item.InnerText, out ledAsBattery[device]); } try { Item = m_Xdoc.SelectSingleNode("/" + rootname + "/ledAsBatteryIndicator"); Boolean.TryParse(Item.InnerText, out ledAsBattery[device]); }
catch { missingSetting = true; } catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/lowBatteryFlash"); Boolean.TryParse(Item.InnerText, out flashLedLowBattery[device]); } try { Item = m_Xdoc.SelectSingleNode("/" + rootname + "/lowBatteryFlash"); Boolean.TryParse(Item.InnerText, out flashLedLowBattery[device]); }
catch { missingSetting = true; } catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/flashBatteryAt"); Int32.TryParse(Item.InnerText, out flashAt[device]); } try { Item = m_Xdoc.SelectSingleNode("/" + rootname + "/flashBatteryAt"); Int32.TryParse(Item.InnerText, out flashAt[device]); }
catch { missingSetting = true; } catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/touchSensitivity"); Byte.TryParse(Item.InnerText, out touchSensitivity[device]); } try { Item = m_Xdoc.SelectSingleNode("/" + rootname + "/touchSensitivity"); Byte.TryParse(Item.InnerText, out touchSensitivity[device]); }
catch { missingSetting = true; } catch { missingSetting = true; }
//New method for saving color //New method for saving color
try try
{ {
Item = m_Xdoc.SelectSingleNode("/ScpControl/LowColor"); Item = m_Xdoc.SelectSingleNode("/" + rootname + "/LowColor");
string[] colors; string[] colors;
if (!string.IsNullOrEmpty(Item.InnerText)) if (!string.IsNullOrEmpty(Item.InnerText))
colors = Item.InnerText.Split(','); colors = Item.InnerText.Split(',');
@ -1292,20 +1339,20 @@ namespace DS4Control
m_LowLeds[device][i] = byte.Parse(colors[i]); m_LowLeds[device][i] = byte.Parse(colors[i]);
} }
catch { missingSetting = true; } catch { missingSetting = true; }
if (m_Xdoc.SelectSingleNode("/ScpControl/LowColor") == null) if (m_Xdoc.SelectSingleNode("/" + rootname + "/LowColor") == null)
{ {
//Old method of color saving //Old method of color saving
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/LowRed"); Byte.TryParse(Item.InnerText, out m_LowLeds[device][0]); } try { Item = m_Xdoc.SelectSingleNode("/" + rootname + "/LowRed"); Byte.TryParse(Item.InnerText, out m_LowLeds[device][0]); }
catch { missingSetting = true; } catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/LowGreen"); Byte.TryParse(Item.InnerText, out m_LowLeds[device][1]); } try { Item = m_Xdoc.SelectSingleNode("/" + rootname + "/LowGreen"); Byte.TryParse(Item.InnerText, out m_LowLeds[device][1]); }
catch { missingSetting = true; } catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/LowBlue"); Byte.TryParse(Item.InnerText, out m_LowLeds[device][2]); } try { Item = m_Xdoc.SelectSingleNode("/" + rootname + "/LowBlue"); Byte.TryParse(Item.InnerText, out m_LowLeds[device][2]); }
catch { missingSetting = true; } catch { missingSetting = true; }
} }
//New method for saving color //New method for saving color
try try
{ {
Item = m_Xdoc.SelectSingleNode("/ScpControl/ChargingColor"); Item = m_Xdoc.SelectSingleNode("/" + rootname + "/ChargingColor");
string[] colors; string[] colors;
if (!string.IsNullOrEmpty(Item.InnerText)) if (!string.IsNullOrEmpty(Item.InnerText))
colors = Item.InnerText.Split(','); colors = Item.InnerText.Split(',');
@ -1315,18 +1362,18 @@ namespace DS4Control
m_ChargingLeds[device][i] = byte.Parse(colors[i]); m_ChargingLeds[device][i] = byte.Parse(colors[i]);
} }
catch { missingSetting = true; } catch { missingSetting = true; }
if (m_Xdoc.SelectSingleNode("/ScpControl/ChargingColor") == null) if (m_Xdoc.SelectSingleNode("/" + rootname + "/ChargingColor") == null)
{ {
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/ChargingRed"); Byte.TryParse(Item.InnerText, out m_ChargingLeds[device][0]); } try { Item = m_Xdoc.SelectSingleNode("/" + rootname + "/ChargingRed"); Byte.TryParse(Item.InnerText, out m_ChargingLeds[device][0]); }
catch { missingSetting = true; } catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/ChargingGreen"); Byte.TryParse(Item.InnerText, out m_ChargingLeds[device][1]); } try { Item = m_Xdoc.SelectSingleNode("/" + rootname + "/ChargingGreen"); Byte.TryParse(Item.InnerText, out m_ChargingLeds[device][1]); }
catch { missingSetting = true; } catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/ChargingBlue"); Byte.TryParse(Item.InnerText, out m_ChargingLeds[device][2]); } try { Item = m_Xdoc.SelectSingleNode("/" + rootname + "/ChargingBlue"); Byte.TryParse(Item.InnerText, out m_ChargingLeds[device][2]); }
catch { missingSetting = true; } catch { missingSetting = true; }
} }
try try
{ {
Item = m_Xdoc.SelectSingleNode("/ScpControl/ShiftColor"); Item = m_Xdoc.SelectSingleNode("/" + rootname + "/ShiftColor");
string[] colors; string[] colors;
if (!string.IsNullOrEmpty(Item.InnerText)) if (!string.IsNullOrEmpty(Item.InnerText))
colors = Item.InnerText.Split(','); colors = Item.InnerText.Split(',');
@ -1336,11 +1383,11 @@ namespace DS4Control
m_ShiftLeds[device][i] = byte.Parse(colors[i]); m_ShiftLeds[device][i] = byte.Parse(colors[i]);
} }
catch { m_ShiftLeds[device] = m_Leds[device]; missingSetting = true; } catch { m_ShiftLeds[device] = m_Leds[device]; missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/ShiftColorOn"); Boolean.TryParse(Item.InnerText, out shiftColorOn[device]); } try { Item = m_Xdoc.SelectSingleNode("/" + rootname + "/ShiftColorOn"); Boolean.TryParse(Item.InnerText, out shiftColorOn[device]); }
catch { shiftColorOn[device] = false; missingSetting = true; } catch { shiftColorOn[device] = false; missingSetting = true; }
try try
{ {
Item = m_Xdoc.SelectSingleNode("/ScpControl/FlashColor"); Item = m_Xdoc.SelectSingleNode("/" + rootname + "/FlashColor");
string[] colors; string[] colors;
if (!string.IsNullOrEmpty(Item.InnerText)) if (!string.IsNullOrEmpty(Item.InnerText))
colors = Item.InnerText.Split(','); colors = Item.InnerText.Split(',');
@ -1350,48 +1397,48 @@ namespace DS4Control
m_FlashLeds[device][i] = byte.Parse(colors[i]); m_FlashLeds[device][i] = byte.Parse(colors[i]);
} }
catch { missingSetting = true; } catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/touchpadJitterCompensation"); Boolean.TryParse(Item.InnerText, out touchpadJitterCompensation[device]); } try { Item = m_Xdoc.SelectSingleNode("/" + rootname + "/touchpadJitterCompensation"); Boolean.TryParse(Item.InnerText, out touchpadJitterCompensation[device]); }
catch { missingSetting = true; } catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/lowerRCOn"); Boolean.TryParse(Item.InnerText, out lowerRCOn[device]); } try { Item = m_Xdoc.SelectSingleNode("/" + rootname + "/lowerRCOn"); Boolean.TryParse(Item.InnerText, out lowerRCOn[device]); }
catch { missingSetting = true; } catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/tapSensitivity"); Byte.TryParse(Item.InnerText, out tapSensitivity[device]); } try { Item = m_Xdoc.SelectSingleNode("/" + rootname + "/tapSensitivity"); Byte.TryParse(Item.InnerText, out tapSensitivity[device]); }
catch { missingSetting = true; } catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/doubleTap"); Boolean.TryParse(Item.InnerText, out doubleTap[device]); } try { Item = m_Xdoc.SelectSingleNode("/" + rootname + "/doubleTap"); Boolean.TryParse(Item.InnerText, out doubleTap[device]); }
catch { missingSetting = true; } catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/scrollSensitivity"); Int32.TryParse(Item.InnerText, out scrollSensitivity[device]); } try { Item = m_Xdoc.SelectSingleNode("/" + rootname + "/scrollSensitivity"); Int32.TryParse(Item.InnerText, out scrollSensitivity[device]); }
catch { missingSetting = true; } catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/LeftTriggerMiddle"); Byte.TryParse(Item.InnerText, out m_LeftTriggerMiddle[device]); } try { Item = m_Xdoc.SelectSingleNode("/" + rootname + "/LeftTriggerMiddle"); Byte.TryParse(Item.InnerText, out m_LeftTriggerMiddle[device]); }
catch { missingSetting = true; } catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/RightTriggerMiddle"); Byte.TryParse(Item.InnerText, out m_RightTriggerMiddle[device]); } try { Item = m_Xdoc.SelectSingleNode("/" + rootname + "/RightTriggerMiddle"); Byte.TryParse(Item.InnerText, out m_RightTriggerMiddle[device]); }
catch { missingSetting = true; } catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/ButtonMouseSensitivity"); Int32.TryParse(Item.InnerText, out buttonMouseSensitivity[device]); } try { Item = m_Xdoc.SelectSingleNode("/" + rootname + "/ButtonMouseSensitivity"); Int32.TryParse(Item.InnerText, out buttonMouseSensitivity[device]); }
catch { missingSetting = true; } catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/Rainbow"); Double.TryParse(Item.InnerText, out rainbow[device]); } try { Item = m_Xdoc.SelectSingleNode("/" + rootname + "/Rainbow"); Double.TryParse(Item.InnerText, out rainbow[device]); }
catch { rainbow[device] = 0; missingSetting = true; } catch { rainbow[device] = 0; missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/LSDeadZone"); Byte.TryParse(Item.InnerText, out LSDeadzone[device]); } try { Item = m_Xdoc.SelectSingleNode("/" + rootname + "/LSDeadZone"); Byte.TryParse(Item.InnerText, out LSDeadzone[device]); }
catch { missingSetting = true; } catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/RSDeadZone"); Byte.TryParse(Item.InnerText, out RSDeadzone[device]); } try { Item = m_Xdoc.SelectSingleNode("/" + rootname + "/RSDeadZone"); Byte.TryParse(Item.InnerText, out RSDeadzone[device]); }
catch { missingSetting = true; } catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/SXDeadZone"); Double.TryParse(Item.InnerText, out SXDeadzone[device]); } try { Item = m_Xdoc.SelectSingleNode("/" + rootname + "/SXDeadZone"); Double.TryParse(Item.InnerText, out SXDeadzone[device]); }
catch { missingSetting = true; } catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/SZDeadZone"); Double.TryParse(Item.InnerText, out SZDeadzone[device]); } try { Item = m_Xdoc.SelectSingleNode("/" + rootname + "/SZDeadZone"); Double.TryParse(Item.InnerText, out SZDeadzone[device]); }
catch { missingSetting = true; } catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/ChargingType"); Int32.TryParse(Item.InnerText, out chargingType[device]); } try { Item = m_Xdoc.SelectSingleNode("/" + rootname + "/ChargingType"); Int32.TryParse(Item.InnerText, out chargingType[device]); }
catch { missingSetting = true; } catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/MouseAcceleration"); Boolean.TryParse(Item.InnerText, out mouseAccel[device]); } try { Item = m_Xdoc.SelectSingleNode("/" + rootname + "/MouseAcceleration"); Boolean.TryParse(Item.InnerText, out mouseAccel[device]); }
catch { missingSetting = true; } catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/ShiftModifier"); Int32.TryParse(Item.InnerText, out shiftModifier[device]); } try { Item = m_Xdoc.SelectSingleNode("/" + rootname + "/ShiftModifier"); Int32.TryParse(Item.InnerText, out shiftModifier[device]); }
catch { shiftModifier[device] = 0; missingSetting = true; } catch { shiftModifier[device] = 0; missingSetting = true; }
try try
{ {
Item = m_Xdoc.SelectSingleNode("/ScpControl/LaunchProgram"); Item = m_Xdoc.SelectSingleNode("/" + rootname + "/LaunchProgram");
launchProgram[device] = Item.InnerText; launchProgram[device] = Item.InnerText;
if (launchprogram == true && launchProgram[device] != string.Empty) System.Diagnostics.Process.Start(launchProgram[device]); if (launchprogram == true && launchProgram[device] != string.Empty) System.Diagnostics.Process.Start(launchProgram[device]);
} }
catch { launchProgram[device] = string.Empty; missingSetting = true; } catch { launchProgram[device] = string.Empty; missingSetting = true; }
try try
{ {
Item = m_Xdoc.SelectSingleNode("/ScpControl/DinputOnly"); Item = m_Xdoc.SelectSingleNode("/" + rootname + "/DinputOnly");
Boolean.TryParse(Item.InnerText, out dinputOnly[device]); Boolean.TryParse(Item.InnerText, out dinputOnly[device]);
if (device < 4) if (device < 4)
{ {
@ -1402,32 +1449,32 @@ namespace DS4Control
catch { missingSetting = true; } catch { missingSetting = true; }
try try
{ {
Item = m_Xdoc.SelectSingleNode("/ScpControl/StartTouchpadOff"); Item = m_Xdoc.SelectSingleNode("/" + rootname + "/StartTouchpadOff");
Boolean.TryParse(Item.InnerText, out startTouchpadOff[device]); Boolean.TryParse(Item.InnerText, out startTouchpadOff[device]);
if (startTouchpadOff[device] == true) control.StartTPOff(device); if (startTouchpadOff[device] == true) control.StartTPOff(device);
} }
catch { startTouchpadOff[device] = false; missingSetting = true; } catch { startTouchpadOff[device] = false; missingSetting = true; }
try try
{ Item = m_Xdoc.SelectSingleNode("/ScpControl/UseTPforControls"); Boolean.TryParse(Item.InnerText, out useTPforControls[device]); } { Item = m_Xdoc.SelectSingleNode("/" + rootname + "/UseTPforControls"); Boolean.TryParse(Item.InnerText, out useTPforControls[device]); }
catch { useTPforControls[device] = false; missingSetting = true; } catch { useTPforControls[device] = false; missingSetting = true; }
DS4KeyType keyType; DS4KeyType keyType;
UInt16 wvk; UInt16 wvk;
if (buttons == null) if (buttons == null)
{ {
XmlNode ParentItem = m_Xdoc.SelectSingleNode("/ScpControl/Control/Button"); XmlNode ParentItem = m_Xdoc.SelectSingleNode("/" + rootname + "/Control/Button");
if (ParentItem != null) if (ParentItem != null)
foreach (XmlNode item in ParentItem.ChildNodes) foreach (XmlNode item in ParentItem.ChildNodes)
customMapButtons.Add(getDS4ControlsByName(item.Name), getX360ControlsByName(item.InnerText)); customMapButtons.Add(getDS4ControlsByName(item.Name), getX360ControlsByName(item.InnerText));
ParentItem = m_Xdoc.SelectSingleNode("/ScpControl/Control/Macro"); ParentItem = m_Xdoc.SelectSingleNode("/" + rootname + "/Control/Macro");
if (ParentItem != null) if (ParentItem != null)
foreach (XmlNode item in ParentItem.ChildNodes) foreach (XmlNode item in ParentItem.ChildNodes)
customMapMacros.Add(getDS4ControlsByName(item.Name), item.InnerText); customMapMacros.Add(getDS4ControlsByName(item.Name), item.InnerText);
ParentItem = m_Xdoc.SelectSingleNode("/ScpControl/Control/Key"); ParentItem = m_Xdoc.SelectSingleNode("/" + rootname + "/Control/Key");
if (ParentItem != null) if (ParentItem != null)
foreach (XmlNode item in ParentItem.ChildNodes) foreach (XmlNode item in ParentItem.ChildNodes)
if (UInt16.TryParse(item.InnerText, out wvk)) if (UInt16.TryParse(item.InnerText, out wvk))
customMapKeys.Add(getDS4ControlsByName(item.Name), wvk); customMapKeys.Add(getDS4ControlsByName(item.Name), wvk);
ParentItem = m_Xdoc.SelectSingleNode("/ScpControl/Control/KeyType"); ParentItem = m_Xdoc.SelectSingleNode("/" + rootname + "/Control/KeyType");
if (ParentItem != null) if (ParentItem != null)
foreach (XmlNode item in ParentItem.ChildNodes) foreach (XmlNode item in ParentItem.ChildNodes)
if (item != null) if (item != null)
@ -1448,20 +1495,20 @@ namespace DS4Control
} }
if (shiftModifier[device] > 0) if (shiftModifier[device] > 0)
{ {
ParentItem = m_Xdoc.SelectSingleNode("/ScpControl/ShiftControl/Button"); ParentItem = m_Xdoc.SelectSingleNode("/" + rootname + "/ShiftControl/Button");
if (ParentItem != null) if (ParentItem != null)
foreach (XmlNode item in ParentItem.ChildNodes) foreach (XmlNode item in ParentItem.ChildNodes)
shiftCustomMapButtons.Add(getDS4ControlsByName(item.Name), getX360ControlsByName(item.InnerText)); shiftCustomMapButtons.Add(getDS4ControlsByName(item.Name), getX360ControlsByName(item.InnerText));
ParentItem = m_Xdoc.SelectSingleNode("/ScpControl/ShiftControl/Macro"); ParentItem = m_Xdoc.SelectSingleNode("/" + rootname + "/ShiftControl/Macro");
if (ParentItem != null) if (ParentItem != null)
foreach (XmlNode item in ParentItem.ChildNodes) foreach (XmlNode item in ParentItem.ChildNodes)
shiftCustomMapMacros.Add(getDS4ControlsByName(item.Name), item.InnerText); shiftCustomMapMacros.Add(getDS4ControlsByName(item.Name), item.InnerText);
ParentItem = m_Xdoc.SelectSingleNode("/ScpControl/ShiftControl/Key"); ParentItem = m_Xdoc.SelectSingleNode("/" + rootname + "/ShiftControl/Key");
if (ParentItem != null) if (ParentItem != null)
foreach (XmlNode item in ParentItem.ChildNodes) foreach (XmlNode item in ParentItem.ChildNodes)
if (UInt16.TryParse(item.InnerText, out wvk)) if (UInt16.TryParse(item.InnerText, out wvk))
shiftCustomMapKeys.Add(getDS4ControlsByName(item.Name), wvk); shiftCustomMapKeys.Add(getDS4ControlsByName(item.Name), wvk);
ParentItem = m_Xdoc.SelectSingleNode("/ScpControl/ShiftControl/KeyType"); ParentItem = m_Xdoc.SelectSingleNode("/" + rootname + "/ShiftControl/KeyType");
if (ParentItem != null) if (ParentItem != null)
foreach (XmlNode item in ParentItem.ChildNodes) foreach (XmlNode item in ParentItem.ChildNodes)
if (item != null) if (item != null)
@ -1514,11 +1561,16 @@ namespace DS4Control
XmlNode Item; XmlNode Item;
DS4KeyType keyType; DS4KeyType keyType;
UInt16 wvk; UInt16 wvk;
string rootname = "DS4Windows";
foreach (var button in buttons) foreach (var button in buttons)
try try
{ {
if (m_Xdoc.SelectSingleNode(rootname) == null)
{
rootname = "ScpControl";
}
//bool foundBinding = false; //bool foundBinding = false;
Item = m_Xdoc.SelectSingleNode(String.Format("/ScpControl/" + control + "/KeyType/{0}", button.Name)); Item = m_Xdoc.SelectSingleNode(String.Format("/" + rootname + "/" + control + "/KeyType/{0}", button.Name));
if (Item != null) if (Item != null)
{ {
//foundBinding = true; //foundBinding = true;
@ -1549,7 +1601,7 @@ namespace DS4Control
customMapKeyTypes.Add(getDS4ControlsByName(Item.Name), keyType); customMapKeyTypes.Add(getDS4ControlsByName(Item.Name), keyType);
} }
Item = m_Xdoc.SelectSingleNode(String.Format("/ScpControl/" + control + "/Macro/{0}", button.Name)); Item = m_Xdoc.SelectSingleNode(String.Format("/" + rootname + "/" + control + "/Macro/{0}", button.Name));
if (Item != null) if (Item != null)
{ {
string[] splitter = Item.InnerText.Split('/'); string[] splitter = Item.InnerText.Split('/');
@ -1569,9 +1621,9 @@ namespace DS4Control
button.Tag = keys; button.Tag = keys;
customMapMacros.Add(getDS4ControlsByName(button.Name), Item.InnerText); customMapMacros.Add(getDS4ControlsByName(button.Name), Item.InnerText);
} }
else if (m_Xdoc.SelectSingleNode(String.Format("/ScpControl/" + control + "/Key/{0}", button.Name)) != null) else if (m_Xdoc.SelectSingleNode(String.Format("/" + rootname + "/" + control + "/Key/{0}", button.Name)) != null)
{ {
Item = m_Xdoc.SelectSingleNode(String.Format("/ScpControl/" + control + "/Key/{0}", button.Name)); Item = m_Xdoc.SelectSingleNode(String.Format("/" + rootname + "/" + control + "/Key/{0}", button.Name));
if (UInt16.TryParse(Item.InnerText, out wvk)) if (UInt16.TryParse(Item.InnerText, out wvk))
{ {
//foundBinding = true; //foundBinding = true;
@ -1582,7 +1634,7 @@ namespace DS4Control
} }
else else
{ {
Item = m_Xdoc.SelectSingleNode(String.Format("/ScpControl/" + control + "/Button/{0}", button.Name)); Item = m_Xdoc.SelectSingleNode(String.Format("/" + rootname + "/" + control + "/Button/{0}", button.Name));
if (Item != null) if (Item != null)
{ {
//foundBinding = true; //foundBinding = true;

View File

@ -471,6 +471,10 @@ namespace DS4Library
} }
} }
public void FlushHID()
{
hDevice.flush_Queue();
}
private void sendOutputReport(bool synchronous) private void sendOutputReport(bool synchronous)
{ {
setTestRumble(); setTestRumble();

View File

@ -1,7 +1,7 @@
 
Microsoft Visual Studio Solution File, Format Version 12.00 Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013 # Visual Studio 2013
VisualStudioVersion = 12.0.30501.0 VisualStudioVersion = 12.0.31101.0
MinimumVisualStudioVersion = 10.0.40219.1 MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DS4Library", "DS4Library\DS4Library.csproj", "{43E14DAD-E6E8-4B66-AC50-20F5CF9B9712}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DS4Library", "DS4Library\DS4Library.csproj", "{43E14DAD-E6E8-4B66-AC50-20F5CF9B9712}"
EndProject EndProject
@ -9,7 +9,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HidLibrary", "HidLibrary\Hi
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DS4Control", "DS4Control\DS4Control.csproj", "{B0AD793E-BAEB-435F-BB40-D647DE2BC2BF}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DS4Control", "DS4Control\DS4Control.csproj", "{B0AD793E-BAEB-435F-BB40-D647DE2BC2BF}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DS4Tool", "DS4Tool\DS4Tool.csproj", "{B1081607-B630-4F57-9580-8A4897145890}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DS4Windows", "DS4Tool\DS4Windows.csproj", "{B1081607-B630-4F57-9580-8A4897145890}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DS4Service", "DS4Service\DS4Service.csproj", "{04CCD3D1-2ABC-4B5F-90D9-641D8DEC7127}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DS4Service", "DS4Service\DS4Service.csproj", "{04CCD3D1-2ABC-4B5F-90D9-641D8DEC7127}"
EndProject EndProject

View File

@ -4,7 +4,7 @@ using System.Drawing;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
using System.Windows.Forms; using System.Windows.Forms;
namespace ScpServer namespace DS4Windows
{ {
[System.ComponentModel.DesignerCategory("")] [System.ComponentModel.DesignerCategory("")]
public class AdvancedColorDialog : ColorDialog public class AdvancedColorDialog : ColorDialog

View File

@ -1,4 +1,4 @@
namespace ScpServer namespace DS4Windows
{ {
partial class Alreadyrunning partial class Alreadyrunning
{ {

View File

@ -9,7 +9,7 @@ using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows.Forms; using System.Windows.Forms;
namespace ScpServer namespace DS4Windows
{ {
public partial class Alreadyrunning : Form public partial class Alreadyrunning : Form
{ {

View File

@ -1,4 +1,4 @@
namespace ScpServer namespace DS4Windows
{ {
partial class DS4Form partial class DS4Form
{ {
@ -352,7 +352,7 @@
// pBStatus1 // pBStatus1
// //
resources.ApplyResources(this.pBStatus1, "pBStatus1"); resources.ApplyResources(this.pBStatus1, "pBStatus1");
this.pBStatus1.InitialImage = global::ScpServer.Properties.Resources.BT; this.pBStatus1.InitialImage = global::DS4Windows.Properties.Resources.BT;
this.pBStatus1.Name = "pBStatus1"; this.pBStatus1.Name = "pBStatus1";
this.pBStatus1.TabStop = false; this.pBStatus1.TabStop = false;
this.pBStatus1.Tag = "0"; this.pBStatus1.Tag = "0";
@ -489,7 +489,7 @@
// pBStatus2 // pBStatus2
// //
resources.ApplyResources(this.pBStatus2, "pBStatus2"); resources.ApplyResources(this.pBStatus2, "pBStatus2");
this.pBStatus2.InitialImage = global::ScpServer.Properties.Resources.BT; this.pBStatus2.InitialImage = global::DS4Windows.Properties.Resources.BT;
this.pBStatus2.Name = "pBStatus2"; this.pBStatus2.Name = "pBStatus2";
this.pBStatus2.TabStop = false; this.pBStatus2.TabStop = false;
this.pBStatus2.Tag = "1"; this.pBStatus2.Tag = "1";
@ -498,7 +498,7 @@
// pBStatus3 // pBStatus3
// //
resources.ApplyResources(this.pBStatus3, "pBStatus3"); resources.ApplyResources(this.pBStatus3, "pBStatus3");
this.pBStatus3.InitialImage = global::ScpServer.Properties.Resources.BT; this.pBStatus3.InitialImage = global::DS4Windows.Properties.Resources.BT;
this.pBStatus3.Name = "pBStatus3"; this.pBStatus3.Name = "pBStatus3";
this.pBStatus3.TabStop = false; this.pBStatus3.TabStop = false;
this.pBStatus3.Tag = "2"; this.pBStatus3.Tag = "2";
@ -507,7 +507,7 @@
// pBStatus4 // pBStatus4
// //
resources.ApplyResources(this.pBStatus4, "pBStatus4"); resources.ApplyResources(this.pBStatus4, "pBStatus4");
this.pBStatus4.InitialImage = global::ScpServer.Properties.Resources.BT; this.pBStatus4.InitialImage = global::DS4Windows.Properties.Resources.BT;
this.pBStatus4.Name = "pBStatus4"; this.pBStatus4.Name = "pBStatus4";
this.pBStatus4.TabStop = false; this.pBStatus4.TabStop = false;
this.pBStatus4.Tag = "3"; this.pBStatus4.Tag = "3";
@ -642,7 +642,7 @@
// tSBSaveProfile // tSBSaveProfile
// //
this.tSBSaveProfile.AutoToolTip = false; this.tSBSaveProfile.AutoToolTip = false;
this.tSBSaveProfile.Image = global::ScpServer.Properties.Resources.saveprofile; this.tSBSaveProfile.Image = global::DS4Windows.Properties.Resources.saveprofile;
resources.ApplyResources(this.tSBSaveProfile, "tSBSaveProfile"); resources.ApplyResources(this.tSBSaveProfile, "tSBSaveProfile");
this.tSBSaveProfile.Name = "tSBSaveProfile"; this.tSBSaveProfile.Name = "tSBSaveProfile";
this.tSBSaveProfile.Click += new System.EventHandler(this.tSBSaveProfile_Click); this.tSBSaveProfile.Click += new System.EventHandler(this.tSBSaveProfile_Click);
@ -650,7 +650,7 @@
// tSBCancel // tSBCancel
// //
this.tSBCancel.AutoToolTip = false; this.tSBCancel.AutoToolTip = false;
this.tSBCancel.Image = global::ScpServer.Properties.Resources.delete; this.tSBCancel.Image = global::DS4Windows.Properties.Resources.delete;
resources.ApplyResources(this.tSBCancel, "tSBCancel"); resources.ApplyResources(this.tSBCancel, "tSBCancel");
this.tSBCancel.Name = "tSBCancel"; this.tSBCancel.Name = "tSBCancel";
this.tSBCancel.Click += new System.EventHandler(this.tSBCancel_Click); this.tSBCancel.Click += new System.EventHandler(this.tSBCancel_Click);
@ -662,7 +662,7 @@
// //
// tSBKeepSize // tSBKeepSize
// //
this.tSBKeepSize.Image = global::ScpServer.Properties.Resources.size; this.tSBKeepSize.Image = global::DS4Windows.Properties.Resources.size;
resources.ApplyResources(this.tSBKeepSize, "tSBKeepSize"); resources.ApplyResources(this.tSBKeepSize, "tSBKeepSize");
this.tSBKeepSize.Name = "tSBKeepSize"; this.tSBKeepSize.Name = "tSBKeepSize";
this.tSBKeepSize.Click += new System.EventHandler(this.tSBKeepSize_Click); this.tSBKeepSize.Click += new System.EventHandler(this.tSBKeepSize_Click);
@ -682,14 +682,14 @@
// //
// tsBNewProfle // tsBNewProfle
// //
this.tsBNewProfle.Image = global::ScpServer.Properties.Resources.newprofile; this.tsBNewProfle.Image = global::DS4Windows.Properties.Resources.newprofile;
resources.ApplyResources(this.tsBNewProfle, "tsBNewProfle"); resources.ApplyResources(this.tsBNewProfle, "tsBNewProfle");
this.tsBNewProfle.Name = "tsBNewProfle"; this.tsBNewProfle.Name = "tsBNewProfle";
this.tsBNewProfle.Click += new System.EventHandler(this.tsBNewProfile_Click); this.tsBNewProfle.Click += new System.EventHandler(this.tsBNewProfile_Click);
// //
// tsBEditProfile // tsBEditProfile
// //
this.tsBEditProfile.Image = global::ScpServer.Properties.Resources.edit; this.tsBEditProfile.Image = global::DS4Windows.Properties.Resources.edit;
resources.ApplyResources(this.tsBEditProfile, "tsBEditProfile"); resources.ApplyResources(this.tsBEditProfile, "tsBEditProfile");
this.tsBEditProfile.Name = "tsBEditProfile"; this.tsBEditProfile.Name = "tsBEditProfile";
this.tsBEditProfile.Click += new System.EventHandler(this.tsBNEditProfile_Click); this.tsBEditProfile.Click += new System.EventHandler(this.tsBNEditProfile_Click);
@ -708,7 +708,7 @@
// //
// tSBImportProfile // tSBImportProfile
// //
this.tSBImportProfile.Image = global::ScpServer.Properties.Resources.import; this.tSBImportProfile.Image = global::DS4Windows.Properties.Resources.import;
resources.ApplyResources(this.tSBImportProfile, "tSBImportProfile"); resources.ApplyResources(this.tSBImportProfile, "tSBImportProfile");
this.tSBImportProfile.Name = "tSBImportProfile"; this.tSBImportProfile.Name = "tSBImportProfile";
this.tSBImportProfile.Click += new System.EventHandler(this.tSBImportProfile_Click); this.tSBImportProfile.Click += new System.EventHandler(this.tSBImportProfile_Click);

View File

@ -14,7 +14,7 @@ using System.Diagnostics;
using System.Xml; using System.Xml;
using System.Text; using System.Text;
using System.Globalization; using System.Globalization;
namespace ScpServer namespace DS4Windows
{ {
public partial class DS4Form : Form public partial class DS4Form : Form
{ {
@ -28,7 +28,7 @@ namespace ScpServer
protected PictureBox[] statPB; protected PictureBox[] statPB;
protected ToolStripMenuItem[] shortcuts; protected ToolStripMenuItem[] shortcuts;
WebClient wc = new WebClient(); WebClient wc = new WebClient();
Timer test = new Timer(), hotkeystimer = new Timer(); Timer test = new Timer(), hotkeysTimer = new Timer();
string exepath = Directory.GetParent(Assembly.GetExecutingAssembly().Location).FullName; string exepath = Directory.GetParent(Assembly.GetExecutingAssembly().Location).FullName;
string appdatapath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\DS4Tool"; string appdatapath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\DS4Tool";
float dpix, dpiy; float dpix, dpiy;
@ -233,8 +233,8 @@ namespace ScpServer
File.Delete(exepath + "\\Updater.exe"); File.Delete(exepath + "\\Updater.exe");
} }
//test.Start(); //test.Start();
hotkeystimer.Start(); hotkeysTimer.Start();
hotkeystimer.Tick += Hotkeys; hotkeysTimer.Tick += Hotkeys;
test.Tick += test_Tick; test.Tick += test_Tick;
if (!System.IO.Directory.Exists(Global.appdatapath + "\\Virtual Bus Driver")) if (!System.IO.Directory.Exists(Global.appdatapath + "\\Virtual Bus Driver"))
linkUninstall.Visible = false; linkUninstall.Visible = false;
@ -330,13 +330,6 @@ namespace ScpServer
Global.LoadProfile(j, false, rootHub); Global.LoadProfile(j, false, rootHub);
} }
} }
if (Process.GetProcessesByName("DS4Tool").Length + Process.GetProcessesByName("DS4Windows").Length > 1)
{//The second process closes and this one comes in focus
Show();
WindowState = FormWindowState.Normal;
ShowInTaskbar = true;
Focus();
}
GC.Collect(); GC.Collect();
} }
@ -582,14 +575,14 @@ namespace ScpServer
if (btnStartStop.Text == Properties.Resources.StartText) if (btnStartStop.Text == Properties.Resources.StartText)
{ {
rootHub.Start(log); rootHub.Start(log);
hotkeystimer.Start(); hotkeysTimer.Start();
btnStartStop.Text = Properties.Resources.StopText; btnStartStop.Text = Properties.Resources.StopText;
} }
else if (btnStartStop.Text == Properties.Resources.StopText) else if (btnStartStop.Text == Properties.Resources.StopText)
{ {
rootHub.Stop(log); rootHub.Stop(log);
hotkeystimer.Stop(); hotkeysTimer.Stop();
btnStartStop.Text = Properties.Resources.StartText; btnStartStop.Text = Properties.Resources.StartText;
} }
startToolStripMenuItem.Text = btnStartStop.Text; startToolStripMenuItem.Text = btnStartStop.Text;

View File

@ -7,7 +7,7 @@
<ProjectGuid>{B1081607-B630-4F57-9580-8A4897145890}</ProjectGuid> <ProjectGuid>{B1081607-B630-4F57-9580-8A4897145890}</ProjectGuid>
<OutputType>WinExe</OutputType> <OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder> <AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ScpServer</RootNamespace> <RootNamespace>DS4Windows</RootNamespace>
<AssemblyName>DS4Windows</AssemblyName> <AssemblyName>DS4Windows</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion> <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment> <FileAlignment>512</FileAlignment>
@ -59,7 +59,7 @@
</PropertyGroup> </PropertyGroup>
<PropertyGroup /> <PropertyGroup />
<PropertyGroup> <PropertyGroup>
<StartupObject>ScpServer.Program</StartupObject> <StartupObject>DS4Windows.Program</StartupObject>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>
<ManifestCertificateThumbprint>5F2A5A97E42A73158D79996F7F3BE738271F5047</ManifestCertificateThumbprint> <ManifestCertificateThumbprint>5F2A5A97E42A73158D79996F7F3BE738271F5047</ManifestCertificateThumbprint>
@ -81,6 +81,9 @@
<PropertyGroup /> <PropertyGroup />
<PropertyGroup /> <PropertyGroup />
<PropertyGroup /> <PropertyGroup />
<PropertyGroup>
<NoWin32Manifest>true</NoWin32Manifest>
</PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Core" /> <Reference Include="System.Core" />

View File

@ -1,4 +1,4 @@
namespace ScpServer namespace DS4Windows
{ {
partial class Hotkeys partial class Hotkeys
{ {

View File

@ -12,7 +12,7 @@ using System.IO;
using System.Reflection; using System.Reflection;
using System.Diagnostics; using System.Diagnostics;
namespace ScpServer namespace DS4Windows
{ {
public partial class Hotkeys : Form public partial class Hotkeys : Form
{ {

View File

@ -1,4 +1,4 @@
namespace ScpServer namespace DS4Windows
{ {
partial class KBM360 partial class KBM360
{ {
@ -1173,7 +1173,7 @@
// pictureBox2 // pictureBox2
// //
resources.ApplyResources(this.pictureBox2, "pictureBox2"); resources.ApplyResources(this.pictureBox2, "pictureBox2");
this.pictureBox2.Image = global::ScpServer.Properties.Resources.mouse; this.pictureBox2.Image = global::DS4Windows.Properties.Resources.mouse;
this.pictureBox2.Name = "pictureBox2"; this.pictureBox2.Name = "pictureBox2";
this.pictureBox2.TabStop = false; this.pictureBox2.TabStop = false;
// //
@ -1196,7 +1196,7 @@
// button13 // button13
// //
resources.ApplyResources(this.button13, "button13"); resources.ApplyResources(this.button13, "button13");
this.button13.Image = global::ScpServer.Properties.Resources.LT; this.button13.Image = global::DS4Windows.Properties.Resources.LT;
this.button13.Name = "button13"; this.button13.Name = "button13";
this.button13.TabStop = false; this.button13.TabStop = false;
this.button13.Tag = "X360Left Trigger"; this.button13.Tag = "X360Left Trigger";
@ -1205,7 +1205,7 @@
// button2 // button2
// //
resources.ApplyResources(this.button2, "button2"); resources.ApplyResources(this.button2, "button2");
this.button2.Image = global::ScpServer.Properties.Resources.RT; this.button2.Image = global::DS4Windows.Properties.Resources.RT;
this.button2.Name = "button2"; this.button2.Name = "button2";
this.button2.TabStop = false; this.button2.TabStop = false;
this.button2.Tag = "X360Right Trigger"; this.button2.Tag = "X360Right Trigger";
@ -1214,7 +1214,7 @@
// btnRSL // btnRSL
// //
resources.ApplyResources(this.btnRSL, "btnRSL"); resources.ApplyResources(this.btnRSL, "btnRSL");
this.btnRSL.Image = global::ScpServer.Properties.Resources.RSL; this.btnRSL.Image = global::DS4Windows.Properties.Resources.RSL;
this.btnRSL.Name = "btnRSL"; this.btnRSL.Name = "btnRSL";
this.btnRSL.TabStop = false; this.btnRSL.TabStop = false;
this.btnRSL.Tag = "X360Right X-Axis-"; this.btnRSL.Tag = "X360Right X-Axis-";
@ -1223,7 +1223,7 @@
// btnLSL // btnLSL
// //
resources.ApplyResources(this.btnLSL, "btnLSL"); resources.ApplyResources(this.btnLSL, "btnLSL");
this.btnLSL.Image = global::ScpServer.Properties.Resources.LSL; this.btnLSL.Image = global::DS4Windows.Properties.Resources.LSL;
this.btnLSL.Name = "btnLSL"; this.btnLSL.Name = "btnLSL";
this.btnLSL.TabStop = false; this.btnLSL.TabStop = false;
this.btnLSL.Tag = "X360Left X-Axis-"; this.btnLSL.Tag = "X360Left X-Axis-";
@ -1232,7 +1232,7 @@
// btnRSD // btnRSD
// //
resources.ApplyResources(this.btnRSD, "btnRSD"); resources.ApplyResources(this.btnRSD, "btnRSD");
this.btnRSD.Image = global::ScpServer.Properties.Resources.RSD; this.btnRSD.Image = global::DS4Windows.Properties.Resources.RSD;
this.btnRSD.Name = "btnRSD"; this.btnRSD.Name = "btnRSD";
this.btnRSD.TabStop = false; this.btnRSD.TabStop = false;
this.btnRSD.Tag = "X360Right Y-Axis+"; this.btnRSD.Tag = "X360Right Y-Axis+";
@ -1241,7 +1241,7 @@
// btnLSD // btnLSD
// //
resources.ApplyResources(this.btnLSD, "btnLSD"); resources.ApplyResources(this.btnLSD, "btnLSD");
this.btnLSD.Image = global::ScpServer.Properties.Resources.LSD; this.btnLSD.Image = global::DS4Windows.Properties.Resources.LSD;
this.btnLSD.Name = "btnLSD"; this.btnLSD.Name = "btnLSD";
this.btnLSD.TabStop = false; this.btnLSD.TabStop = false;
this.btnLSD.Tag = "X360Left Y-Axis+"; this.btnLSD.Tag = "X360Left Y-Axis+";
@ -1250,7 +1250,7 @@
// button19 // button19
// //
resources.ApplyResources(this.button19, "button19"); resources.ApplyResources(this.button19, "button19");
this.button19.Image = global::ScpServer.Properties.Resources.LEFT; this.button19.Image = global::DS4Windows.Properties.Resources.LEFT;
this.button19.Name = "button19"; this.button19.Name = "button19";
this.button19.TabStop = false; this.button19.TabStop = false;
this.button19.Tag = "X360Left Button"; this.button19.Tag = "X360Left Button";
@ -1259,7 +1259,7 @@
// button20 // button20
// //
resources.ApplyResources(this.button20, "button20"); resources.ApplyResources(this.button20, "button20");
this.button20.Image = global::ScpServer.Properties.Resources.DOWN; this.button20.Image = global::DS4Windows.Properties.Resources.DOWN;
this.button20.Name = "button20"; this.button20.Name = "button20";
this.button20.TabStop = false; this.button20.TabStop = false;
this.button20.Tag = "X360Down Button"; this.button20.Tag = "X360Down Button";
@ -1268,7 +1268,7 @@
// button18 // button18
// //
resources.ApplyResources(this.button18, "button18"); resources.ApplyResources(this.button18, "button18");
this.button18.Image = global::ScpServer.Properties.Resources.UP; this.button18.Image = global::DS4Windows.Properties.Resources.UP;
this.button18.Name = "button18"; this.button18.Name = "button18";
this.button18.TabStop = false; this.button18.TabStop = false;
this.button18.Tag = "X360Up Button"; this.button18.Tag = "X360Up Button";
@ -1277,7 +1277,7 @@
// button17 // button17
// //
resources.ApplyResources(this.button17, "button17"); resources.ApplyResources(this.button17, "button17");
this.button17.Image = global::ScpServer.Properties.Resources.RIGHT; this.button17.Image = global::DS4Windows.Properties.Resources.RIGHT;
this.button17.Name = "button17"; this.button17.Name = "button17";
this.button17.TabStop = false; this.button17.TabStop = false;
this.button17.Tag = "X360Right Button"; this.button17.Tag = "X360Right Button";
@ -1286,7 +1286,7 @@
// btnRSR // btnRSR
// //
resources.ApplyResources(this.btnRSR, "btnRSR"); resources.ApplyResources(this.btnRSR, "btnRSR");
this.btnRSR.Image = global::ScpServer.Properties.Resources.RSR; this.btnRSR.Image = global::DS4Windows.Properties.Resources.RSR;
this.btnRSR.Name = "btnRSR"; this.btnRSR.Name = "btnRSR";
this.btnRSR.TabStop = false; this.btnRSR.TabStop = false;
this.btnRSR.Tag = "X360Right X-Axis+"; this.btnRSR.Tag = "X360Right X-Axis+";
@ -1295,7 +1295,7 @@
// btnRS // btnRS
// //
resources.ApplyResources(this.btnRS, "btnRS"); resources.ApplyResources(this.btnRS, "btnRS");
this.btnRS.Image = global::ScpServer.Properties.Resources.RS; this.btnRS.Image = global::DS4Windows.Properties.Resources.RS;
this.btnRS.Name = "btnRS"; this.btnRS.Name = "btnRS";
this.btnRS.TabStop = false; this.btnRS.TabStop = false;
this.btnRS.Tag = "X360Right Stick"; this.btnRS.Tag = "X360Right Stick";
@ -1304,7 +1304,7 @@
// btnLSR // btnLSR
// //
resources.ApplyResources(this.btnLSR, "btnLSR"); resources.ApplyResources(this.btnLSR, "btnLSR");
this.btnLSR.Image = global::ScpServer.Properties.Resources.LSR; this.btnLSR.Image = global::DS4Windows.Properties.Resources.LSR;
this.btnLSR.Name = "btnLSR"; this.btnLSR.Name = "btnLSR";
this.btnLSR.TabStop = false; this.btnLSR.TabStop = false;
this.btnLSR.Tag = "X360Left X-Axis+"; this.btnLSR.Tag = "X360Left X-Axis+";
@ -1313,7 +1313,7 @@
// btnRSU // btnRSU
// //
resources.ApplyResources(this.btnRSU, "btnRSU"); resources.ApplyResources(this.btnRSU, "btnRSU");
this.btnRSU.Image = global::ScpServer.Properties.Resources.RSU; this.btnRSU.Image = global::DS4Windows.Properties.Resources.RSU;
this.btnRSU.Name = "btnRSU"; this.btnRSU.Name = "btnRSU";
this.btnRSU.TabStop = false; this.btnRSU.TabStop = false;
this.btnRSU.Tag = "X360Right Y-Axis-"; this.btnRSU.Tag = "X360Right Y-Axis-";
@ -1322,7 +1322,7 @@
// btnLS // btnLS
// //
resources.ApplyResources(this.btnLS, "btnLS"); resources.ApplyResources(this.btnLS, "btnLS");
this.btnLS.Image = global::ScpServer.Properties.Resources.LS; this.btnLS.Image = global::DS4Windows.Properties.Resources.LS;
this.btnLS.Name = "btnLS"; this.btnLS.Name = "btnLS";
this.btnLS.TabStop = false; this.btnLS.TabStop = false;
this.btnLS.Tag = "X360Left Stick"; this.btnLS.Tag = "X360Left Stick";
@ -1331,7 +1331,7 @@
// btnLSU // btnLSU
// //
resources.ApplyResources(this.btnLSU, "btnLSU"); resources.ApplyResources(this.btnLSU, "btnLSU");
this.btnLSU.Image = global::ScpServer.Properties.Resources.LSU; this.btnLSU.Image = global::DS4Windows.Properties.Resources.LSU;
this.btnLSU.Name = "btnLSU"; this.btnLSU.Name = "btnLSU";
this.btnLSU.TabStop = false; this.btnLSU.TabStop = false;
this.btnLSU.Tag = "X360Left Y-Axis-"; this.btnLSU.Tag = "X360Left Y-Axis-";
@ -1340,7 +1340,7 @@
// button11 // button11
// //
resources.ApplyResources(this.button11, "button11"); resources.ApplyResources(this.button11, "button11");
this.button11.Image = global::ScpServer.Properties.Resources.LB; this.button11.Image = global::DS4Windows.Properties.Resources.LB;
this.button11.Name = "button11"; this.button11.Name = "button11";
this.button11.TabStop = false; this.button11.TabStop = false;
this.button11.Tag = "X360Left Bumper"; this.button11.Tag = "X360Left Bumper";
@ -1349,7 +1349,7 @@
// btnRB // btnRB
// //
resources.ApplyResources(this.btnRB, "btnRB"); resources.ApplyResources(this.btnRB, "btnRB");
this.btnRB.Image = global::ScpServer.Properties.Resources.RB; this.btnRB.Image = global::DS4Windows.Properties.Resources.RB;
this.btnRB.Name = "btnRB"; this.btnRB.Name = "btnRB";
this.btnRB.TabStop = false; this.btnRB.TabStop = false;
this.btnRB.Tag = "X360Right Bumper"; this.btnRB.Tag = "X360Right Bumper";
@ -1358,7 +1358,7 @@
// button10 // button10
// //
resources.ApplyResources(this.button10, "button10"); resources.ApplyResources(this.button10, "button10");
this.button10.Image = global::ScpServer.Properties.Resources.Y; this.button10.Image = global::DS4Windows.Properties.Resources.Y;
this.button10.Name = "button10"; this.button10.Name = "button10";
this.button10.TabStop = false; this.button10.TabStop = false;
this.button10.Tag = "X360Y Button"; this.button10.Tag = "X360Y Button";
@ -1367,7 +1367,7 @@
// button9 // button9
// //
resources.ApplyResources(this.button9, "button9"); resources.ApplyResources(this.button9, "button9");
this.button9.Image = global::ScpServer.Properties.Resources.X; this.button9.Image = global::DS4Windows.Properties.Resources.X;
this.button9.Name = "button9"; this.button9.Name = "button9";
this.button9.TabStop = false; this.button9.TabStop = false;
this.button9.Tag = "X360X Button"; this.button9.Tag = "X360X Button";
@ -1376,7 +1376,7 @@
// button8 // button8
// //
resources.ApplyResources(this.button8, "button8"); resources.ApplyResources(this.button8, "button8");
this.button8.Image = global::ScpServer.Properties.Resources.B; this.button8.Image = global::DS4Windows.Properties.Resources.B;
this.button8.Name = "button8"; this.button8.Name = "button8";
this.button8.TabStop = false; this.button8.TabStop = false;
this.button8.Tag = "X360B Button"; this.button8.Tag = "X360B Button";
@ -1385,7 +1385,7 @@
// button23 // button23
// //
resources.ApplyResources(this.button23, "button23"); resources.ApplyResources(this.button23, "button23");
this.button23.Image = global::ScpServer.Properties.Resources.BACK; this.button23.Image = global::DS4Windows.Properties.Resources.BACK;
this.button23.Name = "button23"; this.button23.Name = "button23";
this.button23.TabStop = false; this.button23.TabStop = false;
this.button23.Tag = "X360Back"; this.button23.Tag = "X360Back";
@ -1394,7 +1394,7 @@
// button22 // button22
// //
resources.ApplyResources(this.button22, "button22"); resources.ApplyResources(this.button22, "button22");
this.button22.Image = global::ScpServer.Properties.Resources.START; this.button22.Image = global::DS4Windows.Properties.Resources.START;
this.button22.Name = "button22"; this.button22.Name = "button22";
this.button22.TabStop = false; this.button22.TabStop = false;
this.button22.Tag = "X360Start"; this.button22.Tag = "X360Start";
@ -1411,7 +1411,7 @@
// button3 // button3
// //
resources.ApplyResources(this.button3, "button3"); resources.ApplyResources(this.button3, "button3");
this.button3.Image = global::ScpServer.Properties.Resources.A; this.button3.Image = global::DS4Windows.Properties.Resources.A;
this.button3.Name = "button3"; this.button3.Name = "button3";
this.button3.TabStop = false; this.button3.TabStop = false;
this.button3.Tag = "X360A Button"; this.button3.Tag = "X360A Button";

View File

@ -7,7 +7,7 @@ using System.Linq;
using System.Text; using System.Text;
using System.Windows.Forms; using System.Windows.Forms;
using DS4Control; using DS4Control;
namespace ScpServer namespace DS4Windows
{ {
public partial class KBM360 : Form public partial class KBM360 : Form
{ {
@ -49,7 +49,7 @@ namespace ScpServer
foreach (System.Windows.Forms.Control control in this.Controls) foreach (System.Windows.Forms.Control control in this.Controls)
if (control is Button) if (control is Button)
((Button)control).Click += anybtn_Click; ((Button)control).Click += anybtn_Click;
if (button.Name.Contains("Touch")) if (button.Name.Contains("Touch") || button.Name.Contains("Swipe"))
{ {
btnMOUSEDOWN.Visible = false; btnMOUSEDOWN.Visible = false;
btnMOUSELEFT.Visible = false; btnMOUSELEFT.Visible = false;

View File

@ -1,4 +1,4 @@
namespace ScpServer namespace DS4Windows
{ {
partial class MessageTextBox partial class MessageTextBox
{ {

View File

@ -9,7 +9,7 @@ using System.Threading.Tasks;
using System.Windows.Forms; using System.Windows.Forms;
using DS4Control; using DS4Control;
namespace ScpServer namespace DS4Windows
{ {
public partial class MessageTextBox : Form public partial class MessageTextBox : Form
{ {

46
DS4Tool/NativeMethods.cs Normal file
View File

@ -0,0 +1,46 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
namespace DS4Windows
{
class NativeMethods
{
[DllImport("msi.dll", CharSet = CharSet.Auto)]
public static extern uint MsiGetShortcutTarget(string targetFile, StringBuilder productCode, StringBuilder featureID, StringBuilder componentCode);
[DllImport("msi.dll", CharSet = CharSet.Auto)]
public static extern InstallState MsiGetComponentPath(string productCode, string componentCode, StringBuilder componentPath, ref int componentPathBufferSize);
public const int MaxFeatureLength = 38;
public const int MaxGuidLength = 38;
public const int MaxPathLength = 1024;
public enum InstallState
{
NotUsed = -7,
BadConfig = -6,
Incomplete = -5,
SourceAbsent = -4,
MoreData = -3,
InvalidArg = -2,
Unknown = -1,
Broken = 0,
Advertised = 1,
Removed = 1,
Absent = 2,
Local = 3,
Source = 4,
Default = 5
}
public const int HWND_BROADCAST = 0xffff;
public static readonly int WM_SHOWME = RegisterWindowMessage("WM_SHOWME");
[DllImport("user32")]
public static extern bool PostMessage(IntPtr hwnd, int msg, IntPtr wparam, IntPtr lparam);
[DllImport("user32")]
public static extern int RegisterWindowMessage(string message);
}
}

File diff suppressed because it is too large Load Diff

View File

@ -6,7 +6,7 @@ using DS4Control;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
using System.Reflection; using System.Reflection;
namespace ScpServer namespace DS4Windows
{ {
public partial class Options : Form public partial class Options : Form
{ {
@ -743,21 +743,40 @@ namespace ScpServer
private void rumbleBoostBar_ValueChanged(object sender, EventArgs e) private void rumbleBoostBar_ValueChanged(object sender, EventArgs e)
{ {
Global.saveRumbleBoost(device, (byte)nUDRumbleBoost.Value); Global.saveRumbleBoost(device, (byte)nUDRumbleBoost.Value);
if (btnRumbleTest.Text == Properties.Resources.StopText) byte h = (byte)Math.Min(255, (255 * nUDRumbleBoost.Value / 100));
scpDevice.setRumble(255, 255, device); byte l = (byte)Math.Min(255, (255 * nUDRumbleBoost.Value / 100));
bool hB = btnRumbleHeavyTest.Text == Properties.Resources.TestLText;
bool lB = btnRumbleLightTest.Text == Properties.Resources.TestLText;
scpDevice.setRumble((byte)(hB ? h : 0), (byte)(lB ? l : 0), device);
} }
private void btnRumbleTest_Click(object sender, EventArgs e) private void btnRumbleHeavyTest_Click(object sender, EventArgs e)
{ {
if (((Button)sender).Text == Properties.Resources.TestText) DS4Device d = scpDevice.DS4Controllers[(int)nUDSixaxis.Value - 1];
if (((Button)sender).Text == Properties.Resources.TestHText)
{ {
scpDevice.setRumble((byte)Math.Min(255, (255 * nUDRumbleBoost.Value / 100)), (byte)Math.Min(255, (255 * nUDRumbleBoost.Value / 100)), (int)nUDSixaxis.Value - 1); scpDevice.setRumble((byte)Math.Min(255, (255 * nUDRumbleBoost.Value / 100)), d.RightLightFastRumble, (int)nUDSixaxis.Value - 1);
((Button)sender).Text = Properties.Resources.StopText; ((Button)sender).Text = Properties.Resources.StopHText;
} }
else else
{ {
scpDevice.setRumble(0, 0, (int)nUDSixaxis.Value - 1); scpDevice.setRumble(0, d.RightLightFastRumble, (int)nUDSixaxis.Value - 1);
((Button)sender).Text = Properties.Resources.TestText; ((Button)sender).Text = Properties.Resources.TestHText;
}
}
private void btnRumbleLightTest_Click(object sender, EventArgs e)
{
DS4Device d = scpDevice.DS4Controllers[(int)nUDSixaxis.Value - 1];
if (((Button)sender).Text == Properties.Resources.TestLText)
{
scpDevice.setRumble(d.LeftHeavySlowRumble, (byte)Math.Min(255, (255 * nUDRumbleBoost.Value / 100)), (int)nUDSixaxis.Value - 1);
((Button)sender).Text = Properties.Resources.StopLText;
}
else
{
scpDevice.setRumble(d.LeftHeavySlowRumble, 0, (int)nUDSixaxis.Value - 1);
((Button)sender).Text = Properties.Resources.TestLText;
} }
} }
@ -780,7 +799,7 @@ namespace ScpServer
Global.setLedAsBatteryIndicator(device, cBLightbyBattery.Checked); Global.setLedAsBatteryIndicator(device, cBLightbyBattery.Checked);
pnlLowBattery.Visible = cBLightbyBattery.Checked; pnlLowBattery.Visible = cBLightbyBattery.Checked;
pnlFull.Location = (cBLightbyBattery.Checked ? new Point(pnlFull.Location.X, (int)(dpix * 42)) : new Point(pnlFull.Location.X, (int)(dpiy * 48))); pnlFull.Location = (cBLightbyBattery.Checked ? new Point(pnlFull.Location.X, (int)(dpix * 42)) : new Point(pnlFull.Location.X, (int)(dpiy * 48)));
lbFull.Text = (cBLightbyBattery.Checked ? Properties.Resources.Full + ":" : Properties.Resources.Color + ":"); lbFull.Text = (cBLightbyBattery.Checked ? Properties.Resources.FullLightText + ":" : Properties.Resources.Color + ":");
} }
private void lowerRCOffCheckBox_CheckedChanged(object sender, EventArgs e) private void lowerRCOffCheckBox_CheckedChanged(object sender, EventArgs e)
@ -823,7 +842,7 @@ namespace ScpServer
root.btnStartStop_Clicked(false); root.btnStartStop_Clicked(false);
root.btnStartStop_Clicked(false); root.btnStartStop_Clicked(false);
} }
if (btnRumbleTest.Text == Properties.Resources.StopText) if (btnRumbleHeavyTest.Text == Properties.Resources.StopText)
scpDevice.setRumble(0, 0, (int)nUDSixaxis.Value - 1); scpDevice.setRumble(0, 0, (int)nUDSixaxis.Value - 1);
inputtimer.Stop(); inputtimer.Stop();
sixaxisTimer.Stop(); sixaxisTimer.Stop();
@ -915,7 +934,7 @@ namespace ScpServer
foreach (Button b in subbuttons) foreach (Button b in subbuttons)
if (b.Tag == null) if (b.Tag == null)
b.Text = "Fall Back to " + buttons[subbuttons.IndexOf(b)].Text; b.Text = "Fall Back to " + ((Button)Controls.Find(b.Name.Remove(2,5), true)[0]).Text;
lBShiftControls.Items[0] = "Cross : " + bnShiftCross.Text; lBShiftControls.Items[0] = "Cross : " + bnShiftCross.Text;
lBShiftControls.Items[1] = "Circle : " + bnShiftCircle.Text; lBShiftControls.Items[1] = "Circle : " + bnShiftCircle.Text;
lBShiftControls.Items[2] = "Square : " + bnShiftSquare.Text; lBShiftControls.Items[2] = "Square : " + bnShiftSquare.Text;
@ -978,8 +997,8 @@ namespace ScpServer
return ((Keys)(UInt16)button.Tag).ToString(); return ((Keys)(UInt16)button.Tag).ToString();
else if (button.Tag is string) else if (button.Tag is string)
return button.Tag.ToString(); return button.Tag.ToString();
else if (button.Name.StartsWith("s") && buttons[subbuttons.IndexOf(button)].Tag != null && button.Tag == null) else if (button.Name.StartsWith("s") && ((Button)Controls.Find(button.Name.Remove(2, 5), true)[0]).Tag != null && button.Tag == null)
return "Fall Back to " + UpdateRegButtonList(buttons[subbuttons.IndexOf(button)]); return "Fall Back to " + UpdateRegButtonList(((Button)Controls.Find(button.Name.Remove(2, 5), true)[0]));
else else
return string.Empty; return string.Empty;
} }

View File

@ -117,20 +117,7 @@
<resheader name="writer"> <resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="lbControlTip.AutoSize" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="lbControlTip.Location" type="System.Drawing.Point, System.Drawing">
<value>8, 2</value>
</data>
<data name="lbControlTip.Size" type="System.Drawing.Size, System.Drawing">
<value>247, 41</value>
</data>
<data name="lbControlTip.Text" xml:space="preserve">
<value>Cliquer sur une touche de la manette pour changer l'action. Utiliser une DS4 pour paramétrer les touches</value>
</data>
<data name="cBLightbyBattery.Location" type="System.Drawing.Point, System.Drawing"> <data name="cBLightbyBattery.Location" type="System.Drawing.Point, System.Drawing">
<value>319, 11</value> <value>319, 11</value>
</data> </data>
@ -142,7 +129,7 @@
de batterie</value> de batterie</value>
</data> </data>
<data name="cBDoubleTap.Location" type="System.Drawing.Point, System.Drawing"> <data name="cBDoubleTap.Location" type="System.Drawing.Point, System.Drawing">
<value>363, 11</value> <value>119, 41</value>
</data> </data>
<data name="cBDoubleTap.Size" type="System.Drawing.Size, System.Drawing"> <data name="cBDoubleTap.Size" type="System.Drawing.Size, System.Drawing">
<value>68, 30</value> <value>68, 30</value>
@ -152,7 +139,7 @@ de batterie</value>
deux fois</value> deux fois</value>
</data> </data>
<data name="cBTap.Location" type="System.Drawing.Point, System.Drawing"> <data name="cBTap.Location" type="System.Drawing.Point, System.Drawing">
<value>252, 18</value> <value>8, 48</value>
</data> </data>
<data name="cBTap.Size" type="System.Drawing.Size, System.Drawing"> <data name="cBTap.Size" type="System.Drawing.Size, System.Drawing">
<value>63, 17</value> <value>63, 17</value>
@ -161,10 +148,10 @@ deux fois</value>
<value>Tapoter</value> <value>Tapoter</value>
</data> </data>
<data name="nUDTap.Location" type="System.Drawing.Point, System.Drawing"> <data name="nUDTap.Location" type="System.Drawing.Point, System.Drawing">
<value>319, 17</value> <value>75, 47</value>
</data> </data>
<data name="cBScroll.Location" type="System.Drawing.Point, System.Drawing"> <data name="cBScroll.Location" type="System.Drawing.Point, System.Drawing">
<value>112, 47</value> <value>121, 22</value>
</data> </data>
<data name="cBScroll.Size" type="System.Drawing.Size, System.Drawing"> <data name="cBScroll.Size" type="System.Drawing.Size, System.Drawing">
<value>80, 17</value> <value>80, 17</value>
@ -172,6 +159,9 @@ deux fois</value>
<data name="cBScroll.Text" xml:space="preserve"> <data name="cBScroll.Text" xml:space="preserve">
<value>Faire défiler</value> <value>Faire défiler</value>
</data> </data>
<data name="cBSlide.Location" type="System.Drawing.Point, System.Drawing">
<value>13, 22</value>
</data>
<data name="cBSlide.Size" type="System.Drawing.Size, System.Drawing"> <data name="cBSlide.Size" type="System.Drawing.Size, System.Drawing">
<value>57, 17</value> <value>57, 17</value>
</data> </data>
@ -179,10 +169,10 @@ deux fois</value>
<value>Glisser</value> <value>Glisser</value>
</data> </data>
<data name="nUDScroll.Location" type="System.Drawing.Point, System.Drawing"> <data name="nUDScroll.Location" type="System.Drawing.Point, System.Drawing">
<value>198, 44</value> <value>207, 19</value>
</data> </data>
<data name="nUDTouch.Location" type="System.Drawing.Point, System.Drawing"> <data name="nUDTouch.Location" type="System.Drawing.Point, System.Drawing">
<value>66, 46</value> <value>75, 21</value>
</data> </data>
<data name="lbButtonMouseSens.Size" type="System.Drawing.Size, System.Drawing"> <data name="lbButtonMouseSens.Size" type="System.Drawing.Size, System.Drawing">
<value>113, 13</value> <value>113, 13</value>
@ -190,6 +180,18 @@ deux fois</value>
<data name="lbButtonMouseSens.Text" xml:space="preserve"> <data name="lbButtonMouseSens.Text" xml:space="preserve">
<value>Sensibilité de la souris:</value> <value>Sensibilité de la souris:</value>
</data> </data>
<data name="lbFull.Size" type="System.Drawing.Size, System.Drawing">
<value>33, 13</value>
</data>
<data name="lbFull.Text" xml:space="preserve">
<value>Plein:</value>
</data>
<data name="lbEmpty.Size" type="System.Drawing.Size, System.Drawing">
<value>31, 13</value>
</data>
<data name="lbEmpty.Text" xml:space="preserve">
<value>Vide:</value>
</data>
<data name="numUDMouseSens.Location" type="System.Drawing.Point, System.Drawing"> <data name="numUDMouseSens.Location" type="System.Drawing.Point, System.Drawing">
<value>117, 16</value> <value>117, 16</value>
</data> </data>
@ -197,28 +199,35 @@ deux fois</value>
<value>Pavé tactile</value> <value>Pavé tactile</value>
</data> </data>
<data name="cbStartTouchpadOff.Location" type="System.Drawing.Point, System.Drawing"> <data name="cbStartTouchpadOff.Location" type="System.Drawing.Point, System.Drawing">
<value>244, 45</value> <value>253, 20</value>
</data> </data>
<data name="gBOther.Text" xml:space="preserve"> <data name="gBOther.Text" xml:space="preserve">
<value>Autre</value> <value>Autre</value>
</data> </data>
<data name="pBProgram.Location" type="System.Drawing.Point, System.Drawing">
<value>209, 96</value>
</data>
<data name="cBLaunchProgram.Size" type="System.Drawing.Size, System.Drawing">
<value>128, 30</value>
</data>
<data name="cBLaunchProgram.Text" xml:space="preserve">
<value>Lancer le programme
avec le profil</value>
</data>
<data name="btnBrowse.Location" type="System.Drawing.Point, System.Drawing">
<value>137, 98</value>
</data>
<data name="cBMouseAccel.Location" type="System.Drawing.Point, System.Drawing"> <data name="cBMouseAccel.Location" type="System.Drawing.Point, System.Drawing">
<value>178, 17</value> <value>178, 17</value>
</data> </data>
<data name="gBLightbar.Text" xml:space="preserve"> <data name="gBLightbar.Text" xml:space="preserve">
<value>Barre lumineuse</value> <value>Barre lumineuse</value>
</data> </data>
<data name="lbShiftGreen.Size" type="System.Drawing.Size, System.Drawing">
<value>14, 13</value>
</data>
<data name="lbShiftGreen.Text" xml:space="preserve">
<value>V</value>
</data>
<data name="btnChargingColor.Location" type="System.Drawing.Point, System.Drawing"> <data name="btnChargingColor.Location" type="System.Drawing.Point, System.Drawing">
<value>408, 108</value> <value>359, 107</value>
</data> </data>
<data name="rBColor.Location" type="System.Drawing.Point, System.Drawing"> <data name="rBColor.Location" type="System.Drawing.Point, System.Drawing">
<value>341, 106</value> <value>293, 105</value>
</data> </data>
<data name="rBColor.Size" type="System.Drawing.Size, System.Drawing"> <data name="rBColor.Size" type="System.Drawing.Size, System.Drawing">
<value>61, 17</value> <value>61, 17</value>
@ -226,12 +235,33 @@ deux fois</value>
<data name="rBColor.Text" xml:space="preserve"> <data name="rBColor.Text" xml:space="preserve">
<value>Couleur</value> <value>Couleur</value>
</data> </data>
<data name="rBFade.Location" type="System.Drawing.Point, System.Drawing">
<value>138, 105</value>
</data>
<data name="rBFade.Size" type="System.Drawing.Size, System.Drawing">
<value>68, 17</value>
</data>
<data name="rBFade.Text" xml:space="preserve">
<value>Pulsation</value>
</data>
<data name="rBNormal.Location" type="System.Drawing.Point, System.Drawing">
<value>74, 105</value>
</data>
<data name="rBRainbow.Location" type="System.Drawing.Point, System.Drawing">
<value>212, 105</value>
</data>
<data name="rBRainbow.Size" type="System.Drawing.Size, System.Drawing"> <data name="rBRainbow.Size" type="System.Drawing.Size, System.Drawing">
<value>75, 17</value> <value>75, 17</value>
</data> </data>
<data name="rBRainbow.Text" xml:space="preserve"> <data name="rBRainbow.Text" xml:space="preserve">
<value>Arc-en-ciel</value> <value>Arc-en-ciel</value>
</data> </data>
<data name="lbWhileCharging.Size" type="System.Drawing.Size, System.Drawing">
<value>59, 13</value>
</data>
<data name="lbWhileCharging.Text" xml:space="preserve">
<value>En charge:</value>
</data>
<data name="lbPercentFlashBar.Location" type="System.Drawing.Point, System.Drawing"> <data name="lbPercentFlashBar.Location" type="System.Drawing.Point, System.Drawing">
<value>109, 18</value> <value>109, 18</value>
</data> </data>
@ -244,33 +274,18 @@ deux fois</value>
<data name="lbFlashAt.Text" xml:space="preserve"> <data name="lbFlashAt.Text" xml:space="preserve">
<value>Clignoter à</value> <value>Clignoter à</value>
</data> </data>
<data name="lbShiftGreen.Size" type="System.Drawing.Size, System.Drawing">
<value>14, 13</value>
</data>
<data name="lbShiftGreen.Text" xml:space="preserve">
<value>V</value>
</data>
<data name="gBRumble.Text" xml:space="preserve"> <data name="gBRumble.Text" xml:space="preserve">
<value>Vibrer</value> <value>Vibrer</value>
</data> </data>
<data name="gBDeadzone.Text" xml:space="preserve"> <data name="gBDeadzone.Text" xml:space="preserve">
<value>Zone morte</value> <value>Zone morte</value>
</data> </data>
<data name="cBShiftControl.Items" xml:space="preserve">
<value>(rien)/shift off</value>
</data>
<data name="lbHold.Location" type="System.Drawing.Point, System.Drawing">
<value>25, 6</value>
</data>
<data name="lbHold.Size" type="System.Drawing.Size, System.Drawing">
<value>50, 13</value>
</data>
<data name="lbHold.Text" xml:space="preserve">
<value>Maintenir</value>
</data>
<data name="lbtoUse.Location" type="System.Drawing.Point, System.Drawing">
<value>58, 26</value>
</data>
<data name="lbtoUse.Size" type="System.Drawing.Size, System.Drawing">
<value>140, 13</value>
</data>
<data name="lbtoUse.Text" xml:space="preserve">
<value>pour utiliser ces commandes</value>
</data>
<data name="pBSADeadzone.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="pBSADeadzone.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAAJYAAACWCAYAAAA8AXHiAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAACH iVBORw0KGgoAAAANSUhEUgAAAJYAAACWCAYAAAA8AXHiAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAACH
@ -535,4 +550,34 @@ deux fois</value>
AElFTkSuQmCC AElFTkSuQmCC
</value> </value>
</data> </data>
<data name="cBShiftControl.Items" xml:space="preserve">
<value>(rien)/shift off</value>
</data>
<data name="lbHold.Location" type="System.Drawing.Point, System.Drawing">
<value>25, 6</value>
</data>
<data name="lbHold.Size" type="System.Drawing.Size, System.Drawing">
<value>50, 13</value>
</data>
<data name="lbHold.Text" xml:space="preserve">
<value>Maintenir</value>
</data>
<data name="lbtoUse.Location" type="System.Drawing.Point, System.Drawing">
<value>58, 26</value>
</data>
<data name="lbtoUse.Size" type="System.Drawing.Size, System.Drawing">
<value>140, 13</value>
</data>
<data name="lbtoUse.Text" xml:space="preserve">
<value>pour utiliser ces commandes</value>
</data>
<data name="lbControlTip.Location" type="System.Drawing.Point, System.Drawing">
<value>8, 2</value>
</data>
<data name="lbControlTip.Size" type="System.Drawing.Size, System.Drawing">
<value>247, 41</value>
</data>
<data name="lbControlTip.Text" xml:space="preserve">
<value>Cliquer sur une touche de la manette pour changer l'action. Utiliser une DS4 pour paramétrer les touches</value>
</data>
</root> </root>

File diff suppressed because it is too large Load Diff

View File

@ -3,9 +3,10 @@ using System.Windows.Forms;
using System.Threading; using System.Threading;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
using System.Diagnostics; using System.Diagnostics;
using System.ComponentModel;
namespace ScpServer namespace DS4Windows
{ {
static class Program static class Program
{ {
@ -15,6 +16,13 @@ namespace ScpServer
[DllImport("user32.dll")] [DllImport("user32.dll")]
private static extern IntPtr GetForegroundWindow(); private static extern IntPtr GetForegroundWindow();
// Add "global\" in front of the EventName, then only one instance is allowed on the
// whole system, including other users. But the application can not be brought
// into view, of course.
private static String SingleAppComEventName = "{a52b5b20-d9ee-4f32-8518-307fa14aa0c6}";
static Mutex mutex = new Mutex(true, "{FI329DM2-DS4W-J2K2-HYES-92H21B3WJARG}");
private static BackgroundWorker singleAppComThread = null;
private static EventWaitHandle threadComEvent = null;
/// <summary> /// <summary>
/// The main entry point for the application. /// The main entry point for the application.
@ -31,34 +39,90 @@ namespace ScpServer
{ {
// Ignore problems raising the priority. // Ignore problems raising the priority.
} }
bool createdNew = true; try
using (Mutex mutex = new Mutex(true, "MyApplicationName", out createdNew))
{ {
if (createdNew) // another instance is already running if OpenExsting succeeds.
threadComEvent = EventWaitHandle.OpenExisting(SingleAppComEventName);
threadComEvent.Set(); // signal the other instance.
threadComEvent.Close();
return; // return immediatly.
}
catch { /* don't care about errors */ }
// Create the Event handle
threadComEvent = new EventWaitHandle(false, EventResetMode.AutoReset, SingleAppComEventName);
CreateInterAppComThread();
if (mutex.WaitOne(TimeSpan.Zero, true))
{ {
Application.EnableVisualStyles(); Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false); Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new DS4Form(args)); Application.Run(new DS4Form(args));
mutex.ReleaseMutex();
}
// End the communication thread.
singleAppComThread.CancelAsync();
while (singleAppComThread.IsBusy)
Thread.Sleep(50);
threadComEvent.Close();
}
static private void CreateInterAppComThread()
{
singleAppComThread = new BackgroundWorker();
singleAppComThread.WorkerReportsProgress = false;
singleAppComThread.WorkerSupportsCancellation = true;
singleAppComThread.DoWork += new DoWorkEventHandler(singleAppComThread_DoWork);
singleAppComThread.RunWorkerAsync();
}
static private void singleAppComThread_DoWork(object sender, DoWorkEventArgs e)
{
BackgroundWorker worker = sender as BackgroundWorker;
WaitHandle[] waitHandles = new WaitHandle[] { threadComEvent };
while (!worker.CancellationPending)
{
// check every second for a signal.
if (WaitHandle.WaitAny(waitHandles, 1000) == 0)
{
// The user tried to start another instance. We can't allow that,
// so bring the other instance back into view and enable that one.
// That form is created in another thread, so we need some thread sync magic.
if (Application.OpenForms.Count > 0)
{
Form mainForm = Application.OpenForms[0];
mainForm.Invoke(new SetFormVisableDelegate(ThreadFormVisable), mainForm);
}
}
}
}
/// <summary>
/// When this method is called using a Invoke then this runs in the thread
/// that created the form, which is nice.
/// </summary>
/// <param name="frm"></param>
private delegate void SetFormVisableDelegate(Form frm);
static private void ThreadFormVisable(Form frm)
{
if (frm != null && frm is DS4Form)
{
if (frm is DS4Form)
{
// display the form and bring to foreground.
frm.Visible = true;
frm.WindowState = FormWindowState.Normal;
frm.Show();
} }
else else
{ {
Process current = Process.GetCurrentProcess(); WinProgs wp = (WinProgs)frm;
foreach (Process process in Process.GetProcessesByName("DS4Windows")) wp.ShowMainWindow();
{ SetForegroundWindow(wp.form.Handle);
if (process.Id != current.Id)
{
SetForegroundWindow(process.MainWindowHandle);
if (GetForegroundWindow() != process.MainWindowHandle) //if tool is minimized to tray
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Alreadyrunning());
}
break;
}
}
}
} }
} }
SetForegroundWindow(frm.Handle);
}
} }
} }

View File

@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// You can specify all the values or you can default the Build and Revision Numbers // You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below: // by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")] // [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.4.1")] [assembly: AssemblyVersion("1.4.156")]
[assembly: AssemblyFileVersion("1.4.1")] [assembly: AssemblyFileVersion("1.4.156")]

View File

@ -399,4 +399,7 @@
<data name="Installing" xml:space="preserve"> <data name="Installing" xml:space="preserve">
<value>l'installation de ...</value> <value>l'installation de ...</value>
</data> </data>
<data name="FullLightText" xml:space="preserve">
<value>Plein:</value>
</data>
</root> </root>

View File

@ -517,9 +517,6 @@
<data name="Step1" xml:space="preserve"> <data name="Step1" xml:space="preserve">
<value>Step 1: Install the DS4 Driver</value> <value>Step 1: Install the DS4 Driver</value>
</data> </data>
<data name="TestText" xml:space="preserve">
<value>Test</value>
</data>
<data name="UpText" xml:space="preserve"> <data name="UpText" xml:space="preserve">
<value>Up</value> <value>Up</value>
</data> </data>
@ -565,4 +562,19 @@
<data name="SwipeUp" xml:space="preserve"> <data name="SwipeUp" xml:space="preserve">
<value>Swipe Up</value> <value>Swipe Up</value>
</data> </data>
<data name="StopHText" xml:space="preserve">
<value>Stop Heavy</value>
</data>
<data name="StopLText" xml:space="preserve">
<value>Stop Light</value>
</data>
<data name="TestHText" xml:space="preserve">
<value>Test Heavy</value>
</data>
<data name="TestLText" xml:space="preserve">
<value>Test Light</value>
</data>
<data name="FullLightText" xml:space="preserve">
<value>Plein:</value>
</data>
</root> </root>

View File

@ -8,7 +8,7 @@
// </auto-generated> // </auto-generated>
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
namespace ScpServer.Properties { namespace DS4Windows.Properties {
using System; using System;
@ -39,7 +39,7 @@ namespace ScpServer.Properties {
internal static global::System.Resources.ResourceManager ResourceManager { internal static global::System.Resources.ResourceManager ResourceManager {
get { get {
if (object.ReferenceEquals(resourceMan, null)) { if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ScpServer.Properties.Resources", typeof(Resources).Assembly); global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("DS4Windows.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp; resourceMan = temp;
} }
return resourceMan; return resourceMan;
@ -542,6 +542,15 @@ namespace ScpServer.Properties {
} }
} }
/// <summary>
/// Looks up a localized string similar to Plein:.
/// </summary>
internal static string FullLightText {
get {
return ResourceManager.GetString("FullLightText", resourceCulture);
}
}
/// <summary> /// <summary>
/// Looks up a localized string similar to hour. /// Looks up a localized string similar to hour.
/// </summary> /// </summary>
@ -1140,6 +1149,24 @@ namespace ScpServer.Properties {
} }
} }
/// <summary>
/// Looks up a localized string similar to Stop Heavy.
/// </summary>
internal static string StopHText {
get {
return ResourceManager.GetString("StopHText", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Stop Light.
/// </summary>
internal static string StopLText {
get {
return ResourceManager.GetString("StopLText", resourceCulture);
}
}
/// <summary> /// <summary>
/// Looks up a localized string similar to Stopped DS4 Tool. /// Looks up a localized string similar to Stopped DS4 Tool.
/// </summary> /// </summary>
@ -1231,11 +1258,20 @@ namespace ScpServer.Properties {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Test. /// Looks up a localized string similar to Test Heavy.
/// </summary> /// </summary>
internal static string TestText { internal static string TestHText {
get { get {
return ResourceManager.GetString("TestText", resourceCulture); return ResourceManager.GetString("TestHText", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Test Light.
/// </summary>
internal static string TestLText {
get {
return ResourceManager.GetString("TestLText", resourceCulture);
} }
} }

View File

@ -8,7 +8,7 @@
// </auto-generated> // </auto-generated>
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
namespace ScpServer.Properties { namespace DS4Windows.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]

View File

@ -1,4 +1,4 @@
namespace ScpServer namespace DS4Windows
{ {
partial class RecordBox partial class RecordBox
{ {

View File

@ -14,7 +14,7 @@ using DS4Library;
using System.IO; using System.IO;
using System.Reflection; using System.Reflection;
namespace ScpServer namespace DS4Windows
{ {
public partial class RecordBox : Form public partial class RecordBox : Form
{ {

View File

@ -1,4 +1,4 @@
namespace ScpServer namespace DS4Windows
{ {
partial class SaveWhere partial class SaveWhere
{ {

View File

@ -12,7 +12,7 @@ using System.Threading.Tasks;
using System.Windows.Forms; using System.Windows.Forms;
using System.Xml; using System.Xml;
namespace ScpServer namespace DS4Windows
{ {
public partial class SaveWhere : Form public partial class SaveWhere : Form
{ {

View File

@ -1,4 +1,4 @@
namespace ScpServer.Properties { namespace DS4Windows.Properties {
// This class allows you to handle specific events on the settings class: // This class allows you to handle specific events on the settings class:

View File

@ -1,4 +1,4 @@
namespace ScpServer namespace DS4Windows
{ {
partial class WelcomeDialog partial class WelcomeDialog
{ {
@ -58,7 +58,7 @@
// //
// pictureBox1 // pictureBox1
// //
this.pictureBox1.Image = global::ScpServer.Properties.Resources.Pairmode; this.pictureBox1.Image = global::DS4Windows.Properties.Resources.Pairmode;
resources.ApplyResources(this.pictureBox1, "pictureBox1"); resources.ApplyResources(this.pictureBox1, "pictureBox1");
this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Name = "pictureBox1";
this.pictureBox1.TabStop = false; this.pictureBox1.TabStop = false;

View File

@ -16,7 +16,7 @@ using System.Security.Principal;
using System.Security.Permissions; using System.Security.Permissions;
using System.Reflection; using System.Reflection;
namespace ScpServer namespace DS4Windows
{ {
public partial class WelcomeDialog : Form public partial class WelcomeDialog : Form
{ {

View File

@ -1,4 +1,4 @@
namespace ScpServer namespace DS4Windows
{ {
partial class WinProgs partial class WinProgs
{ {

View File

@ -15,13 +15,13 @@ using DS4Control;
using System.Xml; using System.Xml;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
namespace ScpServer namespace DS4Windows
{ {
public partial class WinProgs : Form public partial class WinProgs : Form
{ {
ToolTip tp = new ToolTip(); ToolTip tp = new ToolTip();
ComboBox[] cbs; ComboBox[] cbs;
DS4Form form; public DS4Form form;
//C:\ProgramData\Microsoft\Windows\Start Menu\Programs //C:\ProgramData\Microsoft\Windows\Start Menu\Programs
string steamgamesdir, origingamesdir; string steamgamesdir, origingamesdir;
protected String m_Profile = Global.appdatapath + "\\Auto Profiles.xml"; protected String m_Profile = Global.appdatapath + "\\Auto Profiles.xml";
@ -87,6 +87,13 @@ namespace ScpServer
return Saved; return Saved;
} }
public void ShowMainWindow()
{
form.Visible = true;
form.WindowState = FormWindowState.Normal;
form.Show();
}
public void LoadP() public void LoadP()
{ {
XmlDocument doc = new XmlDocument(); XmlDocument doc = new XmlDocument();