diff --git a/DS4Control/Control.cs b/DS4Control/Control.cs
index f563109..adb194e 100644
--- a/DS4Control/Control.cs
+++ b/DS4Control/Control.cs
@@ -356,6 +356,7 @@ namespace DS4Control
return "None";
}
+
private int XINPUT_UNPLUG_SETTLE_TIME = 250; // Inhibit races that occur with the asynchronous teardown of ScpVBus -> X360 driver instance.
//Called when DS4 is disconnected or timed out
protected virtual void On_DS4Removal(object sender, EventArgs e)
@@ -403,7 +404,7 @@ namespace DS4Control
if (Global.getHasCustomKeysorButtons(ind))
{
- Mapping.MapCustom(ind, cState, MappedState[ind], pState);
+ Mapping.MapCustom(ind, cState, MappedState[ind]);
cState = MappedState[ind];
}
@@ -411,7 +412,7 @@ namespace DS4Control
DS4LightBar.updateLightBar(device, ind);
//DS4LightBar.defualtLight(device, ind);
- x360Bus.Parse(cState, processingData[ind].Report, ind);
+ x360Bus.Parse(MappedState[ind], processingData[ind].Report, ind);
// We push the translated Xinput state, and simultaneously we
// pull back any possible rumble data coming from Xinput consumers.
if (x360Bus.Report(processingData[ind].Report, processingData[ind].Rumble))
@@ -570,5 +571,10 @@ namespace DS4Control
{
return CurrentState[ind];
}
+ public DS4State getDS4StateMapped(int ind)
+ {
+ return MappedState[ind];
+ }
+
}
}
diff --git a/DS4Control/DS4Control.csproj b/DS4Control/DS4Control.csproj
index 46897b4..6dcf0f5 100644
--- a/DS4Control/DS4Control.csproj
+++ b/DS4Control/DS4Control.csproj
@@ -9,8 +9,9 @@
Properties
DS4Control
DS4Control
- v4.0
+ v4.5
512
+
true
@@ -20,6 +21,7 @@
DEBUG;TRACE
prompt
4
+ false
pdbonly
@@ -28,6 +30,7 @@
TRACE
prompt
4
+ false
diff --git a/DS4Control/Mapping.cs b/DS4Control/Mapping.cs
index 2ec6b46..3f60a55 100644
--- a/DS4Control/Mapping.cs
+++ b/DS4Control/Mapping.cs
@@ -3,6 +3,8 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using DS4Library;
+using System.Threading.Tasks;
+using System.Windows.Forms;
namespace DS4Control
{
public class Mapping
@@ -286,8 +288,8 @@ namespace DS4Control
SyntheticState deviceState = Mapping.deviceState[device];
string macro = Global.getCustomMacro(device, what);
if (macro != "0")
- {
- DS4KeyType keyType = Global.getCustomKeyType(device, what);
+ {
+ /*DS4KeyType keyType = Global.getCustomKeyType(device, what);
SyntheticState.KeyPresses kp;
string[] skeys = macro.Split('/');
ushort[] keys = new ushort[skeys.Length];
@@ -306,7 +308,7 @@ namespace DS4Control
else
kp.current.vkCount++;
kp.current.repeatCount++;
- }
+ }*/
}
else if (Global.getCustomKey(device, what) != 0)
{
@@ -439,39 +441,135 @@ namespace DS4Control
}
}
}
- public static bool[] pressedonce = new bool[261];
+
+ public static int DS4ControltoInt(DS4Controls ctrl)
+ {
+ switch (ctrl)
+ {
+ case DS4Controls.Share: return 1;
+ case DS4Controls.Options: return 2;
+ case DS4Controls.L1: return 3;
+ case DS4Controls.R1: return 4;
+ case DS4Controls.L3: return 5;
+ case DS4Controls.R3: return 6;
+ case DS4Controls.DpadUp: return 7;
+ case DS4Controls.DpadDown: return 8;
+ case DS4Controls.DpadLeft: return 9;
+ case DS4Controls.DpadRight: return 10;
+ case DS4Controls.PS: return 11;
+ case DS4Controls.Cross: return 12;
+ case DS4Controls.Square: return 13;
+ case DS4Controls.Triangle: return 14;
+ case DS4Controls.Circle: return 15;
+ case DS4Controls.LXNeg: return 16;
+ case DS4Controls.LYNeg: return 17;
+ case DS4Controls.RXNeg: return 18;
+ case DS4Controls.RYNeg: return 19;
+ case DS4Controls.LXPos: return 20;
+ case DS4Controls.LYPos: return 21;
+ case DS4Controls.RXPos: return 22;
+ case DS4Controls.RYPos: return 23;
+ case DS4Controls.L2: return 24;
+ case DS4Controls.R2: return 25;
+ case DS4Controls.TouchMulti: return 26;
+ case DS4Controls.TouchLeft: return 27;
+ case DS4Controls.TouchRight: return 28;
+ case DS4Controls.TouchUpper: return 29;
+ }
+ return 0;
+ }
+ public static bool[] pressedonce = new bool[261], macrodone = new bool[30];
public static int test = 0;
/** Map DS4 Buttons/Axes to other DS4 Buttons/Axes (largely the same as Xinput ones) and to keyboard and mouse buttons. */
- public static void MapCustom(int device, DS4State cState, DS4State MappedState, DS4State pState = null)
+ public static async void MapCustom(int device, DS4State cState, DS4State MappedState)
{
cState.CopyTo(MappedState);
SyntheticState deviceState = Mapping.deviceState[device];
- foreach (KeyValuePair customKey in Global.getCustomMacros(device))
+ foreach (KeyValuePair customKey in Global.getCustomMacros(device)) //with delays
{
DS4KeyType keyType = Global.getCustomKeyType(device, customKey.Key);
if (getBoolMapping(customKey.Key, cState))
{
+
resetToDefaultValue(customKey.Key, MappedState);
string[] skeys = customKey.Value.Split('/');
ushort[] keys = new ushort[skeys.Length];
for (int i = 0; i < keys.Length; i++)
- {
keys[i] = ushort.Parse(skeys[i]);
- if (keys[i] == 256) deviceState.currentClicks.leftCount++; //anything above 255 is not a keyvalue
- if (keys[i] == 257) deviceState.currentClicks.rightCount++;
- if (keys[i] == 258) deviceState.currentClicks.middleCount++;
- if (keys[i] == 259) deviceState.currentClicks.fourthCount++;
- if (keys[i] == 260) deviceState.currentClicks.fifthCount++;
- SyntheticState.KeyPresses kp;
- if (!deviceState.keyPresses.TryGetValue(keys[i], out kp))
- deviceState.keyPresses[keys[i]] = kp = new SyntheticState.KeyPresses();
- if (keyType.HasFlag(DS4KeyType.ScanCode))
- kp.current.scanCodeCount++;
- else
- kp.current.vkCount++;
- kp.current.repeatCount++;
+ bool timedmacro = false;
+ for (int i = 0; i < keys.Length; i++)
+ if (keys[i] > 300)
+ {
+ timedmacro = true;
+ break;
+ }
+ if (timedmacro && !macrodone[DS4ControltoInt(customKey.Key)])
+ {
+ macrodone[DS4ControltoInt(customKey.Key)] = true;
+ for (int i = 0; i < keys.Length; i++)
+ {
+ if (keys[i] > 300) //ints over 300 used to delay
+ await Task.Delay(keys[i] - 300);
+ else if (keys[i] == 256) InputMethods.MouseEvent(InputMethods.MOUSEEVENTF_LEFTDOWN); //anything above 255 is not a keyvalue
+ else if (keys[i] == 257) InputMethods.MouseEvent(InputMethods.MOUSEEVENTF_RIGHTDOWN);
+ else if (keys[i] == 258) InputMethods.MouseEvent(InputMethods.MOUSEEVENTF_MIDDLEDOWN);
+ else if (keys[i] == 259) InputMethods.MouseEvent(InputMethods.MOUSEEVENTF_XBUTTONDOWN, 1);
+ else if (keys[i] == 260) InputMethods.MouseEvent(InputMethods.MOUSEEVENTF_XBUTTONDOWN, 2);
+ else
+ InputMethods.performKeyPress(keys[i]);
+ }
+ for (int i = keys.Length - 1; i >= 0; i--)
+ {
+ if (keys[i] == 256) InputMethods.MouseEvent(InputMethods.MOUSEEVENTF_LEFTUP); //anything above 255 is not a keyvalue
+ else if (keys[i] == 257) InputMethods.MouseEvent(InputMethods.MOUSEEVENTF_RIGHTUP);
+ else if (keys[i] == 258) InputMethods.MouseEvent(InputMethods.MOUSEEVENTF_MIDDLEUP);
+ else if (keys[i] == 259) InputMethods.MouseEvent(InputMethods.MOUSEEVENTF_XBUTTONUP, 1);
+ else if (keys[i] == 260) InputMethods.MouseEvent(InputMethods.MOUSEEVENTF_XBUTTONUP, 2);
+ else if (keys[i] < 300)
+ InputMethods.performKeyRelease(keys[i]);
+ }
+ }
+ else if (!timedmacro)
+ {
+ for (int i = 0; i < keys.Length; i++)
+ {
+ if (i > 0 && keys[i - 1] > 300)
+ {
+ if (keys[i] == 256) deviceState.currentClicks.leftCount++; //anything above 255 is not a keyvalue
+ if (keys[i] == 257) deviceState.currentClicks.rightCount++;
+ if (keys[i] == 258) deviceState.currentClicks.middleCount++;
+ if (keys[i] == 259) deviceState.currentClicks.fourthCount++;
+ if (keys[i] == 260) deviceState.currentClicks.fifthCount++;
+ SyntheticState.KeyPresses kp;
+ if (!deviceState.keyPresses.TryGetValue(keys[i], out kp))
+ deviceState.keyPresses[keys[i]] = kp = new SyntheticState.KeyPresses();
+ if (keyType.HasFlag(DS4KeyType.ScanCode))
+ kp.current.scanCodeCount++;
+ else
+ kp.current.vkCount++;
+ kp.current.repeatCount++;
+ }
+ else if (keys[i] < 261)
+ {
+ if (keys[i] == 256) deviceState.currentClicks.leftCount++; //anything above 255 is not a keyvalue
+ if (keys[i] == 257) deviceState.currentClicks.rightCount++;
+ if (keys[i] == 258) deviceState.currentClicks.middleCount++;
+ if (keys[i] == 259) deviceState.currentClicks.fourthCount++;
+ if (keys[i] == 260) deviceState.currentClicks.fifthCount++;
+ SyntheticState.KeyPresses kp;
+ if (!deviceState.keyPresses.TryGetValue(keys[i], out kp))
+ deviceState.keyPresses[keys[i]] = kp = new SyntheticState.KeyPresses();
+ if (keyType.HasFlag(DS4KeyType.ScanCode))
+ kp.current.scanCodeCount++;
+ else
+ kp.current.vkCount++;
+ kp.current.repeatCount++;
+ }
+ }
}
}
+ else if (!getBoolMapping(customKey.Key, cState))
+ macrodone[DS4ControltoInt(customKey.Key)] = false;
}
foreach (KeyValuePair customKey in Global.getCustomKeys(device))
{
@@ -502,7 +600,7 @@ namespace DS4Control
}
- bool LX = false, LY = false, RX = false, RY = false;
+ bool LX = false, LY = false, RX = false, RY = false, L2 = false, R2 = false;
MappedState.LX = 127;
MappedState.LY = 127;
MappedState.RX = 127;
@@ -668,11 +766,19 @@ namespace DS4Control
break;
case X360Controls.LT:
if (MappedState.L2 == 0)
+ {
MappedState.L2 = getByteMapping(customButton.Key, cState);
+ L2 = true;
+ }
break;
case X360Controls.RT:
- if (MappedState.R2 == 0)
+ if (MappedState.L2 == 0 && MappedState.R2 == 0)
+ {
MappedState.R2 = getByteMapping(customButton.Key, cState);
+ //if (MappedState.R2 == 255)
+ //MessageBox.Show("225");
+ R2 = true;
+ }
break;
case X360Controls.LeftMouse:
if (getBoolMapping(customButton.Key, cState))
@@ -705,28 +811,28 @@ namespace DS4Control
case X360Controls.MouseUp:
if (MouseDeltaY == 0)
{
- MouseDeltaY = getMouseMapping(device, customButton.Key, cState, pState, 0);
+ MouseDeltaY = getMouseMapping(device, customButton.Key, cState, 0);
MouseDeltaY = -Math.Abs((MouseDeltaY == -2147483648 ? 0 : MouseDeltaY));
}
break;
case X360Controls.MouseDown:
if (MouseDeltaY == 0)
{
- MouseDeltaY = getMouseMapping(device, customButton.Key, cState, pState, 1);
+ MouseDeltaY = getMouseMapping(device, customButton.Key, cState, 1);
MouseDeltaY = Math.Abs((MouseDeltaY == -2147483648 ? 0 : MouseDeltaY));
}
break;
case X360Controls.MouseLeft:
if (MouseDeltaX == 0)
{
- MouseDeltaX = getMouseMapping(device, customButton.Key, cState, pState, 2);
+ MouseDeltaX = getMouseMapping(device, customButton.Key, cState, 2);
MouseDeltaX = -Math.Abs((MouseDeltaX == -2147483648 ? 0 : MouseDeltaX));
}
break;
case X360Controls.MouseRight:
if (MouseDeltaX == 0)
{
- MouseDeltaX = getMouseMapping(device, customButton.Key, cState, pState, 3);
+ MouseDeltaX = getMouseMapping(device, customButton.Key, cState, 3);
MouseDeltaX = Math.Abs((MouseDeltaX == -2147483648 ? 0 : MouseDeltaX));
}
break;
@@ -741,11 +847,15 @@ namespace DS4Control
MappedState.RX = cState.RX;
if (!RY)
MappedState.RY = cState.RY;
+ /*if (!L2)
+ MappedState.L2 = cState.L2;
+ if (!R2)
+ MappedState.R2 = cState.R2;//*/
InputMethods.MoveCursorBy(MouseDeltaX, MouseDeltaY);
}
public static DateTime[] mousenow = { DateTime.UtcNow, DateTime.UtcNow, DateTime.UtcNow, DateTime.UtcNow };
public static double mvalue = 0;
- private static int getMouseMapping(int device, DS4Controls control, DS4State cState, DS4State pState, int mnum)
+ private static int getMouseMapping(int device, DS4Controls control, DS4State cState, int mnum)
{
int deadzone = 10;
diff --git a/DS4Control/ScpUtil.cs b/DS4Control/ScpUtil.cs
index 39835d9..224d4ad 100644
--- a/DS4Control/ScpUtil.cs
+++ b/DS4Control/ScpUtil.cs
@@ -81,8 +81,17 @@ namespace DS4Control
{
protected static BackingStore m_Config = new BackingStore();
protected static Int32 m_IdleTimeout = 600000;
- //public static string appdatapath = Directory.GetParent(Assembly.GetExecutingAssembly().Location).FullName;
- public static string appdatapath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\DS4Tool";
+ static string exepath = Directory.GetParent(Assembly.GetExecutingAssembly().Location).FullName;
+ public static string appdatapath;
+
+ public static void SaveWhere()
+ {
+ if (!exepath.StartsWith("C:\\Program Files") && !exepath.StartsWith("C:\\Windows"))
+ appdatapath = Directory.GetParent(Assembly.GetExecutingAssembly().Location).FullName;
+ else
+ appdatapath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\DS4Tool";
+ m_Config.m_Profile = appdatapath + "\\Profiles.xml";
+ }
public static event EventHandler ControllerStatusChange; // called when a controller is added/removed/battery or touchpad mode changes/etc.
public static void ControllerStatusChanged(object sender)
{
@@ -534,7 +543,8 @@ namespace DS4Control
public class BackingStore
{
- protected String m_Profile = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\DS4Tool" + "\\Profiles.xml";
+ //public String m_Profile = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\DS4Tool" + "\\Profiles.xml";
+ public String m_Profile = Directory.GetParent(Assembly.GetExecutingAssembly().Location).FullName + "\\Profiles.xml";
protected XmlDocument m_Xdoc = new XmlDocument();
//fifth value used to for options, not fifth controller
public int[] buttonMouseSensitivity = { 25, 25, 25, 25, 25 };
@@ -972,6 +982,7 @@ namespace DS4Control
else if (keys[i] == 258) splitter[i] = "Middle Mouse Button";
else if (keys[i] == 259) splitter[i] = "4th Mouse Button";
else if (keys[i] == 260) splitter[i] = "5th Mouse Button";
+ else if (keys[i] > 300) splitter[i] = "Wait " + (keys[i] - 300) + "ms";
}
button.Text = string.Join(", ", splitter);
button.Tag = keys;
diff --git a/DS4Library/DS4Library.csproj b/DS4Library/DS4Library.csproj
index 3c6074e..157489c 100644
--- a/DS4Library/DS4Library.csproj
+++ b/DS4Library/DS4Library.csproj
@@ -9,8 +9,9 @@
Properties
DS4Library
DS4Library
- v4.0
+ v4.5
512
+
true
@@ -20,6 +21,7 @@
DEBUG;TRACE
prompt
4
+ false
pdbonly
@@ -29,6 +31,7 @@
prompt
4
AllRules.ruleset
+ false
diff --git a/DS4Service/DS4Service.csproj b/DS4Service/DS4Service.csproj
index fe489fa..d1c4aa0 100644
--- a/DS4Service/DS4Service.csproj
+++ b/DS4Service/DS4Service.csproj
@@ -9,8 +9,9 @@
Properties
DS4Service
DS4Service
- v4.0
+ v4.5
512
+
AnyCPU
@@ -21,6 +22,7 @@
DEBUG;TRACE
prompt
4
+ false
AnyCPU
@@ -30,6 +32,7 @@
TRACE
prompt
4
+ false
@@ -73,6 +76,9 @@
ProjectInstaller.cs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/DS4Tool/DS4Tool.csproj b/DS4Tool/DS4Tool.csproj
index 515976b..827e7b0 100644
--- a/DS4Tool/DS4Tool.csproj
+++ b/DS4Tool/DS4Tool.csproj
@@ -90,6 +90,12 @@
+
+ Form
+
+
+ Alreadyrunning.cs
+
Form
@@ -145,6 +151,9 @@
WinProgs.cs
+
+ Alreadyrunning.cs
+
Hotkeys.cs
diff --git a/DS4Tool/KBM360.Designer.cs b/DS4Tool/KBM360.Designer.cs
index 95c4f6a..db9a425 100644
--- a/DS4Tool/KBM360.Designer.cs
+++ b/DS4Tool/KBM360.Designer.cs
@@ -184,8 +184,14 @@
this.KBMlabel = new System.Windows.Forms.Label();
this.cBMacro = new System.Windows.Forms.CheckBox();
this.lBMacroOrder = new System.Windows.Forms.Label();
+ this.pnLDelay = new System.Windows.Forms.Panel();
+ this.lBDelay = new System.Windows.Forms.Label();
+ this.nUDDelay = new System.Windows.Forms.NumericUpDown();
+ this.lBms = new System.Windows.Forms.Label();
((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
+ this.pnLDelay.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.nUDDelay)).BeginInit();
this.SuspendLayout();
//
// lBTip
@@ -1720,7 +1726,7 @@
// X360Label
//
this.X360Label.AutoSize = true;
- this.X360Label.Location = new System.Drawing.Point(394, 210);
+ this.X360Label.Location = new System.Drawing.Point(393, 202);
this.X360Label.Name = "X360Label";
this.X360Label.Size = new System.Drawing.Size(73, 13);
this.X360Label.TabIndex = 318;
@@ -1757,11 +1763,54 @@
this.lBMacroOrder.Text = "Macro Order: ";
this.lBMacroOrder.Visible = false;
//
+ // pnLDelay
+ //
+ this.pnLDelay.Controls.Add(this.nUDDelay);
+ this.pnLDelay.Controls.Add(this.lBms);
+ this.pnLDelay.Controls.Add(this.lBDelay);
+ this.pnLDelay.Location = new System.Drawing.Point(12, 200);
+ this.pnLDelay.Name = "pnLDelay";
+ this.pnLDelay.Size = new System.Drawing.Size(183, 23);
+ this.pnLDelay.TabIndex = 320;
+ this.pnLDelay.Visible = false;
+ //
+ // lBDelay
+ //
+ this.lBDelay.AutoSize = true;
+ this.lBDelay.Location = new System.Drawing.Point(3, 2);
+ this.lBDelay.Name = "lBDelay";
+ this.lBDelay.Size = new System.Drawing.Size(56, 13);
+ this.lBDelay.TabIndex = 0;
+ this.lBDelay.Text = "Add Delay";
+ //
+ // nUDDelay
+ //
+ this.nUDDelay.Location = new System.Drawing.Point(65, 0);
+ this.nUDDelay.Maximum = new decimal(new int[] {
+ 60000,
+ 0,
+ 0,
+ 0});
+ this.nUDDelay.Name = "nUDDelay";
+ this.nUDDelay.Size = new System.Drawing.Size(77, 20);
+ this.nUDDelay.TabIndex = 1;
+ this.nUDDelay.ValueChanged += new System.EventHandler(this.nUDDelay_ValueChanged);
+ //
+ // lBms
+ //
+ this.lBms.AutoSize = true;
+ this.lBms.Location = new System.Drawing.Point(148, 2);
+ this.lBms.Name = "lBms";
+ this.lBms.Size = new System.Drawing.Size(20, 13);
+ this.lBms.TabIndex = 0;
+ this.lBms.Text = "ms";
+ //
// KBM360
//
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
this.ClientSize = new System.Drawing.Size(854, 403);
+ this.Controls.Add(this.pnLDelay);
this.Controls.Add(this.lBMacroOrder);
this.Controls.Add(this.KBMlabel);
this.Controls.Add(this.X360Label);
@@ -1928,6 +1977,9 @@
this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Key_Down_Action);
((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
+ this.pnLDelay.ResumeLayout(false);
+ this.pnLDelay.PerformLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.nUDDelay)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
@@ -2091,6 +2143,10 @@
private System.Windows.Forms.Label KBMlabel;
private System.Windows.Forms.CheckBox cBMacro;
private System.Windows.Forms.Label lBMacroOrder;
+ private System.Windows.Forms.Panel pnLDelay;
+ private System.Windows.Forms.NumericUpDown nUDDelay;
+ private System.Windows.Forms.Label lBms;
+ private System.Windows.Forms.Label lBDelay;
}
}
\ No newline at end of file
diff --git a/DS4Tool/KBM360.cs b/DS4Tool/KBM360.cs
index 1a11bfd..de9e40d 100644
--- a/DS4Tool/KBM360.cs
+++ b/DS4Tool/KBM360.cs
@@ -82,6 +82,11 @@ namespace ScpServer
if (!bn.Font.Bold && bn.Tag.ToString() != "X360" && macrostag.Count < 5 && (bn.Text.Contains("Mouse") ^ !bn.Text.Contains("Button"))) //end is xor to remove mouse movement and wheel from macro
{
bn.Font = new Font(bn.Font, FontStyle.Bold);
+ if (nUDDelay.Value >= 1)
+ {
+ macros.Add("Wait " + (int)nUDDelay.Value + "ms");
+ macrostag.Add(300 + (int)nUDDelay.Value);
+ }
macros.Add(keyname);
int value;
if (int.TryParse(bn.Tag.ToString(), out value))
@@ -98,10 +103,18 @@ namespace ScpServer
else if (bn.Tag.ToString() != "X360")
{
bn.Font = new Font(bn.Font, FontStyle.Regular);
- macros.Remove(keyname);
int value;
if (int.TryParse(bn.Tag.ToString(), out value))
+ {
+ int previ = macrostag.IndexOf(value) - 1;
+ if (previ > -1 && macrostag[previ] > 300)
+ {
+ macros.RemoveAt(previ);
+ macrostag.RemoveAt(previ);
+ }
macrostag.Remove(value);
+ macros.Remove(keyname);
+ }
else
{
if (bn.Text == "Left Mouse Button") macrostag.Remove(256);
@@ -111,6 +124,11 @@ namespace ScpServer
if (bn.Text == "5th Mouse Button") macrostag.Remove(260);
}
}
+ nUDDelay.Value = 0;
+ if (macrostag.Count >= 4)
+ pnLDelay.Enabled = false;
+ else
+ pnLDelay.Enabled = true;
string macro = string.Join(", ", macros.ToArray());
lBMacroOrder.Text = "Macro Order: " + macro;
}
@@ -129,13 +147,17 @@ namespace ScpServer
private void Key_Down_Action(object sender, KeyEventArgs e)
{
- ops.ChangeButtonText(e.KeyCode.ToString(), e.KeyValue);
- this.Close();
+ if (!cBMacro.Checked)
+ {
+ ops.ChangeButtonText(e.KeyCode.ToString(), e.KeyValue);
+ this.Close();
+ }
}
private void cBMacro_CheckedChanged(object sender, EventArgs e)
{
lBMacroOrder.Visible = cBMacro.Checked;
+ pnLDelay.Visible = cBMacro.Checked;
if (cBMacro.Checked)
cbToggle.Checked = false;
}
@@ -146,5 +168,10 @@ namespace ScpServer
cBMacro.Checked = false;
}
+ private void nUDDelay_ValueChanged(object sender, EventArgs e)
+ {
+
+ }
+
}
}
diff --git a/DS4Tool/Options.Designer.cs b/DS4Tool/Options.Designer.cs
index f2916ea..d92ca50 100644
--- a/DS4Tool/Options.Designer.cs
+++ b/DS4Tool/Options.Designer.cs
@@ -700,7 +700,7 @@
this.pBSticks.Location = new System.Drawing.Point(0, 1);
this.pBSticks.Name = "pBSticks";
this.pBSticks.Size = new System.Drawing.Size(245, 132);
- this.pBSticks.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage;
+ this.pBSticks.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
this.pBSticks.TabIndex = 161;
this.pBSticks.TabStop = false;
//
diff --git a/DS4Tool/Program.cs b/DS4Tool/Program.cs
index df7bbca..0e5f85a 100644
--- a/DS4Tool/Program.cs
+++ b/DS4Tool/Program.cs
@@ -1,10 +1,21 @@
using System;
using System.Windows.Forms;
+using System.Threading;
+using System.Runtime.InteropServices;
+using System.Diagnostics;
-namespace ScpServer
+
+namespace ScpServer
{
- static class Program
+ static class Program
{
+ [DllImport("user32.dll")]
+ [return: MarshalAs(UnmanagedType.Bool)]
+ static extern bool SetForegroundWindow(IntPtr hWnd);
+
+ [DllImport("user32.dll")]
+ private static extern IntPtr GetForegroundWindow();
+
///
/// The main entry point for the application.
///
@@ -20,9 +31,34 @@ namespace ScpServer
{
// Ignore problems raising the priority.
}
- Application.EnableVisualStyles();
- Application.SetCompatibleTextRenderingDefault(false);
- Application.Run(new ScpForm());
+ bool createdNew = true;
+ using (Mutex mutex = new Mutex(true, "MyApplicationName", out createdNew))
+ {
+ if (createdNew)
+ {
+ Application.EnableVisualStyles();
+ Application.SetCompatibleTextRenderingDefault(false);
+ Application.Run(new ScpForm());
+ }
+ else
+ {
+ Process current = Process.GetCurrentProcess();
+ foreach (Process process in Process.GetProcessesByName(current.ProcessName))
+ {
+ if (process.Id != current.Id)
+ {
+ SetForegroundWindow(process.MainWindowHandle);
+ if (GetForegroundWindow() != process.MainWindowHandle)
+ {
+ Application.EnableVisualStyles();
+ Application.SetCompatibleTextRenderingDefault(false);
+ Application.Run(new Alreadyrunning());
+ }
+ break;
+ }
+ }
+ }
+ }
}
}
}
diff --git a/DS4Tool/ScpForm.Designer.cs b/DS4Tool/ScpForm.Designer.cs
index 1ec39c6..aee0b61 100644
--- a/DS4Tool/ScpForm.Designer.cs
+++ b/DS4Tool/ScpForm.Designer.cs
@@ -120,8 +120,9 @@
this.linkProfiles = new System.Windows.Forms.LinkLabel();
this.lLBUpdate = new System.Windows.Forms.LinkLabel();
this.linkUninstall = new System.Windows.Forms.LinkLabel();
- this.saveProfiles = new System.Windows.Forms.SaveFileDialog();
this.lLSetup = new System.Windows.Forms.LinkLabel();
+ this.saveProfiles = new System.Windows.Forms.SaveFileDialog();
+ this.lLAppDataDelete = new System.Windows.Forms.LinkLabel();
this.pnlButton.SuspendLayout();
this.cMTaskbar.SuspendLayout();
this.tabMain.SuspendLayout();
@@ -179,6 +180,7 @@
this.pnlButton.Controls.Add(this.lBTest);
this.pnlButton.Controls.Add(this.btnStartStop);
this.pnlButton.Controls.Add(this.lbLastMessage);
+ this.pnlButton.Controls.Add(this.llbHelp);
this.pnlButton.Dock = System.Windows.Forms.DockStyle.Bottom;
this.pnlButton.Location = new System.Drawing.Point(0, 339);
this.pnlButton.Name = "pnlButton";
@@ -189,7 +191,7 @@
//
this.lBTest.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.lBTest.AutoSize = true;
- this.lBTest.Location = new System.Drawing.Point(625, 9);
+ this.lBTest.Location = new System.Drawing.Point(291, 9);
this.lBTest.Name = "lBTest";
this.lBTest.Size = new System.Drawing.Size(98, 13);
this.lBTest.TabIndex = 46;
@@ -214,14 +216,14 @@
this.lbLastMessage.ForeColor = System.Drawing.SystemColors.GrayText;
this.lbLastMessage.Location = new System.Drawing.Point(4, 9);
this.lbLastMessage.Name = "lbLastMessage";
- this.lbLastMessage.Size = new System.Drawing.Size(724, 18);
+ this.lbLastMessage.Size = new System.Drawing.Size(634, 18);
this.lbLastMessage.TabIndex = 41;
//
// llbHelp
//
- this.llbHelp.Anchor = System.Windows.Forms.AnchorStyles.None;
+ this.llbHelp.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.llbHelp.AutoSize = true;
- this.llbHelp.Location = new System.Drawing.Point(198, 30);
+ this.llbHelp.Location = new System.Drawing.Point(644, 9);
this.llbHelp.Name = "llbHelp";
this.llbHelp.Size = new System.Drawing.Size(79, 13);
this.llbHelp.TabIndex = 13;
@@ -233,12 +235,12 @@
//
this.lnkControllers.Anchor = System.Windows.Forms.AnchorStyles.None;
this.lnkControllers.AutoSize = true;
- this.lnkControllers.Location = new System.Drawing.Point(383, 30);
+ this.lnkControllers.Location = new System.Drawing.Point(269, 30);
this.lnkControllers.Name = "lnkControllers";
- this.lnkControllers.Size = new System.Drawing.Size(122, 13);
+ this.lnkControllers.Size = new System.Drawing.Size(73, 13);
this.lnkControllers.TabIndex = 11;
this.lnkControllers.TabStop = true;
- this.lnkControllers.Text = "Control Panel Controllers";
+ this.lnkControllers.Text = "CP Controllers";
this.lnkControllers.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.lnkControllers_LinkClicked);
//
// StartWindowsCheckBox
@@ -408,7 +410,7 @@
this.tLPControllers.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 23.34039F));
this.tLPControllers.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25.31077F));
this.tLPControllers.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 117F));
- this.tLPControllers.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 47F));
+ this.tLPControllers.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 50F));
this.tLPControllers.Controls.Add(this.pBStatus1, 1, 1);
this.tLPControllers.Controls.Add(this.lbPad1, 0, 1);
this.tLPControllers.Controls.Add(this.lbPad2, 0, 2);
@@ -450,7 +452,7 @@
this.pBStatus1.Anchor = System.Windows.Forms.AnchorStyles.None;
this.pBStatus1.Image = ((System.Drawing.Image)(resources.GetObject("pBStatus1.Image")));
this.pBStatus1.InitialImage = global::ScpServer.Properties.Resources.BT;
- this.pBStatus1.Location = new System.Drawing.Point(372, 19);
+ this.pBStatus1.Location = new System.Drawing.Point(369, 19);
this.pBStatus1.Name = "pBStatus1";
this.pBStatus1.Size = new System.Drawing.Size(39, 20);
this.pBStatus1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize;
@@ -482,7 +484,7 @@
// bnEditC3
//
this.bnEditC3.Anchor = System.Windows.Forms.AnchorStyles.Left;
- this.bnEditC3.Location = new System.Drawing.Point(741, 76);
+ this.bnEditC3.Location = new System.Drawing.Point(737, 76);
this.bnEditC3.Name = "bnEditC3";
this.bnEditC3.Size = new System.Drawing.Size(40, 23);
this.bnEditC3.TabIndex = 43;
@@ -494,7 +496,7 @@
// bnEditC4
//
this.bnEditC4.Anchor = System.Windows.Forms.AnchorStyles.Left;
- this.bnEditC4.Location = new System.Drawing.Point(741, 105);
+ this.bnEditC4.Location = new System.Drawing.Point(737, 105);
this.bnEditC4.Name = "bnEditC4";
this.bnEditC4.Size = new System.Drawing.Size(40, 23);
this.bnEditC4.TabIndex = 43;
@@ -530,7 +532,7 @@
this.cBController1.Anchor = System.Windows.Forms.AnchorStyles.Left;
this.cBController1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cBController1.FormattingEnabled = true;
- this.cBController1.Location = new System.Drawing.Point(624, 19);
+ this.cBController1.Location = new System.Drawing.Point(620, 19);
this.cBController1.Name = "cBController1";
this.cBController1.Size = new System.Drawing.Size(111, 21);
this.cBController1.TabIndex = 42;
@@ -540,7 +542,7 @@
// bnEditC2
//
this.bnEditC2.Anchor = System.Windows.Forms.AnchorStyles.Left;
- this.bnEditC2.Location = new System.Drawing.Point(741, 47);
+ this.bnEditC2.Location = new System.Drawing.Point(737, 47);
this.bnEditC2.Name = "bnEditC2";
this.bnEditC2.Size = new System.Drawing.Size(40, 23);
this.bnEditC2.TabIndex = 43;
@@ -554,7 +556,7 @@
this.cBController2.Anchor = System.Windows.Forms.AnchorStyles.Left;
this.cBController2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cBController2.FormattingEnabled = true;
- this.cBController2.Location = new System.Drawing.Point(624, 48);
+ this.cBController2.Location = new System.Drawing.Point(620, 48);
this.cBController2.Name = "cBController2";
this.cBController2.Size = new System.Drawing.Size(111, 21);
this.cBController2.TabIndex = 42;
@@ -566,7 +568,7 @@
this.cBController3.Anchor = System.Windows.Forms.AnchorStyles.Left;
this.cBController3.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cBController3.FormattingEnabled = true;
- this.cBController3.Location = new System.Drawing.Point(624, 77);
+ this.cBController3.Location = new System.Drawing.Point(620, 77);
this.cBController3.Name = "cBController3";
this.cBController3.Size = new System.Drawing.Size(111, 21);
this.cBController3.TabIndex = 42;
@@ -576,7 +578,7 @@
// bnEditC1
//
this.bnEditC1.Anchor = System.Windows.Forms.AnchorStyles.Left;
- this.bnEditC1.Location = new System.Drawing.Point(741, 18);
+ this.bnEditC1.Location = new System.Drawing.Point(737, 18);
this.bnEditC1.Name = "bnEditC1";
this.bnEditC1.Size = new System.Drawing.Size(40, 23);
this.bnEditC1.TabIndex = 43;
@@ -590,7 +592,7 @@
this.cBController4.Anchor = System.Windows.Forms.AnchorStyles.Left;
this.cBController4.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cBController4.FormattingEnabled = true;
- this.cBController4.Location = new System.Drawing.Point(624, 106);
+ this.cBController4.Location = new System.Drawing.Point(620, 106);
this.cBController4.Name = "cBController4";
this.cBController4.Size = new System.Drawing.Size(111, 21);
this.cBController4.TabIndex = 42;
@@ -602,7 +604,7 @@
this.lBSelectedProfile.Anchor = System.Windows.Forms.AnchorStyles.None;
this.lBSelectedProfile.AutoSize = true;
this.lBSelectedProfile.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lBSelectedProfile.Location = new System.Drawing.Point(625, 0);
+ this.lBSelectedProfile.Location = new System.Drawing.Point(621, 0);
this.lBSelectedProfile.Name = "lBSelectedProfile";
this.lBSelectedProfile.Size = new System.Drawing.Size(109, 15);
this.lBSelectedProfile.TabIndex = 45;
@@ -624,7 +626,7 @@
this.lBStatus.Anchor = System.Windows.Forms.AnchorStyles.None;
this.lBStatus.AutoSize = true;
this.lBStatus.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lBStatus.Location = new System.Drawing.Point(368, 0);
+ this.lBStatus.Location = new System.Drawing.Point(365, 0);
this.lBStatus.Name = "lBStatus";
this.lBStatus.Size = new System.Drawing.Size(47, 15);
this.lBStatus.TabIndex = 45;
@@ -635,7 +637,7 @@
this.lBBattery.Anchor = System.Windows.Forms.AnchorStyles.None;
this.lBBattery.AutoSize = true;
this.lBBattery.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lBBattery.Location = new System.Drawing.Point(517, 0);
+ this.lBBattery.Location = new System.Drawing.Point(513, 0);
this.lBBattery.Name = "lBBattery";
this.lBBattery.Size = new System.Drawing.Size(51, 15);
this.lBBattery.TabIndex = 45;
@@ -646,7 +648,7 @@
this.lBBatt1.Anchor = System.Windows.Forms.AnchorStyles.None;
this.lBBatt1.AutoSize = true;
this.lBBatt1.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lBBatt1.Location = new System.Drawing.Point(523, 22);
+ this.lBBatt1.Location = new System.Drawing.Point(519, 22);
this.lBBatt1.Name = "lBBatt1";
this.lBBatt1.Size = new System.Drawing.Size(39, 15);
this.lBBatt1.TabIndex = 44;
@@ -657,7 +659,7 @@
this.lBBatt2.Anchor = System.Windows.Forms.AnchorStyles.None;
this.lBBatt2.AutoSize = true;
this.lBBatt2.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lBBatt2.Location = new System.Drawing.Point(523, 51);
+ this.lBBatt2.Location = new System.Drawing.Point(519, 51);
this.lBBatt2.Name = "lBBatt2";
this.lBBatt2.Size = new System.Drawing.Size(39, 15);
this.lBBatt2.TabIndex = 44;
@@ -668,7 +670,7 @@
this.lBBatt3.Anchor = System.Windows.Forms.AnchorStyles.None;
this.lBBatt3.AutoSize = true;
this.lBBatt3.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lBBatt3.Location = new System.Drawing.Point(523, 80);
+ this.lBBatt3.Location = new System.Drawing.Point(519, 80);
this.lBBatt3.Name = "lBBatt3";
this.lBBatt3.Size = new System.Drawing.Size(39, 15);
this.lBBatt3.TabIndex = 44;
@@ -679,7 +681,7 @@
this.lBBatt4.Anchor = System.Windows.Forms.AnchorStyles.None;
this.lBBatt4.AutoSize = true;
this.lBBatt4.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lBBatt4.Location = new System.Drawing.Point(523, 109);
+ this.lBBatt4.Location = new System.Drawing.Point(519, 109);
this.lBBatt4.Name = "lBBatt4";
this.lBBatt4.Size = new System.Drawing.Size(39, 15);
this.lBBatt4.TabIndex = 44;
@@ -690,7 +692,7 @@
this.pBStatus2.Anchor = System.Windows.Forms.AnchorStyles.None;
this.pBStatus2.Image = ((System.Drawing.Image)(resources.GetObject("pBStatus2.Image")));
this.pBStatus2.InitialImage = global::ScpServer.Properties.Resources.BT;
- this.pBStatus2.Location = new System.Drawing.Point(372, 48);
+ this.pBStatus2.Location = new System.Drawing.Point(369, 48);
this.pBStatus2.Name = "pBStatus2";
this.pBStatus2.Size = new System.Drawing.Size(39, 20);
this.pBStatus2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize;
@@ -702,7 +704,7 @@
this.pBStatus3.Anchor = System.Windows.Forms.AnchorStyles.None;
this.pBStatus3.Image = ((System.Drawing.Image)(resources.GetObject("pBStatus3.Image")));
this.pBStatus3.InitialImage = global::ScpServer.Properties.Resources.BT;
- this.pBStatus3.Location = new System.Drawing.Point(372, 77);
+ this.pBStatus3.Location = new System.Drawing.Point(369, 77);
this.pBStatus3.Name = "pBStatus3";
this.pBStatus3.Size = new System.Drawing.Size(39, 20);
this.pBStatus3.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize;
@@ -714,7 +716,7 @@
this.pBStatus4.Anchor = System.Windows.Forms.AnchorStyles.None;
this.pBStatus4.Image = ((System.Drawing.Image)(resources.GetObject("pBStatus4.Image")));
this.pBStatus4.InitialImage = global::ScpServer.Properties.Resources.BT;
- this.pBStatus4.Location = new System.Drawing.Point(372, 106);
+ this.pBStatus4.Location = new System.Drawing.Point(369, 106);
this.pBStatus4.Name = "pBStatus4";
this.pBStatus4.Size = new System.Drawing.Size(39, 20);
this.pBStatus4.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize;
@@ -1011,12 +1013,12 @@
this.flowLayoutPanel1.Controls.Add(this.cBNotifications);
this.flowLayoutPanel1.Controls.Add(this.cBUpdate);
this.flowLayoutPanel1.Controls.Add(this.pNUpdate);
- this.flowLayoutPanel1.Controls.Add(this.llbHelp);
this.flowLayoutPanel1.Controls.Add(this.linkProfiles);
this.flowLayoutPanel1.Controls.Add(this.lnkControllers);
this.flowLayoutPanel1.Controls.Add(this.lLBUpdate);
this.flowLayoutPanel1.Controls.Add(this.linkUninstall);
this.flowLayoutPanel1.Controls.Add(this.lLSetup);
+ this.flowLayoutPanel1.Controls.Add(this.lLAppDataDelete);
this.flowLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
this.flowLayoutPanel1.Location = new System.Drawing.Point(3, 3);
this.flowLayoutPanel1.Name = "flowLayoutPanel1";
@@ -1098,18 +1100,18 @@
//
this.linkProfiles.Anchor = System.Windows.Forms.AnchorStyles.None;
this.linkProfiles.AutoSize = true;
- this.linkProfiles.Location = new System.Drawing.Point(283, 30);
+ this.linkProfiles.Location = new System.Drawing.Point(198, 30);
this.linkProfiles.Name = "linkProfiles";
- this.linkProfiles.Size = new System.Drawing.Size(94, 13);
+ this.linkProfiles.Size = new System.Drawing.Size(65, 13);
this.linkProfiles.TabIndex = 50;
this.linkProfiles.TabStop = true;
- this.linkProfiles.Text = "Open Profile folder";
+ this.linkProfiles.Text = "Profile folder";
this.linkProfiles.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkProfiles_LinkClicked);
//
// lLBUpdate
//
this.lLBUpdate.Anchor = System.Windows.Forms.AnchorStyles.None;
- this.lLBUpdate.Location = new System.Drawing.Point(511, 25);
+ this.lLBUpdate.Location = new System.Drawing.Point(348, 25);
this.lLBUpdate.Name = "lLBUpdate";
this.lLBUpdate.Size = new System.Drawing.Size(116, 23);
this.lLBUpdate.TabIndex = 49;
@@ -1121,7 +1123,7 @@
// linkUninstall
//
this.linkUninstall.Anchor = System.Windows.Forms.AnchorStyles.None;
- this.linkUninstall.Location = new System.Drawing.Point(633, 25);
+ this.linkUninstall.Location = new System.Drawing.Point(470, 25);
this.linkUninstall.Name = "linkUninstall";
this.linkUninstall.Size = new System.Drawing.Size(106, 23);
this.linkUninstall.TabIndex = 44;
@@ -1130,15 +1132,11 @@
this.linkUninstall.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.linkUninstall.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkUninstall_LinkClicked);
//
- // saveProfiles
- //
- this.saveProfiles.Filter = "XML Files (*.xml)|*.xml";
- //
// lLSetup
//
this.lLSetup.Anchor = System.Windows.Forms.AnchorStyles.None;
this.lLSetup.AutoSize = true;
- this.lLSetup.Location = new System.Drawing.Point(3, 51);
+ this.lLSetup.Location = new System.Drawing.Point(582, 30);
this.lLSetup.Name = "lLSetup";
this.lLSetup.Size = new System.Drawing.Size(82, 13);
this.lLSetup.TabIndex = 52;
@@ -1146,6 +1144,22 @@
this.lLSetup.Text = "Controller Setup";
this.lLSetup.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.lLSetup_LinkClicked);
//
+ // saveProfiles
+ //
+ this.saveProfiles.Filter = "XML Files (*.xml)|*.xml";
+ //
+ // lLAppDataDelete
+ //
+ this.lLAppDataDelete.AutoSize = true;
+ this.lLAppDataDelete.Location = new System.Drawing.Point(3, 51);
+ this.lLAppDataDelete.Name = "lLAppDataDelete";
+ this.lLAppDataDelete.Size = new System.Drawing.Size(127, 13);
+ this.lLAppDataDelete.TabIndex = 53;
+ this.lLAppDataDelete.TabStop = true;
+ this.lLAppDataDelete.Text = "Delete Old Settings folder";
+ this.lLAppDataDelete.Visible = false;
+ this.lLAppDataDelete.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.lLAppDataDelete_LinkClicked);
+ //
// ScpForm
//
this.AllowDrop = true;
@@ -1155,9 +1169,10 @@
this.ClientSize = new System.Drawing.Size(794, 369);
this.Controls.Add(this.tabMain);
this.Controls.Add(this.pnlButton);
- this.MinimumSize = new System.Drawing.Size(420, 137);
+ this.MinimumSize = new System.Drawing.Size(420, 231);
this.Name = "ScpForm";
this.Text = "DS4Windows";
+ this.Activated += new System.EventHandler(this.ScpForm_Activated);
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form_Close);
this.Load += new System.EventHandler(this.Form_Load);
this.DragDrop += new System.Windows.Forms.DragEventHandler(this.ScpForm_DragDrop);
@@ -1286,6 +1301,7 @@
private System.Windows.Forms.LinkLabel linkProfiles;
private System.Windows.Forms.CheckBox cBNotifications;
private System.Windows.Forms.LinkLabel lLSetup;
+ private System.Windows.Forms.LinkLabel lLAppDataDelete;
//private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem2;
}
}
diff --git a/DS4Tool/ScpForm.cs b/DS4Tool/ScpForm.cs
index 7082650..cc46607 100644
--- a/DS4Tool/ScpForm.cs
+++ b/DS4Tool/ScpForm.cs
@@ -17,7 +17,7 @@ namespace ScpServer
{
public partial class ScpForm : Form
{
- double version = 10;
+ double version = 10.2;
private DS4Control.Control rootHub;
delegate void LogDebugDelegate(DateTime Time, String Data);
@@ -30,7 +30,6 @@ namespace ScpServer
Timer test = new Timer(), hotkeystimer = new Timer();
string exepath = Directory.GetParent(Assembly.GetExecutingAssembly().Location).FullName;
float dpix, dpiy;
- string filename;
DateTime oldnow = DateTime.UtcNow;
string tempprofile = "null";
List profilenames= new List();
@@ -64,32 +63,15 @@ namespace ScpServer
[DllImport("user32.dll")]
private static extern uint GetWindowThreadProcessId(IntPtr hWnd, out uint lpdwProcessId);
- //HANDLE WINAPI OpenProcess(
- // __in DWORD dwDesiredAccess,
- // __in BOOL bInheritHandle,
- // __in DWORD dwProcessId
- //);
[DllImport("kernel32.dll")]
private static extern IntPtr OpenProcess(uint dwDesiredAccess, bool bInheritHandle, uint dwProcessId);
[DllImport("kernel32.dll")]
private static extern bool CloseHandle(IntPtr handle);
- // DWORD WINAPI GetModuleBaseName(
- // __in HANDLE hProcess,
- // __in_opt HMODULE hModule,
- // __out LPTSTR lpBaseName,
- // __in DWORD nSize
- // );
[DllImport("psapi.dll")]
private static extern uint GetModuleBaseName(IntPtr hWnd, IntPtr hModule, StringBuilder lpFileName, int nSize);
- // DWORD WINAPI GetModuleFileNameEx(
- // __in HANDLE hProcess,
- // __in_opt HMODULE hModule,
- // __out LPTSTR lpFilename,
- // __in DWORD nSize
- // );
[DllImport("psapi.dll")]
private static extern uint GetModuleFileNameEx(IntPtr hWnd, IntPtr hModule, StringBuilder lpFileName, int nSize);
@@ -105,9 +87,7 @@ namespace ScpServer
LoadP();
ToolTip tt = new ToolTip();
tt.SetToolTip(linkUninstall, "To fully remove DS4Windows, You can delete the profiles by the link to the other side");
- if (!System.IO.Directory.Exists(Global.appdatapath + "\\Virtual Bus Driver"))
- linkUninstall.Visible = false;
- //MessageBox.Show(Path.GetFileNameWithoutExtension(GetTopWindowName()));
+ tt.SetToolTip(lLAppDataDelete, @"Delete Appdata\DS4Tool folder as it's no longer in use");
}
public static string GetTopWindowName()
@@ -144,6 +124,17 @@ namespace ScpServer
protected void Form_Load(object sender, EventArgs e)
{
SetupArrays();
+ if (!exepath.StartsWith("C:\\Program Files") && !exepath.StartsWith("C:\\Windows"))
+ {
+ if (!File.Exists("Profiles.xml") &&
+ File.Exists(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\DS4Tool\Profiles.xml"))
+ File.Copy(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\DS4Tool\Profiles.xml",
+ "Profiles.xml", false);
+ if (!File.Exists("Auto Profiles.xml") &&
+ File.Exists(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\DS4Tool\Auto Profiles.xml"))
+ File.Copy(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\DS4Tool\Auto Profiles.xml",
+ "Auto Profiles.xml", false);
+ }
Graphics g = this.CreateGraphics();
try
@@ -162,10 +153,16 @@ namespace ScpServer
Log.GuiLog += On_Debug;
Log.TrayIconLog += ShowNotification;
// tmrUpdate.Enabled = true; TODO remove tmrUpdate and leave tick()
+ Global.SaveWhere();
+ if (!File.Exists(Global.appdatapath + @"\Profiles.xml"))
+ {
+ WelcomeDialog wd = new WelcomeDialog();
+ wd.ShowDialog();
+ }
+ Directory.CreateDirectory(Global.appdatapath);
Global.Load();
Global.setVersion(version);
Global.Save();
-
foreach (ToolStripMenuItem t in shortcuts)
t.DropDownItemClicked += Profile_Changed_Menu;
hideDS4CheckBox.CheckedChanged -= hideDS4CheckBox_CheckedChanged;
@@ -190,6 +187,7 @@ namespace ScpServer
RefreshProfiles();
for (int i = 0; i < 4; i++)
Global.LoadProfile(i);
+
Global.ControllerStatusChange += ControllerStatusChange;
ControllerStatusChanged();
if (btnStartStop.Enabled)
@@ -208,12 +206,8 @@ namespace ScpServer
nUDUpdateTime.Value = checkwhen;
}
Uri url = new Uri("https://dl.dropboxusercontent.com/u/16364552/DS4Tool/newest%20version.txt"); //Sorry other devs, gonna have to find your own server
- if (!Directory.Exists(Global.appdatapath))
- {
- WelcomeDialog wd = new WelcomeDialog();
- wd.ShowDialog();
- }
- Directory.CreateDirectory(Global.appdatapath);
+
+
if (checkwhen > 0 && DateTime.Now >= Global.getLastChecked() + TimeSpan.FromHours(checkwhen))
{
wc.DownloadFileAsync(url, Global.appdatapath + "\\version.txt");
@@ -230,12 +224,18 @@ namespace ScpServer
hotkeystimer.Start();
hotkeystimer.Tick += Hotkeys;
test.Tick += test_Tick;
+ if (Global.appdatapath == Directory.GetParent(Assembly.GetExecutingAssembly().Location).FullName
+ && Directory.Exists(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\DS4Tool"))
+ lLAppDataDelete.Visible = true;
+ if (!System.IO.Directory.Exists(Global.appdatapath + "\\Virtual Bus Driver"))
+ linkUninstall.Visible = false;
}
private void test_Tick(object sender, EventArgs e)
{
lBTest.Visible = true;
- lBTest.Text = filename;
+ lBTest.Text = Mapping.getByteMapping(DS4Controls.R1, rootHub.getDS4State(0)).ToString() + " " + rootHub.getDS4StateMapped(0).R2.ToString();
+ //lBTest.Text = rootHub.getDS4StateMapped(0).L2.ToString();
}
void Hotkeys(object sender, EventArgs e)
{
@@ -260,24 +260,31 @@ namespace ScpServer
if (tempprofile == "null")
for (int i = 0; i < programpaths.Count; i++)
{
- string name = Path.GetFileNameWithoutExtension(programpaths[i]);
- if (programpaths[i].ToLower() == GetTopWindowName().ToLower())
+ string name = programpaths[i].ToLower().Replace('/', '\\');
+ if (name == GetTopWindowName().ToLower().Replace('/', '\\'))
{
for (int j = 0; j < 4; j++)
if (proprofiles[j][i] != "(none)")
Global.LoadTempProfile(j, proprofiles[j][i]); //j is controller index, i is filename
- tempprofile = programpaths[i].ToLower();
+ tempprofile = name;
}
}
else
{
- if (tempprofile != GetTopWindowName().ToLower())
+ if (tempprofile != GetTopWindowName().ToLower().Replace('/', '\\'))
{
tempprofile = "null";
for (int j = 0; j < 4; j++)
Global.LoadProfile(j);
}
}
+ 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();
+ }
#region Old Process check
/*DateTime now = DateTime.UtcNow;
if (now >= oldnow + TimeSpan.FromSeconds(2))
@@ -429,14 +436,29 @@ namespace ScpServer
}
catch (DirectoryNotFoundException)
{
- if (Directory.Exists(Directory.GetParent(Assembly.GetExecutingAssembly().Location).FullName + @"\Profiles\"))
- MessageBox.Show("Please import or make a profile", "Profile Folder Moved");
- Directory.CreateDirectory(Global.appdatapath + @"\Profiles\");
- for (int i = 0; i < 4; i++)
+ if (Global.appdatapath == Directory.GetParent(Assembly.GetExecutingAssembly().Location).FullName)
{
- cbs[i].Text = "(No Profile Loaded)";
- shortcuts[i].Text = "Make Profile for Controller " + (i + 1);
- ebns[i].Text = "New";
+ if (Directory.Exists(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\DS4Tool" + @"\Profiles\"))
+ MessageBox.Show("Please import or make a profile", "Profile Folder Moved to program folder");
+ Directory.CreateDirectory(Global.appdatapath + @"\Profiles\");
+ for (int i = 0; i < 4; i++)
+ {
+ cbs[i].Text = "(No Profile Loaded)";
+ shortcuts[i].Text = "Make Profile for Controller " + (i + 1);
+ ebns[i].Text = "New";
+ }
+ }
+ else
+ {
+ if (Directory.Exists(Directory.GetParent(Assembly.GetExecutingAssembly().Location).FullName + @"\Profiles\"))
+ MessageBox.Show("Please import or make a profile", "Profile Folder Moved");
+ Directory.CreateDirectory(Global.appdatapath + @"\Profiles\");
+ for (int i = 0; i < 4; i++)
+ {
+ cbs[i].Text = "(No Profile Loaded)";
+ shortcuts[i].Text = "Make Profile for Controller " + (i + 1);
+ ebns[i].Text = "New";
+ }
}
}
finally
@@ -517,7 +539,6 @@ namespace ScpServer
this.Show();
this.ShowInTaskbar = true;
}
-
//Added last message alternative
if (this.Height > 220)
@@ -602,7 +623,7 @@ namespace ScpServer
if (Pads[Index].Text != "Connecting...")
{
Enable_Controls(Index, true);
- MinimumSize = new Size(MinimumSize.Width, 137 + 29 * Index);
+ //MinimumSize = new Size(MinimumSize.Width, 137 + 29 * Index);
}
}
else
@@ -732,7 +753,10 @@ namespace ScpServer
private void tSBImportProfile_Click(object sender, EventArgs e)
{
- openProfiles.InitialDirectory = Directory.GetParent(Assembly.GetExecutingAssembly().Location).FullName + @"\Profiles\";
+ if (Global.appdatapath == Directory.GetParent(Assembly.GetExecutingAssembly().Location).FullName)
+ openProfiles.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\DS4Tool" + @"\Profiles\";
+ else
+ openProfiles.InitialDirectory = Directory.GetParent(Assembly.GetExecutingAssembly().Location).FullName + @"\Profiles\";
if (openProfiles.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
string[] files = openProfiles.FileNames;
@@ -951,34 +975,6 @@ namespace ScpServer
private void tabMain_SelectedIndexChanged(object sender, EventArgs e)
{
lbLastMessage.Visible = tabMain.SelectedIndex != 2;
- if (tabMain.SelectedIndex == 3 && opt == null)
- {
- if (dpix == 120)
- {
- if (this.Size.Width < 930 || this.Size.Height < 392)
- oldsize = Size;
- if (this.Size.Height < 415)
- this.Size = new System.Drawing.Size(this.Size.Width, 392);
- if (this.Size.Width < 930)
- this.Size = new System.Drawing.Size(930, this.Size.Height);
- }
- else
- {
- if (this.Size.Width < 755 || this.Size.Height < 316)
- oldsize = Size;
- if (this.Size.Height < 316)
- this.Size = new System.Drawing.Size(this.Size.Width, 316);
- if (this.Size.Width < 755)
- this.Size = new System.Drawing.Size(755, this.Size.Height);
- }
-
- }
- else if (oldsize != new System.Drawing.Size(0, 0) && opt == null)
- {
- Size = oldsize;
- oldsize = new System.Drawing.Size(0, 0);
- }
-
}
private void lBProfiles_MouseDown(object sender, MouseEventArgs e)
@@ -1137,6 +1133,22 @@ namespace ScpServer
Global.setCheckWhen((int)nUDUpdateTime.Value * 24);
if (nUDUpdateTime.Value < 1)
cBUpdate.Checked = false;
+ if (nUDUpdateTime.Value == 1)
+ {
+ int index = cBUpdateTime.SelectedIndex;
+ cBUpdateTime.Items.Clear();
+ cBUpdateTime.Items.Add("hour");
+ cBUpdateTime.Items.Add("day");
+ cBUpdateTime.SelectedIndex = index;
+ }
+ else if (cBUpdateTime.Items[0].ToString() == "hour")
+ {
+ int index = cBUpdateTime.SelectedIndex;
+ cBUpdateTime.Items.Clear();
+ cBUpdateTime.Items.Add("hours");
+ cBUpdateTime.Items.Add("days");
+ cBUpdateTime.SelectedIndex = index;
+ }
}
private void cBUpdateTime_SelectedIndexChanged(object sender, EventArgs e)
@@ -1213,6 +1225,26 @@ namespace ScpServer
WelcomeDialog wd = new WelcomeDialog();
wd.ShowDialog();
}
+
+ private void ScpForm_Activated(object sender, EventArgs e)
+ {
+ if (!this.ShowInTaskbar)
+ {
+ this.Show();
+ this.ShowInTaskbar = true;
+ }
+ }
+
+ private void lLAppDataDelete_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
+ {
+ try { Directory.Delete(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\DS4Tool", true); }
+ catch{}
+ finally
+ {
+ MessageBox.Show("Old Settings Deleted");
+ lLAppDataDelete.Visible = false;
+ }
+ }
}
public class ThemeUtil
diff --git a/DS4Tool/WelcomeDialog.cs b/DS4Tool/WelcomeDialog.cs
index f591c92..e2ddd38 100644
--- a/DS4Tool/WelcomeDialog.cs
+++ b/DS4Tool/WelcomeDialog.cs
@@ -111,6 +111,7 @@ namespace ScpServer
}
catch { }
File.Delete(Global.appdatapath + "\\VBus.zip");
+ ((Timer)sender).Stop();
}
}
else
@@ -122,6 +123,7 @@ namespace ScpServer
{
bnStep1.Text = "Install Complete";
File.Delete(Global.appdatapath + "\\VBus.zip");
+ ((Timer)sender).Stop();
}
}
}
diff --git a/DS4Tool/WinProgs.Designer.cs b/DS4Tool/WinProgs.Designer.cs
index f41fae6..b11d9b7 100644
--- a/DS4Tool/WinProgs.Designer.cs
+++ b/DS4Tool/WinProgs.Designer.cs
@@ -40,14 +40,12 @@
this.lBController2 = new System.Windows.Forms.Label();
this.lBController3 = new System.Windows.Forms.Label();
this.lBController4 = new System.Windows.Forms.Label();
- this.lBBeta = new System.Windows.Forms.Label();
this.openProgram = new System.Windows.Forms.OpenFileDialog();
this.bnDelete = new System.Windows.Forms.Button();
this.iLIcons = new System.Windows.Forms.ImageList(this.components);
this.lVPrograms = new System.Windows.Forms.ListView();
this.nameHeader = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.PathHeader = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
- this.lBTip = new System.Windows.Forms.Label();
this.pBProfilesTip = new System.Windows.Forms.Label();
this.bnHideUnchecked = new System.Windows.Forms.Button();
this.cMSPrograms = new System.Windows.Forms.ContextMenuStrip(this.components);
@@ -60,10 +58,9 @@
//
// bnAddPrograms
//
- this.bnAddPrograms.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
- this.bnAddPrograms.Location = new System.Drawing.Point(516, 195);
+ this.bnAddPrograms.Location = new System.Drawing.Point(5, 2);
this.bnAddPrograms.Name = "bnAddPrograms";
- this.bnAddPrograms.Size = new System.Drawing.Size(114, 23);
+ this.bnAddPrograms.Size = new System.Drawing.Size(88, 23);
this.bnAddPrograms.TabIndex = 2;
this.bnAddPrograms.Text = "Add programs";
this.bnAddPrograms.UseVisualStyleBackColor = true;
@@ -72,9 +69,9 @@
// lBProgramPath
//
this.lBProgramPath.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
- this.lBProgramPath.Location = new System.Drawing.Point(602, 131);
+ this.lBProgramPath.Location = new System.Drawing.Point(519, 195);
this.lBProgramPath.Name = "lBProgramPath";
- this.lBProgramPath.Size = new System.Drawing.Size(47, 18);
+ this.lBProgramPath.Size = new System.Drawing.Size(205, 18);
this.lBProgramPath.TabIndex = 3;
this.lBProgramPath.Visible = false;
this.lBProgramPath.TextChanged += new System.EventHandler(this.lBProgramPath_TextChanged);
@@ -84,7 +81,7 @@
this.cBProfile1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.cBProfile1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cBProfile1.FormattingEnabled = true;
- this.cBProfile1.Location = new System.Drawing.Point(609, 18);
+ this.cBProfile1.Location = new System.Drawing.Point(609, 28);
this.cBProfile1.Name = "cBProfile1";
this.cBProfile1.Size = new System.Drawing.Size(121, 21);
this.cBProfile1.TabIndex = 6;
@@ -95,7 +92,7 @@
this.cBProfile2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.cBProfile2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cBProfile2.FormattingEnabled = true;
- this.cBProfile2.Location = new System.Drawing.Point(609, 45);
+ this.cBProfile2.Location = new System.Drawing.Point(609, 55);
this.cBProfile2.Name = "cBProfile2";
this.cBProfile2.Size = new System.Drawing.Size(121, 21);
this.cBProfile2.TabIndex = 6;
@@ -106,7 +103,7 @@
this.cBProfile3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.cBProfile3.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cBProfile3.FormattingEnabled = true;
- this.cBProfile3.Location = new System.Drawing.Point(609, 72);
+ this.cBProfile3.Location = new System.Drawing.Point(609, 82);
this.cBProfile3.Name = "cBProfile3";
this.cBProfile3.Size = new System.Drawing.Size(121, 21);
this.cBProfile3.TabIndex = 6;
@@ -117,7 +114,7 @@
this.cBProfile4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.cBProfile4.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cBProfile4.FormattingEnabled = true;
- this.cBProfile4.Location = new System.Drawing.Point(609, 99);
+ this.cBProfile4.Location = new System.Drawing.Point(609, 109);
this.cBProfile4.Name = "cBProfile4";
this.cBProfile4.Size = new System.Drawing.Size(121, 21);
this.cBProfile4.TabIndex = 6;
@@ -127,7 +124,7 @@
//
this.bnSave.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.bnSave.Enabled = false;
- this.bnSave.Location = new System.Drawing.Point(663, 126);
+ this.bnSave.Location = new System.Drawing.Point(663, 2);
this.bnSave.Name = "bnSave";
this.bnSave.Size = new System.Drawing.Size(67, 23);
this.bnSave.TabIndex = 2;
@@ -139,7 +136,7 @@
//
this.lBController1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.lBController1.AutoSize = true;
- this.lBController1.Location = new System.Drawing.Point(516, 21);
+ this.lBController1.Location = new System.Drawing.Point(516, 31);
this.lBController1.Name = "lBController1";
this.lBController1.Size = new System.Drawing.Size(60, 13);
this.lBController1.TabIndex = 7;
@@ -149,7 +146,7 @@
//
this.lBController2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.lBController2.AutoSize = true;
- this.lBController2.Location = new System.Drawing.Point(516, 48);
+ this.lBController2.Location = new System.Drawing.Point(516, 58);
this.lBController2.Name = "lBController2";
this.lBController2.Size = new System.Drawing.Size(60, 13);
this.lBController2.TabIndex = 7;
@@ -159,7 +156,7 @@
//
this.lBController3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.lBController3.AutoSize = true;
- this.lBController3.Location = new System.Drawing.Point(516, 75);
+ this.lBController3.Location = new System.Drawing.Point(516, 85);
this.lBController3.Name = "lBController3";
this.lBController3.Size = new System.Drawing.Size(60, 13);
this.lBController3.TabIndex = 7;
@@ -169,26 +166,12 @@
//
this.lBController4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.lBController4.AutoSize = true;
- this.lBController4.Location = new System.Drawing.Point(516, 102);
+ this.lBController4.Location = new System.Drawing.Point(516, 112);
this.lBController4.Name = "lBController4";
this.lBController4.Size = new System.Drawing.Size(60, 13);
this.lBController4.TabIndex = 7;
this.lBController4.Text = "Controller 4";
//
- // lBBeta
- //
- this.lBBeta.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
- this.lBBeta.AutoSize = true;
- this.lBBeta.BackColor = System.Drawing.Color.Transparent;
- this.lBBeta.Font = new System.Drawing.Font("Microsoft Sans Serif", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lBBeta.ForeColor = System.Drawing.SystemColors.GrayText;
- this.lBBeta.Location = new System.Drawing.Point(606, 175);
- this.lBBeta.Name = "lBBeta";
- this.lBBeta.Size = new System.Drawing.Size(38, 18);
- this.lBBeta.TabIndex = 8;
- this.lBBeta.Text = "Beta";
- this.lBBeta.Visible = false;
- //
// openProgram
//
this.openProgram.FileName = "openFileDialog1";
@@ -197,7 +180,7 @@
// bnDelete
//
this.bnDelete.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
- this.bnDelete.Location = new System.Drawing.Point(519, 126);
+ this.bnDelete.Location = new System.Drawing.Point(590, 2);
this.bnDelete.Name = "bnDelete";
this.bnDelete.Size = new System.Drawing.Size(67, 23);
this.bnDelete.TabIndex = 2;
@@ -222,10 +205,11 @@
this.PathHeader});
this.lVPrograms.FullRowSelect = true;
this.lVPrograms.LargeImageList = this.iLIcons;
- this.lVPrograms.Location = new System.Drawing.Point(5, 6);
+ this.lVPrograms.Location = new System.Drawing.Point(5, 28);
this.lVPrograms.MultiSelect = false;
this.lVPrograms.Name = "lVPrograms";
- this.lVPrograms.Size = new System.Drawing.Size(505, 212);
+ this.lVPrograms.ShowItemToolTips = true;
+ this.lVPrograms.Size = new System.Drawing.Size(505, 190);
this.lVPrograms.SmallImageList = this.iLIcons;
this.lVPrograms.TabIndex = 12;
this.lVPrograms.UseCompatibleStateImageBehavior = false;
@@ -243,26 +227,13 @@
this.PathHeader.Text = "Path";
this.PathHeader.Width = 358;
//
- // lBTip
- //
- this.lBTip.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
- this.lBTip.AutoSize = true;
- this.lBTip.BackColor = System.Drawing.Color.Transparent;
- this.lBTip.ForeColor = System.Drawing.SystemColors.GrayText;
- this.lBTip.Location = new System.Drawing.Point(529, 152);
- this.lBTip.Name = "lBTip";
- this.lBTip.Size = new System.Drawing.Size(191, 13);
- this.lBTip.TabIndex = 8;
- this.lBTip.Text = "Pick a program, then profiles, and save";
- this.lBTip.Visible = false;
- //
// pBProfilesTip
//
this.pBProfilesTip.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.pBProfilesTip.AutoSize = true;
this.pBProfilesTip.BackColor = System.Drawing.Color.Transparent;
this.pBProfilesTip.ForeColor = System.Drawing.SystemColors.GrayText;
- this.pBProfilesTip.Location = new System.Drawing.Point(620, 2);
+ this.pBProfilesTip.Location = new System.Drawing.Point(622, 136);
this.pBProfilesTip.Name = "pBProfilesTip";
this.pBProfilesTip.Size = new System.Drawing.Size(89, 13);
this.pBProfilesTip.TabIndex = 8;
@@ -270,8 +241,7 @@
//
// bnHideUnchecked
//
- this.bnHideUnchecked.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
- this.bnHideUnchecked.Location = new System.Drawing.Point(636, 195);
+ this.bnHideUnchecked.Location = new System.Drawing.Point(99, 2);
this.bnHideUnchecked.Name = "bnHideUnchecked";
this.bnHideUnchecked.Size = new System.Drawing.Size(94, 23);
this.bnHideUnchecked.TabIndex = 2;
@@ -324,6 +294,7 @@
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.Color.White;
this.ClientSize = new System.Drawing.Size(736, 222);
+ this.Controls.Add(this.pBProfilesTip);
this.Controls.Add(this.bnHideUnchecked);
this.Controls.Add(this.bnAddPrograms);
this.Controls.Add(this.lVPrograms);
@@ -338,9 +309,6 @@
this.Controls.Add(this.lBProgramPath);
this.Controls.Add(this.bnDelete);
this.Controls.Add(this.bnSave);
- this.Controls.Add(this.pBProfilesTip);
- this.Controls.Add(this.lBTip);
- this.Controls.Add(this.lBBeta);
this.Name = "WinProgs";
this.Text = "Auto-Profiles";
this.cMSPrograms.ResumeLayout(false);
@@ -362,14 +330,12 @@
private System.Windows.Forms.Label lBController2;
private System.Windows.Forms.Label lBController3;
private System.Windows.Forms.Label lBController4;
- private System.Windows.Forms.Label lBBeta;
private System.Windows.Forms.OpenFileDialog openProgram;
private System.Windows.Forms.Button bnDelete;
private System.Windows.Forms.ImageList iLIcons;
private System.Windows.Forms.ListView lVPrograms;
private System.Windows.Forms.ColumnHeader nameHeader;
private System.Windows.Forms.ColumnHeader PathHeader;
- private System.Windows.Forms.Label lBTip;
private System.Windows.Forms.Label pBProfilesTip;
private System.Windows.Forms.Button bnHideUnchecked;
private System.Windows.Forms.ContextMenuStrip cMSPrograms;
diff --git a/DS4Tool/WinProgs.cs b/DS4Tool/WinProgs.cs
index 82e1998..99fdf70 100644
--- a/DS4Tool/WinProgs.cs
+++ b/DS4Tool/WinProgs.cs
@@ -46,10 +46,14 @@ namespace ScpServer
Create();
LoadP();
- RegistryKey regKey = Registry.CurrentUser;
+ /*RegistryKey regKey = Registry.CurrentUser;
regKey = regKey.OpenSubKey(@"Software\Valve\Steam");
- if (regKey != null)
- steamgamesdir = regKey.GetValue("SteamPath").ToString() + @"\steamapps\common";
+
+ if (regKey != null)*/
+ if (Directory.Exists(@"C:\Program Files (x86)\Steam\steamapps\common"))
+ steamgamesdir = @"C:\Program Files (x86)\Steam\steamapps\common";
+ else if (Directory.Exists(@"C:\Program Files\Steam\steamapps\common"))
+ steamgamesdir = @"C:\Program Files\Steam\steamapps\common";
else
cMSPrograms.Items.Remove(addSteamGamesToolStripMenuItem);
@@ -106,6 +110,7 @@ namespace ScpServer
ListViewItem lvi = new ListViewItem(Path.GetFileNameWithoutExtension(st), index);
lvi.SubItems.Add(st);
lvi.Checked = true;
+ lvi.ToolTipText = st;
lVPrograms.Items.Add(lvi);
}
}
@@ -156,6 +161,7 @@ namespace ScpServer
iLIcons.Images.Add(Icon.ExtractAssociatedIcon(st));
ListViewItem lvi = new ListViewItem(Path.GetFileNameWithoutExtension(st), iLIcons.Images.Count + index);
lvi.SubItems.Add(st);
+ lvi.ToolTipText = st;
lVPrograms.Items.Add(lvi);
}
}
diff --git a/HidLibrary/HidLibrary.csproj b/HidLibrary/HidLibrary.csproj
index d030bc8..718f125 100644
--- a/HidLibrary/HidLibrary.csproj
+++ b/HidLibrary/HidLibrary.csproj
@@ -10,7 +10,7 @@
Properties
HidLibrary
HidLibrary
- v4.0
+ v4.5
512