mirror of
https://github.com/cemu-project/DS4Windows.git
synced 2024-12-26 16:41:50 +01:00
Truer Macro support: Record keystrokes and mouse clicks by the press and release, repeat a macro while button is held down or play once, option to record the delay between actions. NOTE: Recommended that you re-record macros, however old macros will work)
Mouse movement works a bit better Fix for startup shortcut disappearing/unchecking When programs that are used in auto-profiles are uninstalled, they are removed from the auto profile list Support for Scan code keys in macros
This commit is contained in:
parent
03b4c66ff3
commit
320dec8378
@ -240,6 +240,7 @@ namespace DS4Control
|
||||
if (gkp.previous.scanCodeCount != 0) // use the last type of VK/SC
|
||||
{
|
||||
InputMethods.performSCKeyRelease(kvp.Key);
|
||||
InputMethods.performKeyRelease(kvp.Key);
|
||||
pressagain = false;
|
||||
}
|
||||
else
|
||||
@ -289,26 +290,6 @@ namespace DS4Control
|
||||
string macro = Global.getCustomMacro(device, what);
|
||||
if (macro != "0")
|
||||
{
|
||||
/*DS4KeyType keyType = Global.getCustomKeyType(device, what);
|
||||
SyntheticState.KeyPresses kp;
|
||||
string[] skeys = macro.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++;
|
||||
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 (Global.getCustomKey(device, what) != 0)
|
||||
{
|
||||
@ -492,79 +473,67 @@ namespace DS4Control
|
||||
{
|
||||
|
||||
resetToDefaultValue(customKey.Key, MappedState);
|
||||
string[] skeys = customKey.Value.Split('/');
|
||||
ushort[] keys = new ushort[skeys.Length];
|
||||
string[] skeys;
|
||||
int[] keys;
|
||||
if (!string.IsNullOrEmpty(customKey.Value))
|
||||
{
|
||||
skeys = customKey.Value.Split('/');
|
||||
keys = new int[skeys.Length];
|
||||
}
|
||||
else
|
||||
{
|
||||
skeys = new string[0];
|
||||
keys = new int[0];
|
||||
}
|
||||
for (int i = 0; i < keys.Length; i++)
|
||||
keys[i] = ushort.Parse(skeys[i]);
|
||||
bool timedmacro = false;
|
||||
for (int i = 0; i < keys.Length; i++)
|
||||
if (keys[i] > 300)
|
||||
{
|
||||
timedmacro = true;
|
||||
break;
|
||||
}
|
||||
if (timedmacro && !macrodone[DS4ControltoInt(customKey.Key)])
|
||||
bool[] keydown = new bool[261];
|
||||
if (!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
|
||||
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 if (!keydown[keys[i]])
|
||||
{
|
||||
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 if (keyType.HasFlag(DS4KeyType.ScanCode))
|
||||
InputMethods.performSCKeyPress((ushort)keys[i]);
|
||||
else
|
||||
InputMethods.performKeyPress((ushort)keys[i]);
|
||||
keydown[keys[i]] = true;
|
||||
}
|
||||
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++;
|
||||
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 (keyType.HasFlag(DS4KeyType.ScanCode))
|
||||
InputMethods.performSCKeyRelease((ushort)keys[i]);
|
||||
else
|
||||
kp.current.vkCount++;
|
||||
kp.current.repeatCount++;
|
||||
InputMethods.performKeyRelease((ushort)keys[i]);
|
||||
keydown[keys[i]] = false;
|
||||
}
|
||||
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();
|
||||
}
|
||||
for (ushort i = 0; i < keydown.Length; i++)
|
||||
{
|
||||
if (keydown[i])
|
||||
if (keyType.HasFlag(DS4KeyType.ScanCode))
|
||||
kp.current.scanCodeCount++;
|
||||
InputMethods.performSCKeyRelease(i);
|
||||
else
|
||||
kp.current.vkCount++;
|
||||
kp.current.repeatCount++;
|
||||
}
|
||||
InputMethods.performKeyRelease(i);
|
||||
}
|
||||
if (keyType.HasFlag(DS4KeyType.HoldMacro))
|
||||
{
|
||||
await Task.Delay(50);
|
||||
macrodone[DS4ControltoInt(customKey.Key)] = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -600,7 +569,7 @@ namespace DS4Control
|
||||
}
|
||||
|
||||
|
||||
bool LX = false, LY = false, RX = false, RY = false, L2 = false, R2 = false;
|
||||
bool LX = false, LY = false, RX = false, RY = false;
|
||||
MappedState.LX = 127;
|
||||
MappedState.LY = 127;
|
||||
MappedState.RX = 127;
|
||||
@ -853,58 +822,60 @@ namespace DS4Control
|
||||
int deadzone = 10;
|
||||
double value = 0;
|
||||
int speed = Global.getButtonMouseSensitivity(device);
|
||||
double root = 1.002;
|
||||
double divide = 10000d;
|
||||
DateTime now = mousenow[mnum];
|
||||
switch (control)
|
||||
{
|
||||
case DS4Controls.LXNeg:
|
||||
if (cState.LX < 127 - deadzone)
|
||||
value = Math.Pow(1.01 + speed / 10000d, -(cState.LX - 127)) - 1;
|
||||
value = Math.Pow(root + speed / divide, -(cState.LX - 127)) - 1;
|
||||
break;
|
||||
case DS4Controls.LXPos:
|
||||
if (cState.LX > 127 + deadzone)
|
||||
value = Math.Pow(1.01 + speed / 10000d, (cState.LX - 127)) -1;
|
||||
value = Math.Pow(root + speed / divide, (cState.LX - 127)) -1;
|
||||
break;
|
||||
case DS4Controls.RXNeg:
|
||||
if (cState.RX < 127 - deadzone)
|
||||
value = Math.Pow(1.01 + speed / 10000d, -(cState.RX - 127)) - 1;
|
||||
value = Math.Pow(root + speed / divide, -(cState.RX - 127)) - 1;
|
||||
break;
|
||||
case DS4Controls.RXPos:
|
||||
if (cState.RX > 127 + deadzone)
|
||||
value = Math.Pow(1.01 + speed / 10000d, (cState.RX - 127)) - 1;
|
||||
value = Math.Pow(root + speed / divide, (cState.RX - 127)) - 1;
|
||||
break;
|
||||
case DS4Controls.LYNeg:
|
||||
if (cState.LY < 127 - deadzone)
|
||||
value = Math.Pow(1.01 + speed / 10000d, -(cState.LY - 127)) - 1;
|
||||
value = Math.Pow(root + speed / divide, -(cState.LY - 127)) - 1;
|
||||
break;
|
||||
case DS4Controls.LYPos:
|
||||
if (cState.LY > 127 + deadzone)
|
||||
value = Math.Pow(1.01 + speed / 10000d,(cState.LY - 127)) - 1;
|
||||
value = Math.Pow(root + speed / divide,(cState.LY - 127)) - 1;
|
||||
break;
|
||||
case DS4Controls.RYNeg:
|
||||
if (cState.RY < 127 - deadzone)
|
||||
value = Math.Pow(1.01 + speed / 10000d,-(cState.RY - 127)) - 1;
|
||||
value = Math.Pow(root + speed / divide,-(cState.RY - 127)) - 1;
|
||||
break;
|
||||
case DS4Controls.RYPos:
|
||||
if (cState.RY > 127 + deadzone)
|
||||
value = Math.Pow(1.01 + speed / 10000d, (cState.RY - 127)) - 1;
|
||||
value = Math.Pow(root + speed / divide, (cState.RY - 127)) - 1;
|
||||
break;
|
||||
case DS4Controls.Share: value = (cState.Share ? Math.Pow(1.01 + speed / 10000d, 100) - 1 : 0); break;
|
||||
case DS4Controls.Options: value = (cState.Options ? Math.Pow(1.01 + speed / 10000d, 100) - 1 : 0); break;
|
||||
case DS4Controls.L1: value = (cState.L1 ? Math.Pow(1.01 + speed / 10000d, 100) - 1 : 0); break;
|
||||
case DS4Controls.R1: value = (cState.R1 ? Math.Pow(1.01 + speed / 10000d, 100) - 1 : 0); break;
|
||||
case DS4Controls.L3: value = (cState.L3 ? Math.Pow(1.01 + speed / 10000d, 100) - 1 : 0); break;
|
||||
case DS4Controls.R3: value = (cState.R3 ? Math.Pow(1.01 + speed / 10000d, 100) - 1 : 0); break;
|
||||
case DS4Controls.DpadUp: value = (cState.DpadUp ? Math.Pow(1.01 + speed / 10000d, 100) - 1 : 0); break;
|
||||
case DS4Controls.DpadDown: value = (cState.DpadDown ? Math.Pow(1.01 + speed / 10000d, 100) - 1 : 0); break;
|
||||
case DS4Controls.DpadLeft: value = (cState.DpadLeft ? Math.Pow(1.01 + speed / 10000d, 100) - 1 : 0); break;
|
||||
case DS4Controls.DpadRight: value = (cState.DpadRight ? Math.Pow(1.01 + speed / 10000d, 100) - 1 : 0); break;
|
||||
case DS4Controls.PS: value = (cState.PS ? Math.Pow(1.01 + speed / 10000d, 100) - 1 : 0); break;
|
||||
case DS4Controls.Cross: value = (cState.Cross ? Math.Pow(1.01 + speed / 10000d, 100) - 1 : 0); break;
|
||||
case DS4Controls.Square: value = (cState.Square ? Math.Pow(1.01 + speed / 10000d, 100) - 1 : 0); break;
|
||||
case DS4Controls.Triangle: value = (cState.Triangle ? Math.Pow(1.01 + speed / 10000d, 100) - 1 : 0); break;
|
||||
case DS4Controls.Circle: value = (cState.Circle ? Math.Pow(1.01 + speed / 10000d, 100) - 1 : 0); break;
|
||||
case DS4Controls.L2: value = Math.Pow(1.01 + speed / 10000d, cState.L2 / 2d) - 1; break;
|
||||
case DS4Controls.R2: value = Math.Pow(1.01 + speed / 10000d, cState.R2 / 2d) - 1; break;
|
||||
case DS4Controls.Share: value = (cState.Share ? Math.Pow(root + speed / divide, 100) - 1 : 0); break;
|
||||
case DS4Controls.Options: value = (cState.Options ? Math.Pow(root + speed / divide, 100) - 1 : 0); break;
|
||||
case DS4Controls.L1: value = (cState.L1 ? Math.Pow(root + speed / divide, 100) - 1 : 0); break;
|
||||
case DS4Controls.R1: value = (cState.R1 ? Math.Pow(root + speed / divide, 100) - 1 : 0); break;
|
||||
case DS4Controls.L3: value = (cState.L3 ? Math.Pow(root + speed / divide, 100) - 1 : 0); break;
|
||||
case DS4Controls.R3: value = (cState.R3 ? Math.Pow(root + speed / divide, 100) - 1 : 0); break;
|
||||
case DS4Controls.DpadUp: value = (cState.DpadUp ? Math.Pow(root + speed / divide, 100) - 1 : 0); break;
|
||||
case DS4Controls.DpadDown: value = (cState.DpadDown ? Math.Pow(root + speed / divide, 100) - 1 : 0); break;
|
||||
case DS4Controls.DpadLeft: value = (cState.DpadLeft ? Math.Pow(root + speed / divide, 100) - 1 : 0); break;
|
||||
case DS4Controls.DpadRight: value = (cState.DpadRight ? Math.Pow(root + speed / divide, 100) - 1 : 0); break;
|
||||
case DS4Controls.PS: value = (cState.PS ? Math.Pow(root + speed / divide, 100) - 1 : 0); break;
|
||||
case DS4Controls.Cross: value = (cState.Cross ? Math.Pow(root + speed / divide, 100) - 1 : 0); break;
|
||||
case DS4Controls.Square: value = (cState.Square ? Math.Pow(root + speed / divide, 100) - 1 : 0); break;
|
||||
case DS4Controls.Triangle: value = (cState.Triangle ? Math.Pow(root + speed / divide, 100) - 1 : 0); break;
|
||||
case DS4Controls.Circle: value = (cState.Circle ? Math.Pow(root + speed / divide, 100) - 1 : 0); break;
|
||||
case DS4Controls.L2: value = Math.Pow(root + speed / divide, cState.L2 / 2d) - 1; break;
|
||||
case DS4Controls.R2: value = Math.Pow(root + speed / divide, cState.R2 / 2d) - 1; break;
|
||||
}
|
||||
//if (value != 0)
|
||||
//mvalue = value;
|
||||
@ -917,7 +888,7 @@ namespace DS4Control
|
||||
now = DateTime.UtcNow;
|
||||
if (value <= 1)
|
||||
{
|
||||
if (now >= mousenow[mnum] + TimeSpan.FromMilliseconds((1 - value) * 250))
|
||||
if (now >= mousenow[mnum] + TimeSpan.FromMilliseconds((1 - value) * 500))
|
||||
{
|
||||
mousenow[mnum] = now;
|
||||
return 1;
|
||||
@ -926,7 +897,7 @@ namespace DS4Control
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
return (int)Math.Round(value, 0);
|
||||
return (int)value;
|
||||
}
|
||||
|
||||
public static bool compare(byte b1, byte b2)
|
||||
|
@ -11,7 +11,7 @@ using System.Security.Principal;
|
||||
namespace DS4Control
|
||||
{
|
||||
[Flags]
|
||||
public enum DS4KeyType : byte { None = 0, ScanCode = 1, Toggle = 2, Unbound = 4, Macro = 8 }; //Increment by exponents of 2*, starting at 2^0
|
||||
public enum DS4KeyType : byte { None = 0, ScanCode = 1, Toggle = 2, Unbound = 4, Macro = 8, HoldMacro = 16, RepeatMacro = 32 }; //Increment by exponents of 2*, starting at 2^0
|
||||
public enum Ds3PadId : byte { None = 0xFF, One = 0x00, Two = 0x01, Three = 0x02, Four = 0x03, All = 0x04 };
|
||||
public enum DS4Controls : byte { None, LXNeg, LXPos, LYNeg, LYPos, RXNeg, RXPos, RYNeg, RYPos, L1, L2, L3, R1, R2, R3, Square, Triangle, Circle, Cross, DpadUp, DpadRight, DpadDown, DpadLeft, PS, TouchLeft, TouchUpper, TouchMulti, TouchRight, Share, Options };
|
||||
public enum X360Controls : byte { None, LXNeg, LXPos, LYNeg, LYPos, RXNeg, RXPos, RYNeg, RYPos, LB, LT, LS, RB, RT, RS, X, Y, B, A, DpadUp, DpadRight, DpadDown, DpadLeft, Guide, Back, Start, LeftMouse, RightMouse, MiddleMouse, FourthMouse, FifthMouse, WUP, WDOWN, MouseUp, MouseDown, MouseLeft, MouseRight, Unbound };
|
||||
@ -728,6 +728,8 @@ namespace DS4Control
|
||||
keyType += DS4KeyType.Unbound;
|
||||
}
|
||||
{
|
||||
if (button.Font.Strikeout)
|
||||
keyType += DS4KeyType.HoldMacro;
|
||||
if (button.Font.Underline)
|
||||
keyType += DS4KeyType.Macro;
|
||||
if (button.Font.Italic)
|
||||
@ -970,8 +972,10 @@ namespace DS4Control
|
||||
bool SC = Item.InnerText.Contains(DS4KeyType.ScanCode.ToString());
|
||||
bool TG = Item.InnerText.Contains(DS4KeyType.Toggle.ToString());
|
||||
bool MC = Item.InnerText.Contains(DS4KeyType.Macro.ToString());
|
||||
button.Font = new Font(button.Font, (SC ? FontStyle.Bold : FontStyle.Regular) |
|
||||
(TG ? FontStyle.Italic : FontStyle.Regular) | (MC ? FontStyle.Underline : FontStyle.Regular));
|
||||
bool MR = Item.InnerText.Contains(DS4KeyType.HoldMacro.ToString());
|
||||
button.Font = new Font(button.Font,
|
||||
(SC ? FontStyle.Bold : FontStyle.Regular) | (TG ? FontStyle.Italic : FontStyle.Regular) |
|
||||
(MC ? FontStyle.Underline : FontStyle.Regular) | (MR ? FontStyle.Strikeout : FontStyle.Regular));
|
||||
if (Item.InnerText.Contains(DS4KeyType.ScanCode.ToString()))
|
||||
keyType |= DS4KeyType.ScanCode;
|
||||
if (Item.InnerText.Contains(DS4KeyType.Toggle.ToString()))
|
||||
@ -999,7 +1003,7 @@ namespace DS4Control
|
||||
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.Text = "Macro";
|
||||
button.Tag = keys;
|
||||
customMapMacros.Add(getDS4ControlsByName(button.Name), Item.InnerText);
|
||||
}
|
||||
@ -1162,6 +1166,8 @@ namespace DS4Control
|
||||
keyType |= DS4KeyType.Toggle;
|
||||
if (item.InnerText.Contains(DS4KeyType.Macro.ToString()))
|
||||
keyType |= DS4KeyType.Macro;
|
||||
if (item.InnerText.Contains(DS4KeyType.HoldMacro.ToString()))
|
||||
keyType |= DS4KeyType.HoldMacro;
|
||||
if (item.InnerText.Contains(DS4KeyType.Unbound.ToString()))
|
||||
keyType |= DS4KeyType.Unbound;
|
||||
if (keyType != DS4KeyType.None)
|
||||
|
@ -127,6 +127,12 @@
|
||||
<DesignTime>True</DesignTime>
|
||||
<DependentUpon>Resources.resx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="RecordBox.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="RecordBox.Designer.cs">
|
||||
<DependentUpon>RecordBox.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Resource.es.Designer.cs">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DesignTime>True</DesignTime>
|
||||
@ -177,6 +183,9 @@
|
||||
<SubType>Designer</SubType>
|
||||
<LastGenOutput>Resources1.Designer.cs</LastGenOutput>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="RecordBox.resx">
|
||||
<DependentUpon>RecordBox.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Resource.es.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>Resource.es.Designer.cs</LastGenOutput>
|
||||
@ -231,6 +240,7 @@
|
||||
<None Include="Resources\delete.png" />
|
||||
<None Include="Resources\BT.png" />
|
||||
<None Include="Resources\DS4 Controller.png" />
|
||||
<None Include="Resources\Clock.png" />
|
||||
<Content Include="Resources\DS4.ico" />
|
||||
<None Include="Resources\mouse.png" />
|
||||
<None Include="Resources\rainbow.png" />
|
||||
|
139
DS4Tool/KBM360.Designer.cs
generated
139
DS4Tool/KBM360.Designer.cs
generated
@ -182,16 +182,10 @@
|
||||
this.pictureBox1 = new System.Windows.Forms.PictureBox();
|
||||
this.X360Label = new System.Windows.Forms.Label();
|
||||
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.nUDDelay = new System.Windows.Forms.NumericUpDown();
|
||||
this.lBms = new System.Windows.Forms.Label();
|
||||
this.lBDelay = new System.Windows.Forms.Label();
|
||||
this.lBMacroOn = new System.Windows.Forms.Label();
|
||||
this.btnMacro = new System.Windows.Forms.Button();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
|
||||
this.pnLDelay.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.nUDDelay)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// lBTip
|
||||
@ -208,7 +202,7 @@
|
||||
// cbScanCode
|
||||
//
|
||||
this.cbScanCode.AutoSize = true;
|
||||
this.cbScanCode.Location = new System.Drawing.Point(706, 5);
|
||||
this.cbScanCode.Location = new System.Drawing.Point(677, 5);
|
||||
this.cbScanCode.Name = "cbScanCode";
|
||||
this.cbScanCode.RightToLeft = System.Windows.Forms.RightToLeft.Yes;
|
||||
this.cbScanCode.Size = new System.Drawing.Size(79, 17);
|
||||
@ -965,6 +959,7 @@
|
||||
this.btnSLASH.Size = new System.Drawing.Size(24, 24);
|
||||
this.btnSLASH.TabIndex = 219;
|
||||
this.btnSLASH.TabStop = false;
|
||||
this.btnSLASH.Tag = "191";
|
||||
this.btnSLASH.Text = "/";
|
||||
this.btnSLASH.UseVisualStyleBackColor = true;
|
||||
//
|
||||
@ -1399,7 +1394,7 @@
|
||||
//
|
||||
// bTNRIGHTMOUSE
|
||||
//
|
||||
this.bTNRIGHTMOUSE.Location = new System.Drawing.Point(813, 82);
|
||||
this.bTNRIGHTMOUSE.Location = new System.Drawing.Point(824, 82);
|
||||
this.bTNRIGHTMOUSE.Name = "bTNRIGHTMOUSE";
|
||||
this.bTNRIGHTMOUSE.Size = new System.Drawing.Size(24, 24);
|
||||
this.bTNRIGHTMOUSE.TabIndex = 178;
|
||||
@ -1421,7 +1416,7 @@
|
||||
//
|
||||
// bnWHEELDOWN
|
||||
//
|
||||
this.bnWHEELDOWN.Location = new System.Drawing.Point(783, 107);
|
||||
this.bnWHEELDOWN.Location = new System.Drawing.Point(794, 107);
|
||||
this.bnWHEELDOWN.Name = "bnWHEELDOWN";
|
||||
this.bnWHEELDOWN.Size = new System.Drawing.Size(24, 21);
|
||||
this.bnWHEELDOWN.TabIndex = 175;
|
||||
@ -1432,7 +1427,7 @@
|
||||
//
|
||||
// bnWHEELUP
|
||||
//
|
||||
this.bnWHEELUP.Location = new System.Drawing.Point(783, 59);
|
||||
this.bnWHEELUP.Location = new System.Drawing.Point(794, 59);
|
||||
this.bnWHEELUP.Name = "bnWHEELUP";
|
||||
this.bnWHEELUP.Size = new System.Drawing.Size(24, 22);
|
||||
this.bnWHEELUP.TabIndex = 174;
|
||||
@ -1443,7 +1438,7 @@
|
||||
//
|
||||
// btnMIDDLEMOUSE
|
||||
//
|
||||
this.btnMIDDLEMOUSE.Location = new System.Drawing.Point(783, 82);
|
||||
this.btnMIDDLEMOUSE.Location = new System.Drawing.Point(794, 82);
|
||||
this.btnMIDDLEMOUSE.Name = "btnMIDDLEMOUSE";
|
||||
this.btnMIDDLEMOUSE.Size = new System.Drawing.Size(24, 24);
|
||||
this.btnMIDDLEMOUSE.TabIndex = 176;
|
||||
@ -1465,7 +1460,7 @@
|
||||
//
|
||||
// button33
|
||||
//
|
||||
this.button33.Location = new System.Drawing.Point(818, 147);
|
||||
this.button33.Location = new System.Drawing.Point(829, 147);
|
||||
this.button33.Name = "button33";
|
||||
this.button33.Size = new System.Drawing.Size(19, 24);
|
||||
this.button33.TabIndex = 169;
|
||||
@ -1476,7 +1471,7 @@
|
||||
//
|
||||
// button30
|
||||
//
|
||||
this.button30.Location = new System.Drawing.Point(753, 146);
|
||||
this.button30.Location = new System.Drawing.Point(764, 146);
|
||||
this.button30.Name = "button30";
|
||||
this.button30.Size = new System.Drawing.Size(19, 24);
|
||||
this.button30.TabIndex = 173;
|
||||
@ -1487,7 +1482,7 @@
|
||||
//
|
||||
// bnMOUSERIGHT
|
||||
//
|
||||
this.bnMOUSERIGHT.Location = new System.Drawing.Point(827, 117);
|
||||
this.bnMOUSERIGHT.Location = new System.Drawing.Point(841, 117);
|
||||
this.bnMOUSERIGHT.Name = "bnMOUSERIGHT";
|
||||
this.bnMOUSERIGHT.Size = new System.Drawing.Size(24, 24);
|
||||
this.bnMOUSERIGHT.TabIndex = 171;
|
||||
@ -1498,7 +1493,7 @@
|
||||
//
|
||||
// bnMOUSELEFT
|
||||
//
|
||||
this.bnMOUSELEFT.Location = new System.Drawing.Point(736, 118);
|
||||
this.bnMOUSELEFT.Location = new System.Drawing.Point(743, 118);
|
||||
this.bnMOUSELEFT.Name = "bnMOUSELEFT";
|
||||
this.bnMOUSELEFT.Size = new System.Drawing.Size(24, 24);
|
||||
this.bnMOUSELEFT.TabIndex = 172;
|
||||
@ -1509,7 +1504,7 @@
|
||||
//
|
||||
// bnMOUSEDOWN
|
||||
//
|
||||
this.bnMOUSEDOWN.Location = new System.Drawing.Point(783, 167);
|
||||
this.bnMOUSEDOWN.Location = new System.Drawing.Point(794, 167);
|
||||
this.bnMOUSEDOWN.Name = "bnMOUSEDOWN";
|
||||
this.bnMOUSEDOWN.Size = new System.Drawing.Size(24, 24);
|
||||
this.bnMOUSEDOWN.TabIndex = 170;
|
||||
@ -1520,7 +1515,7 @@
|
||||
//
|
||||
// bnMOUSEUP
|
||||
//
|
||||
this.bnMOUSEUP.Location = new System.Drawing.Point(783, 25);
|
||||
this.bnMOUSEUP.Location = new System.Drawing.Point(794, 25);
|
||||
this.bnMOUSEUP.Name = "bnMOUSEUP";
|
||||
this.bnMOUSEUP.Size = new System.Drawing.Size(24, 24);
|
||||
this.bnMOUSEUP.TabIndex = 167;
|
||||
@ -1531,7 +1526,7 @@
|
||||
//
|
||||
// btnLEFTMOUSE
|
||||
//
|
||||
this.btnLEFTMOUSE.Location = new System.Drawing.Point(753, 82);
|
||||
this.btnLEFTMOUSE.Location = new System.Drawing.Point(764, 82);
|
||||
this.btnLEFTMOUSE.Name = "btnLEFTMOUSE";
|
||||
this.btnLEFTMOUSE.Size = new System.Drawing.Size(24, 24);
|
||||
this.btnLEFTMOUSE.TabIndex = 168;
|
||||
@ -1555,7 +1550,7 @@
|
||||
// pictureBox2
|
||||
//
|
||||
this.pictureBox2.Image = global::ScpServer.Properties.Resources.mouse;
|
||||
this.pictureBox2.Location = new System.Drawing.Point(747, 41);
|
||||
this.pictureBox2.Location = new System.Drawing.Point(758, 41);
|
||||
this.pictureBox2.Name = "pictureBox2";
|
||||
this.pictureBox2.Size = new System.Drawing.Size(97, 140);
|
||||
this.pictureBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
|
||||
@ -1565,7 +1560,7 @@
|
||||
// cbToggle
|
||||
//
|
||||
this.cbToggle.AutoSize = true;
|
||||
this.cbToggle.Location = new System.Drawing.Point(641, 5);
|
||||
this.cbToggle.Location = new System.Drawing.Point(604, 5);
|
||||
this.cbToggle.Name = "cbToggle";
|
||||
this.cbToggle.RightToLeft = System.Windows.Forms.RightToLeft.Yes;
|
||||
this.cbToggle.Size = new System.Drawing.Size(59, 17);
|
||||
@ -1875,7 +1870,7 @@
|
||||
// X360Label
|
||||
//
|
||||
this.X360Label.AutoSize = true;
|
||||
this.X360Label.Location = new System.Drawing.Point(393, 202);
|
||||
this.X360Label.Location = new System.Drawing.Point(393, 210);
|
||||
this.X360Label.Name = "X360Label";
|
||||
this.X360Label.Size = new System.Drawing.Size(73, 13);
|
||||
this.X360Label.TabIndex = 318;
|
||||
@ -1890,79 +1885,34 @@
|
||||
this.KBMlabel.TabIndex = 318;
|
||||
this.KBMlabel.Text = "Keyboard and Mouse";
|
||||
//
|
||||
// cBMacro
|
||||
// lBMacroOn
|
||||
//
|
||||
this.cBMacro.AutoSize = true;
|
||||
this.cBMacro.Location = new System.Drawing.Point(791, 5);
|
||||
this.cBMacro.Name = "cBMacro";
|
||||
this.cBMacro.RightToLeft = System.Windows.Forms.RightToLeft.Yes;
|
||||
this.cBMacro.Size = new System.Drawing.Size(56, 17);
|
||||
this.cBMacro.TabIndex = 287;
|
||||
this.cBMacro.TabStop = false;
|
||||
this.cBMacro.Text = "Macro";
|
||||
this.cBMacro.UseVisualStyleBackColor = true;
|
||||
this.cBMacro.CheckedChanged += new System.EventHandler(this.cBMacro_CheckedChanged);
|
||||
this.lBMacroOn.AutoSize = true;
|
||||
this.lBMacroOn.Location = new System.Drawing.Point(10, 6);
|
||||
this.lBMacroOn.Name = "lBMacroOn";
|
||||
this.lBMacroOn.Size = new System.Drawing.Size(173, 13);
|
||||
this.lBMacroOn.TabIndex = 319;
|
||||
this.lBMacroOn.Text = "Macro On, Choose a key to disable";
|
||||
this.lBMacroOn.Visible = false;
|
||||
//
|
||||
// lBMacroOrder
|
||||
// btnMacro
|
||||
//
|
||||
this.lBMacroOrder.AutoSize = true;
|
||||
this.lBMacroOrder.Location = new System.Drawing.Point(12, 6);
|
||||
this.lBMacroOrder.Name = "lBMacroOrder";
|
||||
this.lBMacroOrder.Size = new System.Drawing.Size(72, 13);
|
||||
this.lBMacroOrder.TabIndex = 319;
|
||||
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;
|
||||
//
|
||||
// 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.TabStop = false;
|
||||
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";
|
||||
//
|
||||
// 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";
|
||||
this.btnMacro.Location = new System.Drawing.Point(761, 1);
|
||||
this.btnMacro.Name = "btnMacro";
|
||||
this.btnMacro.Size = new System.Drawing.Size(104, 23);
|
||||
this.btnMacro.TabIndex = 321;
|
||||
this.btnMacro.TabStop = false;
|
||||
this.btnMacro.Text = "Record a Macro";
|
||||
this.btnMacro.UseVisualStyleBackColor = true;
|
||||
this.btnMacro.Click += new System.EventHandler(this.btnMacro_Click);
|
||||
//
|
||||
// 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.ClientSize = new System.Drawing.Size(868, 403);
|
||||
this.Controls.Add(this.btnMacro);
|
||||
this.Controls.Add(this.lBMacroOn);
|
||||
this.Controls.Add(this.KBMlabel);
|
||||
this.Controls.Add(this.X360Label);
|
||||
this.Controls.Add(this.btnUNBOUND2);
|
||||
@ -2116,7 +2066,6 @@
|
||||
this.Controls.Add(this.btnLEFTMOUSE);
|
||||
this.Controls.Add(this.btnQ);
|
||||
this.Controls.Add(this.pictureBox2);
|
||||
this.Controls.Add(this.cBMacro);
|
||||
this.Controls.Add(this.cbToggle);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
||||
this.KeyPreview = true;
|
||||
@ -2126,11 +2075,9 @@
|
||||
this.Text = "Keybaord";
|
||||
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.finalMeasure);
|
||||
this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Key_Down_Action);
|
||||
this.KeyUp += new System.Windows.Forms.KeyEventHandler(this.Key_Up_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();
|
||||
|
||||
@ -2292,12 +2239,8 @@
|
||||
private System.Windows.Forms.PictureBox pictureBox1;
|
||||
private System.Windows.Forms.Label X360Label;
|
||||
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;
|
||||
private System.Windows.Forms.Button btnMacro;
|
||||
public System.Windows.Forms.Label lBMacroOn;
|
||||
|
||||
}
|
||||
}
|
@ -15,6 +15,9 @@ namespace ScpServer
|
||||
private int device;
|
||||
private Button button;
|
||||
private Options ops;
|
||||
public List<string> macros = new List<string>();
|
||||
public List<int> macrostag = new List<int>();
|
||||
public bool macrorepeat;
|
||||
public KBM360(DS4Control.Control bus_device, int deviceNum, Options ooo, Button buton)
|
||||
{
|
||||
InitializeComponent();
|
||||
@ -24,13 +27,12 @@ namespace ScpServer
|
||||
button = buton;
|
||||
cbToggle.Checked = button.Font.Italic;
|
||||
cbScanCode.Checked = button.Font.Bold;
|
||||
cBMacro.Checked = button.Font.Underline;
|
||||
if (cBMacro.Checked)
|
||||
lBMacroOrder.Text += button.Text;
|
||||
//cBMacro.Checked = button.Font.Underline;
|
||||
lBMacroOn.Visible = button.Font.Underline;
|
||||
Text = "Select an action for " + button.Name.Substring(2);
|
||||
foreach (System.Windows.Forms.Control control in this.Controls)
|
||||
if (control is Button)
|
||||
((Button)control).Click += new System.EventHandler(anybtn_Click);
|
||||
((Button)control).Click += anybtn_Click;
|
||||
if (button.Name.Contains("Touch"))
|
||||
{
|
||||
bnMOUSEDOWN.Visible = false;
|
||||
@ -38,14 +40,12 @@ namespace ScpServer
|
||||
bnMOUSERIGHT.Visible = false;
|
||||
bnMOUSEUP.Visible = false;
|
||||
}
|
||||
ToolTip tp = new ToolTip();
|
||||
tp.SetToolTip(cBMacro, "Max 5 actions");
|
||||
ActiveControl = null;
|
||||
}
|
||||
List<string> macros = new List<string>();
|
||||
List<int> macrostag = new List<int>();
|
||||
|
||||
public void anybtn_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (sender is Button)
|
||||
if (sender is Button && ((Button)sender).Name != "btnMacro")
|
||||
{
|
||||
Button bn = ((Button)sender);
|
||||
string keyname;
|
||||
@ -67,111 +67,95 @@ namespace ScpServer
|
||||
else
|
||||
keyname = ((Button)sender).Text;
|
||||
|
||||
if (!cBMacro.Checked)
|
||||
{
|
||||
object keytag;
|
||||
if (((Button)sender).Tag.ToString() == "X360")
|
||||
keytag = ((Button)sender).Text;
|
||||
else
|
||||
keytag = ((Button)sender).Tag;
|
||||
ops.ChangeButtonText(keyname, keytag);
|
||||
this.Close();
|
||||
}
|
||||
object keytag;
|
||||
if (((Button)sender).Tag.ToString() == "X360")
|
||||
keytag = ((Button)sender).Text;
|
||||
else
|
||||
{
|
||||
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))
|
||||
macrostag.Add(value);
|
||||
else
|
||||
{
|
||||
if (bn.Text == "Left Mouse Button") macrostag.Add(256);
|
||||
if (bn.Text == "Right Mouse Button") macrostag.Add(257);
|
||||
if (bn.Text == "Middle Mouse Button") macrostag.Add(258);
|
||||
if (bn.Text == "4th Mouse Button") macrostag.Add(259);
|
||||
if (bn.Text == "5th Mouse Button") macrostag.Add(260);
|
||||
}
|
||||
}
|
||||
else if (bn.Tag.ToString() != "X360")
|
||||
{
|
||||
bn.Font = new Font(bn.Font, FontStyle.Regular);
|
||||
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);
|
||||
if (bn.Text == "Right Mouse Button") macrostag.Remove(257);
|
||||
if (bn.Text == "Middle Mouse Button") macrostag.Remove(258);
|
||||
if (bn.Text == "4th Mouse Button") macrostag.Remove(259);
|
||||
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;
|
||||
}
|
||||
keytag = ((Button)sender).Tag;
|
||||
lBMacroOn.Visible = false;
|
||||
ops.ChangeButtonText(keyname, keytag);
|
||||
this.Close();
|
||||
}
|
||||
}
|
||||
|
||||
private void finalMeasure(object sender, FormClosedEventArgs e)
|
||||
{
|
||||
if (cBMacro.Checked && macrostag.Count > 0)
|
||||
{
|
||||
ops.ChangeButtonText(string.Join(", ", macros), macrostag.ToArray());
|
||||
}
|
||||
ops.Toggle_Bn(cbScanCode.Checked, cbToggle.Checked, cBMacro.Checked);
|
||||
if (lBMacroOn.Visible)
|
||||
ops.ChangeButtonText("Macro", macrostag.ToArray());
|
||||
ops.Toggle_Bn(cbScanCode.Checked, cbToggle.Checked, lBMacroOn.Visible, macrorepeat);
|
||||
ops.UpdateLists();
|
||||
}
|
||||
|
||||
private void Key_Down_Action(object sender, KeyEventArgs e)
|
||||
{
|
||||
if (!cBMacro.Checked)
|
||||
{
|
||||
ops.ChangeButtonText(e.KeyCode.ToString(), e.KeyValue);
|
||||
this.Close();
|
||||
}
|
||||
lBMacroOn.Visible = false;
|
||||
ops.ChangeButtonText(e.KeyCode.ToString(), e.KeyValue);
|
||||
this.Close();
|
||||
}
|
||||
|
||||
private void cBMacro_CheckedChanged(object sender, EventArgs e)
|
||||
private void Key_Up_Action(object sender, KeyEventArgs e)
|
||||
{
|
||||
lBMacroOrder.Visible = cBMacro.Checked;
|
||||
pnLDelay.Visible = cBMacro.Checked;
|
||||
if (cBMacro.Checked)
|
||||
cbToggle.Checked = false;
|
||||
lBMacroOn.Visible = false;
|
||||
ops.ChangeButtonText(e.KeyCode.ToString(), e.KeyValue);
|
||||
this.Close();
|
||||
}
|
||||
|
||||
private void Key_Press_Action(object sender, KeyEventArgs e)
|
||||
{
|
||||
lBMacroOn.Visible = false;
|
||||
ops.ChangeButtonText(e.KeyCode.ToString(), e.KeyValue);
|
||||
this.Close();
|
||||
}
|
||||
|
||||
private void cbToggle_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (cbToggle.Checked)
|
||||
cBMacro.Checked = false;
|
||||
lBMacroOn.Visible = false;
|
||||
}
|
||||
|
||||
private void nUDDelay_ValueChanged(object sender, EventArgs e)
|
||||
private void btnMacro_Click(object sender, EventArgs e)
|
||||
{
|
||||
RecordBox rb = new RecordBox(this);
|
||||
rb.StartPosition = FormStartPosition.Manual;
|
||||
rb.Location = new Point(this.Location.X + 580, this.Location.Y+ 55);
|
||||
rb.ShowDialog();
|
||||
}
|
||||
|
||||
protected override bool IsInputKey(Keys keyData)
|
||||
{
|
||||
|
||||
switch (keyData)
|
||||
{
|
||||
case Keys.Right:
|
||||
case Keys.Left:
|
||||
case Keys.Up:
|
||||
case Keys.Down:
|
||||
return true;
|
||||
case Keys.Shift | Keys.Right:
|
||||
case Keys.Shift | Keys.Left:
|
||||
case Keys.Shift | Keys.Up:
|
||||
case Keys.Shift | Keys.Down:
|
||||
return true;
|
||||
}
|
||||
return base.IsInputKey(keyData);
|
||||
}
|
||||
protected override void OnKeyDown(KeyEventArgs e)
|
||||
{
|
||||
base.OnKeyDown(e);
|
||||
switch (e.KeyCode)
|
||||
{
|
||||
case Keys.Left:
|
||||
case Keys.Right:
|
||||
case Keys.Up:
|
||||
case Keys.Down:
|
||||
if (e.Shift)
|
||||
{
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -304,11 +304,12 @@ namespace ScpServer
|
||||
lastSelected.Text = controlname;
|
||||
lastSelected.Tag = controlname;
|
||||
}
|
||||
public void Toggle_Bn(bool SC, bool TG, bool MC)
|
||||
public void Toggle_Bn(bool SC, bool TG, bool MC, bool MR)
|
||||
{
|
||||
if (lastSelected.Tag is int || lastSelected.Tag is UInt16 || lastSelected.Tag is int[])
|
||||
lastSelected.Font = new Font(lastSelected.Font, (SC ? FontStyle.Bold : FontStyle.Regular) |
|
||||
(TG ? FontStyle.Italic : FontStyle.Regular) | (MC ? FontStyle.Underline : FontStyle.Regular));
|
||||
lastSelected.Font = new Font(lastSelected.Font,
|
||||
(SC ? FontStyle.Bold : FontStyle.Regular) | (TG ? FontStyle.Italic : FontStyle.Regular) |
|
||||
(MC ? FontStyle.Underline : FontStyle.Regular) | (MR ? FontStyle.Strikeout : FontStyle.Regular));
|
||||
else if (lastSelected.Tag is string)
|
||||
if (lastSelected.Tag.ToString().Contains("Mouse Button"))
|
||||
lastSelected.Font = new Font(lastSelected.Font, TG ? FontStyle.Italic : FontStyle.Regular);
|
||||
|
179
DS4Tool/RecordBox.Designer.cs
generated
Normal file
179
DS4Tool/RecordBox.Designer.cs
generated
Normal file
@ -0,0 +1,179 @@
|
||||
namespace ScpServer
|
||||
{
|
||||
partial class RecordBox
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(RecordBox));
|
||||
this.btnRecord = new System.Windows.Forms.Button();
|
||||
this.cBRecordDelays = new System.Windows.Forms.CheckBox();
|
||||
this.lVMacros = new System.Windows.Forms.ListView();
|
||||
this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
||||
this.iLKeys = new System.Windows.Forms.ImageList(this.components);
|
||||
this.cBStyle = new System.Windows.Forms.ComboBox();
|
||||
this.btnSave = new System.Windows.Forms.Button();
|
||||
this.btnCancel = new System.Windows.Forms.Button();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// btnRecord
|
||||
//
|
||||
this.btnRecord.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnRecord.Location = new System.Drawing.Point(13, 2);
|
||||
this.btnRecord.Name = "btnRecord";
|
||||
this.btnRecord.Size = new System.Drawing.Size(258, 23);
|
||||
this.btnRecord.TabIndex = 322;
|
||||
this.btnRecord.TabStop = false;
|
||||
this.btnRecord.Text = "Record";
|
||||
this.btnRecord.UseVisualStyleBackColor = true;
|
||||
this.btnRecord.Click += new System.EventHandler(this.btnRecord_Click);
|
||||
this.btnRecord.KeyDown += new System.Windows.Forms.KeyEventHandler(this.anyKeyDown);
|
||||
this.btnRecord.KeyUp += new System.Windows.Forms.KeyEventHandler(this.anyKeyUp);
|
||||
//
|
||||
// cBRecordDelays
|
||||
//
|
||||
this.cBRecordDelays.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.cBRecordDelays.AutoSize = true;
|
||||
this.cBRecordDelays.Location = new System.Drawing.Point(12, 219);
|
||||
this.cBRecordDelays.Name = "cBRecordDelays";
|
||||
this.cBRecordDelays.Size = new System.Drawing.Size(96, 17);
|
||||
this.cBRecordDelays.TabIndex = 324;
|
||||
this.cBRecordDelays.TabStop = false;
|
||||
this.cBRecordDelays.Text = "Record Delays";
|
||||
this.cBRecordDelays.UseVisualStyleBackColor = true;
|
||||
this.cBRecordDelays.KeyDown += new System.Windows.Forms.KeyEventHandler(this.anyKeyDown);
|
||||
this.cBRecordDelays.KeyUp += new System.Windows.Forms.KeyEventHandler(this.anyKeyUp);
|
||||
this.cBRecordDelays.MouseDown += new System.Windows.Forms.MouseEventHandler(this.anyMouseDown);
|
||||
this.cBRecordDelays.MouseUp += new System.Windows.Forms.MouseEventHandler(this.anyMouseUp);
|
||||
//
|
||||
// lVMacros
|
||||
//
|
||||
this.lVMacros.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.lVMacros.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
|
||||
this.columnHeader1});
|
||||
this.lVMacros.LargeImageList = this.iLKeys;
|
||||
this.lVMacros.Location = new System.Drawing.Point(13, 29);
|
||||
this.lVMacros.Name = "lVMacros";
|
||||
this.lVMacros.Size = new System.Drawing.Size(258, 182);
|
||||
this.lVMacros.SmallImageList = this.iLKeys;
|
||||
this.lVMacros.TabIndex = 326;
|
||||
this.lVMacros.UseCompatibleStateImageBehavior = false;
|
||||
this.lVMacros.View = System.Windows.Forms.View.Details;
|
||||
this.lVMacros.KeyDown += new System.Windows.Forms.KeyEventHandler(this.anyKeyDown);
|
||||
this.lVMacros.KeyUp += new System.Windows.Forms.KeyEventHandler(this.anyKeyUp);
|
||||
this.lVMacros.MouseDown += new System.Windows.Forms.MouseEventHandler(this.anyMouseDown);
|
||||
this.lVMacros.MouseUp += new System.Windows.Forms.MouseEventHandler(this.anyMouseUp);
|
||||
//
|
||||
// columnHeader1
|
||||
//
|
||||
this.columnHeader1.Text = "Macro Order";
|
||||
this.columnHeader1.Width = 150;
|
||||
//
|
||||
// iLKeys
|
||||
//
|
||||
this.iLKeys.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("iLKeys.ImageStream")));
|
||||
this.iLKeys.TransparentColor = System.Drawing.Color.Transparent;
|
||||
this.iLKeys.Images.SetKeyName(0, "keydown.png");
|
||||
this.iLKeys.Images.SetKeyName(1, "keyup.png");
|
||||
this.iLKeys.Images.SetKeyName(2, "Clock.png");
|
||||
//
|
||||
// cBStyle
|
||||
//
|
||||
this.cBStyle.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.cBStyle.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.cBStyle.FormattingEnabled = true;
|
||||
this.cBStyle.Items.AddRange(new object[] {
|
||||
"Play once",
|
||||
"Repeat while held"});
|
||||
this.cBStyle.Location = new System.Drawing.Point(150, 217);
|
||||
this.cBStyle.Name = "cBStyle";
|
||||
this.cBStyle.Size = new System.Drawing.Size(121, 21);
|
||||
this.cBStyle.TabIndex = 327;
|
||||
//
|
||||
// btnSave
|
||||
//
|
||||
this.btnSave.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.btnSave.Location = new System.Drawing.Point(12, 242);
|
||||
this.btnSave.Name = "btnSave";
|
||||
this.btnSave.Size = new System.Drawing.Size(75, 23);
|
||||
this.btnSave.TabIndex = 328;
|
||||
this.btnSave.Text = "Save";
|
||||
this.btnSave.UseVisualStyleBackColor = true;
|
||||
this.btnSave.Click += new System.EventHandler(this.btnSave_Click);
|
||||
//
|
||||
// btnCancel
|
||||
//
|
||||
this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnCancel.Location = new System.Drawing.Point(196, 243);
|
||||
this.btnCancel.Name = "btnCancel";
|
||||
this.btnCancel.Size = new System.Drawing.Size(75, 23);
|
||||
this.btnCancel.TabIndex = 328;
|
||||
this.btnCancel.Text = "Cancel";
|
||||
this.btnCancel.UseVisualStyleBackColor = true;
|
||||
this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click);
|
||||
//
|
||||
// RecordBox
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.BackColor = System.Drawing.SystemColors.ControlLightLight;
|
||||
this.ClientSize = new System.Drawing.Size(276, 268);
|
||||
this.Controls.Add(this.btnCancel);
|
||||
this.Controls.Add(this.btnSave);
|
||||
this.Controls.Add(this.cBStyle);
|
||||
this.Controls.Add(this.lVMacros);
|
||||
this.Controls.Add(this.cBRecordDelays);
|
||||
this.Controls.Add(this.btnRecord);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.SizableToolWindow;
|
||||
this.Name = "RecordBox";
|
||||
this.ShowInTaskbar = false;
|
||||
this.Text = "Record a Macro";
|
||||
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.RecordBox_FormClosing);
|
||||
this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.anyKeyDown);
|
||||
this.KeyUp += new System.Windows.Forms.KeyEventHandler(this.anyKeyUp);
|
||||
this.MouseDown += new System.Windows.Forms.MouseEventHandler(this.anyMouseDown);
|
||||
this.MouseUp += new System.Windows.Forms.MouseEventHandler(this.anyMouseUp);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.Button btnRecord;
|
||||
private System.Windows.Forms.CheckBox cBRecordDelays;
|
||||
private System.Windows.Forms.ListView lVMacros;
|
||||
private System.Windows.Forms.ImageList iLKeys;
|
||||
private System.Windows.Forms.ColumnHeader columnHeader1;
|
||||
private System.Windows.Forms.ComboBox cBStyle;
|
||||
private System.Windows.Forms.Button btnSave;
|
||||
private System.Windows.Forms.Button btnCancel;
|
||||
}
|
||||
}
|
268
DS4Tool/RecordBox.cs
Normal file
268
DS4Tool/RecordBox.cs
Normal file
@ -0,0 +1,268 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Diagnostics;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace ScpServer
|
||||
{
|
||||
public partial class RecordBox : Form
|
||||
{
|
||||
Stopwatch sw = new Stopwatch();
|
||||
public List<int> macros = new List<int>();
|
||||
public List<string> macronames = new List<string>();
|
||||
KBM360 kbm;
|
||||
public RecordBox(KBM360 op)
|
||||
{
|
||||
kbm = op;
|
||||
InitializeComponent();
|
||||
if (kbm.macrorepeat)
|
||||
cBStyle.SelectedIndex = 1;
|
||||
else
|
||||
cBStyle.SelectedIndex = 0;
|
||||
}
|
||||
|
||||
private void btnRecord_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (btnRecord.Text == "Record")
|
||||
{
|
||||
if (cBRecordDelays.Checked)
|
||||
sw.Start();
|
||||
macros.Clear();
|
||||
lVMacros.Items.Clear();
|
||||
btnRecord.Text = "Stop";
|
||||
EnableControls(false);
|
||||
ActiveControl = null;
|
||||
lVMacros.Focus();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (cBRecordDelays.Checked)
|
||||
sw.Reset();
|
||||
btnRecord.Text = "Record";
|
||||
EnableControls(true);
|
||||
}
|
||||
}
|
||||
|
||||
private void EnableControls(bool on)
|
||||
{
|
||||
cBRecordDelays.Enabled = on;
|
||||
lVMacros.Enabled = on;
|
||||
cBStyle.Enabled = on;
|
||||
btnCancel.Enabled = on;
|
||||
btnSave.Enabled = on;
|
||||
}
|
||||
|
||||
private void anyKeyDown(object sender, KeyEventArgs e)
|
||||
{
|
||||
if (btnRecord.Text == "Stop")
|
||||
{
|
||||
int count = 0;
|
||||
foreach (int i in macros)
|
||||
{
|
||||
if (i == e.KeyValue)
|
||||
count++;
|
||||
}
|
||||
if (macros.Count == 0)
|
||||
{
|
||||
macros.Add(e.KeyValue);
|
||||
lVMacros.Items.Add(e.KeyCode.ToString(), 0);
|
||||
if (cBRecordDelays.Checked)
|
||||
{
|
||||
sw.Reset();
|
||||
sw.Start();
|
||||
}
|
||||
}
|
||||
else if (count % 2 == 0)
|
||||
{
|
||||
if (cBRecordDelays.Checked)
|
||||
{
|
||||
macros.Add((int)sw.ElapsedMilliseconds + 300);
|
||||
lVMacros.Items.Add("Wait " + sw.ElapsedMilliseconds + "ms", 2);
|
||||
sw.Reset();
|
||||
sw.Start();
|
||||
}
|
||||
macros.Add(e.KeyValue);
|
||||
lVMacros.Items.Add(e.KeyCode.ToString(), 0);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (e.KeyValue == 27)
|
||||
Close();
|
||||
}
|
||||
}
|
||||
|
||||
private void anyKeyUp(object sender, KeyEventArgs e)
|
||||
{
|
||||
if (btnRecord.Text == "Stop" && macros.Count != 0 && !e.KeyCode.ToString().Contains("Media"))
|
||||
{
|
||||
if (cBRecordDelays.Checked)
|
||||
{
|
||||
macros.Add((int)sw.ElapsedMilliseconds + 300);
|
||||
lVMacros.Items.Add("Wait " + sw.ElapsedMilliseconds + "ms", 2);
|
||||
macros.Add(e.KeyValue);
|
||||
sw.Reset();
|
||||
sw.Start();
|
||||
}
|
||||
else
|
||||
{
|
||||
macros.Add(e.KeyValue);
|
||||
}
|
||||
lVMacros.Items.Add(e.KeyCode.ToString(), 1);
|
||||
}
|
||||
}
|
||||
|
||||
private void anyMouseDown(object sender, MouseEventArgs e)
|
||||
{
|
||||
if (btnRecord.Text == "Stop")
|
||||
{
|
||||
int value;
|
||||
switch (e.Button)
|
||||
{
|
||||
case System.Windows.Forms.MouseButtons.Left: value = 256; break;
|
||||
case System.Windows.Forms.MouseButtons.Right: value = 257; break;
|
||||
case System.Windows.Forms.MouseButtons.Middle: value = 258; break;
|
||||
case System.Windows.Forms.MouseButtons.XButton1: value = 259; break;
|
||||
case System.Windows.Forms.MouseButtons.XButton2: value = 260; break;
|
||||
default: value = 0; break;
|
||||
}
|
||||
|
||||
if (macros.Count == 0)
|
||||
{
|
||||
macros.Add(value);
|
||||
lVMacros.Items.Add(e.Button.ToString() + " Mouse Button", 0);
|
||||
if (cBRecordDelays.Checked)
|
||||
{
|
||||
sw.Reset();
|
||||
sw.Start();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (cBRecordDelays.Checked)
|
||||
{
|
||||
macros.Add((int)sw.ElapsedMilliseconds + 300);
|
||||
lVMacros.Items.Add("Wait " + sw.ElapsedMilliseconds + "ms", 2);
|
||||
sw.Reset();
|
||||
sw.Start();
|
||||
}
|
||||
macros.Add(value);
|
||||
lVMacros.Items.Add(e.Button.ToString() + " Mouse Button", 0);
|
||||
}
|
||||
if (e.Button == System.Windows.Forms.MouseButtons.XButton1)
|
||||
lVMacros.Items[lVMacros.Items.Count - 1].Text = "4th Mouse Button";
|
||||
if (e.Button == System.Windows.Forms.MouseButtons.XButton2)
|
||||
lVMacros.Items[lVMacros.Items.Count - 1].Text = "5th Mouse Button";
|
||||
}
|
||||
}
|
||||
|
||||
private void anyMouseUp(object sender, MouseEventArgs e)
|
||||
{
|
||||
if (btnRecord.Text == "Stop" && macros.Count != 0)
|
||||
{
|
||||
int value;
|
||||
switch (e.Button)
|
||||
{
|
||||
case System.Windows.Forms.MouseButtons.Left: value = 256; break;
|
||||
case System.Windows.Forms.MouseButtons.Right: value = 257; break;
|
||||
case System.Windows.Forms.MouseButtons.Middle: value = 258; break;
|
||||
case System.Windows.Forms.MouseButtons.XButton1: value = 259; break;
|
||||
case System.Windows.Forms.MouseButtons.XButton2: value = 260; break;
|
||||
default: value = 0; break;
|
||||
}
|
||||
|
||||
if (cBRecordDelays.Checked)
|
||||
{
|
||||
macros.Add((int)sw.ElapsedMilliseconds + 300);
|
||||
lVMacros.Items.Add("Wait " + sw.ElapsedMilliseconds + "ms", 2);
|
||||
sw.Reset();
|
||||
sw.Start();
|
||||
}
|
||||
macros.Add(value);
|
||||
lVMacros.Items.Add(e.Button.ToString() + " Mouse Button", 1);
|
||||
if (e.Button == System.Windows.Forms.MouseButtons.XButton1)
|
||||
lVMacros.Items[lVMacros.Items.Count - 1].Text = "4th Mouse Button";
|
||||
if (e.Button == System.Windows.Forms.MouseButtons.XButton2)
|
||||
lVMacros.Items[lVMacros.Items.Count - 1].Text = "5th Mouse Button";
|
||||
}
|
||||
}
|
||||
bool saved = false;
|
||||
private void btnSave_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (macros.Count > 0)
|
||||
{
|
||||
kbm.macrostag = macros;
|
||||
foreach (ListViewItem lvi in lVMacros.Items)
|
||||
{
|
||||
macronames.Add(lvi.Text);
|
||||
}
|
||||
kbm.macros = macronames;
|
||||
string macro = string.Join(", ", macronames.ToArray());
|
||||
kbm.lBMacroOn.Visible = true;
|
||||
if (cBStyle.SelectedIndex == 1)
|
||||
kbm.macrorepeat = true;
|
||||
saved = true;
|
||||
Close();
|
||||
}
|
||||
else MessageBox.Show("No macro was recorded", "DS4Windows", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
}
|
||||
|
||||
private void btnCancel_Click(object sender, EventArgs e)
|
||||
{
|
||||
saved = true;
|
||||
Close();
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void RecordBox_FormClosing(object sender, FormClosingEventArgs e)
|
||||
{
|
||||
if (!saved && macros.Count > 0)
|
||||
if (MessageBox.Show("Save Recorded Macro?", "DS4Windows", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
|
||||
btnSave_Click(null, null);
|
||||
}
|
||||
|
||||
protected override bool IsInputKey(Keys keyData)
|
||||
{
|
||||
switch (keyData)
|
||||
{
|
||||
case Keys.Right:
|
||||
case Keys.Left:
|
||||
case Keys.Up:
|
||||
case Keys.Down:
|
||||
return true;
|
||||
case Keys.Shift | Keys.Right:
|
||||
case Keys.Shift | Keys.Left:
|
||||
case Keys.Shift | Keys.Up:
|
||||
case Keys.Shift | Keys.Down:
|
||||
return true;
|
||||
}
|
||||
return base.IsInputKey(keyData);
|
||||
}
|
||||
protected override void OnKeyDown(KeyEventArgs e)
|
||||
{
|
||||
base.OnKeyDown(e);
|
||||
switch (e.KeyCode)
|
||||
{
|
||||
case Keys.Left:
|
||||
case Keys.Right:
|
||||
case Keys.Up:
|
||||
case Keys.Down:
|
||||
if (e.Shift)
|
||||
{
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
174
DS4Tool/RecordBox.resx
Normal file
174
DS4Tool/RecordBox.resx
Normal file
@ -0,0 +1,174 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="iLKeys.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<data name="iLKeys.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAQ
|
||||
CgAAAk1TRnQBSQFMAgEBAwEAATABAAEwAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
|
||||
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
|
||||
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
|
||||
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
|
||||
AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm
|
||||
AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM
|
||||
AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA
|
||||
ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz
|
||||
AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ
|
||||
AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM
|
||||
AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA
|
||||
AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA
|
||||
AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ
|
||||
AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/
|
||||
AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA
|
||||
AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm
|
||||
ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ
|
||||
Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz
|
||||
AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA
|
||||
AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM
|
||||
AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM
|
||||
ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM
|
||||
Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA
|
||||
AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM
|
||||
AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ
|
||||
AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz
|
||||
AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm
|
||||
AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw
|
||||
AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/yIAAf8B7wH3AfQGAAH/
|
||||
Au8B/xgAAf8BBw4AAuwB/wcAAf8BBwHxAQcBvAGRAosBkQG8AQcB8QHvAf8XAAH/AuwBBw0AAuwB/wgA
|
||||
AfQB8AEHBosCBwH0FwAB/wTsAQcMAALsAf8IAAHxAZEBiwe0AZEB8RYAAf8G7AEHCwAC7AH/BwAB9AG0
|
||||
Aa0BtAG1AfEC/wHxAbUBtAGtAbQB9BUAAuwBBwLsAf8C7AH/CgAC7AH/BwABvAGzAbQBtQb/ArQBswG8
|
||||
FQAB7AEHAQAC7AL/AewB/woAAuwB/wcAAbUBtAG1ARkC9AEHAfMB/wEZAQkCtAG1FQABBwIAAuwB/wEA
|
||||
Av8HAAH/AgAC7AH/AgAB/wQAArQBtQP0AuwBvAH/ARkDtBgAAuwB/woAAewB/wEAAuwB/wEAAQcB/wQA
|
||||
ArQBtQH0Av8B7AHvAewBBwEZA7QYAALsAf8KAALsAf8C7AH/AQcB7AH/BAABuwG0AbsBGQH/AfQBkgH0
|
||||
Af8B7wEZAbUBtAG7GAAC7AH/CgABBwTsAQcC7AH/BAAB8AG0AbsBCQH/AfQB8gP/ArsBtAHwGAAC7AH/
|
||||
CwABBwXsAf8EAAH0AVgBUgG7AgkB8wL0AfMBCQG7ARwBUgF5Af8XAALsAf8MAAEHA+wB/wUAARoBmgF6
|
||||
AVIDCQK1AgkBuwFYARoBegH/FwAC7AH/DQABBwHsAf8GAAEaAXoBwwF6AVgB3AQJAbsBUgKaAXoB/xcA
|
||||
A/8OAAH/BwAB/wEaAXoBwwF6AZkBCQLcAQkBmQF6AZoBegH2MgAB/wEaAVkBegH/BAAB/wFZAXoB9hIA
|
||||
AUIBTQE+BwABPgMAASgDAAFAAwABEAMAAQEBAAEBBQABgBcAA/8BAAT/AYcB4QIAAf4BfwH+AT8BgAEB
|
||||
AgAB/AE/Af4BPwHAAQMCAAH4AR8B/gE/AcABAwIAAfABDwH+AT8BgAEBAgAB8AEHAf4BPwGAAQECAAHy
|
||||
AQcB/gE/AYABAQIAAfYBJwH2ATcBgAEBAgAB/gE/AfIBJwGAAQECAAH+AT8B8AEHAYABAQIAAf4BPwHw
|
||||
AQcBgAEBAgAB/gE/AfgBDwQAAf4BPwH8AR8EAAH+AT8B/gE/BAAB/gE/Af8BfwEAAQECAAT/AYMBwwIA
|
||||
Cw==
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
BIN
DS4Tool/Resources/Clock.png
Normal file
BIN
DS4Tool/Resources/Clock.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.0 KiB |
@ -40,7 +40,7 @@ namespace ScpServer
|
||||
catch { }
|
||||
}
|
||||
else if (!multisaves)
|
||||
Save(Directory.GetParent(Assembly.GetExecutingAssembly().Location).FullName + "Profiles.xml");
|
||||
Save(Directory.GetParent(Assembly.GetExecutingAssembly().Location).FullName + "\\Profiles.xml");
|
||||
Close();
|
||||
}
|
||||
|
||||
|
41
DS4Tool/ScpForm.Designer.cs
generated
41
DS4Tool/ScpForm.Designer.cs
generated
@ -409,7 +409,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, 48F));
|
||||
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);
|
||||
@ -451,7 +451,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(370, 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;
|
||||
@ -483,7 +483,7 @@
|
||||
// bnEditC3
|
||||
//
|
||||
this.bnEditC3.Anchor = System.Windows.Forms.AnchorStyles.Left;
|
||||
this.bnEditC3.Location = new System.Drawing.Point(739, 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;
|
||||
@ -495,7 +495,7 @@
|
||||
// bnEditC4
|
||||
//
|
||||
this.bnEditC4.Anchor = System.Windows.Forms.AnchorStyles.Left;
|
||||
this.bnEditC4.Location = new System.Drawing.Point(739, 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;
|
||||
@ -531,7 +531,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(622, 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;
|
||||
@ -541,7 +541,7 @@
|
||||
// bnEditC2
|
||||
//
|
||||
this.bnEditC2.Anchor = System.Windows.Forms.AnchorStyles.Left;
|
||||
this.bnEditC2.Location = new System.Drawing.Point(739, 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;
|
||||
@ -555,7 +555,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(622, 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;
|
||||
@ -567,7 +567,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(622, 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;
|
||||
@ -577,7 +577,7 @@
|
||||
// bnEditC1
|
||||
//
|
||||
this.bnEditC1.Anchor = System.Windows.Forms.AnchorStyles.Left;
|
||||
this.bnEditC1.Location = new System.Drawing.Point(739, 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;
|
||||
@ -591,7 +591,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(622, 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;
|
||||
@ -603,7 +603,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(623, 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;
|
||||
@ -625,7 +625,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(366, 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;
|
||||
@ -636,7 +636,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(515, 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;
|
||||
@ -647,7 +647,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(521, 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;
|
||||
@ -658,7 +658,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(521, 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;
|
||||
@ -669,7 +669,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(521, 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;
|
||||
@ -680,7 +680,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(521, 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;
|
||||
@ -691,7 +691,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(370, 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;
|
||||
@ -703,7 +703,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(370, 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;
|
||||
@ -715,7 +715,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(370, 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;
|
||||
@ -1158,7 +1158,6 @@
|
||||
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.ScpForm_Closing);
|
||||
this.Load += new System.EventHandler(this.Form_Load);
|
||||
this.DragDrop += new System.Windows.Forms.DragEventHandler(this.ScpForm_DragDrop);
|
||||
|
@ -17,7 +17,7 @@ namespace ScpServer
|
||||
{
|
||||
public partial class ScpForm : Form
|
||||
{
|
||||
double version = 10.35;
|
||||
double version = 10.4;
|
||||
private DS4Control.Control rootHub;
|
||||
delegate void LogDebugDelegate(DateTime Time, String Data);
|
||||
|
||||
@ -85,7 +85,6 @@ namespace ScpServer
|
||||
//CheckDrivers();
|
||||
SystemEvents.PowerModeChanged += OnPowerChange;
|
||||
tSOptions.Visible = false;
|
||||
LoadP();
|
||||
ToolTip tt = new ToolTip();
|
||||
if (File.Exists(appdatapath + "\\Profiles.xml"))
|
||||
tt.SetToolTip(linkUninstall, "If removing DS4Windows, You can delete the settings following the profile folder link");
|
||||
@ -198,21 +197,20 @@ namespace ScpServer
|
||||
t.DropDownItemClicked += Profile_Changed_Menu;
|
||||
hideDS4CheckBox.CheckedChanged -= hideDS4CheckBox_CheckedChanged;
|
||||
hideDS4CheckBox.Checked = Global.getUseExclusiveMode();
|
||||
hideDS4CheckBox.CheckedChanged += hideDS4CheckBox_CheckedChanged;
|
||||
|
||||
hideDS4CheckBox.CheckedChanged += hideDS4CheckBox_CheckedChanged;
|
||||
// New settings
|
||||
this.Width = Global.getFormWidth();
|
||||
this.Height = Global.getFormHeight();
|
||||
startMinimizedCheckBox.CheckedChanged -= startMinimizedCheckBox_CheckedChanged;
|
||||
startMinimizedCheckBox.Checked = Global.getStartMinimized();
|
||||
startMinimizedCheckBox.CheckedChanged += startMinimizedCheckBox_CheckedChanged;
|
||||
StartWindowsCheckBox.Checked = File.Exists(Environment.GetFolderPath(Environment.SpecialFolder.Startup) + "\\DS4Windows.lnk");
|
||||
if (startMinimizedCheckBox.Checked)
|
||||
this.WindowState = FormWindowState.Minimized;
|
||||
Form_Resize(sender, e);
|
||||
RefreshProfiles();
|
||||
for (int i = 0; i < 4; i++)
|
||||
Global.LoadProfile(i);
|
||||
LoadP();
|
||||
Global.ControllerStatusChange += ControllerStatusChange;
|
||||
ControllerStatusChanged();
|
||||
if (btnStartStop.Enabled)
|
||||
@ -251,6 +249,7 @@ namespace ScpServer
|
||||
test.Tick += test_Tick;
|
||||
if (!System.IO.Directory.Exists(Global.appdatapath + "\\Virtual Bus Driver"))
|
||||
linkUninstall.Visible = false;
|
||||
StartWindowsCheckBox.Checked = File.Exists(Environment.GetFolderPath(Environment.SpecialFolder.Startup) + "\\DS4Windows.lnk");
|
||||
}
|
||||
|
||||
private void test_Tick(object sender, EventArgs e)
|
||||
@ -572,9 +571,9 @@ namespace ScpServer
|
||||
}
|
||||
//Added last message alternative
|
||||
|
||||
if (this.Height > 220)
|
||||
/*if (this.Height > 220)
|
||||
lbLastMessage.Visible = tabMain.SelectedIndex != 2;
|
||||
else lbLastMessage.Visible = true;
|
||||
else lbLastMessage.Visible = true;*/
|
||||
}
|
||||
|
||||
protected void btnStartStop_Click(object sender, EventArgs e)
|
||||
@ -997,9 +996,9 @@ namespace ScpServer
|
||||
private void StartWindowsCheckBox_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
RegistryKey KeyLoc = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
|
||||
if (StartWindowsCheckBox.Checked)
|
||||
if (StartWindowsCheckBox.Checked && !File.Exists(Environment.GetFolderPath(Environment.SpecialFolder.Startup) + "\\DS4Windows.lnk"))
|
||||
appShortcutToStartup();
|
||||
else
|
||||
else if (!StartWindowsCheckBox.Checked)
|
||||
File.Delete(Environment.GetFolderPath(Environment.SpecialFolder.Startup) + "\\DS4Windows.lnk");
|
||||
KeyLoc.DeleteValue("DS4Tool", false);
|
||||
}
|
||||
@ -1271,15 +1270,6 @@ namespace ScpServer
|
||||
wd.ShowDialog();
|
||||
}
|
||||
|
||||
private void ScpForm_Activated(object sender, EventArgs e)
|
||||
{
|
||||
if (!this.ShowInTaskbar)
|
||||
{
|
||||
this.Show();
|
||||
this.ShowInTaskbar = true;
|
||||
}
|
||||
}
|
||||
|
||||
protected void ScpForm_Closing(object sender, FormClosingEventArgs e)
|
||||
{
|
||||
if (opt != null)
|
||||
|
@ -6302,15 +6302,6 @@
|
||||
<metadata name="openProfiles.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>449, 17</value>
|
||||
</metadata>
|
||||
<metadata name="tSOptions.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>891, 17</value>
|
||||
</metadata>
|
||||
<metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>568, 17</value>
|
||||
</metadata>
|
||||
<metadata name="cMProfile.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>788, 17</value>
|
||||
</metadata>
|
||||
<data name="pBStatus1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAACcAAAAUCAYAAAAOTSQ2AAAABGdBTUEAALGOfPtRkwAAACBjSFJNAACH
|
||||
@ -6535,6 +6526,12 @@
|
||||
1WDefQHxFbbcLCQjmgAAAABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
<metadata name="tSOptions.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>891, 17</value>
|
||||
</metadata>
|
||||
<metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>568, 17</value>
|
||||
</metadata>
|
||||
<data name="tsBDeleteProfile.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
@ -6570,6 +6567,9 @@
|
||||
AABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
<metadata name="cMProfile.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>788, 17</value>
|
||||
</metadata>
|
||||
<metadata name="saveProfiles.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>673, 17</value>
|
||||
</metadata>
|
||||
|
1
DS4Tool/WinProgs.Designer.cs
generated
1
DS4Tool/WinProgs.Designer.cs
generated
@ -204,6 +204,7 @@
|
||||
this.nameHeader,
|
||||
this.PathHeader});
|
||||
this.lVPrograms.FullRowSelect = true;
|
||||
this.lVPrograms.HideSelection = false;
|
||||
this.lVPrograms.LargeImageList = this.iLIcons;
|
||||
this.lVPrograms.Location = new System.Drawing.Point(5, 28);
|
||||
this.lVPrograms.MultiSelect = false;
|
||||
|
@ -99,15 +99,22 @@ namespace ScpServer
|
||||
programpaths.Add(x.Attributes["path"].Value);
|
||||
foreach (string st in programpaths)
|
||||
{
|
||||
int index = programpaths.IndexOf(st);
|
||||
if (string.Empty != st)
|
||||
if (File.Exists(st))
|
||||
{
|
||||
iLIcons.Images.Add(Icon.ExtractAssociatedIcon(st));
|
||||
ListViewItem lvi = new ListViewItem(Path.GetFileNameWithoutExtension(st), index);
|
||||
lvi.SubItems.Add(st);
|
||||
lvi.Checked = true;
|
||||
lvi.ToolTipText = st;
|
||||
lVPrograms.Items.Add(lvi);
|
||||
int index = programpaths.IndexOf(st);
|
||||
if (string.Empty != st)
|
||||
{
|
||||
iLIcons.Images.Add(Icon.ExtractAssociatedIcon(st));
|
||||
ListViewItem lvi = new ListViewItem(Path.GetFileNameWithoutExtension(st), index);
|
||||
lvi.SubItems.Add(st);
|
||||
lvi.Checked = true;
|
||||
lvi.ToolTipText = st;
|
||||
lVPrograms.Items.Add(lvi);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
RemoveP(st, false, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -230,7 +237,7 @@ namespace ScpServer
|
||||
}
|
||||
}
|
||||
|
||||
public void RemoveP(string name, bool uncheck)
|
||||
public void RemoveP(string name, bool uncheck, bool reload = true)
|
||||
{
|
||||
|
||||
XmlDocument doc = new XmlDocument();
|
||||
@ -246,6 +253,7 @@ namespace ScpServer
|
||||
for (int i = 0; i < 4; i++)
|
||||
cbs[i].SelectedIndex = cbs[i].Items.Count - 1;
|
||||
bnSave.Enabled = false;
|
||||
if (reload)
|
||||
form.LoadP();
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user