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

View File

@ -883,20 +883,20 @@ namespace DS4Control
try
{
XmlNode Node;
XmlNode xmlControls = m_Xdoc.SelectSingleNode("/ScpControl/Control");
XmlNode xmlShiftControls = m_Xdoc.SelectSingleNode("/ScpControl/ShiftControl");
XmlNode xmlControls = m_Xdoc.SelectSingleNode("/DS4Windows/Control");
XmlNode xmlShiftControls = m_Xdoc.SelectSingleNode("/DS4Windows/ShiftControl");
m_Xdoc.RemoveAll();
Node = m_Xdoc.CreateXmlDeclaration("1.0", "utf-8", String.Empty);
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);
Node = m_Xdoc.CreateWhitespace("\r\n");
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 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 "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 "bnSwipeDown": return DS4Controls.SwipeDown;
case "bnSwipeLeft": return DS4Controls.SwipeLeft;
@ -1150,7 +1192,7 @@ namespace DS4Control
case "bnShiftTouchMulti": return DS4Controls.TouchMulti;
case "bnShiftTouchUpper": return DS4Controls.TouchUpper;
case "bnShiftTouchRight": return DS4Controls.TouchRight;
case "bnShiftGsyroXP": return DS4Controls.GyroXPos;
case "bnShiftGyroXP": return DS4Controls.GyroXPos;
case "bnShiftGyroXN": return DS4Controls.GyroXNeg;
case "bnShiftGyroZP": return DS4Controls.GyroZPos;
case "bnShiftGyroZN": return DS4Controls.GyroZNeg;
@ -1224,6 +1266,7 @@ namespace DS4Control
Dictionary<DS4Controls, UInt16> shiftCustomMapKeys = new Dictionary<DS4Controls, UInt16>();
Dictionary<DS4Controls, X360Controls> shiftCustomMapButtons = new Dictionary<DS4Controls, X360Controls>();
Dictionary<DS4Controls, String> shiftCustomMapMacros = new Dictionary<DS4Controls, String>();
string rootname = "DS4Windows";
Boolean missingSetting = false;
string profilepath;
if (propath == "")
@ -1235,16 +1278,20 @@ namespace DS4Control
XmlNode Item;
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]); }
catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/idleDisconnectTimeout"); Int32.TryParse(Item.InnerText, out idleDisconnectTimeout[device]); }
try { Item = m_Xdoc.SelectSingleNode("/" + rootname + "/idleDisconnectTimeout"); Int32.TryParse(Item.InnerText, out idleDisconnectTimeout[device]); }
catch { missingSetting = true; }
//New method for saving color
try
{
Item = m_Xdoc.SelectSingleNode("/ScpControl/Color");
Item = m_Xdoc.SelectSingleNode("/" + rootname + "/Color");
string[] colors;
if (!string.IsNullOrEmpty(Item.InnerText))
colors = Item.InnerText.Split(',');
@ -1254,35 +1301,35 @@ namespace DS4Control
m_Leds[device][i] = byte.Parse(colors[i]);
}
catch { missingSetting = true; }
if (m_Xdoc.SelectSingleNode("/ScpControl/Color") == null)
if (m_Xdoc.SelectSingleNode("/" + rootname + "/Color") == null)
{
//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; }
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; }
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; }
}
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; }
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; }
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; }
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; }
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; }
//New method for saving color
try
{
Item = m_Xdoc.SelectSingleNode("/ScpControl/LowColor");
Item = m_Xdoc.SelectSingleNode("/" + rootname + "/LowColor");
string[] colors;
if (!string.IsNullOrEmpty(Item.InnerText))
colors = Item.InnerText.Split(',');
@ -1292,20 +1339,20 @@ namespace DS4Control
m_LowLeds[device][i] = byte.Parse(colors[i]);
}
catch { missingSetting = true; }
if (m_Xdoc.SelectSingleNode("/ScpControl/LowColor") == null)
if (m_Xdoc.SelectSingleNode("/" + rootname + "/LowColor") == null)
{
//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; }
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; }
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; }
}
//New method for saving color
try
{
Item = m_Xdoc.SelectSingleNode("/ScpControl/ChargingColor");
Item = m_Xdoc.SelectSingleNode("/" + rootname + "/ChargingColor");
string[] colors;
if (!string.IsNullOrEmpty(Item.InnerText))
colors = Item.InnerText.Split(',');
@ -1315,18 +1362,18 @@ namespace DS4Control
m_ChargingLeds[device][i] = byte.Parse(colors[i]);
}
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; }
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; }
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; }
}
try
{
Item = m_Xdoc.SelectSingleNode("/ScpControl/ShiftColor");
Item = m_Xdoc.SelectSingleNode("/" + rootname + "/ShiftColor");
string[] colors;
if (!string.IsNullOrEmpty(Item.InnerText))
colors = Item.InnerText.Split(',');
@ -1336,11 +1383,11 @@ namespace DS4Control
m_ShiftLeds[device][i] = byte.Parse(colors[i]);
}
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; }
try
{
Item = m_Xdoc.SelectSingleNode("/ScpControl/FlashColor");
Item = m_Xdoc.SelectSingleNode("/" + rootname + "/FlashColor");
string[] colors;
if (!string.IsNullOrEmpty(Item.InnerText))
colors = Item.InnerText.Split(',');
@ -1350,48 +1397,48 @@ namespace DS4Control
m_FlashLeds[device][i] = byte.Parse(colors[i]);
}
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; }
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; }
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; }
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; }
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; }
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; }
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; }
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; }
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; }
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; }
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; }
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; }
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; }
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; }
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; }
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; }
try
{
Item = m_Xdoc.SelectSingleNode("/ScpControl/LaunchProgram");
Item = m_Xdoc.SelectSingleNode("/" + rootname + "/LaunchProgram");
launchProgram[device] = Item.InnerText;
if (launchprogram == true && launchProgram[device] != string.Empty) System.Diagnostics.Process.Start(launchProgram[device]);
}
catch { launchProgram[device] = string.Empty; missingSetting = true; }
try
{
Item = m_Xdoc.SelectSingleNode("/ScpControl/DinputOnly");
Item = m_Xdoc.SelectSingleNode("/" + rootname + "/DinputOnly");
Boolean.TryParse(Item.InnerText, out dinputOnly[device]);
if (device < 4)
{
@ -1402,32 +1449,32 @@ namespace DS4Control
catch { missingSetting = true; }
try
{
Item = m_Xdoc.SelectSingleNode("/ScpControl/StartTouchpadOff");
Item = m_Xdoc.SelectSingleNode("/" + rootname + "/StartTouchpadOff");
Boolean.TryParse(Item.InnerText, out startTouchpadOff[device]);
if (startTouchpadOff[device] == true) control.StartTPOff(device);
}
catch { startTouchpadOff[device] = false; missingSetting = true; }
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; }
DS4KeyType keyType;
UInt16 wvk;
if (buttons == null)
{
XmlNode ParentItem = m_Xdoc.SelectSingleNode("/ScpControl/Control/Button");
XmlNode ParentItem = m_Xdoc.SelectSingleNode("/" + rootname + "/Control/Button");
if (ParentItem != null)
foreach (XmlNode item in ParentItem.ChildNodes)
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)
foreach (XmlNode item in ParentItem.ChildNodes)
customMapMacros.Add(getDS4ControlsByName(item.Name), item.InnerText);
ParentItem = m_Xdoc.SelectSingleNode("/ScpControl/Control/Key");
ParentItem = m_Xdoc.SelectSingleNode("/" + rootname + "/Control/Key");
if (ParentItem != null)
foreach (XmlNode item in ParentItem.ChildNodes)
if (UInt16.TryParse(item.InnerText, out wvk))
customMapKeys.Add(getDS4ControlsByName(item.Name), wvk);
ParentItem = m_Xdoc.SelectSingleNode("/ScpControl/Control/KeyType");
ParentItem = m_Xdoc.SelectSingleNode("/" + rootname + "/Control/KeyType");
if (ParentItem != null)
foreach (XmlNode item in ParentItem.ChildNodes)
if (item != null)
@ -1448,20 +1495,20 @@ namespace DS4Control
}
if (shiftModifier[device] > 0)
{
ParentItem = m_Xdoc.SelectSingleNode("/ScpControl/ShiftControl/Button");
ParentItem = m_Xdoc.SelectSingleNode("/" + rootname + "/ShiftControl/Button");
if (ParentItem != null)
foreach (XmlNode item in ParentItem.ChildNodes)
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)
foreach (XmlNode item in ParentItem.ChildNodes)
shiftCustomMapMacros.Add(getDS4ControlsByName(item.Name), item.InnerText);
ParentItem = m_Xdoc.SelectSingleNode("/ScpControl/ShiftControl/Key");
ParentItem = m_Xdoc.SelectSingleNode("/" + rootname + "/ShiftControl/Key");
if (ParentItem != null)
foreach (XmlNode item in ParentItem.ChildNodes)
if (UInt16.TryParse(item.InnerText, out wvk))
shiftCustomMapKeys.Add(getDS4ControlsByName(item.Name), wvk);
ParentItem = m_Xdoc.SelectSingleNode("/ScpControl/ShiftControl/KeyType");
ParentItem = m_Xdoc.SelectSingleNode("/" + rootname + "/ShiftControl/KeyType");
if (ParentItem != null)
foreach (XmlNode item in ParentItem.ChildNodes)
if (item != null)
@ -1514,11 +1561,16 @@ namespace DS4Control
XmlNode Item;
DS4KeyType keyType;
UInt16 wvk;
string rootname = "DS4Windows";
foreach (var button in buttons)
try
{
if (m_Xdoc.SelectSingleNode(rootname) == null)
{
rootname = "ScpControl";
}
//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)
{
//foundBinding = true;
@ -1549,7 +1601,7 @@ namespace DS4Control
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)
{
string[] splitter = Item.InnerText.Split('/');
@ -1569,9 +1621,9 @@ namespace DS4Control
button.Tag = keys;
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))
{
//foundBinding = true;
@ -1582,7 +1634,7 @@ namespace DS4Control
}
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)
{
//foundBinding = true;

View File

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

View File

@ -1,7 +1,7 @@

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

View File

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

View File

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

View File

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

View File

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

View File

@ -14,7 +14,7 @@ using System.Diagnostics;
using System.Xml;
using System.Text;
using System.Globalization;
namespace ScpServer
namespace DS4Windows
{
public partial class DS4Form : Form
{
@ -28,7 +28,7 @@ namespace ScpServer
protected PictureBox[] statPB;
protected ToolStripMenuItem[] shortcuts;
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 appdatapath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\DS4Tool";
float dpix, dpiy;
@ -233,8 +233,8 @@ namespace ScpServer
File.Delete(exepath + "\\Updater.exe");
}
//test.Start();
hotkeystimer.Start();
hotkeystimer.Tick += Hotkeys;
hotkeysTimer.Start();
hotkeysTimer.Tick += Hotkeys;
test.Tick += test_Tick;
if (!System.IO.Directory.Exists(Global.appdatapath + "\\Virtual Bus Driver"))
linkUninstall.Visible = false;
@ -330,13 +330,6 @@ namespace ScpServer
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();
}
@ -582,14 +575,14 @@ namespace ScpServer
if (btnStartStop.Text == Properties.Resources.StartText)
{
rootHub.Start(log);
hotkeystimer.Start();
hotkeysTimer.Start();
btnStartStop.Text = Properties.Resources.StopText;
}
else if (btnStartStop.Text == Properties.Resources.StopText)
{
rootHub.Stop(log);
hotkeystimer.Stop();
hotkeysTimer.Stop();
btnStartStop.Text = Properties.Resources.StartText;
}
startToolStripMenuItem.Text = btnStartStop.Text;

View File

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

View File

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

View File

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

View File

@ -1,4 +1,4 @@
namespace ScpServer
namespace DS4Windows
{
partial class KBM360
{
@ -1173,7 +1173,7 @@
// 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.TabStop = false;
//
@ -1196,7 +1196,7 @@
// 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.TabStop = false;
this.button13.Tag = "X360Left Trigger";
@ -1205,7 +1205,7 @@
// 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.TabStop = false;
this.button2.Tag = "X360Right Trigger";
@ -1214,7 +1214,7 @@
// 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.TabStop = false;
this.btnRSL.Tag = "X360Right X-Axis-";
@ -1223,7 +1223,7 @@
// 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.TabStop = false;
this.btnLSL.Tag = "X360Left X-Axis-";
@ -1232,7 +1232,7 @@
// 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.TabStop = false;
this.btnRSD.Tag = "X360Right Y-Axis+";
@ -1241,7 +1241,7 @@
// 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.TabStop = false;
this.btnLSD.Tag = "X360Left Y-Axis+";
@ -1250,7 +1250,7 @@
// 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.TabStop = false;
this.button19.Tag = "X360Left Button";
@ -1259,7 +1259,7 @@
// 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.TabStop = false;
this.button20.Tag = "X360Down Button";
@ -1268,7 +1268,7 @@
// 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.TabStop = false;
this.button18.Tag = "X360Up Button";
@ -1277,7 +1277,7 @@
// 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.TabStop = false;
this.button17.Tag = "X360Right Button";
@ -1286,7 +1286,7 @@
// 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.TabStop = false;
this.btnRSR.Tag = "X360Right X-Axis+";
@ -1295,7 +1295,7 @@
// 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.TabStop = false;
this.btnRS.Tag = "X360Right Stick";
@ -1304,7 +1304,7 @@
// 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.TabStop = false;
this.btnLSR.Tag = "X360Left X-Axis+";
@ -1313,7 +1313,7 @@
// 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.TabStop = false;
this.btnRSU.Tag = "X360Right Y-Axis-";
@ -1322,7 +1322,7 @@
// 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.TabStop = false;
this.btnLS.Tag = "X360Left Stick";
@ -1331,7 +1331,7 @@
// 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.TabStop = false;
this.btnLSU.Tag = "X360Left Y-Axis-";
@ -1340,7 +1340,7 @@
// 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.TabStop = false;
this.button11.Tag = "X360Left Bumper";
@ -1349,7 +1349,7 @@
// 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.TabStop = false;
this.btnRB.Tag = "X360Right Bumper";
@ -1358,7 +1358,7 @@
// 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.TabStop = false;
this.button10.Tag = "X360Y Button";
@ -1367,7 +1367,7 @@
// 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.TabStop = false;
this.button9.Tag = "X360X Button";
@ -1376,7 +1376,7 @@
// 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.TabStop = false;
this.button8.Tag = "X360B Button";
@ -1385,7 +1385,7 @@
// 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.TabStop = false;
this.button23.Tag = "X360Back";
@ -1394,7 +1394,7 @@
// 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.TabStop = false;
this.button22.Tag = "X360Start";
@ -1411,7 +1411,7 @@
// 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.TabStop = false;
this.button3.Tag = "X360A Button";

View File

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

View File

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

View File

@ -9,7 +9,7 @@ using System.Threading.Tasks;
using System.Windows.Forms;
using DS4Control;
namespace ScpServer
namespace DS4Windows
{
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.IO;
using System.Reflection;
namespace ScpServer
namespace DS4Windows
{
public partial class Options : Form
{
@ -743,24 +743,43 @@ namespace ScpServer
private void rumbleBoostBar_ValueChanged(object sender, EventArgs e)
{
Global.saveRumbleBoost(device, (byte)nUDRumbleBoost.Value);
if (btnRumbleTest.Text == Properties.Resources.StopText)
scpDevice.setRumble(255, 255, device);
byte h = (byte)Math.Min(255, (255 * nUDRumbleBoost.Value / 100));
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);
((Button)sender).Text = Properties.Resources.StopText;
scpDevice.setRumble((byte)Math.Min(255, (255 * nUDRumbleBoost.Value / 100)), d.RightLightFastRumble, (int)nUDSixaxis.Value - 1);
((Button)sender).Text = Properties.Resources.StopHText;
}
else
{
scpDevice.setRumble(0, 0, (int)nUDSixaxis.Value - 1);
((Button)sender).Text = Properties.Resources.TestText;
scpDevice.setRumble(0, d.RightLightFastRumble, (int)nUDSixaxis.Value - 1);
((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;
}
}
private void numUDTouch_ValueChanged(object sender, EventArgs e)
{
Global.setTouchSensitivity(device, (byte)nUDTouch.Value);
@ -780,7 +799,7 @@ namespace ScpServer
Global.setLedAsBatteryIndicator(device, 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)));
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)
@ -823,7 +842,7 @@ namespace ScpServer
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);
inputtimer.Stop();
sixaxisTimer.Stop();
@ -915,7 +934,7 @@ namespace ScpServer
foreach (Button b in subbuttons)
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[1] = "Circle : " + bnShiftCircle.Text;
lBShiftControls.Items[2] = "Square : " + bnShiftSquare.Text;
@ -978,8 +997,8 @@ namespace ScpServer
return ((Keys)(UInt16)button.Tag).ToString();
else if (button.Tag is string)
return button.Tag.ToString();
else if (button.Name.StartsWith("s") && buttons[subbuttons.IndexOf(button)].Tag != null && button.Tag == null)
return "Fall Back to " + UpdateRegButtonList(buttons[subbuttons.IndexOf(button)]);
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(((Button)Controls.Find(button.Name.Remove(2, 5), true)[0]));
else
return string.Empty;
}

View File

@ -117,20 +117,7 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</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" />
<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">
<value>319, 11</value>
</data>
@ -142,7 +129,7 @@
de batterie</value>
</data>
<data name="cBDoubleTap.Location" type="System.Drawing.Point, System.Drawing">
<value>363, 11</value>
<value>119, 41</value>
</data>
<data name="cBDoubleTap.Size" type="System.Drawing.Size, System.Drawing">
<value>68, 30</value>
@ -152,7 +139,7 @@ de batterie</value>
deux fois</value>
</data>
<data name="cBTap.Location" type="System.Drawing.Point, System.Drawing">
<value>252, 18</value>
<value>8, 48</value>
</data>
<data name="cBTap.Size" type="System.Drawing.Size, System.Drawing">
<value>63, 17</value>
@ -161,10 +148,10 @@ deux fois</value>
<value>Tapoter</value>
</data>
<data name="nUDTap.Location" type="System.Drawing.Point, System.Drawing">
<value>319, 17</value>
<value>75, 47</value>
</data>
<data name="cBScroll.Location" type="System.Drawing.Point, System.Drawing">
<value>112, 47</value>
<value>121, 22</value>
</data>
<data name="cBScroll.Size" type="System.Drawing.Size, System.Drawing">
<value>80, 17</value>
@ -172,6 +159,9 @@ deux fois</value>
<data name="cBScroll.Text" xml:space="preserve">
<value>Faire défiler</value>
</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">
<value>57, 17</value>
</data>
@ -179,10 +169,10 @@ deux fois</value>
<value>Glisser</value>
</data>
<data name="nUDScroll.Location" type="System.Drawing.Point, System.Drawing">
<value>198, 44</value>
<value>207, 19</value>
</data>
<data name="nUDTouch.Location" type="System.Drawing.Point, System.Drawing">
<value>66, 46</value>
<value>75, 21</value>
</data>
<data name="lbButtonMouseSens.Size" type="System.Drawing.Size, System.Drawing">
<value>113, 13</value>
@ -190,6 +180,18 @@ deux fois</value>
<data name="lbButtonMouseSens.Text" xml:space="preserve">
<value>Sensibilité de la souris:</value>
</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">
<value>117, 16</value>
</data>
@ -197,28 +199,35 @@ deux fois</value>
<value>Pavé tactile</value>
</data>
<data name="cbStartTouchpadOff.Location" type="System.Drawing.Point, System.Drawing">
<value>244, 45</value>
<value>253, 20</value>
</data>
<data name="gBOther.Text" xml:space="preserve">
<value>Autre</value>
</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">
<value>178, 17</value>
</data>
<data name="gBLightbar.Text" xml:space="preserve">
<value>Barre lumineuse</value>
</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">
<value>408, 108</value>
<value>359, 107</value>
</data>
<data name="rBColor.Location" type="System.Drawing.Point, System.Drawing">
<value>341, 106</value>
<value>293, 105</value>
</data>
<data name="rBColor.Size" type="System.Drawing.Size, System.Drawing">
<value>61, 17</value>
@ -226,12 +235,33 @@ deux fois</value>
<data name="rBColor.Text" xml:space="preserve">
<value>Couleur</value>
</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">
<value>75, 17</value>
</data>
<data name="rBRainbow.Text" xml:space="preserve">
<value>Arc-en-ciel</value>
</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">
<value>109, 18</value>
</data>
@ -244,33 +274,18 @@ deux fois</value>
<data name="lbFlashAt.Text" xml:space="preserve">
<value>Clignoter à</value>
</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">
<value>Vibrer</value>
</data>
<data name="gBDeadzone.Text" xml:space="preserve">
<value>Zone morte</value>
</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">
<value>
iVBORw0KGgoAAAANSUhEUgAAAJYAAACWCAYAAAA8AXHiAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAACH
@ -535,4 +550,34 @@ deux fois</value>
AElFTkSuQmCC
</value>
</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>

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.Runtime.InteropServices;
using System.Diagnostics;
using System.ComponentModel;
namespace ScpServer
namespace DS4Windows
{
static class Program
{
@ -15,12 +16,19 @@ namespace ScpServer
[DllImport("user32.dll")]
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>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main(string [] args)
static void Main(string[] args)
{
System.Runtime.GCSettings.LatencyMode = System.Runtime.GCLatencyMode.LowLatency;
try
@ -31,34 +39,90 @@ namespace ScpServer
{
// Ignore problems raising the priority.
}
bool createdNew = true;
using (Mutex mutex = new Mutex(true, "MyApplicationName", out createdNew))
try
{
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.SetCompatibleTextRenderingDefault(false);
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)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new DS4Form(args));
}
else
{
Process current = Process.GetCurrentProcess();
foreach (Process process in Process.GetProcessesByName("DS4Windows"))
// 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)
{
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;
}
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
{
WinProgs wp = (WinProgs)frm;
wp.ShowMainWindow();
SetForegroundWindow(wp.form.Handle);
}
}
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
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.4.1")]
[assembly: AssemblyFileVersion("1.4.1")]
[assembly: AssemblyVersion("1.4.156")]
[assembly: AssemblyFileVersion("1.4.156")]

View File

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

View File

@ -517,9 +517,6 @@
<data name="Step1" xml:space="preserve">
<value>Step 1: Install the DS4 Driver</value>
</data>
<data name="TestText" xml:space="preserve">
<value>Test</value>
</data>
<data name="UpText" xml:space="preserve">
<value>Up</value>
</data>
@ -565,4 +562,19 @@
<data name="SwipeUp" xml:space="preserve">
<value>Swipe Up</value>
</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>

View File

@ -8,7 +8,7 @@
// </auto-generated>
//------------------------------------------------------------------------------
namespace ScpServer.Properties {
namespace DS4Windows.Properties {
using System;
@ -39,7 +39,7 @@ namespace ScpServer.Properties {
internal static global::System.Resources.ResourceManager ResourceManager {
get {
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;
}
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>
/// Looks up a localized string similar to hour.
/// </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>
/// Looks up a localized string similar to Stopped DS4 Tool.
/// </summary>
@ -1231,11 +1258,20 @@ namespace ScpServer.Properties {
}
/// <summary>
/// Looks up a localized string similar to Test.
/// Looks up a localized string similar to Test Heavy.
/// </summary>
internal static string TestText {
internal static string TestHText {
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>
//------------------------------------------------------------------------------
namespace ScpServer.Properties {
namespace DS4Windows.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]

View File

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

View File

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

View File

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

View File

@ -12,7 +12,7 @@ using System.Threading.Tasks;
using System.Windows.Forms;
using System.Xml;
namespace ScpServer
namespace DS4Windows
{
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:

View File

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

View File

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

View File

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

View File

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