mirror of
https://github.com/cemu-project/DS4Windows.git
synced 2024-12-25 16:11:49 +01:00
Shift modifier: Hold an action to use another set of controls, if nothing is set to the shifted control, in falls back to the default action
View input of controls in profiles, see exactly when a deadzone is passed and check the input delay for controllers (special thanks to jhebbel), click the on sixaxis panel Click the Empty text on in the lightbar box to copy the lightbar color from full to empty. While opened, option to keep the window size after closing the profile's settings Old profiles are automatically upgraded if it's missing new settings, such as how colors are now saved, sixaxis deadzones, and shift controls Other UI changes for profile settings, flipped touchpad and other settings boxes Others: Fix for when clicking the semicolon in the select an action screen Fix assigning Sixaxis action to a key minor UI changes and bug fixes, such as auto resize of the log listview DS4Updater: Also now works for the new numbering system, can read the version number right from the exe instead of in profiles.xml, UI additions to better notify users of errors, Bug fixes for non-portable users
This commit is contained in:
parent
0765b4600e
commit
88cf1bdc5b
@ -468,11 +468,424 @@ namespace DS4Control
|
||||
/** Map DS4 Buttons/Axes to other DS4 Buttons/Axes (largely the same as Xinput ones) and to keyboard and mouse buttons. */
|
||||
public static async void MapCustom(int device, DS4State cState, DS4State MappedState, DS4StateExposed eState)
|
||||
{
|
||||
bool shift;
|
||||
cState.CopyTo(MappedState);
|
||||
SyntheticState deviceState = Mapping.deviceState[device];
|
||||
foreach (KeyValuePair<DS4Controls, string> customKey in Global.getCustomMacros(device)) //with delays
|
||||
switch (Global.getShiftModifier(device))
|
||||
{
|
||||
DS4KeyType keyType = Global.getCustomKeyType(device, customKey.Key);
|
||||
case 1: shift = getBoolMapping(DS4Controls.Cross, cState, eState); break;
|
||||
case 2: shift = getBoolMapping(DS4Controls.Circle, cState, eState); break;
|
||||
case 3: shift = getBoolMapping(DS4Controls.Square, cState, eState); break;
|
||||
case 4: shift = getBoolMapping(DS4Controls.Triangle, cState, eState); break;
|
||||
case 5: shift = getBoolMapping(DS4Controls.Options, cState, eState); break;
|
||||
case 6: shift = getBoolMapping(DS4Controls.Share, cState, eState); break;
|
||||
case 7: shift = getBoolMapping(DS4Controls.DpadUp, cState, eState); break;
|
||||
case 8: shift = getBoolMapping(DS4Controls.DpadDown, cState, eState); break;
|
||||
case 9: shift = getBoolMapping(DS4Controls.DpadLeft, cState, eState); break;
|
||||
case 10: shift = getBoolMapping(DS4Controls.DpadRight, cState, eState); break;
|
||||
case 11: shift = getBoolMapping(DS4Controls.PS, cState, eState); break;
|
||||
case 12: shift = getBoolMapping(DS4Controls.L1, cState, eState); break;
|
||||
case 13: shift = getBoolMapping(DS4Controls.R1, cState, eState); break;
|
||||
case 14: shift = getBoolMapping(DS4Controls.L2, cState, eState); break;
|
||||
case 15: shift = getBoolMapping(DS4Controls.R2, cState, eState); break;
|
||||
case 16: shift = getBoolMapping(DS4Controls.L3, cState, eState); break;
|
||||
case 17: shift = getBoolMapping(DS4Controls.R3, cState, eState); break;
|
||||
case 18: shift = getBoolMapping(DS4Controls.TouchLeft, cState, eState); break;
|
||||
case 19: shift = getBoolMapping(DS4Controls.TouchUpper, cState, eState); break;
|
||||
case 20: shift = getBoolMapping(DS4Controls.TouchMulti, cState, eState); break;
|
||||
case 21: shift = getBoolMapping(DS4Controls.TouchRight, cState, eState); break;
|
||||
case 22: shift = getBoolMapping(DS4Controls.GyroZNeg, cState, eState); break;
|
||||
case 23: shift = getBoolMapping(DS4Controls.GyroZPos, cState, eState); break;
|
||||
case 24: shift = getBoolMapping(DS4Controls.GyroXPos, cState, eState); break;
|
||||
case 25: shift = getBoolMapping(DS4Controls.GyroXNeg, cState, eState); break;
|
||||
case 26: shift = cState.Touch1; break;
|
||||
default: shift = false; break;
|
||||
}
|
||||
if (shift)
|
||||
MapShiftCustom(device, cState, MappedState, eState);
|
||||
foreach (KeyValuePair<DS4Controls, string> customKey in Global.getCustomMacros(device))
|
||||
{
|
||||
if (shift == false ||
|
||||
(Global.getShiftCustomMacro(device, customKey.Key) == "0" &&
|
||||
Global.getShiftCustomKey(device, customKey.Key) == 0 &&
|
||||
(Global.getShiftCustomButton(device, customKey.Key) == X360Controls.None ||
|
||||
Global.getShiftCustomButton(device, customKey.Key) == X360Controls.Unbound)))
|
||||
{
|
||||
DS4KeyType keyType = Global.getCustomKeyType(device, customKey.Key);
|
||||
if (getBoolMapping(customKey.Key, cState, eState))
|
||||
{
|
||||
resetToDefaultValue(customKey.Key, MappedState);
|
||||
bool LXChanged = (Math.Abs(127 - MappedState.LX) < 5);
|
||||
bool LYChanged = (Math.Abs(127 - MappedState.LY) < 5);
|
||||
bool RXChanged = (Math.Abs(127 - MappedState.RX) < 5);
|
||||
bool RYChanged = (Math.Abs(127 - MappedState.RY) < 5);
|
||||
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[] keydown = new bool[261];
|
||||
if (keys.Length > 0 && keys[0] > 260 && keys[0] < 300)
|
||||
{
|
||||
if (keys[0] == 261 && !MappedState.Cross) MappedState.Cross = getBoolMapping(customKey.Key, cState, eState);
|
||||
if (keys[0] == 262 && !MappedState.Circle) MappedState.Circle = getBoolMapping(customKey.Key, cState, eState);
|
||||
if (keys[0] == 263 && !MappedState.Square) MappedState.Square = getBoolMapping(customKey.Key, cState, eState);
|
||||
if (keys[0] == 264 && !MappedState.Triangle) MappedState.Triangle = getBoolMapping(customKey.Key, cState, eState);
|
||||
if (keys[0] == 265 && !MappedState.DpadUp) MappedState.DpadUp = getBoolMapping(customKey.Key, cState, eState);
|
||||
if (keys[0] == 266 && !MappedState.DpadDown) MappedState.DpadDown = getBoolMapping(customKey.Key, cState, eState);
|
||||
if (keys[0] == 267 && !MappedState.DpadLeft) MappedState.DpadLeft = getBoolMapping(customKey.Key, cState, eState);
|
||||
if (keys[0] == 268 && !MappedState.DpadRight) MappedState.DpadRight = getBoolMapping(customKey.Key, cState, eState);
|
||||
if (keys[0] == 269 && !MappedState.Options) MappedState.Options = getBoolMapping(customKey.Key, cState, eState);
|
||||
if (keys[0] == 270 && !MappedState.Share) MappedState.Share = getBoolMapping(customKey.Key, cState, eState);
|
||||
if (keys[0] == 271 && !MappedState.PS) MappedState.PS = getBoolMapping(customKey.Key, cState, eState);
|
||||
if (keys[0] == 272 && !MappedState.L1) MappedState.L1 = getBoolMapping(customKey.Key, cState, eState);
|
||||
if (keys[0] == 273 && !MappedState.R1) MappedState.R1 = getBoolMapping(customKey.Key, cState, eState);
|
||||
if (keys[0] == 274 && MappedState.L2 == 0) MappedState.L2 = getByteMapping(device, customKey.Key, cState, eState);
|
||||
if (keys[0] == 275 && MappedState.R2 == 0) MappedState.R2 = getByteMapping(device, customKey.Key, cState, eState);
|
||||
if (keys[0] == 276 && !MappedState.L3) MappedState.L3 = getBoolMapping(customKey.Key, cState, eState);
|
||||
if (keys[0] == 277 && !MappedState.R3) MappedState.R3 = getBoolMapping(customKey.Key, cState, eState);
|
||||
if (keys[0] == 278 && LYChanged) MappedState.LY = getXYAxisMapping(device, customKey.Key, cState, eState);
|
||||
if (keys[0] == 279 && LYChanged) MappedState.LY = getXYAxisMapping(device, customKey.Key, cState, eState, true);
|
||||
if (keys[0] == 280 && LXChanged) MappedState.LX = getXYAxisMapping(device, customKey.Key, cState, eState);
|
||||
if (keys[0] == 281 && LXChanged) MappedState.LX = getXYAxisMapping(device, customKey.Key, cState, eState, true);
|
||||
if (keys[0] == 282 && RYChanged) MappedState.RY = getXYAxisMapping(device, customKey.Key, cState, eState);
|
||||
if (keys[0] == 283 && RYChanged) MappedState.RY = getXYAxisMapping(device, customKey.Key, cState, eState, true);
|
||||
if (keys[0] == 284 && RXChanged) MappedState.RX = getXYAxisMapping(device, customKey.Key, cState, eState);
|
||||
if (keys[0] == 285 && RXChanged) MappedState.RX = getXYAxisMapping(device, customKey.Key, cState, eState, true);
|
||||
}
|
||||
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
|
||||
await Task.Delay(keys[i] - 300);
|
||||
else if (keys[i] < 261 && !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 if (keys[i] < 261)
|
||||
{
|
||||
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
|
||||
InputMethods.performKeyRelease((ushort)keys[i]);
|
||||
keydown[keys[i]] = false;
|
||||
}
|
||||
}
|
||||
for (ushort i = 0; i < keydown.Length; i++)
|
||||
{
|
||||
if (keydown[i])
|
||||
if (keyType.HasFlag(DS4KeyType.ScanCode))
|
||||
InputMethods.performSCKeyRelease(i);
|
||||
else
|
||||
InputMethods.performKeyRelease(i);
|
||||
}
|
||||
if (keyType.HasFlag(DS4KeyType.HoldMacro))
|
||||
{
|
||||
await Task.Delay(50);
|
||||
macrodone[DS4ControltoInt(customKey.Key)] = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (!getBoolMapping(customKey.Key, cState, eState))
|
||||
macrodone[DS4ControltoInt(customKey.Key)] = false;
|
||||
}
|
||||
}
|
||||
foreach (KeyValuePair<DS4Controls, ushort> customKey in Global.getCustomKeys(device))
|
||||
{
|
||||
if (shift == false ||
|
||||
(Global.getShiftCustomMacro(device, customKey.Key) == "0" &&
|
||||
Global.getShiftCustomKey(device, customKey.Key) == 0 &&
|
||||
(Global.getShiftCustomButton(device, customKey.Key) == X360Controls.None ||
|
||||
Global.getShiftCustomButton(device, customKey.Key) == X360Controls.Unbound)))
|
||||
{
|
||||
DS4KeyType keyType = Global.getCustomKeyType(device, customKey.Key);
|
||||
if (getBoolMapping(customKey.Key, cState, eState))
|
||||
{
|
||||
resetToDefaultValue(customKey.Key, MappedState);
|
||||
SyntheticState.KeyPresses kp;
|
||||
if (!deviceState.keyPresses.TryGetValue(customKey.Value, out kp))
|
||||
deviceState.keyPresses[customKey.Value] = kp = new SyntheticState.KeyPresses();
|
||||
if (keyType.HasFlag(DS4KeyType.ScanCode))
|
||||
kp.current.scanCodeCount++;
|
||||
else
|
||||
kp.current.vkCount++;
|
||||
if (keyType.HasFlag(DS4KeyType.Toggle))
|
||||
{
|
||||
if (!pressedonce[customKey.Value])
|
||||
{
|
||||
kp.current.toggle = !kp.current.toggle;
|
||||
pressedonce[customKey.Value] = true;
|
||||
}
|
||||
kp.current.toggleCount++;
|
||||
}
|
||||
kp.current.repeatCount++;
|
||||
}
|
||||
else
|
||||
pressedonce[customKey.Value] = false;
|
||||
}
|
||||
}
|
||||
|
||||
MappedState.LX = 127;
|
||||
MappedState.LY = 127;
|
||||
MappedState.RX = 127;
|
||||
MappedState.RY = 127;
|
||||
int MouseDeltaX = 0;
|
||||
int MouseDeltaY = 0;
|
||||
|
||||
Dictionary<DS4Controls, X360Controls> customButtons = Global.getCustomButtons(device);
|
||||
//foreach (KeyValuePair<DS4Controls, X360Controls> customButton in customButtons)
|
||||
// resetToDefaultValue(customButton.Key, MappedState); // erase default mappings for things that are remapped
|
||||
foreach (KeyValuePair<DS4Controls, X360Controls> customButton in customButtons)
|
||||
{
|
||||
if (shift == false ||
|
||||
(Global.getShiftCustomMacro(device, customButton.Key) == "0" &&
|
||||
Global.getShiftCustomKey(device, customButton.Key) == 0 &&
|
||||
(Global.getShiftCustomButton(device, customButton.Key) == X360Controls.None ||
|
||||
Global.getShiftCustomButton(device, customButton.Key) == X360Controls.Unbound)))
|
||||
{
|
||||
if (customButton.Key == DS4Controls.Square)
|
||||
Console.WriteLine("hello");
|
||||
DS4KeyType keyType = Global.getCustomKeyType(device, customButton.Key);
|
||||
int keyvalue = 0;
|
||||
switch (customButton.Value)
|
||||
{
|
||||
case X360Controls.LeftMouse: keyvalue = 256; break;
|
||||
case X360Controls.RightMouse: keyvalue = 257; break;
|
||||
case X360Controls.MiddleMouse: keyvalue = 258; break;
|
||||
case X360Controls.FourthMouse: keyvalue = 259; break;
|
||||
case X360Controls.FifthMouse: keyvalue = 260; break;
|
||||
}
|
||||
if (keyType.HasFlag(DS4KeyType.Toggle))
|
||||
{
|
||||
if (getBoolMapping(customButton.Key, cState, eState))
|
||||
{
|
||||
resetToDefaultValue(customButton.Key, MappedState);
|
||||
if (!pressedonce[keyvalue])
|
||||
{
|
||||
deviceState.currentClicks.toggle = !deviceState.currentClicks.toggle;
|
||||
test++;
|
||||
pressedonce[keyvalue] = true;
|
||||
}
|
||||
deviceState.currentClicks.toggleCount++;
|
||||
}
|
||||
else// if (test = 1)// && pressedonce[keyvalue])
|
||||
{
|
||||
pressedonce[keyvalue] = false;
|
||||
}
|
||||
}
|
||||
bool LXChanged = Math.Abs(127 - MappedState.LX) <= 5;
|
||||
bool LYChanged = Math.Abs(127 - MappedState.LY) <= 5;
|
||||
bool RXChanged = Math.Abs(127 - MappedState.RX) <= 5;
|
||||
bool RYChanged = Math.Abs(127 - MappedState.RY) <= 5;
|
||||
|
||||
//once++;
|
||||
|
||||
resetToDefaultValue(customButton.Key, MappedState); // erase default mappings for things that are remapped
|
||||
switch (customButton.Value)
|
||||
{
|
||||
case X360Controls.A:
|
||||
if (!MappedState.Cross)
|
||||
MappedState.Cross = getBoolMapping(customButton.Key, cState, eState);
|
||||
break;
|
||||
case X360Controls.B:
|
||||
if (!MappedState.Circle)
|
||||
MappedState.Circle = getBoolMapping(customButton.Key, cState, eState);
|
||||
break;
|
||||
case X360Controls.X:
|
||||
if (!MappedState.Square)
|
||||
MappedState.Square = getBoolMapping(customButton.Key, cState, eState);
|
||||
break;
|
||||
case X360Controls.Y:
|
||||
if (!MappedState.Triangle)
|
||||
MappedState.Triangle = getBoolMapping(customButton.Key, cState, eState);
|
||||
break;
|
||||
case X360Controls.LB:
|
||||
if (!MappedState.L1)
|
||||
MappedState.L1 = getBoolMapping(customButton.Key, cState, eState);
|
||||
break;
|
||||
case X360Controls.LS:
|
||||
if (!MappedState.L3)
|
||||
MappedState.L3 = getBoolMapping(customButton.Key, cState, eState);
|
||||
break;
|
||||
case X360Controls.RB:
|
||||
if (!MappedState.R1)
|
||||
MappedState.R1 = getBoolMapping(customButton.Key, cState, eState);
|
||||
break;
|
||||
case X360Controls.RS:
|
||||
if (!MappedState.R3)
|
||||
MappedState.R3 = getBoolMapping(customButton.Key, cState, eState);
|
||||
break;
|
||||
case X360Controls.DpadUp:
|
||||
if (!MappedState.DpadUp)
|
||||
MappedState.DpadUp = getBoolMapping(customButton.Key, cState, eState);
|
||||
break;
|
||||
case X360Controls.DpadDown:
|
||||
if (!MappedState.DpadDown)
|
||||
MappedState.DpadDown = getBoolMapping(customButton.Key, cState, eState);
|
||||
break;
|
||||
case X360Controls.DpadLeft:
|
||||
if (!MappedState.DpadLeft)
|
||||
MappedState.DpadLeft = getBoolMapping(customButton.Key, cState, eState);
|
||||
break;
|
||||
case X360Controls.DpadRight:
|
||||
if (!MappedState.DpadRight)
|
||||
MappedState.DpadRight = getBoolMapping(customButton.Key, cState, eState);
|
||||
break;
|
||||
case X360Controls.Guide:
|
||||
if (!MappedState.PS)
|
||||
MappedState.PS = getBoolMapping(customButton.Key, cState, eState);
|
||||
break;
|
||||
case X360Controls.Back:
|
||||
if (!MappedState.Share)
|
||||
MappedState.Share = getBoolMapping(customButton.Key, cState, eState);
|
||||
break;
|
||||
case X360Controls.Start:
|
||||
if (!MappedState.Options)
|
||||
MappedState.Options = getBoolMapping(customButton.Key, cState, eState);
|
||||
break;
|
||||
case X360Controls.LXNeg:
|
||||
if (LXChanged)
|
||||
MappedState.LX = getXYAxisMapping(device, customButton.Key, cState, eState);
|
||||
break;
|
||||
case X360Controls.LYNeg:
|
||||
if (LYChanged)
|
||||
MappedState.LY = getXYAxisMapping(device, customButton.Key, cState, eState);
|
||||
break;
|
||||
case X360Controls.RXNeg:
|
||||
if (RXChanged)
|
||||
MappedState.RX = getXYAxisMapping(device, customButton.Key, cState, eState);
|
||||
break;
|
||||
case X360Controls.RYNeg:
|
||||
if (RYChanged)
|
||||
MappedState.RY = getXYAxisMapping(device, customButton.Key, cState, eState);
|
||||
break;
|
||||
case X360Controls.LXPos:
|
||||
if (LXChanged)
|
||||
MappedState.LX = getXYAxisMapping(device, customButton.Key, cState, eState, true);
|
||||
break;
|
||||
case X360Controls.LYPos:
|
||||
if (LYChanged)
|
||||
MappedState.LY = getXYAxisMapping(device, customButton.Key, cState, eState, true);
|
||||
break;
|
||||
case X360Controls.RXPos:
|
||||
if (RXChanged)
|
||||
MappedState.RX = getXYAxisMapping(device, customButton.Key, cState, eState, true);
|
||||
break;
|
||||
case X360Controls.RYPos:
|
||||
if (RYChanged)
|
||||
MappedState.RY = getXYAxisMapping(device, customButton.Key, cState, eState, true);
|
||||
break;
|
||||
case X360Controls.LT:
|
||||
if (MappedState.L2 == 0)
|
||||
MappedState.L2 = getByteMapping(device, customButton.Key, cState, eState);
|
||||
break;
|
||||
case X360Controls.RT:
|
||||
if (MappedState.R2 == 0)
|
||||
MappedState.R2 = getByteMapping(device, customButton.Key, cState, eState);
|
||||
break;
|
||||
case X360Controls.LeftMouse:
|
||||
if (getBoolMapping(customButton.Key, cState, eState))
|
||||
deviceState.currentClicks.leftCount++;
|
||||
break;
|
||||
case X360Controls.RightMouse:
|
||||
if (getBoolMapping(customButton.Key, cState, eState))
|
||||
deviceState.currentClicks.rightCount++;
|
||||
break;
|
||||
case X360Controls.MiddleMouse:
|
||||
if (getBoolMapping(customButton.Key, cState, eState))
|
||||
deviceState.currentClicks.middleCount++;
|
||||
break;
|
||||
case X360Controls.FourthMouse:
|
||||
if (getBoolMapping(customButton.Key, cState, eState))
|
||||
deviceState.currentClicks.fourthCount++;
|
||||
break;
|
||||
case X360Controls.FifthMouse:
|
||||
if (getBoolMapping(customButton.Key, cState, eState))
|
||||
deviceState.currentClicks.fifthCount++;
|
||||
break;
|
||||
case X360Controls.WUP:
|
||||
if (getBoolMapping(customButton.Key, cState, eState))
|
||||
deviceState.currentClicks.wUpCount++;
|
||||
break;
|
||||
case X360Controls.WDOWN:
|
||||
if (getBoolMapping(customButton.Key, cState, eState))
|
||||
deviceState.currentClicks.wDownCount++;
|
||||
break;
|
||||
case X360Controls.MouseUp:
|
||||
if (MouseDeltaY == 0)
|
||||
{
|
||||
MouseDeltaY = getMouseMapping(device, customButton.Key, cState, eState, 0);
|
||||
MouseDeltaY = -Math.Abs((MouseDeltaY == -2147483648 ? 0 : MouseDeltaY));
|
||||
}
|
||||
break;
|
||||
case X360Controls.MouseDown:
|
||||
if (MouseDeltaY == 0)
|
||||
{
|
||||
MouseDeltaY = getMouseMapping(device, customButton.Key, cState, eState, 1);
|
||||
MouseDeltaY = Math.Abs((MouseDeltaY == -2147483648 ? 0 : MouseDeltaY));
|
||||
}
|
||||
break;
|
||||
case X360Controls.MouseLeft:
|
||||
if (MouseDeltaX == 0)
|
||||
{
|
||||
MouseDeltaX = getMouseMapping(device, customButton.Key, cState, eState, 2);
|
||||
MouseDeltaX = -Math.Abs((MouseDeltaX == -2147483648 ? 0 : MouseDeltaX));
|
||||
}
|
||||
break;
|
||||
case X360Controls.MouseRight:
|
||||
if (MouseDeltaX == 0)
|
||||
{
|
||||
MouseDeltaX = getMouseMapping(device, customButton.Key, cState, eState, 3);
|
||||
MouseDeltaX = Math.Abs((MouseDeltaX == -2147483648 ? 0 : MouseDeltaX));
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
//if (!LX)
|
||||
if (Math.Abs(127 - MappedState.LX) <= 5)// || (Math.Abs(127 - cState.LX) > 5))
|
||||
MappedState.LX = cState.LX;
|
||||
if (Math.Abs(127 - MappedState.LY) <= 5)
|
||||
MappedState.LY = cState.LY;
|
||||
if (Math.Abs(127 - MappedState.RX) <= 5)
|
||||
MappedState.RX = cState.RX;
|
||||
if (Math.Abs(127 - MappedState.RY) <= 5)
|
||||
MappedState.RY = cState.RY;
|
||||
InputMethods.MoveCursorBy(MouseDeltaX, MouseDeltaY);
|
||||
}
|
||||
|
||||
public static async void MapShiftCustom(int device, DS4State cState, DS4State MappedState, DS4StateExposed eState)
|
||||
{
|
||||
cState.CopyTo(MappedState);
|
||||
SyntheticState deviceState = Mapping.deviceState[device];
|
||||
foreach (KeyValuePair<DS4Controls, string> customKey in Global.getShiftCustomMacros(device)) //with delays
|
||||
{
|
||||
DS4KeyType keyType = Global.getShiftCustomKeyType(device, customKey.Key);
|
||||
if (getBoolMapping(customKey.Key, cState, eState))
|
||||
{
|
||||
resetToDefaultValue(customKey.Key, MappedState);
|
||||
@ -575,9 +988,9 @@ namespace DS4Control
|
||||
else if (!getBoolMapping(customKey.Key, cState, eState))
|
||||
macrodone[DS4ControltoInt(customKey.Key)] = false;
|
||||
}
|
||||
foreach (KeyValuePair<DS4Controls, ushort> customKey in Global.getCustomKeys(device))
|
||||
foreach (KeyValuePair<DS4Controls, ushort> customKey in Global.getShiftCustomKeys(device))
|
||||
{
|
||||
DS4KeyType keyType = Global.getCustomKeyType(device, customKey.Key);
|
||||
DS4KeyType keyType = Global.getShiftCustomKeyType(device, customKey.Key);
|
||||
if (getBoolMapping(customKey.Key, cState, eState))
|
||||
{
|
||||
resetToDefaultValue(customKey.Key, MappedState);
|
||||
@ -610,12 +1023,14 @@ namespace DS4Control
|
||||
int MouseDeltaX = 0;
|
||||
int MouseDeltaY = 0;
|
||||
|
||||
Dictionary<DS4Controls, X360Controls> customButtons = Global.getCustomButtons(device);
|
||||
Dictionary<DS4Controls, X360Controls> customButtons = Global.getShiftCustomButtons(device);
|
||||
//foreach (KeyValuePair<DS4Controls, X360Controls> customButton in customButtons)
|
||||
// resetToDefaultValue(customButton.Key, MappedState); // erase default mappings for things that are remapped
|
||||
// resetToDefaultValue(customButton.Key, MappedState); // erase default mappings for things that are remapped
|
||||
foreach (KeyValuePair<DS4Controls, X360Controls> customButton in customButtons)
|
||||
{
|
||||
DS4KeyType keyType = Global.getCustomKeyType(device, customButton.Key);
|
||||
if (customButton.Key == DS4Controls.Square)
|
||||
Console.WriteLine("Hi");
|
||||
DS4KeyType keyType = Global.getShiftCustomKeyType(device, customButton.Key);
|
||||
int keyvalue = 0;
|
||||
switch (customButton.Value)
|
||||
{
|
||||
@ -811,7 +1226,6 @@ namespace DS4Control
|
||||
break;
|
||||
}
|
||||
}
|
||||
//Console.WriteLine(MappedState.LY + " " + LY);
|
||||
//if (!LX)
|
||||
if (Math.Abs(127 - MappedState.LX) <= 5)// || (Math.Abs(127 - cState.LX) > 5))
|
||||
MappedState.LX = cState.LX;
|
||||
@ -823,6 +1237,7 @@ namespace DS4Control
|
||||
MappedState.RY = cState.RY;
|
||||
InputMethods.MoveCursorBy(MouseDeltaX, MouseDeltaY);
|
||||
}
|
||||
|
||||
public static DateTime[] mousenow = { DateTime.UtcNow, DateTime.UtcNow, DateTime.UtcNow, DateTime.UtcNow };
|
||||
public static double mvalue = 0;
|
||||
public static int[] mouseaccel = new int[34];
|
||||
@ -894,13 +1309,13 @@ namespace DS4Control
|
||||
switch (control)
|
||||
{
|
||||
case DS4Controls.GyroXPos: return (byte)(eState.GyroX > SXD * 7500 ?
|
||||
Math.Pow(root + speed / divide, eState.GyroX / 48) : 0);
|
||||
Math.Pow(root + speed / divide, eState.GyroX / 62) : 0);
|
||||
case DS4Controls.GyroXNeg: return (byte)(eState.GyroX < -SXD * 7500 ?
|
||||
Math.Pow(root + speed / divide, -eState.GyroX / 48) : 0);
|
||||
case DS4Controls.GyroZPos: return (byte)(eState.GyroZ > SZD * 7500 ?
|
||||
Math.Pow(root + speed / divide, eState.GyroZ / 48) : 0);
|
||||
Math.Pow(root + speed / divide, eState.GyroZ / 62) : 0);
|
||||
case DS4Controls.GyroZNeg: return (byte)(eState.GyroZ < -SZD * 7500 ?
|
||||
Math.Pow(root + speed / divide, -eState.GyroZ / 48) : 0);
|
||||
Math.Pow(root + speed / divide, -eState.GyroZ / 62) : 0);
|
||||
}
|
||||
bool LXChanged = (Math.Abs(127 - cState.LX) < deadzone);
|
||||
bool LYChanged = (Math.Abs(127 - cState.LY) < deadzone);
|
||||
@ -992,10 +1407,10 @@ namespace DS4Control
|
||||
if (eState != null)
|
||||
switch (control)
|
||||
{
|
||||
case DS4Controls.GyroXPos: return (byte)(eState.GyroX > SXD * 7500 ? Math.Min(255, eState.GyroX / 24) : 0);
|
||||
case DS4Controls.GyroXNeg: return (byte)(eState.GyroX < -SXD * 7500 ? Math.Min(255, -eState.GyroX / 24) : 0);
|
||||
case DS4Controls.GyroZPos: return (byte)(eState.GyroZ > SZD * 7500 ? Math.Min(255, eState.GyroZ / 24) : 0);
|
||||
case DS4Controls.GyroZNeg: return (byte)(eState.GyroZ < -SZD * 7500 ? Math.Min(255, -eState.GyroZ / 24) : 0);
|
||||
case DS4Controls.GyroXPos: return (byte)(eState.GyroX > SXD * 7500 ? Math.Min(255, eState.GyroX / 31) : 0);
|
||||
case DS4Controls.GyroXNeg: return (byte)(eState.GyroX < -SXD * 7500 ? Math.Min(255, -eState.GyroX / 31) : 0);
|
||||
case DS4Controls.GyroZPos: return (byte)(eState.GyroZ > SZD * 7500 ? Math.Min(255, eState.GyroZ / 31) : 0);
|
||||
case DS4Controls.GyroZNeg: return (byte)(eState.GyroZ < -SZD * 7500 ? Math.Min(255, -eState.GyroZ / 31) : 0);
|
||||
}
|
||||
if (cState.TouchButton)
|
||||
{
|
||||
@ -1131,19 +1546,18 @@ namespace DS4Control
|
||||
switch (control)
|
||||
{
|
||||
case DS4Controls.GyroXPos: if (eState.GyroX > SXD * 7500)
|
||||
if (alt) return (byte)Math.Min(255, 127 + eState.GyroX / 48); else return (byte)Math.Max(0, 127 - eState.GyroX / 48);
|
||||
if (alt) return (byte)Math.Min(255, 127 + eState.GyroX / 62); else return (byte)Math.Max(0, 127 - eState.GyroX / 62);
|
||||
else return falseVal;
|
||||
case DS4Controls.GyroXNeg: if (eState.GyroX < -SXD * 7500)
|
||||
if (alt) return (byte)Math.Min(255, 127 + -eState.GyroX / 48); else return (byte)Math.Max(0, 127 - -eState.GyroX / 48);
|
||||
if (alt) return (byte)Math.Min(255, 127 + -eState.GyroX / 62); else return (byte)Math.Max(0, 127 - -eState.GyroX / 62);
|
||||
else return falseVal;
|
||||
case DS4Controls.GyroZPos: if (eState.GyroZ > SZD * 7500)
|
||||
if (alt) return (byte)Math.Min(255, 127 + eState.GyroZ / 48); else return (byte)Math.Max(0, 127 - eState.GyroZ / 48);
|
||||
if (alt) return (byte)Math.Min(255, 127 + eState.GyroZ / 62); else return (byte)Math.Max(0, 127 - eState.GyroZ / 62);
|
||||
else return falseVal;
|
||||
case DS4Controls.GyroZNeg: if (eState.GyroZ < -SZD * 7500)
|
||||
if (alt) return (byte)Math.Min(255, 127 + -eState.GyroZ / 48); else return (byte)Math.Max(0, 127 - -eState.GyroZ / 48);
|
||||
if (alt) return (byte)Math.Min(255, 127 + -eState.GyroZ / 62); else return (byte)Math.Max(0, 127 - -eState.GyroZ / 62);
|
||||
else return falseVal;
|
||||
}
|
||||
//Console.Write(eState.GyroX.ToString());
|
||||
}
|
||||
if (!alt)
|
||||
{
|
||||
|
@ -115,7 +115,7 @@ namespace DS4Control
|
||||
private DS4State remapped = new DS4State();
|
||||
private void synthesizeMouseButtons()
|
||||
{
|
||||
Mapping.MapCustom(deviceNum, s, remapped, null);
|
||||
//Mapping.MapCustom(deviceNum, s, remapped, null);
|
||||
if (leftDown)
|
||||
Mapping.MapTouchpadButton(deviceNum, DS4Controls.TouchLeft, Mapping.Click.Left, remapped);
|
||||
if (upperDown)
|
||||
|
@ -240,16 +240,6 @@ namespace DS4Control
|
||||
return m_Config.useExclusiveMode;
|
||||
}
|
||||
|
||||
public static void setVersion(double data)
|
||||
{
|
||||
m_Config.version = data;
|
||||
}
|
||||
|
||||
public static double getVersion()
|
||||
{
|
||||
return m_Config.version;
|
||||
}
|
||||
|
||||
public static void setLastChecked(DateTime data)
|
||||
{
|
||||
m_Config.lastChecked = data;
|
||||
@ -456,6 +446,14 @@ namespace DS4Control
|
||||
{
|
||||
m_Config.mouseAccel[device] = value;
|
||||
}
|
||||
public static int getShiftModifier (int device)
|
||||
{
|
||||
return m_Config.shiftModifier[device];
|
||||
}
|
||||
public static void setShiftModifier(int device, int value)
|
||||
{
|
||||
m_Config.shiftModifier[device] = value;
|
||||
}
|
||||
public static void setAProfile(int device, string filepath)
|
||||
{
|
||||
m_Config.profilePath[device] = appdatapath + @"\Profiles\" + filepath + ".xml";
|
||||
@ -501,30 +499,68 @@ namespace DS4Control
|
||||
{
|
||||
return m_Config.customMapKeyTypes[device];
|
||||
}
|
||||
|
||||
public static X360Controls getShiftCustomButton(int device, DS4Controls controlName)
|
||||
{
|
||||
return m_Config.GetShiftCustomButton(device, controlName);
|
||||
}
|
||||
public static ushort getShiftCustomKey(int device, DS4Controls controlName)
|
||||
{
|
||||
return m_Config.GetShiftCustomKey(device, controlName);
|
||||
}
|
||||
public static string getShiftCustomMacro(int device, DS4Controls controlName)
|
||||
{
|
||||
return m_Config.GetShiftCustomMacro(device, controlName);
|
||||
}
|
||||
public static DS4KeyType getShiftCustomKeyType(int device, DS4Controls controlName)
|
||||
{
|
||||
return m_Config.GetShiftCustomKeyType(device, controlName);
|
||||
}
|
||||
public static bool getHasShiftCustomKeysorButtons(int device)
|
||||
{
|
||||
return m_Config.shiftCustomMapButtons[device].Count > 0
|
||||
|| m_Config.shiftCustomMapKeys[device].Count > 0;
|
||||
}
|
||||
public static Dictionary<DS4Controls, X360Controls> getShiftCustomButtons(int device)
|
||||
{
|
||||
return m_Config.shiftCustomMapButtons[device];
|
||||
}
|
||||
public static Dictionary<DS4Controls, ushort> getShiftCustomKeys(int device)
|
||||
{
|
||||
return m_Config.shiftCustomMapKeys[device];
|
||||
}
|
||||
public static Dictionary<DS4Controls, string> getShiftCustomMacros(int device)
|
||||
{
|
||||
return m_Config.shiftCustomMapMacros[device];
|
||||
}
|
||||
public static Dictionary<DS4Controls, DS4KeyType> getShiftCustomKeyTypes(int device)
|
||||
{
|
||||
return m_Config.shiftCustomMapKeyTypes[device];
|
||||
}
|
||||
public static bool Load()
|
||||
{
|
||||
return m_Config.Load();
|
||||
}
|
||||
public static void LoadProfile(int device, System.Windows.Forms.Control[] buttons)
|
||||
public static void LoadProfile(int device, System.Windows.Forms.Control[] buttons, System.Windows.Forms.Control[] shiftbuttons)
|
||||
{
|
||||
m_Config.LoadProfile(device, buttons);
|
||||
m_Config.LoadProfile(device, buttons, shiftbuttons);
|
||||
}
|
||||
public static void LoadProfile(int device)
|
||||
{
|
||||
m_Config.LoadProfile(device, null);
|
||||
m_Config.LoadProfile(device, null, null);
|
||||
}
|
||||
public static void LoadTempProfile(int device, string name)
|
||||
{
|
||||
m_Config.LoadProfile(device, null, appdatapath + @"\Profiles\" + name + ".xml");
|
||||
m_Config.LoadProfile(device, null, null, appdatapath + @"\Profiles\" + name + ".xml");
|
||||
}
|
||||
public static bool Save()
|
||||
{
|
||||
return m_Config.Save();
|
||||
}
|
||||
|
||||
public static void SaveProfile(int device, string propath, System.Windows.Forms.Control[] buttons)
|
||||
public static void SaveProfile(int device, string propath, System.Windows.Forms.Control[] buttons, System.Windows.Forms.Control[] shiftbuttons)
|
||||
{
|
||||
m_Config.SaveProfile(device, propath, buttons);
|
||||
m_Config.SaveProfile(device, propath, buttons, shiftbuttons);
|
||||
}
|
||||
|
||||
private static byte applyRatio(byte b1, byte b2, double r)
|
||||
@ -623,6 +659,7 @@ namespace DS4Control
|
||||
public int[] scrollSensitivity = { 0, 0, 0, 0, 0 };
|
||||
public double[] rainbow = { 0, 0, 0, 0, 0 };
|
||||
public int[] flashAt = { 30, 30, 30, 30, 30 };
|
||||
public int[] shiftModifier = { 0, 0, 0, 0, 0 };
|
||||
public bool[] mouseAccel = { true, true, true, true, true };
|
||||
public Byte[][] m_LowLeds = new Byte[][]
|
||||
{
|
||||
@ -656,7 +693,6 @@ namespace DS4Control
|
||||
public Int32 formWidth = 782;
|
||||
public Int32 formHeight = 550;
|
||||
public Boolean startMinimized = false;
|
||||
public double version;
|
||||
public DateTime lastChecked;
|
||||
public int CheckWhen = 1;
|
||||
public bool notifications = true;
|
||||
@ -666,6 +702,12 @@ namespace DS4Control
|
||||
public Dictionary<DS4Controls, UInt16>[] customMapKeys = { null, null, null, null, null };
|
||||
public Dictionary<DS4Controls, String>[] customMapMacros = { null, null, null, null, null };
|
||||
public Dictionary<DS4Controls, X360Controls>[] customMapButtons = { null, null, null, null, null };
|
||||
|
||||
public Dictionary<DS4Controls, DS4KeyType>[] shiftCustomMapKeyTypes = { null, null, null, null, null };
|
||||
public Dictionary<DS4Controls, UInt16>[] shiftCustomMapKeys = { null, null, null, null, null };
|
||||
public Dictionary<DS4Controls, String>[] shiftCustomMapMacros = { null, null, null, null, null };
|
||||
public Dictionary<DS4Controls, X360Controls>[] shiftCustomMapButtons = { null, null, null, null, null };
|
||||
|
||||
public BackingStore()
|
||||
{
|
||||
for (int i = 0; i < 5; i++)
|
||||
@ -674,6 +716,11 @@ namespace DS4Control
|
||||
customMapKeys[i] = new Dictionary<DS4Controls, UInt16>();
|
||||
customMapMacros[i] = new Dictionary<DS4Controls, String>();
|
||||
customMapButtons[i] = new Dictionary<DS4Controls, X360Controls>();
|
||||
|
||||
shiftCustomMapKeyTypes[i] = new Dictionary<DS4Controls, DS4KeyType>();
|
||||
shiftCustomMapKeys[i] = new Dictionary<DS4Controls, UInt16>();
|
||||
shiftCustomMapMacros[i] = new Dictionary<DS4Controls, String>();
|
||||
shiftCustomMapButtons[i] = new Dictionary<DS4Controls, X360Controls>();
|
||||
}
|
||||
}
|
||||
|
||||
@ -706,15 +753,44 @@ namespace DS4Control
|
||||
catch { return 0; }
|
||||
}
|
||||
|
||||
public X360Controls GetShiftCustomButton(int device, DS4Controls controlName)
|
||||
{
|
||||
if (shiftCustomMapButtons[device].ContainsKey(controlName))
|
||||
return shiftCustomMapButtons[device][controlName];
|
||||
else return X360Controls.None;
|
||||
}
|
||||
public UInt16 GetShiftCustomKey(int device, DS4Controls controlName)
|
||||
{
|
||||
if (shiftCustomMapKeys[device].ContainsKey(controlName))
|
||||
return shiftCustomMapKeys[device][controlName];
|
||||
else return 0;
|
||||
}
|
||||
public string GetShiftCustomMacro(int device, DS4Controls controlName)
|
||||
{
|
||||
if (shiftCustomMapMacros[device].ContainsKey(controlName))
|
||||
return shiftCustomMapMacros[device][controlName];
|
||||
else return "0";
|
||||
}
|
||||
public DS4KeyType GetShiftCustomKeyType(int device, DS4Controls controlName)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (shiftCustomMapKeyTypes[device].ContainsKey(controlName))
|
||||
return shiftCustomMapKeyTypes[device][controlName];
|
||||
else return 0;
|
||||
}
|
||||
catch { return 0; }
|
||||
}
|
||||
|
||||
public Boolean SaveProfile(int device, String propath, System.Windows.Forms.Control[] buttons)
|
||||
public Boolean SaveProfile(int device, String propath, System.Windows.Forms.Control[] buttons, System.Windows.Forms.Control[] shiftbuttons)
|
||||
{
|
||||
Boolean Saved = true;
|
||||
String path = Global.appdatapath + @"\Profiles\" + propath + ".xml";
|
||||
String path = Global.appdatapath + @"\Profiles\" + Path.GetFileNameWithoutExtension(propath) + ".xml";
|
||||
try
|
||||
{
|
||||
XmlNode Node;
|
||||
|
||||
XmlNode xmlControls = m_Xdoc.SelectSingleNode("/ScpControl/Control");
|
||||
XmlNode xmlShiftControls = m_Xdoc.SelectSingleNode("/ScpControl/ShiftControl");
|
||||
m_Xdoc.RemoveAll();
|
||||
|
||||
Node = m_Xdoc.CreateXmlDeclaration("1.0", "utf-8", String.Empty);
|
||||
@ -759,14 +835,16 @@ namespace DS4Control
|
||||
XmlNode xmlSZD = m_Xdoc.CreateNode(XmlNodeType.Element, "SZDeadZone", null); xmlSZD.InnerText = SZDeadzone[device].ToString(); Node.AppendChild(xmlSZD);
|
||||
XmlNode xmlChargingType = m_Xdoc.CreateNode(XmlNodeType.Element, "ChargingType", null); xmlChargingType.InnerText = chargingType[device].ToString(); Node.AppendChild(xmlChargingType);
|
||||
XmlNode xmlMouseAccel = m_Xdoc.CreateNode(XmlNodeType.Element, "MouseAcceleration", null); xmlMouseAccel.InnerText = mouseAccel[device].ToString(); Node.AppendChild(xmlMouseAccel);
|
||||
XmlNode xmlShiftMod = m_Xdoc.CreateNode(XmlNodeType.Element, "ShiftModifier", null); xmlShiftMod.InnerText = shiftModifier[device].ToString(); Node.AppendChild(xmlShiftMod);
|
||||
XmlNode NodeControl = m_Xdoc.CreateNode(XmlNodeType.Element, "Control", null);
|
||||
|
||||
XmlNode Key = m_Xdoc.CreateNode(XmlNodeType.Element, "Key", null);
|
||||
XmlNode Macro = m_Xdoc.CreateNode(XmlNodeType.Element, "Macro", null);
|
||||
XmlNode KeyType = m_Xdoc.CreateNode(XmlNodeType.Element, "KeyType", null);
|
||||
XmlNode Button = m_Xdoc.CreateNode(XmlNodeType.Element, "Button", null);
|
||||
|
||||
foreach (var button in buttons)
|
||||
if (buttons != null)
|
||||
{
|
||||
foreach (var button in buttons)
|
||||
{
|
||||
// Save even if string (for xbox controller buttons)
|
||||
if (button.Tag != null)
|
||||
@ -805,15 +883,80 @@ namespace DS4Control
|
||||
else Button.AppendChild(buttonNode);
|
||||
}
|
||||
}
|
||||
Node.AppendChild(NodeControl);
|
||||
if (Button.HasChildNodes)
|
||||
NodeControl.AppendChild(Button);
|
||||
if (Macro.HasChildNodes)
|
||||
NodeControl.AppendChild(Macro);
|
||||
if (Key.HasChildNodes)
|
||||
NodeControl.AppendChild(Key);
|
||||
if (KeyType.HasChildNodes)
|
||||
NodeControl.AppendChild(KeyType);
|
||||
Node.AppendChild(NodeControl);
|
||||
if (Button.HasChildNodes)
|
||||
NodeControl.AppendChild(Button);
|
||||
if (Macro.HasChildNodes)
|
||||
NodeControl.AppendChild(Macro);
|
||||
if (Key.HasChildNodes)
|
||||
NodeControl.AppendChild(Key);
|
||||
if (KeyType.HasChildNodes)
|
||||
NodeControl.AppendChild(KeyType);
|
||||
}
|
||||
else if (xmlControls != null)
|
||||
Node.AppendChild(xmlControls);
|
||||
if (shiftModifier[device] > 0)
|
||||
{
|
||||
XmlNode NodeShiftControl = m_Xdoc.CreateNode(XmlNodeType.Element, "ShiftControl", null);
|
||||
|
||||
XmlNode ShiftKey = m_Xdoc.CreateNode(XmlNodeType.Element, "Key", null);
|
||||
XmlNode ShiftMacro = m_Xdoc.CreateNode(XmlNodeType.Element, "Macro", null);
|
||||
XmlNode ShiftKeyType = m_Xdoc.CreateNode(XmlNodeType.Element, "KeyType", null);
|
||||
XmlNode ShiftButton = m_Xdoc.CreateNode(XmlNodeType.Element, "Button", null);
|
||||
if (shiftbuttons != null)
|
||||
{
|
||||
foreach (var button in shiftbuttons)
|
||||
{
|
||||
// Save even if string (for xbox controller buttons)
|
||||
if (button.Tag != null)
|
||||
{
|
||||
XmlNode buttonNode;
|
||||
string keyType = String.Empty;
|
||||
if (button.Tag is String && (String)button.Tag == "Unbound")
|
||||
{
|
||||
keyType += DS4KeyType.Unbound;
|
||||
}
|
||||
{
|
||||
if (button.Font.Strikeout)
|
||||
keyType += DS4KeyType.HoldMacro;
|
||||
if (button.Font.Underline)
|
||||
keyType += DS4KeyType.Macro;
|
||||
if (button.Font.Italic)
|
||||
keyType += DS4KeyType.Toggle;
|
||||
if (button.Font.Bold)
|
||||
keyType += DS4KeyType.ScanCode;
|
||||
}
|
||||
if (keyType != String.Empty)
|
||||
{
|
||||
buttonNode = m_Xdoc.CreateNode(XmlNodeType.Element, button.Name, null);
|
||||
buttonNode.InnerText = keyType;
|
||||
ShiftKeyType.AppendChild(buttonNode);
|
||||
}
|
||||
buttonNode = m_Xdoc.CreateNode(XmlNodeType.Element, button.Name, null);
|
||||
buttonNode.InnerText = button.Tag.ToString();
|
||||
if (button.Tag is IEnumerable<int> || button.Tag is Int32[] || button.Tag is UInt16[])
|
||||
{
|
||||
buttonNode.InnerText = string.Join("/", (int[])button.Tag);
|
||||
ShiftMacro.AppendChild(buttonNode);
|
||||
}
|
||||
else if (button.Tag is Int32 || button.Tag is UInt16)
|
||||
ShiftKey.AppendChild(buttonNode);
|
||||
else ShiftButton.AppendChild(buttonNode);
|
||||
}
|
||||
}
|
||||
Node.AppendChild(NodeShiftControl);
|
||||
if (ShiftButton.HasChildNodes)
|
||||
NodeShiftControl.AppendChild(ShiftButton);
|
||||
if (ShiftMacro.HasChildNodes)
|
||||
NodeShiftControl.AppendChild(ShiftMacro);
|
||||
if (ShiftKey.HasChildNodes)
|
||||
NodeShiftControl.AppendChild(ShiftKey);
|
||||
if (ShiftKeyType.HasChildNodes)
|
||||
NodeShiftControl.AppendChild(ShiftKeyType);
|
||||
}
|
||||
else if (xmlShiftControls != null)
|
||||
Node.AppendChild(xmlShiftControls);
|
||||
}
|
||||
m_Xdoc.AppendChild(Node);
|
||||
if (NodeControl.HasChildNodes)
|
||||
Node.AppendChild(NodeControl);
|
||||
@ -863,9 +1006,49 @@ namespace DS4Control
|
||||
case "bnGyroXN": return DS4Controls.GyroXNeg;
|
||||
case "bnGyroZP": return DS4Controls.GyroZPos;
|
||||
case "bnGyroZN": return DS4Controls.GyroZNeg;
|
||||
|
||||
|
||||
case "sbnShare": return DS4Controls.Share;
|
||||
case "sbnL3": return DS4Controls.L3;
|
||||
case "sbnR3": return DS4Controls.R3;
|
||||
case "sbnOptions": return DS4Controls.Options;
|
||||
case "sbnUp": return DS4Controls.DpadUp;
|
||||
case "sbnRight": return DS4Controls.DpadRight;
|
||||
case "sbnDown": return DS4Controls.DpadDown;
|
||||
case "sbnLeft": return DS4Controls.DpadLeft;
|
||||
|
||||
case "sbnL1": return DS4Controls.L1;
|
||||
case "sbnR1": return DS4Controls.R1;
|
||||
case "sbnTriangle": return DS4Controls.Triangle;
|
||||
case "sbnCircle": return DS4Controls.Circle;
|
||||
case "sbnCross": return DS4Controls.Cross;
|
||||
case "sbnSquare": return DS4Controls.Square;
|
||||
|
||||
case "sbnPS": return DS4Controls.PS;
|
||||
case "sbnLSLeft": return DS4Controls.LXNeg;
|
||||
case "sbnLSUp": return DS4Controls.LYNeg;
|
||||
case "sbnRSLeft": return DS4Controls.RXNeg;
|
||||
case "sbnRSUp": return DS4Controls.RYNeg;
|
||||
|
||||
case "sbnLSRight": return DS4Controls.LXPos;
|
||||
case "sbnLSDown": return DS4Controls.LYPos;
|
||||
case "sbnRSRight": return DS4Controls.RXPos;
|
||||
case "sbnRSDown": return DS4Controls.RYPos;
|
||||
case "sbnL2": return DS4Controls.L2;
|
||||
case "sbnR2": return DS4Controls.R2;
|
||||
|
||||
case "sbnTouchLeft": return DS4Controls.TouchLeft;
|
||||
case "sbnTouchMulti": return DS4Controls.TouchMulti;
|
||||
case "sbnTouchUpper": return DS4Controls.TouchUpper;
|
||||
case "sbnTouchRight": return DS4Controls.TouchRight;
|
||||
case "sbnGsyroXP": return DS4Controls.GyroXPos;
|
||||
case "sbnGyroXN": return DS4Controls.GyroXNeg;
|
||||
case "sbnGyroZP": return DS4Controls.GyroZPos;
|
||||
case "sbnGyroZN": return DS4Controls.GyroZNeg;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
private X360Controls getX360ControlsByName(string key)
|
||||
{
|
||||
switch (key)
|
||||
@ -916,13 +1099,17 @@ namespace DS4Control
|
||||
return X360Controls.Unbound;
|
||||
}
|
||||
|
||||
public Boolean LoadProfile(int device, System.Windows.Forms.Control[] buttons, string propath = "")
|
||||
public Boolean LoadProfile(int device, System.Windows.Forms.Control[] buttons, System.Windows.Forms.Control[] shiftbuttons, string propath = "")
|
||||
{
|
||||
Boolean Loaded = true;
|
||||
Dictionary<DS4Controls, DS4KeyType> customMapKeyTypes = new Dictionary<DS4Controls, DS4KeyType>();
|
||||
Dictionary<DS4Controls, UInt16> customMapKeys = new Dictionary<DS4Controls, UInt16>();
|
||||
Dictionary<DS4Controls, X360Controls> customMapButtons = new Dictionary<DS4Controls, X360Controls>();
|
||||
Dictionary<DS4Controls, String> customMapMacros = new Dictionary<DS4Controls, String>();
|
||||
Dictionary<DS4Controls, DS4KeyType> shiftCustomMapKeyTypes = new Dictionary<DS4Controls, DS4KeyType>();
|
||||
Dictionary<DS4Controls, UInt16> shiftCustomMapKeys = new Dictionary<DS4Controls, UInt16>();
|
||||
Dictionary<DS4Controls, X360Controls> shiftCustomMapButtons = new Dictionary<DS4Controls, X360Controls>();
|
||||
Dictionary<DS4Controls, String> shiftCustomMapMacros = new Dictionary<DS4Controls, String>();
|
||||
Boolean missingSetting = false;
|
||||
string profilepath;
|
||||
if (propath == "")
|
||||
@ -1053,7 +1240,8 @@ namespace DS4Control
|
||||
catch { missingSetting = true; }
|
||||
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/MouseAcceleration"); Boolean.TryParse(Item.InnerText, out mouseAccel[device]); }
|
||||
catch { missingSetting = true; }
|
||||
|
||||
try { Item = m_Xdoc.SelectSingleNode("/ScpControl/ShiftModifier"); Int32.TryParse(Item.InnerText, out shiftModifier[device]); }
|
||||
catch { shiftModifier[device] = 0; missingSetting = true; }
|
||||
DS4KeyType keyType;
|
||||
UInt16 wvk;
|
||||
if (buttons == null)
|
||||
@ -1090,109 +1278,157 @@ namespace DS4Control
|
||||
if (keyType != DS4KeyType.None)
|
||||
customMapKeyTypes.Add(getDS4ControlsByName(item.Name), keyType);
|
||||
}
|
||||
if (shiftModifier[device] > 0)
|
||||
{
|
||||
ParentItem = m_Xdoc.SelectSingleNode("/ScpControl/ShiftControl/Button");
|
||||
if (ParentItem != null)
|
||||
foreach (XmlNode item in ParentItem.ChildNodes)
|
||||
shiftCustomMapButtons.Add(getDS4ControlsByName(item.Name), getX360ControlsByName(item.InnerText));
|
||||
ParentItem = m_Xdoc.SelectSingleNode("/ScpControl/ShiftControl/Macro");
|
||||
if (ParentItem != null)
|
||||
foreach (XmlNode item in ParentItem.ChildNodes)
|
||||
shiftCustomMapMacros.Add(getDS4ControlsByName(item.Name), item.InnerText);
|
||||
ParentItem = m_Xdoc.SelectSingleNode("/ScpControl/ShiftControl/Key");
|
||||
if (ParentItem != null)
|
||||
foreach (XmlNode item in ParentItem.ChildNodes)
|
||||
if (UInt16.TryParse(item.InnerText, out wvk))
|
||||
shiftCustomMapKeys.Add(getDS4ControlsByName(item.Name), wvk);
|
||||
ParentItem = m_Xdoc.SelectSingleNode("/ScpControl/ShiftControl/KeyType");
|
||||
if (ParentItem != null)
|
||||
foreach (XmlNode item in ParentItem.ChildNodes)
|
||||
if (item != null)
|
||||
{
|
||||
keyType = DS4KeyType.None;
|
||||
if (item.InnerText.Contains(DS4KeyType.ScanCode.ToString()))
|
||||
keyType |= DS4KeyType.ScanCode;
|
||||
if (item.InnerText.Contains(DS4KeyType.Toggle.ToString()))
|
||||
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)
|
||||
shiftCustomMapKeyTypes.Add(getDS4ControlsByName(item.Name), keyType);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach (var button in buttons)
|
||||
try
|
||||
{
|
||||
//bool foundBinding = false;
|
||||
Item = m_Xdoc.SelectSingleNode(String.Format("/ScpControl/Control/KeyType/{0}", button.Name));
|
||||
if (Item != null)
|
||||
{
|
||||
//foundBinding = true;
|
||||
keyType = DS4KeyType.None;
|
||||
if (Item.InnerText.Contains(DS4KeyType.Unbound.ToString()))
|
||||
{
|
||||
keyType = DS4KeyType.Unbound;
|
||||
button.Tag = "Unbound";
|
||||
button.Text = "Unbound";
|
||||
}
|
||||
else
|
||||
{
|
||||
bool SC = Item.InnerText.Contains(DS4KeyType.ScanCode.ToString());
|
||||
bool TG = Item.InnerText.Contains(DS4KeyType.Toggle.ToString());
|
||||
bool MC = Item.InnerText.Contains(DS4KeyType.Macro.ToString());
|
||||
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()))
|
||||
keyType |= DS4KeyType.Toggle;
|
||||
if (Item.InnerText.Contains(DS4KeyType.Macro.ToString()))
|
||||
keyType |= DS4KeyType.Macro;
|
||||
}
|
||||
if (keyType != DS4KeyType.None)
|
||||
customMapKeyTypes.Add(getDS4ControlsByName(Item.Name), keyType);
|
||||
}
|
||||
|
||||
Item = m_Xdoc.SelectSingleNode(String.Format("/ScpControl/Control/Macro/{0}", button.Name));
|
||||
if (Item != null)
|
||||
{
|
||||
string[] splitter = Item.InnerText.Split('/');
|
||||
int[] keys = new int[splitter.Length];
|
||||
for (int i = 0; i < keys.Length; i++)
|
||||
{
|
||||
keys[i] = int.Parse(splitter[i]);
|
||||
if (keys[i] < 255) splitter[i] = ((System.Windows.Forms.Keys)keys[i]).ToString();
|
||||
else if (keys[i] == 256) splitter[i] = "Left Mouse Button";
|
||||
else if (keys[i] == 257) splitter[i] = "Right Mouse Button";
|
||||
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 = "Macro";
|
||||
button.Tag = keys;
|
||||
customMapMacros.Add(getDS4ControlsByName(button.Name), Item.InnerText);
|
||||
}
|
||||
else if (m_Xdoc.SelectSingleNode(String.Format("/ScpControl/Control/Key/{0}", button.Name)) != null)
|
||||
{
|
||||
Item = m_Xdoc.SelectSingleNode(String.Format("/ScpControl/Control/Key/{0}", button.Name));
|
||||
if (UInt16.TryParse(Item.InnerText, out wvk))
|
||||
{
|
||||
//foundBinding = true;
|
||||
customMapKeys.Add(getDS4ControlsByName(Item.Name), wvk);
|
||||
button.Tag = wvk;
|
||||
button.Text = ((System.Windows.Forms.Keys)wvk).ToString();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Item = m_Xdoc.SelectSingleNode(String.Format("/ScpControl/Control/Button/{0}", button.Name));
|
||||
if (Item != null)
|
||||
{
|
||||
//foundBinding = true;
|
||||
button.Tag = Item.InnerText;
|
||||
button.Text = Item.InnerText;
|
||||
customMapButtons.Add(getDS4ControlsByName(button.Name), getX360ControlsByName(Item.InnerText));
|
||||
}
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
|
||||
}
|
||||
LoadButtons(buttons, "Control", customMapKeyTypes, customMapKeys, customMapButtons, customMapMacros);
|
||||
LoadButtons(shiftbuttons, "ShiftControl", shiftCustomMapKeyTypes, shiftCustomMapKeys, shiftCustomMapButtons, shiftCustomMapMacros);
|
||||
}
|
||||
}
|
||||
//catch { Loaded = false; }
|
||||
|
||||
if (Loaded)
|
||||
{
|
||||
this.customMapButtons[device] = customMapButtons;
|
||||
this.customMapKeys[device] = customMapKeys;
|
||||
this.customMapKeyTypes[device] = customMapKeyTypes;
|
||||
this.customMapMacros[device] = customMapMacros;
|
||||
|
||||
this.shiftCustomMapButtons[device] = shiftCustomMapButtons;
|
||||
this.shiftCustomMapKeys[device] = shiftCustomMapKeys;
|
||||
this.shiftCustomMapKeyTypes[device] = shiftCustomMapKeyTypes;
|
||||
this.shiftCustomMapMacros[device] = shiftCustomMapMacros;
|
||||
}
|
||||
// Only add missing settings if the actual load was graceful
|
||||
if (missingSetting && Loaded)
|
||||
SaveProfile(device, profilepath, buttons);
|
||||
if (missingSetting && Loaded)// && buttons != null)
|
||||
SaveProfile(device, profilepath, buttons, shiftbuttons);
|
||||
|
||||
return Loaded;
|
||||
}
|
||||
|
||||
public void LoadButtons(System.Windows.Forms.Control[] buttons, string control, Dictionary<DS4Controls, DS4KeyType> customMapKeyTypes,
|
||||
Dictionary<DS4Controls, UInt16> customMapKeys, Dictionary<DS4Controls, X360Controls> customMapButtons, Dictionary<DS4Controls, String> customMapMacros)
|
||||
{
|
||||
XmlNode Item;
|
||||
DS4KeyType keyType;
|
||||
UInt16 wvk;
|
||||
foreach (var button in buttons)
|
||||
try
|
||||
{
|
||||
//bool foundBinding = false;
|
||||
Item = m_Xdoc.SelectSingleNode(String.Format("/ScpControl/" + control + "/KeyType/{0}", button.Name));
|
||||
if (Item != null)
|
||||
{
|
||||
//foundBinding = true;
|
||||
keyType = DS4KeyType.None;
|
||||
if (Item.InnerText.Contains(DS4KeyType.Unbound.ToString()))
|
||||
{
|
||||
keyType = DS4KeyType.Unbound;
|
||||
button.Tag = "Unbound";
|
||||
button.Text = "Unbound";
|
||||
}
|
||||
else
|
||||
{
|
||||
bool SC = Item.InnerText.Contains(DS4KeyType.ScanCode.ToString());
|
||||
bool TG = Item.InnerText.Contains(DS4KeyType.Toggle.ToString());
|
||||
bool MC = Item.InnerText.Contains(DS4KeyType.Macro.ToString());
|
||||
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()))
|
||||
keyType |= DS4KeyType.Toggle;
|
||||
if (Item.InnerText.Contains(DS4KeyType.Macro.ToString()))
|
||||
keyType |= DS4KeyType.Macro;
|
||||
}
|
||||
if (keyType != DS4KeyType.None)
|
||||
customMapKeyTypes.Add(getDS4ControlsByName(Item.Name), keyType);
|
||||
}
|
||||
|
||||
Item = m_Xdoc.SelectSingleNode(String.Format("/ScpControl/" + control + "/Macro/{0}", button.Name));
|
||||
if (Item != null)
|
||||
{
|
||||
string[] splitter = Item.InnerText.Split('/');
|
||||
int[] keys = new int[splitter.Length];
|
||||
for (int i = 0; i < keys.Length; i++)
|
||||
{
|
||||
keys[i] = int.Parse(splitter[i]);
|
||||
if (keys[i] < 255) splitter[i] = ((System.Windows.Forms.Keys)keys[i]).ToString();
|
||||
else if (keys[i] == 256) splitter[i] = "Left Mouse Button";
|
||||
else if (keys[i] == 257) splitter[i] = "Right Mouse Button";
|
||||
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 = "Macro";
|
||||
button.Tag = keys;
|
||||
customMapMacros.Add(getDS4ControlsByName(button.Name), Item.InnerText);
|
||||
}
|
||||
else if (m_Xdoc.SelectSingleNode(String.Format("/ScpControl/" + control + "/Key/{0}", button.Name)) != null)
|
||||
{
|
||||
Item = m_Xdoc.SelectSingleNode(String.Format("/ScpControl/" + control + "/Key/{0}", button.Name));
|
||||
if (UInt16.TryParse(Item.InnerText, out wvk))
|
||||
{
|
||||
//foundBinding = true;
|
||||
customMapKeys.Add(getDS4ControlsByName(Item.Name), wvk);
|
||||
button.Tag = wvk;
|
||||
button.Text = ((System.Windows.Forms.Keys)wvk).ToString();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Item = m_Xdoc.SelectSingleNode(String.Format("/ScpControl/" + control + "/Button/{0}", button.Name));
|
||||
if (Item != null)
|
||||
{
|
||||
//foundBinding = true;
|
||||
button.Tag = Item.InnerText;
|
||||
button.Text = Item.InnerText;
|
||||
customMapButtons.Add(getDS4ControlsByName(button.Name), getX360ControlsByName(Item.InnerText));
|
||||
}
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
public bool Load()
|
||||
{
|
||||
Boolean Loaded = true;
|
||||
@ -1223,16 +1459,12 @@ namespace DS4Control
|
||||
catch { missingSetting = true; }
|
||||
try { Item = m_Xdoc.SelectSingleNode("/Profile/Controller4"); profilePath[3] = Item.InnerText; }
|
||||
catch { missingSetting = true; }
|
||||
try { Item = m_Xdoc.SelectSingleNode("/Profile/DS4Version"); Double.TryParse(Item.InnerText, out version); }
|
||||
catch { missingSetting = true; }
|
||||
try { Item = m_Xdoc.SelectSingleNode("/Profile/LastChecked"); DateTime.TryParse(Item.InnerText, out lastChecked); }
|
||||
catch { missingSetting = true; }
|
||||
try { Item = m_Xdoc.SelectSingleNode("/Profile/CheckWhen"); Int32.TryParse(Item.InnerText, out CheckWhen); }
|
||||
catch { missingSetting = true; }
|
||||
try { Item = m_Xdoc.SelectSingleNode("/Profile/Notifications"); Boolean.TryParse(Item.InnerText, out notifications); }
|
||||
catch { missingSetting = true; }
|
||||
try { Item = m_Xdoc.SelectSingleNode("/Profile/Notifications"); Boolean.TryParse(Item.InnerText, out notifications); }
|
||||
catch { missingSetting = true; }
|
||||
try { Item = m_Xdoc.SelectSingleNode("/Profile/DisconnectBTAtStop"); Boolean.TryParse(Item.InnerText, out disconnectBTAtStop); }
|
||||
catch { missingSetting = true; }
|
||||
try { Item = m_Xdoc.SelectSingleNode("/Profile/SwipeProfiles"); Boolean.TryParse(Item.InnerText, out swipeProfiles); }
|
||||
@ -1274,7 +1506,6 @@ namespace DS4Control
|
||||
XmlNode xmlController3 = m_Xdoc.CreateNode(XmlNodeType.Element, "Controller3", null); xmlController3.InnerText = profilePath[2]; Node.AppendChild(xmlController3);
|
||||
XmlNode xmlController4 = m_Xdoc.CreateNode(XmlNodeType.Element, "Controller4", null); xmlController4.InnerText = profilePath[3]; Node.AppendChild(xmlController4);
|
||||
|
||||
XmlNode xmlVersion = m_Xdoc.CreateNode(XmlNodeType.Element, "DS4Version", null); xmlVersion.InnerText = version.ToString(); Node.AppendChild(xmlVersion);
|
||||
XmlNode xmlLastChecked = m_Xdoc.CreateNode(XmlNodeType.Element, "LastChecked", null); xmlLastChecked.InnerText = lastChecked.ToString(); Node.AppendChild(xmlLastChecked);
|
||||
XmlNode xmlCheckWhen = m_Xdoc.CreateNode(XmlNodeType.Element, "CheckWhen", null); xmlCheckWhen.InnerText = CheckWhen.ToString(); Node.AppendChild(xmlCheckWhen);
|
||||
XmlNode xmlNotifications = m_Xdoc.CreateNode(XmlNodeType.Element, "Notifications", null); xmlNotifications.InnerText = notifications.ToString(); Node.AppendChild(xmlNotifications);
|
||||
|
@ -264,18 +264,33 @@ namespace DS4Library
|
||||
return priorInputReport30 != 0xff;
|
||||
}
|
||||
private byte priorInputReport30 = 0xff;
|
||||
[DllImport("user32.dll", SetLastError = true)]
|
||||
static extern void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo);
|
||||
public void ReleaseKeys(ushort key)
|
||||
{
|
||||
keybd_event((byte)key, 0, 2, 0);
|
||||
}
|
||||
public double Latency = 0;
|
||||
bool warn;
|
||||
private void performDs4Input()
|
||||
{
|
||||
System.Timers.Timer readTimeout = new System.Timers.Timer(); // Await 30 seconds for the initial packet, then 3 seconds thereafter.
|
||||
readTimeout.Elapsed += delegate { HidDevice.CancelIO(); };
|
||||
List<long> Latency = new List<long>();
|
||||
long oldtime = 0;
|
||||
Stopwatch sw = new Stopwatch();
|
||||
sw.Start();
|
||||
while (true)
|
||||
{
|
||||
Latency.Add(sw.ElapsedMilliseconds - oldtime);
|
||||
oldtime = sw.ElapsedMilliseconds;
|
||||
|
||||
if (Latency.Count > 100)
|
||||
Latency.RemoveAt(0);
|
||||
|
||||
this.Latency = Latency.Average();
|
||||
|
||||
if (this.Latency > 10 && !warn && sw.ElapsedMilliseconds > 4000)
|
||||
{
|
||||
warn = true;
|
||||
//System.Diagnostics.Trace.WriteLine(System.DateTime.UtcNow.ToString("o") + "> " + "Controller " + /*this.DeviceNum*/ + 1 + " (" + this.MacAddress + ") is experiencing latency issues. Currently at " + Math.Round(this.Latency, 2).ToString() + "ms of recomended maximum 10ms");
|
||||
}
|
||||
else if (this.Latency <= 10 && warn) warn = false;
|
||||
|
||||
if (readTimeout.Interval != 3000.0)
|
||||
{
|
||||
if (readTimeout.Interval != 30000.0)
|
||||
|
@ -220,6 +220,7 @@
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="Resources\size.png" />
|
||||
<None Include="Resources\xbox_360_controller.png" />
|
||||
<None Include="Resources\Y.png" />
|
||||
<None Include="Resources\X.png" />
|
||||
@ -248,6 +249,7 @@
|
||||
<None Include="Resources\BACK.png" />
|
||||
<None Include="Resources\DOWN.png" />
|
||||
<None Include="Resources\360 fades.png" />
|
||||
<None Include="Resources\checked.png" />
|
||||
<Content Include="Resources\DS4.ico" />
|
||||
<None Include="Resources\mouse.png" />
|
||||
<None Include="Resources\rainbow.png" />
|
||||
@ -277,6 +279,7 @@
|
||||
<None Include="Resources\RSR.png" />
|
||||
<None Include="Resources\RSU.png" />
|
||||
<None Include="Resources\RT.png" />
|
||||
<None Include="Resources\Red Circle.png" />
|
||||
<Content Include="Resources\Scp_All.ico" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
103
DS4Tool/Hotkeys.Designer.cs
generated
103
DS4Tool/Hotkeys.Designer.cs
generated
@ -68,6 +68,8 @@
|
||||
this.label31 = new System.Windows.Forms.Label();
|
||||
this.lLChangelog = new System.Windows.Forms.LinkLabel();
|
||||
this.linkDonate = new System.Windows.Forms.LinkLabel();
|
||||
this.label32 = new System.Windows.Forms.Label();
|
||||
this.label33 = new System.Windows.Forms.Label();
|
||||
this.tableLayoutPanel1.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
@ -75,7 +77,7 @@
|
||||
//
|
||||
this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.button1.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||
this.button1.Location = new System.Drawing.Point(215, 386);
|
||||
this.button1.Location = new System.Drawing.Point(215, 407);
|
||||
this.button1.Name = "button1";
|
||||
this.button1.Size = new System.Drawing.Size(75, 23);
|
||||
this.button1.TabIndex = 8;
|
||||
@ -87,7 +89,7 @@
|
||||
//
|
||||
this.linkElectro.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.linkElectro.AutoSize = true;
|
||||
this.linkElectro.Location = new System.Drawing.Point(272, 361);
|
||||
this.linkElectro.Location = new System.Drawing.Point(272, 382);
|
||||
this.linkElectro.Name = "linkElectro";
|
||||
this.linkElectro.Size = new System.Drawing.Size(149, 13);
|
||||
this.linkElectro.TabIndex = 18;
|
||||
@ -99,7 +101,7 @@
|
||||
//
|
||||
this.linkJays2Kings.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.linkJays2Kings.AutoSize = true;
|
||||
this.linkJays2Kings.Location = new System.Drawing.Point(17, 361);
|
||||
this.linkJays2Kings.Location = new System.Drawing.Point(17, 382);
|
||||
this.linkJays2Kings.Name = "linkJays2Kings";
|
||||
this.linkJays2Kings.Size = new System.Drawing.Size(60, 13);
|
||||
this.linkJays2Kings.TabIndex = 18;
|
||||
@ -111,7 +113,7 @@
|
||||
//
|
||||
this.label2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.label2.AutoSize = true;
|
||||
this.label2.Location = new System.Drawing.Point(203, 339);
|
||||
this.label2.Location = new System.Drawing.Point(203, 360);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(109, 13);
|
||||
this.label2.TabIndex = 13;
|
||||
@ -131,7 +133,7 @@
|
||||
//
|
||||
this.linkInhexSTER.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.linkInhexSTER.AutoSize = true;
|
||||
this.linkInhexSTER.Location = new System.Drawing.Point(95, 361);
|
||||
this.linkInhexSTER.Location = new System.Drawing.Point(95, 382);
|
||||
this.linkInhexSTER.Name = "linkInhexSTER";
|
||||
this.linkInhexSTER.Size = new System.Drawing.Size(159, 13);
|
||||
this.linkInhexSTER.TabIndex = 18;
|
||||
@ -143,7 +145,7 @@
|
||||
//
|
||||
this.linkJhebbel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
|
||||
this.linkJhebbel.AutoSize = true;
|
||||
this.linkJhebbel.Location = new System.Drawing.Point(429, 361);
|
||||
this.linkJhebbel.Location = new System.Drawing.Point(429, 382);
|
||||
this.linkJhebbel.Name = "linkJhebbel";
|
||||
this.linkJhebbel.Size = new System.Drawing.Size(87, 13);
|
||||
this.linkJhebbel.TabIndex = 18;
|
||||
@ -154,7 +156,7 @@
|
||||
// label23
|
||||
//
|
||||
this.label23.AutoSize = true;
|
||||
this.label23.Location = new System.Drawing.Point(6, 333);
|
||||
this.label23.Location = new System.Drawing.Point(6, 352);
|
||||
this.label23.Name = "label23";
|
||||
this.label23.Size = new System.Drawing.Size(58, 13);
|
||||
this.label23.TabIndex = 3;
|
||||
@ -164,7 +166,7 @@
|
||||
//
|
||||
this.label26.Anchor = System.Windows.Forms.AnchorStyles.Left;
|
||||
this.label26.AutoSize = true;
|
||||
this.label26.Location = new System.Drawing.Point(3, 282);
|
||||
this.label26.Location = new System.Drawing.Point(3, 301);
|
||||
this.label26.Name = "label26";
|
||||
this.label26.Size = new System.Drawing.Size(60, 13);
|
||||
this.label26.TabIndex = 14;
|
||||
@ -174,7 +176,7 @@
|
||||
//
|
||||
this.label27.Anchor = System.Windows.Forms.AnchorStyles.Left;
|
||||
this.label27.AutoSize = true;
|
||||
this.label27.Location = new System.Drawing.Point(193, 244);
|
||||
this.label27.Location = new System.Drawing.Point(193, 263);
|
||||
this.label27.Name = "label27";
|
||||
this.label27.Size = new System.Drawing.Size(296, 13);
|
||||
this.label27.TabIndex = 14;
|
||||
@ -184,7 +186,7 @@
|
||||
//
|
||||
this.label25.Anchor = System.Windows.Forms.AnchorStyles.Left;
|
||||
this.label25.AutoSize = true;
|
||||
this.label25.Location = new System.Drawing.Point(3, 263);
|
||||
this.label25.Location = new System.Drawing.Point(3, 282);
|
||||
this.label25.Name = "label25";
|
||||
this.label25.Size = new System.Drawing.Size(37, 13);
|
||||
this.label25.TabIndex = 14;
|
||||
@ -194,7 +196,7 @@
|
||||
//
|
||||
this.label29.Anchor = System.Windows.Forms.AnchorStyles.Left;
|
||||
this.label29.AutoSize = true;
|
||||
this.label29.Location = new System.Drawing.Point(193, 282);
|
||||
this.label29.Location = new System.Drawing.Point(193, 301);
|
||||
this.label29.Name = "label29";
|
||||
this.label29.Size = new System.Drawing.Size(313, 13);
|
||||
this.label29.TabIndex = 14;
|
||||
@ -204,7 +206,7 @@
|
||||
//
|
||||
this.label28.Anchor = System.Windows.Forms.AnchorStyles.Left;
|
||||
this.label28.AutoSize = true;
|
||||
this.label28.Location = new System.Drawing.Point(193, 263);
|
||||
this.label28.Location = new System.Drawing.Point(193, 282);
|
||||
this.label28.Name = "label28";
|
||||
this.label28.Size = new System.Drawing.Size(160, 13);
|
||||
this.label28.TabIndex = 14;
|
||||
@ -277,7 +279,7 @@
|
||||
//
|
||||
this.label13.Anchor = System.Windows.Forms.AnchorStyles.Left;
|
||||
this.label13.AutoSize = true;
|
||||
this.label13.Location = new System.Drawing.Point(3, 225);
|
||||
this.label13.Location = new System.Drawing.Point(3, 244);
|
||||
this.label13.Name = "label13";
|
||||
this.label13.Size = new System.Drawing.Size(184, 13);
|
||||
this.label13.TabIndex = 14;
|
||||
@ -405,7 +407,7 @@
|
||||
//
|
||||
this.label24.Anchor = System.Windows.Forms.AnchorStyles.Left;
|
||||
this.label24.AutoSize = true;
|
||||
this.label24.Location = new System.Drawing.Point(3, 244);
|
||||
this.label24.Location = new System.Drawing.Point(3, 263);
|
||||
this.label24.Name = "label24";
|
||||
this.label24.Size = new System.Drawing.Size(40, 13);
|
||||
this.label24.TabIndex = 14;
|
||||
@ -416,7 +418,6 @@
|
||||
this.tableLayoutPanel1.ColumnCount = 2;
|
||||
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
|
||||
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
|
||||
this.tableLayoutPanel1.Controls.Add(this.label24, 0, 12);
|
||||
this.tableLayoutPanel1.Controls.Add(this.label20, 0, 10);
|
||||
this.tableLayoutPanel1.Controls.Add(this.label22, 1, 10);
|
||||
this.tableLayoutPanel1.Controls.Add(this.label1, 0, 6);
|
||||
@ -430,7 +431,6 @@
|
||||
this.tableLayoutPanel1.Controls.Add(this.label9, 1, 8);
|
||||
this.tableLayoutPanel1.Controls.Add(this.label12, 1, 3);
|
||||
this.tableLayoutPanel1.Controls.Add(this.label3, 0, 9);
|
||||
this.tableLayoutPanel1.Controls.Add(this.label13, 0, 11);
|
||||
this.tableLayoutPanel1.Controls.Add(this.label21, 0, 4);
|
||||
this.tableLayoutPanel1.Controls.Add(this.label7, 1, 9);
|
||||
this.tableLayoutPanel1.Controls.Add(this.label4, 0, 7);
|
||||
@ -438,32 +438,37 @@
|
||||
this.tableLayoutPanel1.Controls.Add(this.label16, 1, 4);
|
||||
this.tableLayoutPanel1.Controls.Add(this.label8, 1, 7);
|
||||
this.tableLayoutPanel1.Controls.Add(this.label14, 1, 5);
|
||||
this.tableLayoutPanel1.Controls.Add(this.label28, 1, 13);
|
||||
this.tableLayoutPanel1.Controls.Add(this.label25, 0, 13);
|
||||
this.tableLayoutPanel1.Controls.Add(this.label26, 0, 14);
|
||||
this.tableLayoutPanel1.Controls.Add(this.label30, 0, 0);
|
||||
this.tableLayoutPanel1.Controls.Add(this.label31, 1, 0);
|
||||
this.tableLayoutPanel1.Controls.Add(this.label27, 1, 12);
|
||||
this.tableLayoutPanel1.Controls.Add(this.label29, 1, 14);
|
||||
this.tableLayoutPanel1.Controls.Add(this.label32, 0, 11);
|
||||
this.tableLayoutPanel1.Controls.Add(this.label13, 0, 12);
|
||||
this.tableLayoutPanel1.Controls.Add(this.label24, 0, 13);
|
||||
this.tableLayoutPanel1.Controls.Add(this.label26, 0, 15);
|
||||
this.tableLayoutPanel1.Controls.Add(this.label25, 0, 14);
|
||||
this.tableLayoutPanel1.Controls.Add(this.label29, 1, 15);
|
||||
this.tableLayoutPanel1.Controls.Add(this.label28, 1, 14);
|
||||
this.tableLayoutPanel1.Controls.Add(this.label27, 1, 13);
|
||||
this.tableLayoutPanel1.Controls.Add(this.label33, 1, 11);
|
||||
this.tableLayoutPanel1.Location = new System.Drawing.Point(3, 31);
|
||||
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
|
||||
this.tableLayoutPanel1.RowCount = 15;
|
||||
this.tableLayoutPanel1.RowCount = 16;
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 32F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 7.142857F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 7.142857F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 7.142857F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 7.142857F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 7.142857F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 7.142857F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 7.142857F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 7.142857F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 7.142857F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 7.142857F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 7.142857F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 7.142857F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 7.142857F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 7.142857F));
|
||||
this.tableLayoutPanel1.Size = new System.Drawing.Size(513, 299);
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 6.666667F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 6.666667F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 6.666667F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 6.666667F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 6.666667F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 6.666667F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 6.666667F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 6.666667F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 6.666667F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 6.666667F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 6.666667F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 6.666667F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 6.666667F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 6.666667F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 6.666667F));
|
||||
this.tableLayoutPanel1.Size = new System.Drawing.Size(513, 318);
|
||||
this.tableLayoutPanel1.TabIndex = 19;
|
||||
//
|
||||
// label30
|
||||
@ -509,13 +514,33 @@
|
||||
this.linkDonate.Text = "Donate via Paypal";
|
||||
this.linkDonate.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkDonate_LinkClicked);
|
||||
//
|
||||
// label32
|
||||
//
|
||||
this.label32.Anchor = System.Windows.Forms.AnchorStyles.Left;
|
||||
this.label32.AutoSize = true;
|
||||
this.label32.Location = new System.Drawing.Point(3, 225);
|
||||
this.label32.Name = "label32";
|
||||
this.label32.Size = new System.Drawing.Size(66, 13);
|
||||
this.label32.TabIndex = 14;
|
||||
this.label32.Text = "Shift Modifer";
|
||||
//
|
||||
// label33
|
||||
//
|
||||
this.label33.Anchor = System.Windows.Forms.AnchorStyles.Left;
|
||||
this.label33.AutoSize = true;
|
||||
this.label33.Location = new System.Drawing.Point(193, 225);
|
||||
this.label33.Name = "label33";
|
||||
this.label33.Size = new System.Drawing.Size(216, 13);
|
||||
this.label33.TabIndex = 14;
|
||||
this.label33.Text = "Hold an action to use another set of controls";
|
||||
//
|
||||
// Hotkeys
|
||||
//
|
||||
this.AcceptButton = this.button1;
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.CancelButton = this.button1;
|
||||
this.ClientSize = new System.Drawing.Size(520, 413);
|
||||
this.ClientSize = new System.Drawing.Size(520, 434);
|
||||
this.Controls.Add(this.linkDonate);
|
||||
this.Controls.Add(this.lLChangelog);
|
||||
this.Controls.Add(this.tableLayoutPanel1);
|
||||
@ -581,5 +606,7 @@
|
||||
private System.Windows.Forms.Label label31;
|
||||
private System.Windows.Forms.LinkLabel lLChangelog;
|
||||
private System.Windows.Forms.LinkLabel linkDonate;
|
||||
private System.Windows.Forms.Label label32;
|
||||
private System.Windows.Forms.Label label33;
|
||||
}
|
||||
}
|
@ -9,17 +9,20 @@ using System.Windows.Forms;
|
||||
using DS4Control;
|
||||
using System.Net;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace ScpServer
|
||||
{
|
||||
public partial class Hotkeys : Form
|
||||
{
|
||||
ScpForm form;
|
||||
public Hotkeys(ScpForm main)
|
||||
public Hotkeys()
|
||||
{
|
||||
form = main;
|
||||
InitializeComponent();
|
||||
lbAbout.Text += Global.getVersion().ToString() + ")";
|
||||
FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(Assembly.GetExecutingAssembly().Location);
|
||||
string version = fvi.FileVersion;
|
||||
lbAbout.Text += version + ")";
|
||||
//lbAbout.Text += Global.getVersion().ToString() + ")";
|
||||
}
|
||||
|
||||
private void button1_Click(object sender, EventArgs e)
|
||||
|
3
DS4Tool/KBM360.Designer.cs
generated
3
DS4Tool/KBM360.Designer.cs
generated
@ -1256,7 +1256,7 @@
|
||||
this.btnSEMICOLON.Size = new System.Drawing.Size(24, 24);
|
||||
this.btnSEMICOLON.TabIndex = 200;
|
||||
this.btnSEMICOLON.TabStop = false;
|
||||
this.btnSEMICOLON.Tag = "59";
|
||||
this.btnSEMICOLON.Tag = "186";
|
||||
this.btnSEMICOLON.Text = ";";
|
||||
this.btnSEMICOLON.UseVisualStyleBackColor = true;
|
||||
//
|
||||
@ -2195,7 +2195,6 @@
|
||||
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.ResumeLayout(false);
|
||||
|
@ -29,7 +29,14 @@ namespace ScpServer
|
||||
cbScanCode.Checked = button.Font.Bold;
|
||||
//cBMacro.Checked = button.Font.Underline;
|
||||
lBMacroOn.Visible = button.Font.Underline;
|
||||
Text = "Select an action for " + button.Name.Substring(2);
|
||||
if (button.Name.StartsWith("bn"))
|
||||
Text = "Select an action for " + button.Name.Substring(2);
|
||||
else if (button.Name.StartsWith("sbn"))
|
||||
{
|
||||
Text = "Select an action for " + button.Name.Substring(3);
|
||||
btnUNBOUND2.Text = "Fall Back";
|
||||
btnUNBOUND2.Tag = null;
|
||||
}
|
||||
foreach (System.Windows.Forms.Control control in this.Controls)
|
||||
if (control is Button)
|
||||
((Button)control).Click += anybtn_Click;
|
||||
@ -64,13 +71,15 @@ namespace ScpServer
|
||||
else
|
||||
keyname = "How did you get here?";
|
||||
}
|
||||
else if (((Button)sender).Tag == null)
|
||||
keyname = "Fall back";
|
||||
else if (((Button)sender).Tag.ToString().Contains("X360"))
|
||||
keyname = ((Button)sender).Tag.ToString().Substring(4);
|
||||
else
|
||||
keyname = ((Button)sender).Text;
|
||||
|
||||
object keytag;
|
||||
if (((Button)sender).Tag.ToString().Contains("X360"))
|
||||
if (((Button)sender).Tag != null && ((Button)sender).Tag.ToString().Contains("X360"))
|
||||
keytag = ((Button)sender).Tag.ToString().Substring(4);
|
||||
else
|
||||
keytag = ((Button)sender).Tag;
|
||||
@ -95,13 +104,6 @@ namespace ScpServer
|
||||
this.Close();
|
||||
}
|
||||
|
||||
private void Key_Up_Action(object sender, KeyEventArgs e)
|
||||
{
|
||||
lBMacroOn.Visible = false;
|
||||
ops.ChangeButtonText(e.KeyCode.ToString(), e.KeyValue);
|
||||
this.Close();
|
||||
}
|
||||
|
||||
private void Key_Press_Action(object sender, KeyEventArgs e)
|
||||
{
|
||||
lBMacroOn.Visible = false;
|
||||
|
1707
DS4Tool/Options.Designer.cs
generated
1707
DS4Tool/Options.Designer.cs
generated
File diff suppressed because it is too large
Load Diff
@ -15,7 +15,7 @@ namespace ScpServer
|
||||
public string filename;
|
||||
Byte[] oldLedColor, oldLowLedColor, oldChargingColor;
|
||||
public Timer inputtimer = new Timer(), sixaxisTimer = new Timer();
|
||||
public List<Button> buttons = new List<Button>();
|
||||
public List<Button> buttons = new List<Button>(), subbuttons = new List<Button>();
|
||||
private Button lastSelected;
|
||||
private int alphacolor;
|
||||
private Color reg, full;
|
||||
@ -33,12 +33,39 @@ namespace ScpServer
|
||||
root = rt;
|
||||
g = CreateGraphics();
|
||||
greyscale = GreyscaleImage((Bitmap)pBRainbow.Image);
|
||||
if (deviceNum < 4)
|
||||
foreach (System.Windows.Forms.Control control in MainPanel.Controls)
|
||||
if (control is Button)
|
||||
if (!((Button)control).Name.Contains("btn"))
|
||||
buttons.Add((Button)control);
|
||||
foreach (System.Windows.Forms.Control control in SticksPanel.Controls)
|
||||
if (control is Button)
|
||||
if (!((Button)control).Name.Contains("btn"))
|
||||
buttons.Add((Button)control);
|
||||
foreach (System.Windows.Forms.Control control in fLPTiltControls.Controls)
|
||||
if (control is Button)
|
||||
if (!((Button)control).Name.Contains("btn"))
|
||||
buttons.Add((Button)control);
|
||||
foreach (System.Windows.Forms.Control control in ShiftMainPanel.Controls)
|
||||
if (control is Button)
|
||||
if (!((Button)control).Name.Contains("sbtn"))
|
||||
subbuttons.Add((Button)control);
|
||||
foreach (System.Windows.Forms.Control control in ShiftSticksPanel.Controls)
|
||||
if (control is Button)
|
||||
if (!((Button)control).Name.Contains("sbtn"))
|
||||
subbuttons.Add((Button)control);
|
||||
foreach (System.Windows.Forms.Control control in sfLPTiltControls.Controls)
|
||||
if (control is Button)
|
||||
if (!((Button)control).Name.Contains("sbtn"))
|
||||
subbuttons.Add((Button)control);
|
||||
if (device < 4)
|
||||
nUDSixaxis.Value = deviceNum + 1;
|
||||
if (filename != "")
|
||||
{
|
||||
Global.setAProfile(4, name);
|
||||
Global.LoadProfile(deviceNum);
|
||||
if (device == 4)
|
||||
{
|
||||
Global.setAProfile(4, name);
|
||||
}
|
||||
Global.LoadProfile(device, buttons.ToArray(), subbuttons.ToArray());
|
||||
DS4Color color = Global.loadColor(device);
|
||||
redBar.Value = color.red;
|
||||
greenBar.Value = color.green;
|
||||
@ -105,25 +132,15 @@ namespace ScpServer
|
||||
nUDRS.Value = Math.Round((decimal)(Global.getRSDeadzone(device) / 127d ), 3);
|
||||
nUDSX.Value = (decimal)Global.getSXDeadzone(device);
|
||||
nUDSZ.Value = (decimal)Global.getSZDeadzone(device);
|
||||
cBShiftControl.SelectedIndex = Global.getShiftModifier(device);
|
||||
}
|
||||
else
|
||||
Set();
|
||||
foreach (System.Windows.Forms.Control control in MainPanel.Controls)
|
||||
if (control is Button)
|
||||
if (!((Button)control).Name.Contains("btn"))
|
||||
buttons.Add((Button)control);
|
||||
foreach (System.Windows.Forms.Control control in SticksPanel.Controls)
|
||||
if (control is Button)
|
||||
if (!((Button)control).Name.Contains("btn"))
|
||||
buttons.Add((Button)control);
|
||||
foreach (System.Windows.Forms.Control control in fLPTiltControls.Controls)
|
||||
if (control is Button)
|
||||
if (!((Button)control).Name.Contains("btn"))
|
||||
buttons.Add((Button)control);
|
||||
foreach (Button b in buttons)
|
||||
b.MouseHover += button_MouseHover;
|
||||
if (filename != "" && filename != "New Profile")
|
||||
Global.LoadProfile(device, buttons.ToArray());
|
||||
foreach (Button b in subbuttons)
|
||||
b.MouseHover += button_MouseHover;
|
||||
|
||||
tp.SetToolTip(cBlowerRCOn, "Best used with right side as a mouse function");
|
||||
tp.SetToolTip(cBDoubleTap, "Tap and hold to drag, slight delay with single taps");
|
||||
tp.SetToolTip(lBControlTip, "You can also use your controller to change controls");
|
||||
@ -131,21 +148,26 @@ namespace ScpServer
|
||||
tp.SetToolTip(pBRainbow, "Always on Rainbow Mode");
|
||||
tp.SetToolTip(cBFlushHIDQueue, "Flush HID Queue after each reading");
|
||||
tp.SetToolTip(cBLightbyBattery, "Also dim light by idle timeout if on");
|
||||
tp.SetToolTip(lB6Gryo, "Click to see readout of Sixaxis Gyro");
|
||||
tp.SetToolTip(lBGryo, "Click to see readout of Sixaxis Gyro");
|
||||
tp.SetToolTip(tBsixaxisGyroX, "GyroX, Left and Right Tilt");
|
||||
tp.SetToolTip(tBsixaxisGyroY, "GyroY, Forward and Back Tilt");
|
||||
tp.SetToolTip(tBsixaxisGyroZ, "GyroZ, Up and Down Tilt");
|
||||
tp.SetToolTip(tBsixaxisAccelX, "AccelX");
|
||||
tp.SetToolTip(tBsixaxisAccelY, "AccelY");
|
||||
tp.SetToolTip(tBsixaxisAccelZ, "AccelZ");
|
||||
tp.SetToolTip(lBEmpty, "Click to copy the full color");
|
||||
tp.SetToolTip(lBSATip, "Click for advanced Sixaxis reading");
|
||||
advColorDialog.OnUpdateColor += advColorDialog_OnUpdateColor;
|
||||
btnLeftStick.Enter += btnSticks_Enter;
|
||||
btnRightStick.Enter += btnSticks_Enter;
|
||||
sbtnLeftStick.Enter += sbtnSticks_Enter;
|
||||
sbtnRightStick.Enter += sbtnSticks_Enter;
|
||||
UpdateLists();
|
||||
inputtimer.Start();
|
||||
inputtimer.Tick += InputDS4;
|
||||
sixaxisTimer.Tick += sixaxisTimer_Tick;
|
||||
sixaxisTimer.Interval = 1000 / 60;
|
||||
|
||||
}
|
||||
|
||||
void sixaxisTimer_Tick(object sender, EventArgs e)
|
||||
@ -153,17 +175,60 @@ namespace ScpServer
|
||||
// MEMS gyro data is all calibrated to roughly -1G..1G for values -0x2000..0x1fff
|
||||
// Enough additional acceleration and we are no longer mostly measuring Earth's gravity...
|
||||
// We should try to indicate setpoints of the calibration when exposing this measurement....
|
||||
SetDynamicTrackBarValue(tBsixaxisGyroX, (scpDevice.ExposedState[(int)nUDSixaxis.Value - 1].GyroX + tBsixaxisGyroX.Value * 2) / 3);
|
||||
SetDynamicTrackBarValue(tBsixaxisGyroY, (scpDevice.ExposedState[(int)nUDSixaxis.Value - 1].GyroY + tBsixaxisGyroY.Value * 2) / 3);
|
||||
SetDynamicTrackBarValue(tBsixaxisGyroZ, (scpDevice.ExposedState[(int)nUDSixaxis.Value - 1].GyroZ + tBsixaxisGyroZ.Value * 2) / 3);
|
||||
SetDynamicTrackBarValue(tBsixaxisAccelX, (scpDevice.ExposedState[(int)nUDSixaxis.Value - 1].AccelX + tBsixaxisAccelX.Value * 2) / 3);
|
||||
SetDynamicTrackBarValue(tBsixaxisAccelY, (scpDevice.ExposedState[(int)nUDSixaxis.Value - 1].AccelY + tBsixaxisAccelY.Value * 2) / 3);
|
||||
SetDynamicTrackBarValue(tBsixaxisAccelZ, (scpDevice.ExposedState[(int)nUDSixaxis.Value - 1].AccelZ + tBsixaxisAccelZ.Value * 2) / 3);
|
||||
if (scpDevice.DS4Controllers[(int)nUDSixaxis.Value - 1] == null)
|
||||
{
|
||||
tPController.Enabled = false;
|
||||
lBInputDelay.Text = "Input Delay: N/Ams";
|
||||
pBDelayTracker.BackColor = Color.Transparent;
|
||||
}
|
||||
else
|
||||
{
|
||||
tPController.Enabled = true;
|
||||
SetDynamicTrackBarValue(tBsixaxisGyroX, (scpDevice.ExposedState[(int)nUDSixaxis.Value - 1].GyroX + tBsixaxisGyroX.Value * 2) / 3);
|
||||
SetDynamicTrackBarValue(tBsixaxisGyroY, (scpDevice.ExposedState[(int)nUDSixaxis.Value - 1].GyroY + tBsixaxisGyroY.Value * 2) / 3);
|
||||
SetDynamicTrackBarValue(tBsixaxisGyroZ, (scpDevice.ExposedState[(int)nUDSixaxis.Value - 1].GyroZ + tBsixaxisGyroZ.Value * 2) / 3);
|
||||
SetDynamicTrackBarValue(tBsixaxisAccelX, (scpDevice.ExposedState[(int)nUDSixaxis.Value - 1].AccelX + tBsixaxisAccelX.Value * 2) / 3);
|
||||
SetDynamicTrackBarValue(tBsixaxisAccelY, (scpDevice.ExposedState[(int)nUDSixaxis.Value - 1].AccelY + tBsixaxisAccelY.Value * 2) / 3);
|
||||
SetDynamicTrackBarValue(tBsixaxisAccelZ, (scpDevice.ExposedState[(int)nUDSixaxis.Value - 1].AccelZ + tBsixaxisAccelZ.Value * 2) / 3);
|
||||
int x = scpDevice.getDS4State((int)nUDSixaxis.Value - 1).LX;
|
||||
int y = scpDevice.getDS4State((int)nUDSixaxis.Value - 1).LY;
|
||||
btnLSTrack.Location = new Point((int)(x / 2.09 + lBLSTrack.Location.X), (int)(y / 2.09 + lBLSTrack.Location.Y));
|
||||
x = scpDevice.getDS4State((int)nUDSixaxis.Value - 1).RX;
|
||||
y = scpDevice.getDS4State((int)nUDSixaxis.Value - 1).RY;
|
||||
btnRSTrack.Location = new Point((int)(x / 2.09 + lBRSTrack.Location.X), (int)(y / 2.09 + lBRSTrack.Location.Y));
|
||||
x = -scpDevice.ExposedState[(int)nUDSixaxis.Value - 1].GyroX / 62 + 127;
|
||||
y = scpDevice.ExposedState[(int)nUDSixaxis.Value - 1].GyroZ / 62 + 127;
|
||||
btnSATrack.Location = new Point((int)(x / 2.09 + lBSATrack.Location.X), (int)(y / 2.09 + lBSATrack.Location.Y));
|
||||
tBL2.Value = scpDevice.getDS4State((int)nUDSixaxis.Value - 1).L2;
|
||||
lBL2Track.Location = new Point(tBL2.Location.X - 15, (int)(24 - tBL2.Value / 10.625) + 10);
|
||||
if (tBL2.Value == 255)
|
||||
lBL2Track.ForeColor = Color.Green;
|
||||
else if (tBL2.Value < (double)nUDL2.Value * 255)
|
||||
lBL2Track.ForeColor = Color.Red;
|
||||
else
|
||||
lBL2Track.ForeColor = Color.Black;
|
||||
tBR2.Value = scpDevice.getDS4State((int)nUDSixaxis.Value - 1).R2;
|
||||
lBR2Track.Location = new Point(tBR2.Location.X + 20, (int)(24 - tBR2.Value / 10.625) + 10);
|
||||
if (tBR2.Value == 255)
|
||||
lBR2Track.ForeColor = Color.Green;
|
||||
else if (tBR2.Value < (double)nUDR2.Value * 255)
|
||||
lBR2Track.ForeColor = Color.Red;
|
||||
else
|
||||
lBR2Track.ForeColor = Color.Black;
|
||||
double latency = scpDevice.DS4Controllers[(int)nUDSixaxis.Value - 1].Latency;
|
||||
lBInputDelay.Text = "Input Delay: " + latency + "ms";
|
||||
if (latency > 10)
|
||||
pBDelayTracker.BackColor = Color.Red;
|
||||
else if (latency > 5)
|
||||
pBDelayTracker.BackColor = Color.Yellow;
|
||||
else
|
||||
pBDelayTracker.BackColor = Color.Green;
|
||||
}
|
||||
}
|
||||
private void InputDS4(object sender, EventArgs e)
|
||||
{
|
||||
#region DS4Input
|
||||
if (Form.ActiveForm == root && cBControllerInput.Checked)
|
||||
if (Form.ActiveForm == root && cBControllerInput.Checked && tabControls.SelectedIndex != 2)
|
||||
switch (scpDevice.GetInputkeys((int)nUDSixaxis.Value - 1))
|
||||
{
|
||||
case ("Cross"): Show_ControlsBn(bnCross, e); break;
|
||||
@ -241,6 +306,39 @@ namespace ScpServer
|
||||
case ("bnGyroXP"): lBControls.SelectedIndex = 31; break;
|
||||
case ("bnGyroXN"): lBControls.SelectedIndex = 32; break;
|
||||
|
||||
case ("sbnCross"): lBShiftControls.SelectedIndex = 0; break;
|
||||
case ("sbnCircle"): lBShiftControls.SelectedIndex = 1; break;
|
||||
case ("sbnSquare"): lBShiftControls.SelectedIndex = 2; break;
|
||||
case ("sbnTriangle"): lBShiftControls.SelectedIndex = 3; break;
|
||||
case ("sbnOptions"): lBShiftControls.SelectedIndex = 4; break;
|
||||
case ("sbnShare"): lBShiftControls.SelectedIndex = 5; break;
|
||||
case ("sbnUp"): lBShiftControls.SelectedIndex = 6; break;
|
||||
case ("sbnDown"): lBShiftControls.SelectedIndex = 7; break;
|
||||
case ("sbnLeft"): lBShiftControls.SelectedIndex = 8; break;
|
||||
case ("sbnRight"): lBShiftControls.SelectedIndex = 9; break;
|
||||
case ("sbnPS"): lBShiftControls.SelectedIndex = 10; break;
|
||||
case ("sbnL1"): lBShiftControls.SelectedIndex = 11; break;
|
||||
case ("sbnR1"): lBShiftControls.SelectedIndex = 12; break;
|
||||
case ("sbnL2"): lBShiftControls.SelectedIndex = 13; break;
|
||||
case ("sbnR2"): lBShiftControls.SelectedIndex = 14; break;
|
||||
case ("sbnL3"): lBShiftControls.SelectedIndex = 15; break;
|
||||
case ("sbnR3"): lBShiftControls.SelectedIndex = 16; break;
|
||||
case ("sbnTouchLeft"): lBShiftControls.SelectedIndex = 17; break;
|
||||
case ("sbnTouchRight"): lBShiftControls.SelectedIndex = 18; break;
|
||||
case ("sbnTouchMulti"): lBShiftControls.SelectedIndex = 19; break;
|
||||
case ("sbnTouchUpper"): lBShiftControls.SelectedIndex = 20; break;
|
||||
case ("sbnLSUp"): lBShiftControls.SelectedIndex = 21; break;
|
||||
case ("sbnLSDown"): lBShiftControls.SelectedIndex = 22; break;
|
||||
case ("sbnLSLeft"): lBShiftControls.SelectedIndex = 23; break;
|
||||
case ("sbnLSRight"): lBShiftControls.SelectedIndex = 24; break;
|
||||
case ("sbnRSUp"): lBShiftControls.SelectedIndex = 25; break;
|
||||
case ("sbnRSDown"): lBShiftControls.SelectedIndex = 26; break;
|
||||
case ("sbnRSLeft"): lBShiftControls.SelectedIndex = 27; break;
|
||||
case ("sbnRSRight"): lBShiftControls.SelectedIndex = 28; break;
|
||||
case ("sbnGyroZN"): lBShiftControls.SelectedIndex = 29; break;
|
||||
case ("sbnGyroZP"): lBShiftControls.SelectedIndex = 30; break;
|
||||
case ("sbnGyroXP"): lBShiftControls.SelectedIndex = 31; break;
|
||||
case ("sbnGyroXN"): lBShiftControls.SelectedIndex = 32; break;
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@ -279,6 +377,7 @@ namespace ScpServer
|
||||
Global.setSXDeadzone(device, (double)nUDSX.Value);
|
||||
Global.setSZDeadzone(device, (double)nUDSZ.Value);
|
||||
Global.setMouseAccel(device, cBMouseAccel.Checked);
|
||||
Global.setShiftModifier(device, cBShiftControl.SelectedIndex);
|
||||
if (nUDRainbow.Value == 0) pBRainbow.Image = greyscale;
|
||||
else pBRainbow.Image = colored;
|
||||
}
|
||||
@ -297,7 +396,9 @@ namespace ScpServer
|
||||
{
|
||||
lastSelected.Text = controlname;
|
||||
int value;
|
||||
if (Int32.TryParse(tag.ToString(), out value))
|
||||
if (tag == null)
|
||||
lastSelected.Tag = tag;
|
||||
else if (Int32.TryParse(tag.ToString(), out value))
|
||||
lastSelected.Tag = value;
|
||||
else if (tag is Int32[])
|
||||
lastSelected.Tag = tag;
|
||||
@ -332,6 +433,18 @@ namespace ScpServer
|
||||
SticksPanel.Visible = false;
|
||||
MainPanel.Visible = true;
|
||||
}
|
||||
|
||||
private void sbtnSticks_Enter(object sender, EventArgs e)
|
||||
{
|
||||
ShiftSticksPanel.Visible = true;
|
||||
ShiftMainPanel.Visible = false;
|
||||
}
|
||||
|
||||
private void sbtnFullView_Click(object sender, EventArgs e)
|
||||
{
|
||||
ShiftSticksPanel.Visible = false;
|
||||
ShiftMainPanel.Visible = true;
|
||||
}
|
||||
private void btnLightbar_Click(object sender, EventArgs e)
|
||||
{
|
||||
advColorDialog.Color = Color.FromArgb(redBar.Value, greenBar.Value, blueBar.Value);
|
||||
@ -525,19 +638,8 @@ namespace ScpServer
|
||||
private void rumbleBoostBar_ValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
Global.saveRumbleBoost(device, (byte)nUDRumbleBoost.Value);
|
||||
scpDevice.setRumble((byte)nUDHeavyRumble.Value, (byte)nUDLightRumble.Value, device);
|
||||
}
|
||||
|
||||
private void numUDLightRumble_ValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (btnRumbleTest.Text == "Stop")
|
||||
scpDevice.setRumble((byte)nUDHeavyRumble.Value, (byte)nUDLightRumble.Value, device);
|
||||
}
|
||||
|
||||
private void numUDHeavyRumble_ValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (btnRumbleTest.Text == "Stop")
|
||||
scpDevice.setRumble((byte)nUDHeavyRumble.Value, (byte)nUDLightRumble.Value, device);
|
||||
scpDevice.setRumble(255, 255, device);
|
||||
}
|
||||
|
||||
private void btnRumbleTest_Click(object sender, EventArgs e)
|
||||
@ -609,8 +711,6 @@ namespace ScpServer
|
||||
|
||||
private void Options_Closed(object sender, FormClosedEventArgs e)
|
||||
{
|
||||
if (sixaxisTimer.Enabled)
|
||||
sixaxisTimer.Stop();
|
||||
for (int i = 0; i < 4; i++)
|
||||
Global.LoadProfile(i); //Refreshes all profiles in case other controllers are using the same profile
|
||||
inputtimer.Stop();
|
||||
@ -689,6 +789,47 @@ namespace ScpServer
|
||||
bnGyroZP.Text = "Tilt Down";
|
||||
bnGyroXP.Text = "Tilt Left";
|
||||
bnGyroXN.Text = "Tilt Right";
|
||||
|
||||
foreach (Button b in subbuttons)
|
||||
if (b.Tag == null)
|
||||
b.Text = "Fall Back to " + buttons[subbuttons.IndexOf(b)].Text;
|
||||
lBShiftControls.Items[0] = "Cross : " + sbnCross.Text;
|
||||
lBShiftControls.Items[1] = "Circle : " + sbnCircle.Text;
|
||||
lBShiftControls.Items[2] = "Sqaure : " + sbnSquare.Text;
|
||||
lBShiftControls.Items[3] = "Triangle : " + sbnTriangle.Text;
|
||||
lBShiftControls.Items[4] = "Options : " + sbnOptions.Text;
|
||||
lBShiftControls.Items[5] = "Share : " + sbnShare.Text;
|
||||
lBShiftControls.Items[6] = "Up : " + sbnUp.Text;
|
||||
lBShiftControls.Items[7] = "Down : " + sbnDown.Text;
|
||||
lBShiftControls.Items[8] = "Left : " + sbnLeft.Text;
|
||||
lBShiftControls.Items[9] = "Right : " + sbnRight.Text;
|
||||
lBShiftControls.Items[10] = "PS : " + sbnPS.Text;
|
||||
lBShiftControls.Items[11] = "L1 : " + sbnL1.Text;
|
||||
lBShiftControls.Items[12] = "R1 : " + sbnR1.Text;
|
||||
lBShiftControls.Items[13] = "L2 : " + sbnL2.Text;
|
||||
lBShiftControls.Items[14] = "R2 : " + sbnR2.Text;
|
||||
lBShiftControls.Items[15] = "L3 : " + sbnL3.Text;
|
||||
lBShiftControls.Items[16] = "R3 : " + sbnR3.Text;
|
||||
lBShiftControls.Items[17] = "Left Touch : " + sbnTouchLeft.Text;
|
||||
lBShiftControls.Items[18] = "Right Touch : " + sbnTouchRight.Text;
|
||||
lBShiftControls.Items[19] = "Multitouch : " + sbnTouchMulti.Text;
|
||||
lBShiftControls.Items[20] = "Upper Touch : " + sbnTouchUpper.Text;
|
||||
lBShiftControls.Items[21] = "LS Up : " + sbnLSUp.Text;
|
||||
lBShiftControls.Items[22] = "LS Down : " + sbnLSDown.Text;
|
||||
lBShiftControls.Items[23] = "LS Left : " + sbnLSLeft.Text;
|
||||
lBShiftControls.Items[24] = "LS Right : " + sbnLSRight.Text;
|
||||
lBShiftControls.Items[25] = "RS Up : " + sbnRSUp.Text;
|
||||
lBShiftControls.Items[26] = "RS Down : " + sbnRSDown.Text;
|
||||
lBShiftControls.Items[27] = "RS Left : " + sbnRSLeft.Text;
|
||||
lBShiftControls.Items[28] = "RS Right : " + sbnRSRight.Text;
|
||||
lBShiftControls.Items[29] = "Tilt Up : " + UpdateGyroList(sbnGyroZN);
|
||||
lBShiftControls.Items[30] = "Tilt Down : " + UpdateGyroList(sbnGyroZP);
|
||||
lBShiftControls.Items[31] = "Tilt Left : " + UpdateGyroList(sbnGyroXP);
|
||||
lBShiftControls.Items[32] = "Tilt Right : " + UpdateGyroList(sbnGyroXN);
|
||||
sbnGyroZN.Text = "Tilt Up";
|
||||
sbnGyroZP.Text = "Tilt Down";
|
||||
sbnGyroXP.Text = "Tilt Left";
|
||||
sbnGyroXN.Text = "Tilt Right";
|
||||
}
|
||||
|
||||
private string UpdateGyroList(Button button)
|
||||
@ -697,10 +838,14 @@ namespace ScpServer
|
||||
return "Unbound";
|
||||
else if (button.Tag is IEnumerable<int> || button.Tag is Int32[] || button.Tag is UInt16[])
|
||||
return "Macro";
|
||||
else if (button.Tag is Int32 || button.Tag is UInt16)
|
||||
return ((Keys)(ushort)button.Tag).ToString();
|
||||
else if (button.Tag is Int32)
|
||||
return ((Keys)(Int32)button.Tag).ToString();
|
||||
else if (button.Tag is UInt16)
|
||||
return ((Keys)(UInt16)button.Tag).ToString();
|
||||
else if (button.Tag is string)
|
||||
return button.Tag.ToString();
|
||||
else if (button.Name.StartsWith("s") && buttons[subbuttons.IndexOf(button)].Tag != null && button.Tag == null)
|
||||
return "Fall Back to " + UpdateGyroList(buttons[subbuttons.IndexOf(button)]);
|
||||
else
|
||||
return string.Empty;
|
||||
}
|
||||
@ -744,15 +889,61 @@ namespace ScpServer
|
||||
if (lBControls.SelectedIndex == 32) Show_ControlsBn(bnGyroXN, e);
|
||||
}
|
||||
|
||||
private void Show_ShiftControlsList(object sender, EventArgs e)
|
||||
{
|
||||
if (lBShiftControls.SelectedIndex == 0) Show_ControlsBn(sbnCross, e);
|
||||
if (lBShiftControls.SelectedIndex == 1) Show_ControlsBn(sbnCircle, e);
|
||||
if (lBShiftControls.SelectedIndex == 2) Show_ControlsBn(sbnSquare, e);
|
||||
if (lBShiftControls.SelectedIndex == 3) Show_ControlsBn(sbnTriangle, e);
|
||||
if (lBShiftControls.SelectedIndex == 4) Show_ControlsBn(sbnOptions, e);
|
||||
if (lBShiftControls.SelectedIndex == 5) Show_ControlsBn(sbnShare, e);
|
||||
if (lBShiftControls.SelectedIndex == 6) Show_ControlsBn(sbnUp, e);
|
||||
if (lBShiftControls.SelectedIndex == 7) Show_ControlsBn(sbnDown, e);
|
||||
if (lBShiftControls.SelectedIndex == 8) Show_ControlsBn(sbnLeft, e);
|
||||
if (lBShiftControls.SelectedIndex == 9) Show_ControlsBn(sbnRight, e);
|
||||
if (lBShiftControls.SelectedIndex == 10) Show_ControlsBn(sbnPS, e);
|
||||
if (lBShiftControls.SelectedIndex == 11) Show_ControlsBn(sbnL1, e);
|
||||
if (lBShiftControls.SelectedIndex == 12) Show_ControlsBn(sbnR1, e);
|
||||
if (lBShiftControls.SelectedIndex == 13) Show_ControlsBn(sbnL2, e);
|
||||
if (lBShiftControls.SelectedIndex == 14) Show_ControlsBn(sbnR2, e);
|
||||
if (lBShiftControls.SelectedIndex == 15) Show_ControlsBn(sbnL3, e);
|
||||
if (lBShiftControls.SelectedIndex == 16) Show_ControlsBn(sbnR3, e);
|
||||
|
||||
if (lBShiftControls.SelectedIndex == 17) Show_ControlsBn(sbnTouchLeft, e);
|
||||
if (lBShiftControls.SelectedIndex == 18) Show_ControlsBn(sbnTouchRight, e);
|
||||
if (lBShiftControls.SelectedIndex == 19) Show_ControlsBn(sbnTouchMulti, e);
|
||||
if (lBShiftControls.SelectedIndex == 20) Show_ControlsBn(sbnTouchUpper, e);
|
||||
|
||||
if (lBShiftControls.SelectedIndex == 21) Show_ControlsBn(sbnLSUp, e);
|
||||
if (lBShiftControls.SelectedIndex == 22) Show_ControlsBn(sbnLSDown, e);
|
||||
if (lBShiftControls.SelectedIndex == 23) Show_ControlsBn(sbnLSLeft, e);
|
||||
if (lBShiftControls.SelectedIndex == 24) Show_ControlsBn(sbnLSRight, e);
|
||||
if (lBShiftControls.SelectedIndex == 25) Show_ControlsBn(sbnRSUp, e);
|
||||
if (lBShiftControls.SelectedIndex == 26) Show_ControlsBn(sbnRSDown, e);
|
||||
if (lBShiftControls.SelectedIndex == 27) Show_ControlsBn(sbnRSLeft, e);
|
||||
if (lBShiftControls.SelectedIndex == 28) Show_ControlsBn(sbnRSRight, e);
|
||||
|
||||
if (lBShiftControls.SelectedIndex == 29) Show_ControlsBn(sbnGyroZN, e);
|
||||
if (lBShiftControls.SelectedIndex == 30) Show_ControlsBn(sbnGyroZP, e);
|
||||
if (lBShiftControls.SelectedIndex == 31) Show_ControlsBn(sbnGyroXP, e);
|
||||
if (lBShiftControls.SelectedIndex == 32) Show_ControlsBn(sbnGyroXN, e);
|
||||
}
|
||||
|
||||
private void List_MouseDoubleClick(object sender, MouseEventArgs e)
|
||||
{
|
||||
if (((ListBox)sender).Name.Contains("Shift"))
|
||||
Show_ShiftControlsList(sender, e);
|
||||
else
|
||||
Show_ControlsList(sender, e);
|
||||
}
|
||||
|
||||
private void List_KeyDown(object sender, KeyEventArgs e)
|
||||
{
|
||||
if (e.KeyValue == 13)
|
||||
Show_ControlsList(sender, e);
|
||||
if (((ListBox)sender).Name.Contains("Shift"))
|
||||
Show_ShiftControlsList(sender, e);
|
||||
else
|
||||
Show_ControlsList(sender, e);
|
||||
}
|
||||
|
||||
private void numUDRainbow_ValueChanged(object sender, EventArgs e)
|
||||
@ -834,11 +1025,27 @@ namespace ScpServer
|
||||
private void nUDSX_ValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
Global.setSXDeadzone(device, (double)nUDSX.Value);
|
||||
if (nUDSX.Value <= 0 && nUDSZ.Value <= 0)
|
||||
pBSADeadzone.Visible = false;
|
||||
else
|
||||
{
|
||||
pBSADeadzone.Visible = true;
|
||||
pBSADeadzone.Size = new Size((int)(nUDSX.Value * 125), (int)(nUDSZ.Value * 125));
|
||||
pBSADeadzone.Location = new Point(lBSATrack.Location.X + 63 - pBSADeadzone.Size.Width / 2, lBSATrack.Location.Y + 63 - pBSADeadzone.Size.Height / 2);
|
||||
}
|
||||
}
|
||||
|
||||
private void nUDSZ_ValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
Global.setSZDeadzone(device, (double)nUDSZ.Value);
|
||||
if (nUDSX.Value <= 0 && nUDSZ.Value <= 0)
|
||||
pBSADeadzone.Visible = false;
|
||||
else
|
||||
{
|
||||
pBSADeadzone.Visible = true;
|
||||
pBSADeadzone.Size = new Size((int)(nUDSX.Value * 125), (int)(nUDSZ.Value * 125));
|
||||
pBSADeadzone.Location = new Point(lBSATrack.Location.X + 63 - pBSADeadzone.Size.Width / 2, lBSATrack.Location.Y + 63 - pBSADeadzone.Size.Height / 2);
|
||||
}
|
||||
}
|
||||
|
||||
Image L = Properties.Resources.LeftTouch;
|
||||
@ -873,11 +1080,27 @@ namespace ScpServer
|
||||
private void numUDRS_ValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
Global.setRSDeadzone(device, (byte)Math.Round((nUDRS.Value * 127),0));
|
||||
if (nUDRS.Value <= 0)
|
||||
pBRSDeadzone.Visible = false;
|
||||
else
|
||||
{
|
||||
pBRSDeadzone.Visible = true;
|
||||
pBRSDeadzone.Size = new Size((int)(nUDRS.Value * 125), (int)(nUDRS.Value * 125));
|
||||
pBRSDeadzone.Location = new Point(lBRSTrack.Location.X + 63 - pBRSDeadzone.Size.Width / 2, lBRSTrack.Location.Y + 63 - pBRSDeadzone.Size.Width / 2);
|
||||
}
|
||||
}
|
||||
|
||||
private void numUDLS_ValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
Global.setLSDeadzone(device, (byte)Math.Round((nUDLS.Value * 127),0));
|
||||
if (nUDLS.Value <= 0)
|
||||
pBLSDeadzone.Visible = false;
|
||||
else
|
||||
{
|
||||
pBLSDeadzone.Visible = true;
|
||||
pBLSDeadzone.Size = new Size((int)(nUDLS.Value*125), (int)(nUDLS.Value*125));
|
||||
pBLSDeadzone.Location = new Point(lBLSTrack.Location.X + 63 - pBLSDeadzone.Size.Width / 2, lBLSTrack.Location.Y + 63 - pBLSDeadzone.Size.Width / 2);
|
||||
}
|
||||
}
|
||||
|
||||
private void numUDMouseSens_ValueChanged(object sender, EventArgs e)
|
||||
@ -934,19 +1157,68 @@ namespace ScpServer
|
||||
btnChargingColor.Visible = true;
|
||||
}
|
||||
|
||||
private void lB6Gryo_MouseClick(object sender, MouseEventArgs e)
|
||||
private void cBMouseAccel_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
fLPTiltControls.Visible = !fLPTiltControls.Visible;
|
||||
SixaxisPanel.Visible = !SixaxisPanel.Visible;
|
||||
if (SixaxisPanel.Visible)
|
||||
Global.setMouseAccel(device, cBMouseAccel.Checked);
|
||||
}
|
||||
|
||||
private void cBShiftControl_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
Global.setShiftModifier(device, cBShiftControl.SelectedIndex);
|
||||
}
|
||||
|
||||
private void pBController_BackColorChanged(object sender, EventArgs e)
|
||||
{
|
||||
spBController.BackColor = pBController.BackColor;
|
||||
}
|
||||
|
||||
private void pBController_BackgroundImageChanged(object sender, EventArgs e)
|
||||
{
|
||||
spBController.BackgroundImage = pBController.BackgroundImage;
|
||||
}
|
||||
|
||||
private void tabControls_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (tabControls.SelectedIndex == 2)
|
||||
sixaxisTimer.Start();
|
||||
else
|
||||
sixaxisTimer.Stop();
|
||||
}
|
||||
|
||||
private void cBMouseAccel_CheckedChanged(object sender, EventArgs e)
|
||||
private void DrawCircle(object sender, PaintEventArgs e)
|
||||
{
|
||||
Global.setMouseAccel(device, cBMouseAccel.Checked);
|
||||
// Create pen.
|
||||
Pen blackPen = new Pen(Color.Red);
|
||||
|
||||
// Create rectangle for ellipse.
|
||||
Rectangle rect = new Rectangle(0, 0, ((PictureBox)sender).Size.Width, ((PictureBox)sender).Size.Height);
|
||||
|
||||
// Draw ellipse to screen.
|
||||
e.Graphics.DrawEllipse(blackPen, rect);
|
||||
}
|
||||
|
||||
private void lBEmpty_Click(object sender, EventArgs e)
|
||||
{
|
||||
lowRedBar.Value = redBar.Value;
|
||||
lowGreenBar.Value = greenBar.Value;
|
||||
lowBlueBar.Value = blueBar.Value;
|
||||
}
|
||||
|
||||
private void lBSATip_Click(object sender, EventArgs e)
|
||||
{
|
||||
SixaxisPanel.Visible = !SixaxisPanel.Visible;
|
||||
pBSADeadzone.Visible = !pBSADeadzone.Visible;
|
||||
btnSATrack.Visible = !btnSATrack.Visible;
|
||||
}
|
||||
|
||||
private void SixaxisPanel_Click(object sender, EventArgs e)
|
||||
{
|
||||
lBSATip_Click(sender, e);
|
||||
}
|
||||
|
||||
private void lBSATrack_Click(object sender, EventArgs e)
|
||||
{
|
||||
lBSATip_Click(sender, e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -117,6 +117,271 @@
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="pBSADeadzone.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
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
|
||||
AElFTkSuQmCC
|
||||
</value>
|
||||
</data>
|
||||
<data name="pBRSDeadzone.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
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
|
||||
AElFTkSuQmCC
|
||||
</value>
|
||||
</data>
|
||||
<data name="pBLSDeadzone.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAAJYAAACWCAYAAAA8AXHiAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAACH
|
||||
DwAAjA8AAP1SAACBQAAAfXkAAOmLAAA85QAAGcxzPIV3AAAKOWlDQ1BQaG90b3Nob3AgSUNDIHByb2Zp
|
||||
bGUAAEjHnZZ3VFTXFofPvXd6oc0wAlKG3rvAANJ7k15FYZgZYCgDDjM0sSGiAhFFRJoiSFDEgNFQJFZE
|
||||
sRAUVLAHJAgoMRhFVCxvRtaLrqy89/Ly++Osb+2z97n77L3PWhcAkqcvl5cGSwGQyhPwgzyc6RGRUXTs
|
||||
AIABHmCAKQBMVka6X7B7CBDJy82FniFyAl8EAfB6WLwCcNPQM4BOB/+fpFnpfIHomAARm7M5GSwRF4g4
|
||||
JUuQLrbPipgalyxmGCVmvihBEcuJOWGRDT77LLKjmNmpPLaIxTmns1PZYu4V8bZMIUfEiK+ICzO5nCwR
|
||||
3xKxRoowlSviN+LYVA4zAwAUSWwXcFiJIjYRMYkfEuQi4uUA4EgJX3HcVyzgZAvEl3JJS8/hcxMSBXQd
|
||||
li7d1NqaQffkZKVwBALDACYrmcln013SUtOZvBwAFu/8WTLi2tJFRbY0tba0NDQzMv2qUP91829K3NtF
|
||||
ehn4uWcQrf+L7a/80hoAYMyJarPziy2uCoDOLQDI3fti0zgAgKSobx3Xv7oPTTwviQJBuo2xcVZWlhGX
|
||||
wzISF/QP/U+Hv6GvvmckPu6P8tBdOfFMYYqALq4bKy0lTcinZ6QzWRy64Z+H+B8H/nUeBkGceA6fwxNF
|
||||
hImmjMtLELWbx+YKuGk8Opf3n5r4D8P+pMW5FonS+BFQY4yA1HUqQH7tBygKESDR+8Vd/6NvvvgwIH55
|
||||
4SqTi3P/7zf9Z8Gl4iWDm/A5ziUohM4S8jMX98TPEqABAUgCKpAHykAd6ABDYAasgC1wBG7AG/iDEBAJ
|
||||
VgMWSASpgA+yQB7YBApBMdgJ9oBqUAcaQTNoBcdBJzgFzoNL4Bq4AW6D+2AUTIBnYBa8BgsQBGEhMkSB
|
||||
5CEVSBPSh8wgBmQPuUG+UBAUCcVCCRAPEkJ50GaoGCqDqqF6qBn6HjoJnYeuQIPQXWgMmoZ+h97BCEyC
|
||||
qbASrAUbwwzYCfaBQ+BVcAK8Bs6FC+AdcCXcAB+FO+Dz8DX4NjwKP4PnEIAQERqiihgiDMQF8UeikHiE
|
||||
j6xHipAKpAFpRbqRPuQmMorMIG9RGBQFRUcZomxRnqhQFAu1BrUeVYKqRh1GdaB6UTdRY6hZ1Ec0Ga2I
|
||||
1kfboL3QEegEdBa6EF2BbkK3oy+ib6Mn0K8xGAwNo42xwnhiIjFJmLWYEsw+TBvmHGYQM46Zw2Kx8lh9
|
||||
rB3WH8vECrCF2CrsUexZ7BB2AvsGR8Sp4Mxw7rgoHA+Xj6vAHcGdwQ3hJnELeCm8Jt4G749n43PwpfhG
|
||||
fDf+On4Cv0CQJmgT7AghhCTCJkIloZVwkfCA8JJIJKoRrYmBRC5xI7GSeIx4mThGfEuSIemRXEjRJCFp
|
||||
B+kQ6RzpLuklmUzWIjuSo8gC8g5yM/kC+RH5jQRFwkjCS4ItsUGiRqJDYkjiuSReUlPSSXK1ZK5kheQJ
|
||||
yeuSM1J4KS0pFymm1HqpGqmTUiNSc9IUaVNpf+lU6RLpI9JXpKdksDJaMm4ybJkCmYMyF2TGKQhFneJC
|
||||
YVE2UxopFykTVAxVm+pFTaIWU7+jDlBnZWVkl8mGyWbL1sielh2lITQtmhcthVZKO04bpr1borTEaQln
|
||||
yfYlrUuGlszLLZVzlOPIFcm1yd2WeydPl3eTT5bfJd8p/1ABpaCnEKiQpbBf4aLCzFLqUtulrKVFS48v
|
||||
vacIK+opBimuVTyo2K84p6Ss5KGUrlSldEFpRpmm7KicpFyufEZ5WoWiYq/CVSlXOavylC5Ld6Kn0Cvp
|
||||
vfRZVUVVT1Whar3qgOqCmrZaqFq+WpvaQ3WCOkM9Xr1cvUd9VkNFw08jT6NF454mXpOhmai5V7NPc15L
|
||||
Wytca6tWp9aUtpy2l3audov2Ax2yjoPOGp0GnVu6GF2GbrLuPt0berCehV6iXo3edX1Y31Kfq79Pf9AA
|
||||
bWBtwDNoMBgxJBk6GWYathiOGdGMfI3yjTqNnhtrGEcZ7zLuM/5oYmGSYtJoct9UxtTbNN+02/R3Mz0z
|
||||
llmN2S1zsrm7+QbzLvMXy/SXcZbtX3bHgmLhZ7HVosfig6WVJd+y1XLaSsMq1qrWaoRBZQQwShiXrdHW
|
||||
ztYbrE9Zv7WxtBHYHLf5zdbQNtn2iO3Ucu3lnOWNy8ft1OyYdvV2o/Z0+1j7A/ajDqoOTIcGh8eO6o5s
|
||||
xybHSSddpySno07PnU2c+c7tzvMuNi7rXM65Iq4erkWuA24ybqFu1W6P3NXcE9xb3Gc9LDzWepzzRHv6
|
||||
eO7yHPFS8mJ5NXvNelt5r/Pu9SH5BPtU+zz21fPl+3b7wX7efrv9HqzQXMFb0ekP/L38d/s/DNAOWBPw
|
||||
YyAmMCCwJvBJkGlQXlBfMCU4JvhI8OsQ55DSkPuhOqHC0J4wybDosOaw+XDX8LLw0QjjiHUR1yIVIrmR
|
||||
XVHYqLCopqi5lW4r96yciLaILoweXqW9KnvVldUKq1NWn46RjGHGnIhFx4bHHol9z/RnNjDn4rziauNm
|
||||
WS6svaxnbEd2OXuaY8cp40zG28WXxU8l2CXsTphOdEisSJzhunCruS+SPJPqkuaT/ZMPJX9KCU9pS8Wl
|
||||
xqae5Mnwknm9acpp2WmD6frphemja2zW7Fkzy/fhN2VAGasyugRU0c9Uv1BHuEU4lmmfWZP5Jiss60S2
|
||||
dDYvuz9HL2d7zmSue+63a1FrWWt78lTzNuWNrXNaV78eWh+3vmeD+oaCDRMbPTYe3kTYlLzpp3yT/LL8
|
||||
V5vDN3cXKBVsLBjf4rGlpVCikF84stV2a9021DbutoHt5turtn8sYhddLTYprih+X8IqufqN6TeV33za
|
||||
Eb9joNSydP9OzE7ezuFdDrsOl0mX5ZaN7/bb3VFOLy8qf7UnZs+VimUVdXsJe4V7Ryt9K7uqNKp2Vr2v
|
||||
Tqy+XeNc01arWLu9dn4fe9/Qfsf9rXVKdcV17w5wD9yp96jvaNBqqDiIOZh58EljWGPft4xvm5sUmoqb
|
||||
PhziHRo9HHS4t9mqufmI4pHSFrhF2DJ9NProje9cv+tqNWytb6O1FR8Dx4THnn4f+/3wcZ/jPScYJ1p/
|
||||
0Pyhtp3SXtQBdeR0zHYmdo52RXYNnvQ+2dNt293+o9GPh06pnqo5LXu69AzhTMGZT2dzz86dSz83cz7h
|
||||
/HhPTM/9CxEXbvUG9g5c9Ll4+ZL7pQt9Tn1nL9tdPnXF5srJq4yrndcsr3X0W/S3/2TxU/uA5UDHdavr
|
||||
XTesb3QPLh88M+QwdP6m681Lt7xuXbu94vbgcOjwnZHokdE77DtTd1PuvriXeW/h/sYH6AdFD6UeVjxS
|
||||
fNTws+7PbaOWo6fHXMf6Hwc/vj/OGn/2S8Yv7ycKnpCfVEyqTDZPmU2dmnafvvF05dOJZ+nPFmYKf5X+
|
||||
tfa5zvMffnP8rX82YnbiBf/Fp99LXsq/PPRq2aueuYC5R69TXy/MF72Rf3P4LeNt37vwd5MLWe+x7ys/
|
||||
6H7o/ujz8cGn1E+f/gUDmPP8usTo0wAAAAlwSFlzAAALEwAACxMBAJqcGAAACK5JREFUeF7t3T2P1FYU
|
||||
xvFNlSWpaWkokLamIBISigTN5gPwDdACQqkRJVJICdTbRqKggZY6K0WiodrQIBFp6ZeOFEvO38xOZuzH
|
||||
M3659tiep/hJy2F2fH3PYRjb92Xn687OttoNe2E/HITH4TC8DkfhOJyE0/AlnM3wMzH+jtfwWn6H3+U9
|
||||
eC/ek/fmGOrYkyeDE/RD+CncCc/Dm/BP+NoxjsGxOCbHpg20RbVxUmRwAr4LJPHX8Ef4O6jEbwJtoU20
|
||||
jTbSVnUOoyaDI/Vj+CX8Hv4MKqlDRFtpM23nHNS5jY4MjszP4bfwV1CJGxPOgXPhnNS5joYMjsClcDfw
|
||||
pfnfoJI0ZpwT58Y5cq6qDwZNBgfsauDK611QCZkizpVz5txVnwySDA7Q9fA09HElN1ScO31AX6g+GhQZ
|
||||
HJBrgc78FFRnbyP6gj6hb1SfDYIMDsCVwMf/h6A61771DX1EX6k+3CgZ3CBuHt4LU7jC6wt9RZ8N6sar
|
||||
DG7IrfAiqM6z9eg7+lD1be9ksGcXw6PwMagOs+roQ/qSPlV93RsZ7NHN8DKoTrLm6FP6VvV5L2SwBzwf
|
||||
exDeB9Ux1h59Sx9v5FmkDHbscngWVGdYevQ1fa5y0RkZ7NCN8CqoDrDu0Of0vcpJJ2SwI7fD26BO3LpH
|
||||
35MDlZvkZLAD94Ov+jaPHJALlaOkZDCxh+FzUCdq/SMX5ETlKhkZTOT7wCMHdXK2eeSGHKnctSaDCVwI
|
||||
T4I6IRsOckSuVA5bkcGW+FfgohoPcpX8k0sGW/J/f+NDzlQuG5PBFvhSqBpuw5f0C70MNsRlrK/+xovc
|
||||
JbsVIYMNcOPN96nGjxwmuYkqgzXxqMB31KeDXLZ+/CODNfBw08/+poectnpwLYMVMRzDoxSmi9w2HnIj
|
||||
gxUx1kc1yKaDHKvcryWDFTA60YP0po8cNxqJKoNrMJ7aw4m3B7muPYZeBtdgsL5qgE0XOVe1UEoGV2B6
|
||||
ke9XbR9yXmtqmQyWYEKk5/1tL3JfeVKsDJZgtq06oG0PakDVRoEMCqwP4GnvRg1UWitCBgUPhbFzlYbY
|
||||
yGAOy+V41Rc7Ry2sXUJJBnNYi0kdwLYXNaFqZU4GF7B6nBc9szxqYuXKgjK4wJ9WVmblp5YMzrCY6jav
|
||||
+WmrURulC+7K4IyvBG2d0itEGQysLb5NS15bM9SIXIe+EJhh4Xr1RmZ51EqhhgqBGXZFUG9ilketFGqo
|
||||
EAjs4zLFbUSsG9RKYe+fpT/MsEmQegOzMtTMUh0t/SGwrZkfNltd1MzSlniLRQX2zFO/aLYOtTOvpcWi
|
||||
Ahsyql8yW4famdfSYlExh2xMO5PasFA783mIi4XF/sTqF8yqooYKhcXm1+rFZlVRQ4XCYmd19WKzqqih
|
||||
pcJi9gXb9qsXm1VFDWUzec4Ly9+vLJXse9Z5Yd2ZBc3aopbip2+ez4JmbVFL8dM3b2ZBs7aopfhpZ2c3
|
||||
eAiypUIt7VJYewtBsxT2KKz9XNCsrX0K6yAXNGvrgMLybBxL7TGFdZgLmrV1SGF54oSl9prCOsoFzdo6
|
||||
orCOc0Gzto4prJNc0KytEwrrNBc0a+uUwvqSC5q19YXCOssFzdo6c2FZF7LC8n+Fllr2X6G/vFtq2Zd3
|
||||
326w1LLbDb5BaqllN0j9SMdSyx7p+CG0pZY9hPawGUstGzbjgX6WWjbQz0OTLbVsaLInU1hq2WQKT/+y
|
||||
1LLpX56wainNJ6zCU+wtlfkUe3hREEtlaVEQL2NkqSwtY+SF1yyVpYXXvFSkpVBYKhJe3NbaKixuCy/H
|
||||
bW3J5bj9Pcvayr5fYbGwvOWJtVG65Qm8SZM1VbpJE7ytnDW1cls5b4RpTazdCBPeutfqWrt1L7zZuNVR
|
||||
ebNxeIKFVUWtFGqoEJi5G9SbmOVRK4UaKgRmLoV3Qb2R2TlqhFop1FAhsMCzd2wdakTVjg7OXA0esmxl
|
||||
qA1qRNWODi54GtSbmlEbqmYyMrjgevgU1Bvb9qImqA1VMxkZzPGnluWt/LSCDOZcCx+COoBtH2qBmlC1
|
||||
MieDgq8Q7VzpleAiGRSuBD+cNmqAWlA1skQGS9wL6mC2PagBVRsFMliC2RcvgjqgTR+5z2bgVCGDK9wK
|
||||
H4M6sE0XOSf3qiYkGVzjUVAHt+ki56oWSsngGhfDy6AaYNNDrsm5qoVSMljBzfA+qIbYdJBjcq1qYCUZ
|
||||
rOhBUI2x6SDHKvdryWBFzCF7FlSDbPzI7XyeYF0yWMPl8Cqohtl4kVNyq3JeiQzWdCO8DaqBNj7kkpyq
|
||||
XFcmgw3cDr6/NX7kkFyqHNcigw3dD5+DarANH7kjhyq3tclgCw+DarQNH7lTOW1EBlvyEJvxqTQUpg4Z
|
||||
bOn78CSoE7DhIVfkTOWyMRlM4EJwcQ0fOSJXKoetyGAi/Cvwf4vDRW6Sf1Kdk8HE+FLoq8XhIBdJv6gr
|
||||
MtgBLmN9n2vzyEGyWwqryGBHuPHmO/SbQ98nuflZhQx2iEcFfrbYP/q89WOaOmSwYzzc9KiI/tDXrR4o
|
||||
NyGDPWA4BmN9PFiwO/Qtfdx46EsbMtgjRid6mHN69GmjkZ+pyGDPGE/NYH1fNbZHH9KXtceopyaDG8L0
|
||||
Is9bbI6+qzVFq0syuEFMiGS2rafzV0df0WeVJ5P2QQYHgPUBeOTgVW7K0Tf0UaW1FPomgwPCcjmsxeTF
|
||||
3/5HX9Ana5cS2iQZHCBWj6Mzt3lNVM6dPli5kt5QyOCAsZgqH//btFQ458o5ly4kO0QyOAKsLc7C9eyK
|
||||
MMXtWTgnzo1zlOuoD50Mjgz7uLBJ0BSuJDkHzqWwN83YyOBIsa0Ze+axIeOYdoqlrbSZti9tzTZmMjgB
|
||||
PB9jf2I2v2ZndbbtV0ndBNpCm2gbbdzIs7yuyeAEcfOQJN4Jz8Ob0McVJsfgWByTY9OGQd3I7IoMbond
|
||||
sBf2w0Hgyusw8KX5KByHk3AavoSzGX4mxt/xGl7L7/C7vAfvxXvy3hxDHXvidnb+AyTfWAn9iVGiAAAA
|
||||
AElFTkSuQmCC
|
||||
</value>
|
||||
</data>
|
||||
<metadata name="advColorDialog.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
|
@ -5,12 +5,12 @@ using System.Runtime.InteropServices;
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("DS4 Tool")]
|
||||
[assembly: AssemblyTitle("DS4Windows")]
|
||||
[assembly: AssemblyDescription("Sony DualShock 4 to Microsoft Xinput controller mapper")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("DS4 Tool")]
|
||||
[assembly: AssemblyCopyright("Copyright © Scarlet.Crush Productions 2012, 2013; Copyright © InhexSTER, HecticSeptic, electrobrains 2013, 2014")]
|
||||
[assembly: AssemblyProduct("DS4Windows")]
|
||||
[assembly: AssemblyCopyright("Copyright © Scarlet.Crush Productions 2012, 2013; Copyright © InhexSTER, HecticSeptic, electrobrains, Jays2Kings 2013, 2014")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.3")]
|
||||
[assembly: AssemblyFileVersion("1.3")]
|
||||
[assembly: AssemblyVersion("1.4")]
|
||||
[assembly: AssemblyFileVersion("1.4")]
|
||||
|
@ -265,4 +265,13 @@
|
||||
<data name="StopText" xml:space="preserve">
|
||||
<value>Stop</value>
|
||||
</data>
|
||||
<data name="Red_Circle" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\Red Circle.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="size" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\size.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="_checked" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>..\Resources\checked.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
</root>
|
30
DS4Tool/Properties/Resources1.Designer.cs
generated
30
DS4Tool/Properties/Resources1.Designer.cs
generated
@ -70,6 +70,16 @@ namespace ScpServer.Properties {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap _checked {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("_checked", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
@ -369,6 +379,16 @@ namespace ScpServer.Properties {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap Red_Circle {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("Red_Circle", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
@ -459,6 +479,16 @@ namespace ScpServer.Properties {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap size {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("size", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
|
BIN
DS4Tool/Resources/Red Circle.png
Normal file
BIN
DS4Tool/Resources/Red Circle.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.9 KiB |
BIN
DS4Tool/Resources/checked.png
Normal file
BIN
DS4Tool/Resources/checked.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.6 KiB |
BIN
DS4Tool/Resources/size.png
Normal file
BIN
DS4Tool/Resources/size.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.6 KiB |
43
DS4Tool/ScpForm.Designer.cs
generated
43
DS4Tool/ScpForm.Designer.cs
generated
@ -100,6 +100,8 @@
|
||||
this.tSTBProfile = new System.Windows.Forms.ToolStripTextBox();
|
||||
this.tSBSaveProfile = new System.Windows.Forms.ToolStripButton();
|
||||
this.tSBCancel = new System.Windows.Forms.ToolStripButton();
|
||||
this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.tSBKeepSize = new System.Windows.Forms.ToolStripButton();
|
||||
this.toolStrip1 = new System.Windows.Forms.ToolStrip();
|
||||
this.tsBNewProfle = new System.Windows.Forms.ToolStripButton();
|
||||
this.tsBEditProfile = new System.Windows.Forms.ToolStripButton();
|
||||
@ -107,7 +109,6 @@
|
||||
this.tSBDupProfile = new System.Windows.Forms.ToolStripButton();
|
||||
this.tSBImportProfile = new System.Windows.Forms.ToolStripButton();
|
||||
this.tSBExportProfile = new System.Windows.Forms.ToolStripButton();
|
||||
this.tabLog = new System.Windows.Forms.TabPage();
|
||||
this.tabAutoProfiles = new System.Windows.Forms.TabPage();
|
||||
this.tabSettings = new System.Windows.Forms.TabPage();
|
||||
this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel();
|
||||
@ -123,6 +124,7 @@
|
||||
this.lLBUpdate = new System.Windows.Forms.LinkLabel();
|
||||
this.linkUninstall = new System.Windows.Forms.LinkLabel();
|
||||
this.lLSetup = new System.Windows.Forms.LinkLabel();
|
||||
this.tabLog = new System.Windows.Forms.TabPage();
|
||||
this.saveProfiles = new System.Windows.Forms.SaveFileDialog();
|
||||
this.pnlButton.SuspendLayout();
|
||||
this.cMTaskbar.SuspendLayout();
|
||||
@ -137,11 +139,11 @@
|
||||
this.cMProfile.SuspendLayout();
|
||||
this.tSOptions.SuspendLayout();
|
||||
this.toolStrip1.SuspendLayout();
|
||||
this.tabLog.SuspendLayout();
|
||||
this.tabSettings.SuspendLayout();
|
||||
this.flowLayoutPanel1.SuspendLayout();
|
||||
this.pNUpdate.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.nUDUpdateTime)).BeginInit();
|
||||
this.tabLog.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// lvDebug
|
||||
@ -624,9 +626,12 @@
|
||||
this.toolStripLabel1,
|
||||
this.tSTBProfile,
|
||||
this.tSBSaveProfile,
|
||||
this.tSBCancel});
|
||||
this.tSBCancel,
|
||||
this.toolStripSeparator3,
|
||||
this.tSBKeepSize});
|
||||
resources.ApplyResources(this.tSOptions, "tSOptions");
|
||||
this.tSOptions.Name = "tSOptions";
|
||||
this.tSOptions.ShowItemToolTips = false;
|
||||
//
|
||||
// toolStripLabel1
|
||||
//
|
||||
@ -658,6 +663,18 @@
|
||||
this.tSBCancel.Name = "tSBCancel";
|
||||
this.tSBCancel.Click += new System.EventHandler(this.tSBCancel_Click);
|
||||
//
|
||||
// toolStripSeparator3
|
||||
//
|
||||
this.toolStripSeparator3.Name = "toolStripSeparator3";
|
||||
resources.ApplyResources(this.toolStripSeparator3, "toolStripSeparator3");
|
||||
//
|
||||
// tSBKeepSize
|
||||
//
|
||||
this.tSBKeepSize.Image = global::ScpServer.Properties.Resources.size;
|
||||
resources.ApplyResources(this.tSBKeepSize, "tSBKeepSize");
|
||||
this.tSBKeepSize.Name = "tSBKeepSize";
|
||||
this.tSBKeepSize.Click += new System.EventHandler(this.tSBKeepSize_Click);
|
||||
//
|
||||
// toolStrip1
|
||||
//
|
||||
this.toolStrip1.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden;
|
||||
@ -710,14 +727,6 @@
|
||||
this.tSBExportProfile.Name = "tSBExportProfile";
|
||||
this.tSBExportProfile.Click += new System.EventHandler(this.tSBExportProfile_Click);
|
||||
//
|
||||
// tabLog
|
||||
//
|
||||
this.tabLog.Controls.Add(this.lvDebug);
|
||||
this.tabLog.Controls.Add(this.btnClear);
|
||||
resources.ApplyResources(this.tabLog, "tabLog");
|
||||
this.tabLog.Name = "tabLog";
|
||||
this.tabLog.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// tabAutoProfiles
|
||||
//
|
||||
resources.ApplyResources(this.tabAutoProfiles, "tabAutoProfiles");
|
||||
@ -842,6 +851,14 @@
|
||||
this.lLSetup.TabStop = true;
|
||||
this.lLSetup.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.lLSetup_LinkClicked);
|
||||
//
|
||||
// tabLog
|
||||
//
|
||||
this.tabLog.Controls.Add(this.lvDebug);
|
||||
this.tabLog.Controls.Add(this.btnClear);
|
||||
resources.ApplyResources(this.tabLog, "tabLog");
|
||||
this.tabLog.Name = "tabLog";
|
||||
this.tabLog.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// saveProfiles
|
||||
//
|
||||
resources.ApplyResources(this.saveProfiles, "saveProfiles");
|
||||
@ -878,13 +895,13 @@
|
||||
this.tSOptions.PerformLayout();
|
||||
this.toolStrip1.ResumeLayout(false);
|
||||
this.toolStrip1.PerformLayout();
|
||||
this.tabLog.ResumeLayout(false);
|
||||
this.tabSettings.ResumeLayout(false);
|
||||
this.flowLayoutPanel1.ResumeLayout(false);
|
||||
this.flowLayoutPanel1.PerformLayout();
|
||||
this.pNUpdate.ResumeLayout(false);
|
||||
this.pNUpdate.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.nUDUpdateTime)).EndInit();
|
||||
this.tabLog.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
@ -985,6 +1002,8 @@
|
||||
private System.Windows.Forms.LinkLabel lLSetup;
|
||||
private System.Windows.Forms.CheckBox cBDisconnectBT;
|
||||
private System.Windows.Forms.CheckBox cBSwipeProfiles;
|
||||
private System.Windows.Forms.ToolStripButton tSBKeepSize;
|
||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator3;
|
||||
//private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem2;
|
||||
}
|
||||
}
|
||||
|
@ -18,7 +18,6 @@ namespace ScpServer
|
||||
{
|
||||
public partial class ScpForm : Form
|
||||
{
|
||||
double version = 10.651;
|
||||
private DS4Control.Control rootHub;
|
||||
delegate void LogDebugDelegate(DateTime Time, String Data);
|
||||
|
||||
@ -166,7 +165,6 @@ namespace ScpServer
|
||||
|
||||
Directory.CreateDirectory(Global.appdatapath);
|
||||
Global.Load();
|
||||
Global.setVersion(version);
|
||||
if (!Global.Save()) //if can't write to file
|
||||
if (MessageBox.Show("Cannot write at current locataion\nCopy Settings to appdata?", "DS4Windows",
|
||||
MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == System.Windows.Forms.DialogResult.Yes)
|
||||
@ -200,6 +198,7 @@ namespace ScpServer
|
||||
hideDS4CheckBox.CheckedChanged -= hideDS4CheckBox_CheckedChanged;
|
||||
hideDS4CheckBox.Checked = Global.getUseExclusiveMode();
|
||||
hideDS4CheckBox.CheckedChanged += hideDS4CheckBox_CheckedChanged;
|
||||
cBDisconnectBT.Checked = Global.getDCBTatStop();
|
||||
// New settings
|
||||
this.Width = Global.getFormWidth();
|
||||
this.Height = Global.getFormHeight();
|
||||
@ -231,7 +230,7 @@ namespace ScpServer
|
||||
cBUpdateTime.SelectedIndex = 0;
|
||||
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
|
||||
Uri url = new Uri("https://dl.dropboxusercontent.com/u/16364552/DS4Windows/newest%20version.txt"); //Sorry other devs, gonna have to find your own server
|
||||
|
||||
|
||||
if (checkwhen > 0 && DateTime.Now >= Global.getLastChecked() + TimeSpan.FromHours(checkwhen))
|
||||
@ -258,7 +257,7 @@ namespace ScpServer
|
||||
private void test_Tick(object sender, EventArgs e)
|
||||
{
|
||||
lBTest.Visible = true;
|
||||
lBTest.Text = Mapping.mouseaccel[18]+"";
|
||||
lBTest.Text = rootHub.DS4Controllers[0].Latency.ToString();
|
||||
}
|
||||
void Hotkeys(object sender, EventArgs e)
|
||||
{
|
||||
@ -309,41 +308,6 @@ namespace ScpServer
|
||||
ShowInTaskbar = true;
|
||||
Focus();
|
||||
}
|
||||
#region Old Process check
|
||||
/*DateTime now = DateTime.UtcNow;
|
||||
if (now >= oldnow + TimeSpan.FromSeconds(2))
|
||||
{
|
||||
oldnow = now;
|
||||
if (tempprofile == "null")
|
||||
{
|
||||
for (int i = 0; i < programpaths.Count; i++)
|
||||
{
|
||||
string name = Path.GetFileNameWithoutExtension(programpaths[i]);
|
||||
if (Process.GetProcessesByName(name).Length > 0)
|
||||
{
|
||||
if (programpaths[i].ToLower() == Process.GetProcessesByName(name)[0].Modules[0].FileName.ToLower())
|
||||
{
|
||||
for (int j = 0; j < 4; j++)
|
||||
if (proprofiles[j][i] != "(none)")
|
||||
Global.LoadTempProfile(j, proprofiles[j][i]); //j is filename, i is controller index
|
||||
tempprofile = name;
|
||||
filename = Process.GetProcessesByName(name)[0].Modules[0].FileName;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (Process.GetProcessesByName(tempprofile).Length <= 0)
|
||||
{
|
||||
for (int j = 0; j < 4; j++)
|
||||
Global.LoadProfile(j);
|
||||
tempprofile = "null";
|
||||
}
|
||||
PerformanceCounter.CloseSharedResources();
|
||||
}
|
||||
else
|
||||
PerformanceCounter.CloseSharedResources();*/
|
||||
#endregion
|
||||
GC.Collect();
|
||||
}
|
||||
|
||||
@ -392,43 +356,39 @@ namespace ScpServer
|
||||
|
||||
private void Check_Version(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
|
||||
{
|
||||
double newversion;
|
||||
try
|
||||
{
|
||||
if (double.TryParse(File.ReadAllText(Global.appdatapath + "\\version.txt"), NumberStyles.Any, CultureInfo.InvariantCulture, out newversion))
|
||||
if (newversion > version)
|
||||
if (MessageBox.Show("Download Version " + newversion + " now?", "DS4Windows Update Available!", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
|
||||
{
|
||||
if (!File.Exists(exepath + "\\DS4Updater.exe"))
|
||||
{
|
||||
Uri url2 = new Uri("https://dl.dropboxusercontent.com/u/16364552/DS4Tool/DS4Updater.exe");
|
||||
WebClient wc2 = new WebClient();
|
||||
if (Global.appdatapath == exepath)
|
||||
wc2.DownloadFile(url2, exepath + "\\DS4Updater.exe");
|
||||
else
|
||||
{
|
||||
MessageBox.Show("Please Download the Updater now, and place it in the programs folder, then check for update again");
|
||||
Process.Start("https://www.dropbox.com/s/tlqtdkdumdo0yir/DS4Updater.exe");
|
||||
}
|
||||
}
|
||||
if (Global.appdatapath == exepath)
|
||||
{
|
||||
Process p = new Process();
|
||||
p.StartInfo.FileName = exepath + "\\DS4Updater.exe";
|
||||
if (Global.AdminNeeded())
|
||||
p.StartInfo.Verb = "runas";
|
||||
p.Start();
|
||||
Close();
|
||||
}
|
||||
}
|
||||
FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(Assembly.GetExecutingAssembly().Location);
|
||||
string version = fvi.FileVersion;
|
||||
string newversion = File.ReadAllText(Global.appdatapath + "\\version.txt");
|
||||
if (version.Replace(',', '.').CompareTo(File.ReadAllText(Global.appdatapath + "\\version.txt")) == -1)//CompareVersions();
|
||||
if (MessageBox.Show("Download Version " + newversion + " now?", "DS4Windows Update Available!", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
|
||||
{
|
||||
if (!File.Exists(exepath + "\\DS4Updater.exe") || (File.Exists(exepath + "\\DS4Updater.exe")
|
||||
&& (FileVersionInfo.GetVersionInfo(exepath + "\\DS4Updater.exe").FileVersion.CompareTo("1.1.0.0") == -1)))
|
||||
{
|
||||
Uri url2 = new Uri("https://dl.dropboxusercontent.com/u/16364552/DS4Windows/DS4Updater.exe");
|
||||
WebClient wc2 = new WebClient();
|
||||
if (Global.appdatapath == exepath)
|
||||
wc2.DownloadFile(url2, exepath + "\\DS4Updater.exe");
|
||||
else
|
||||
File.Delete(Global.appdatapath + "\\version.txt");
|
||||
else
|
||||
File.Delete(Global.appdatapath + "\\version.txt");
|
||||
{
|
||||
MessageBox.Show("Please Download the new Updater, and (re)place it in the programs folder, then check for update again");
|
||||
Process.Start("https://www.dropbox.com/s/tlqtdkdumdo0yir/DS4Updater.exe");
|
||||
}
|
||||
}
|
||||
if (Global.appdatapath == exepath)
|
||||
{
|
||||
Process p = new Process();
|
||||
p.StartInfo.FileName = exepath + "\\DS4Updater.exe";
|
||||
if (Global.AdminNeeded())
|
||||
p.StartInfo.Verb = "runas";
|
||||
p.Start();
|
||||
Close();
|
||||
}
|
||||
}
|
||||
else
|
||||
File.Delete(Global.appdatapath + "\\version.txt");
|
||||
}
|
||||
catch { };
|
||||
else
|
||||
File.Delete(Global.appdatapath + "\\version.txt");
|
||||
}
|
||||
|
||||
public void RefreshProfiles()
|
||||
@ -572,6 +532,7 @@ namespace ScpServer
|
||||
this.Show();
|
||||
this.ShowInTaskbar = true;
|
||||
}
|
||||
chData.AutoResize(ColumnHeaderAutoResizeStyle.HeaderSize);
|
||||
}
|
||||
|
||||
protected void btnStartStop_Click(object sender, EventArgs e)
|
||||
@ -634,7 +595,7 @@ namespace ScpServer
|
||||
}
|
||||
protected void ControllerStatusChanged()
|
||||
{
|
||||
String tooltip = "DS4Windows v" + version;
|
||||
String tooltip = "DS4Windows v" + FileVersionInfo.GetVersionInfo(Assembly.GetExecutingAssembly().Location).FileVersion;
|
||||
for (Int32 Index = 0; Index < Pads.Length; Index++)
|
||||
{
|
||||
Pads[Index].Text = rootHub.getDS4MacAddress(Index);
|
||||
@ -840,6 +801,9 @@ namespace ScpServer
|
||||
RefreshProfiles();
|
||||
this.Size = oldsize;
|
||||
oldsize = new System.Drawing.Size(0, 0);
|
||||
tSBKeepSize.Text = "Keep this window size after closing";
|
||||
tSBKeepSize.Image = Properties.Resources.size;
|
||||
tSBKeepSize.Enabled = true;
|
||||
tSOptions.Visible = false;
|
||||
toolStrip1.Visible = true;
|
||||
toolStrip1.Enabled = true;
|
||||
@ -847,17 +811,17 @@ namespace ScpServer
|
||||
oldsize = this.Size;
|
||||
if (dpix == 120)
|
||||
{
|
||||
if (this.Size.Height < 518)
|
||||
this.Size = new System.Drawing.Size(this.Size.Width, 518);
|
||||
if (this.Size.Width < 1125)
|
||||
this.Size = new System.Drawing.Size(1125, this.Size.Height);
|
||||
if (this.Size.Height < 90 + opt.MaximumSize.Height * 1.25)
|
||||
this.Size = new System.Drawing.Size(this.Size.Width, (int)(90 + opt.MaximumSize.Height * 1.25));
|
||||
if (this.Size.Width < 20 + opt.MaximumSize.Width * 1.25)
|
||||
this.Size = new System.Drawing.Size((int)(20 + opt.Size.Width * 1.25), this.Size.Height);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (this.Size.Height < 418)
|
||||
this.Size = new System.Drawing.Size(this.Size.Width, 418);
|
||||
if (this.Size.Width < 910)
|
||||
this.Size = new System.Drawing.Size(910, this.Size.Height);
|
||||
if (this.Size.Height < 90 + opt.MaximumSize.Height)
|
||||
this.Size = new System.Drawing.Size(this.Size.Width, 90 + opt.MaximumSize.Height);
|
||||
if (this.Size.Width < 20 + opt.MaximumSize.Width)
|
||||
this.Size = new System.Drawing.Size(20 + opt.MaximumSize.Width, this.Size.Height);
|
||||
}
|
||||
tabMain.SelectedIndex = 1;
|
||||
}
|
||||
@ -983,7 +947,7 @@ namespace ScpServer
|
||||
|
||||
private void llbHelp_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
{
|
||||
Hotkeys hotkeysForm = new Hotkeys(this);
|
||||
Hotkeys hotkeysForm = new Hotkeys();
|
||||
hotkeysForm.Icon = this.Icon;
|
||||
hotkeysForm.ShowDialog();
|
||||
}
|
||||
@ -1026,6 +990,8 @@ namespace ScpServer
|
||||
private void tabMain_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
lbLastMessage.Visible = tabMain.SelectedIndex != 4;
|
||||
if (tabMain.SelectedIndex == 4)
|
||||
chData.AutoResize(ColumnHeaderAutoResizeStyle.HeaderSize);
|
||||
if (opt != null)
|
||||
if (tabMain.SelectedIndex != 1)
|
||||
opt.inputtimer.Stop();
|
||||
@ -1136,7 +1102,7 @@ namespace ScpServer
|
||||
{
|
||||
System.IO.File.Delete(Global.appdatapath + @"\Profiles\" + opt.filename + ".xml");
|
||||
Global.setAProfile(opt.device, tSTBProfile.Text);
|
||||
Global.SaveProfile(opt.device, tSTBProfile.Text, opt.buttons.ToArray());
|
||||
Global.SaveProfile(opt.device, tSTBProfile.Text, opt.buttons.ToArray(), opt.subbuttons.ToArray());
|
||||
Global.Save();
|
||||
opt.Close();
|
||||
}
|
||||
@ -1145,6 +1111,14 @@ namespace ScpServer
|
||||
}
|
||||
}
|
||||
|
||||
private void tSBKeepSize_Click(object sender, EventArgs e)
|
||||
{
|
||||
oldsize = Size;
|
||||
tSBKeepSize.Text = "Will keep";
|
||||
tSBKeepSize.Image = Properties.Resources._checked;
|
||||
tSBKeepSize.Enabled = false;
|
||||
}
|
||||
|
||||
private void cBUpdate_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (!cBUpdate.Checked)
|
||||
@ -1196,7 +1170,7 @@ namespace ScpServer
|
||||
|
||||
private void lLBUpdate_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
{
|
||||
Uri url = new Uri("https://dl.dropboxusercontent.com/u/16364552/DS4Tool/newest%20version.txt"); //Sorry other devs, gonna have to find your own server
|
||||
Uri url = new Uri("https://dl.dropboxusercontent.com/u/16364552/DS4Windows/newest%20version.txt"); //Sorry other devs, gonna have to find your own server
|
||||
WebClient wct = new WebClient();
|
||||
wct.DownloadFileAsync(url, Global.appdatapath + "\\version.txt");
|
||||
wct.DownloadFileCompleted += wct_DownloadFileCompleted;
|
||||
@ -1210,46 +1184,42 @@ namespace ScpServer
|
||||
void wct_DownloadFileCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
|
||||
{
|
||||
Global.setLastChecked(DateTime.Now);
|
||||
double newversion;
|
||||
try
|
||||
{
|
||||
if (double.TryParse(File.ReadAllText(Global.appdatapath + "\\version.txt"), NumberStyles.Any, CultureInfo.InvariantCulture, out newversion))
|
||||
if (newversion > Global.getVersion())
|
||||
if (MessageBox.Show("Download Version " + newversion + " now?", "DS4Windows Update Available!", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
|
||||
{
|
||||
if (!File.Exists(exepath + "\\DS4Updater.exe"))
|
||||
{
|
||||
Uri url2 = new Uri("https://dl.dropboxusercontent.com/u/16364552/DS4Tool/DS4Updater.exe");
|
||||
WebClient wc2 = new WebClient();
|
||||
if (Global.appdatapath == exepath)
|
||||
wc2.DownloadFile(url2, exepath + "\\DS4Updater.exe");
|
||||
else
|
||||
{
|
||||
MessageBox.Show("Please Download the Updater now, and place it in the programs folder, then check for update again");
|
||||
Process.Start("https://www.dropbox.com/s/tlqtdkdumdo0yir/DS4Updater.exe");
|
||||
}
|
||||
}
|
||||
if (Global.appdatapath == exepath)
|
||||
{
|
||||
Process p = new Process();
|
||||
p.StartInfo.FileName = exepath + "\\DS4Updater.exe";
|
||||
if (Global.AdminNeeded())
|
||||
p.StartInfo.Verb = "runas";
|
||||
p.Start();
|
||||
Close();
|
||||
}
|
||||
}
|
||||
else
|
||||
File.Delete(Global.appdatapath + "\\version.txt");
|
||||
else
|
||||
FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(Assembly.GetExecutingAssembly().Location);
|
||||
string version2 = fvi.FileVersion;
|
||||
string newversion2 = File.ReadAllText(Global.appdatapath + "\\version.txt");
|
||||
if (version2.Replace(',', '.').CompareTo(File.ReadAllText(Global.appdatapath + "\\version.txt")) == -1)//CompareVersions();
|
||||
if (MessageBox.Show("Download Version " + newversion2 + " now?", "DS4Windows Update Available!", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
|
||||
{
|
||||
if (!File.Exists(exepath + "\\DS4Updater.exe") || (File.Exists(exepath + "\\DS4Updater.exe")
|
||||
&& (FileVersionInfo.GetVersionInfo(exepath + "\\DS4Updater.exe").FileVersion.CompareTo("1.1.0.0") == -1)))
|
||||
{
|
||||
File.Delete(Global.appdatapath + "\\version.txt");
|
||||
MessageBox.Show("You are up to date", "DS4 Updater");
|
||||
Uri url2 = new Uri("https://dl.dropboxusercontent.com/u/16364552/DS4Windows/DS4Updater.exe");
|
||||
WebClient wc2 = new WebClient();
|
||||
if (Global.appdatapath == exepath)
|
||||
wc2.DownloadFile(url2, exepath + "\\DS4Updater.exe");
|
||||
else
|
||||
{
|
||||
MessageBox.Show("Please Download the new Updater, and (re)place it in the programs folder, then check for update again");
|
||||
Process.Start("https://www.dropbox.com/s/tlqtdkdumdo0yir/DS4Updater.exe");
|
||||
}
|
||||
}
|
||||
if (Global.appdatapath == exepath)
|
||||
{
|
||||
Process p = new Process();
|
||||
p.StartInfo.FileName = exepath + "\\DS4Updater.exe";
|
||||
if (Global.AdminNeeded())
|
||||
p.StartInfo.Verb = "runas";
|
||||
p.Start();
|
||||
Close();
|
||||
}
|
||||
}
|
||||
else
|
||||
File.Delete(Global.appdatapath + "\\version.txt");
|
||||
else
|
||||
{
|
||||
File.Delete(Global.appdatapath + "\\version.txt");
|
||||
MessageBox.Show("You are up to date", "DS4Windows Updater");
|
||||
}
|
||||
catch { };
|
||||
}
|
||||
|
||||
private void linkProfiles_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
|
@ -122,13 +122,13 @@
|
||||
</data>
|
||||
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="chTime.Width" type="System.Int32, mscorlib">
|
||||
<value>147</value>
|
||||
<value>167</value>
|
||||
</data>
|
||||
<data name="chData.Text" xml:space="preserve">
|
||||
<value>Data</value>
|
||||
</data>
|
||||
<data name="chData.Width" type="System.Int32, mscorlib">
|
||||
<value>145</value>
|
||||
<value>84</value>
|
||||
</data>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="lvDebug.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
|
||||
@ -142,7 +142,7 @@
|
||||
<value>3, 3</value>
|
||||
</data>
|
||||
<data name="lvDebug.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>660, 250</value>
|
||||
<value>851, 310</value>
|
||||
</data>
|
||||
<data name="lvDebug.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
@ -169,7 +169,7 @@
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="lBTest.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>420, 9</value>
|
||||
<value>611, 9</value>
|
||||
</data>
|
||||
<data name="lBTest.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>98, 13</value>
|
||||
@ -199,7 +199,7 @@
|
||||
<value>Bottom, Right</value>
|
||||
</data>
|
||||
<data name="btnStartStop.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>609, 4</value>
|
||||
<value>800, 4</value>
|
||||
</data>
|
||||
<data name="btnStartStop.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>58, 23</value>
|
||||
@ -229,7 +229,7 @@
|
||||
<value>4, 9</value>
|
||||
</data>
|
||||
<data name="lbLastMessage.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>514, 18</value>
|
||||
<value>705, 18</value>
|
||||
</data>
|
||||
<data name="lbLastMessage.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>41</value>
|
||||
@ -253,7 +253,7 @@
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="llbHelp.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>524, 9</value>
|
||||
<value>715, 9</value>
|
||||
</data>
|
||||
<data name="llbHelp.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>79, 13</value>
|
||||
@ -280,10 +280,10 @@
|
||||
<value>Bottom</value>
|
||||
</data>
|
||||
<data name="pnlButton.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>0, 305</value>
|
||||
<value>0, 365</value>
|
||||
</data>
|
||||
<data name="pnlButton.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>674, 30</value>
|
||||
<value>865, 30</value>
|
||||
</data>
|
||||
<data name="pnlButton.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>10</value>
|
||||
@ -307,7 +307,7 @@
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="lnkControllers.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>74, 56</value>
|
||||
<value>474, 33</value>
|
||||
</data>
|
||||
<data name="lnkControllers.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>73, 13</value>
|
||||
@ -337,7 +337,7 @@
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="StartWindowsCheckBox.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 3</value>
|
||||
<value>3, 5</value>
|
||||
</data>
|
||||
<data name="StartWindowsCheckBox.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>95, 17</value>
|
||||
@ -367,7 +367,7 @@
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="startMinimizedCheckBox.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>104, 3</value>
|
||||
<value>104, 5</value>
|
||||
</data>
|
||||
<data name="startMinimizedCheckBox.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>97, 17</value>
|
||||
@ -397,7 +397,7 @@
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="hideDS4CheckBox.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>207, 3</value>
|
||||
<value>207, 5</value>
|
||||
</data>
|
||||
<data name="hideDS4CheckBox.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>119, 17</value>
|
||||
@ -427,10 +427,10 @@
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="btnClear.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 253</value>
|
||||
<value>3, 313</value>
|
||||
</data>
|
||||
<data name="btnClear.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>660, 23</value>
|
||||
<value>851, 23</value>
|
||||
</data>
|
||||
<data name="btnClear.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>9</value>
|
||||
@ -6760,7 +6760,7 @@
|
||||
</value>
|
||||
</data>
|
||||
<data name="pBStatus1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>285, 19</value>
|
||||
<value>400, 19</value>
|
||||
</data>
|
||||
<data name="pBStatus1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>39, 20</value>
|
||||
@ -6853,7 +6853,7 @@
|
||||
<value>Left</value>
|
||||
</data>
|
||||
<data name="bnEditC3.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>624, 76</value>
|
||||
<value>815, 76</value>
|
||||
</data>
|
||||
<data name="bnEditC3.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>37, 23</value>
|
||||
@ -6880,7 +6880,7 @@
|
||||
<value>Left</value>
|
||||
</data>
|
||||
<data name="bnEditC4.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>624, 105</value>
|
||||
<value>815, 105</value>
|
||||
</data>
|
||||
<data name="bnEditC4.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>37, 23</value>
|
||||
@ -6973,7 +6973,7 @@
|
||||
<value>None</value>
|
||||
</data>
|
||||
<data name="cBController1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>507, 19</value>
|
||||
<value>698, 19</value>
|
||||
</data>
|
||||
<data name="cBController1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>111, 21</value>
|
||||
@ -6997,7 +6997,7 @@
|
||||
<value>Left</value>
|
||||
</data>
|
||||
<data name="bnEditC2.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>624, 47</value>
|
||||
<value>815, 47</value>
|
||||
</data>
|
||||
<data name="bnEditC2.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>37, 23</value>
|
||||
@ -7024,7 +7024,7 @@
|
||||
<value>None</value>
|
||||
</data>
|
||||
<data name="cBController2.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>507, 48</value>
|
||||
<value>698, 48</value>
|
||||
</data>
|
||||
<data name="cBController2.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>111, 21</value>
|
||||
@ -7048,7 +7048,7 @@
|
||||
<value>None</value>
|
||||
</data>
|
||||
<data name="cBController3.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>507, 77</value>
|
||||
<value>698, 77</value>
|
||||
</data>
|
||||
<data name="cBController3.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>111, 21</value>
|
||||
@ -7072,7 +7072,7 @@
|
||||
<value>Left</value>
|
||||
</data>
|
||||
<data name="bnEditC1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>624, 18</value>
|
||||
<value>815, 18</value>
|
||||
</data>
|
||||
<data name="bnEditC1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>37, 23</value>
|
||||
@ -7099,7 +7099,7 @@
|
||||
<value>None</value>
|
||||
</data>
|
||||
<data name="cBController4.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>507, 106</value>
|
||||
<value>698, 106</value>
|
||||
</data>
|
||||
<data name="cBController4.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>111, 21</value>
|
||||
@ -7129,7 +7129,7 @@
|
||||
<value>Microsoft Sans Serif, 9pt, style=Bold</value>
|
||||
</data>
|
||||
<data name="lBSelectedProfile.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>508, 0</value>
|
||||
<value>699, 0</value>
|
||||
</data>
|
||||
<data name="lBSelectedProfile.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>109, 15</value>
|
||||
@ -7195,7 +7195,7 @@
|
||||
<value>Microsoft Sans Serif, 9pt, style=Bold</value>
|
||||
</data>
|
||||
<data name="lBStatus.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>281, 0</value>
|
||||
<value>396, 0</value>
|
||||
</data>
|
||||
<data name="lBStatus.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>47, 15</value>
|
||||
@ -7228,7 +7228,7 @@
|
||||
<value>Microsoft Sans Serif, 9pt, style=Bold</value>
|
||||
</data>
|
||||
<data name="lBBattery.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>414, 0</value>
|
||||
<value>581, 0</value>
|
||||
</data>
|
||||
<data name="lBBattery.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>51, 15</value>
|
||||
@ -7261,7 +7261,7 @@
|
||||
<value>Microsoft Sans Serif, 9pt</value>
|
||||
</data>
|
||||
<data name="lBBatt1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>420, 22</value>
|
||||
<value>587, 22</value>
|
||||
</data>
|
||||
<data name="lBBatt1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>39, 15</value>
|
||||
@ -7294,7 +7294,7 @@
|
||||
<value>Microsoft Sans Serif, 9pt</value>
|
||||
</data>
|
||||
<data name="lBBatt2.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>420, 51</value>
|
||||
<value>587, 51</value>
|
||||
</data>
|
||||
<data name="lBBatt2.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>39, 15</value>
|
||||
@ -7327,7 +7327,7 @@
|
||||
<value>Microsoft Sans Serif, 9pt</value>
|
||||
</data>
|
||||
<data name="lBBatt3.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>420, 80</value>
|
||||
<value>587, 80</value>
|
||||
</data>
|
||||
<data name="lBBatt3.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>39, 15</value>
|
||||
@ -7360,7 +7360,7 @@
|
||||
<value>Microsoft Sans Serif, 9pt</value>
|
||||
</data>
|
||||
<data name="lBBatt4.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>420, 109</value>
|
||||
<value>587, 109</value>
|
||||
</data>
|
||||
<data name="lBBatt4.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>39, 15</value>
|
||||
@ -7443,7 +7443,7 @@
|
||||
</value>
|
||||
</data>
|
||||
<data name="pBStatus2.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>285, 48</value>
|
||||
<value>400, 48</value>
|
||||
</data>
|
||||
<data name="pBStatus2.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>39, 20</value>
|
||||
@ -7526,7 +7526,7 @@
|
||||
</value>
|
||||
</data>
|
||||
<data name="pBStatus3.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>285, 77</value>
|
||||
<value>400, 77</value>
|
||||
</data>
|
||||
<data name="pBStatus3.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>39, 20</value>
|
||||
@ -7609,7 +7609,7 @@
|
||||
</value>
|
||||
</data>
|
||||
<data name="pBStatus4.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>285, 106</value>
|
||||
<value>400, 106</value>
|
||||
</data>
|
||||
<data name="pBStatus4.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>39, 20</value>
|
||||
@ -7642,7 +7642,7 @@
|
||||
<value>5</value>
|
||||
</data>
|
||||
<data name="tLPControllers.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>666, 130</value>
|
||||
<value>857, 130</value>
|
||||
</data>
|
||||
<data name="tLPControllers.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>46</value>
|
||||
@ -7666,7 +7666,7 @@
|
||||
<value>4, 22</value>
|
||||
</data>
|
||||
<data name="tabControllers.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>666, 279</value>
|
||||
<value>857, 339</value>
|
||||
</data>
|
||||
<data name="tabControllers.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>3</value>
|
||||
@ -7774,7 +7774,7 @@
|
||||
<value>3, 53</value>
|
||||
</data>
|
||||
<data name="lBProfiles.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>660, 223</value>
|
||||
<value>851, 283</value>
|
||||
</data>
|
||||
<data name="lBProfiles.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
@ -7801,7 +7801,7 @@
|
||||
<value>Profile Name: </value>
|
||||
</data>
|
||||
<data name="tSTBProfile.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>185, 25</value>
|
||||
<value>150, 25</value>
|
||||
</data>
|
||||
<data name="tSTBProfile.Text" xml:space="preserve">
|
||||
<value><type profile name here></value>
|
||||
@ -7824,11 +7824,23 @@
|
||||
<data name="tSBCancel.Text" xml:space="preserve">
|
||||
<value>Cancel</value>
|
||||
</data>
|
||||
<data name="toolStripSeparator3.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>6, 25</value>
|
||||
</data>
|
||||
<data name="tSBKeepSize.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
|
||||
<value>Magenta</value>
|
||||
</data>
|
||||
<data name="tSBKeepSize.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>210, 22</value>
|
||||
</data>
|
||||
<data name="tSBKeepSize.Text" xml:space="preserve">
|
||||
<value>Keep this window size after closing</value>
|
||||
</data>
|
||||
<data name="tSOptions.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 28</value>
|
||||
</data>
|
||||
<data name="tSOptions.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>660, 25</value>
|
||||
<value>851, 25</value>
|
||||
</data>
|
||||
<data name="tSOptions.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>2</value>
|
||||
@ -7864,7 +7876,7 @@
|
||||
<value>TopLeft</value>
|
||||
</data>
|
||||
<data name="tsBNewProfle.ToolTipText" xml:space="preserve">
|
||||
<value>Make New Profile</value>
|
||||
<value>Make a New Profile</value>
|
||||
</data>
|
||||
<data name="tsBEditProfile.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
|
||||
<value>Magenta</value>
|
||||
@ -7974,7 +7986,7 @@
|
||||
<value>3, 3</value>
|
||||
</data>
|
||||
<data name="toolStrip1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>660, 25</value>
|
||||
<value>851, 25</value>
|
||||
</data>
|
||||
<data name="toolStrip1.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>1</value>
|
||||
@ -8001,7 +8013,7 @@
|
||||
<value>3, 3, 3, 3</value>
|
||||
</data>
|
||||
<data name="tabProfiles.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>666, 279</value>
|
||||
<value>857, 339</value>
|
||||
</data>
|
||||
<data name="tabProfiles.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
@ -8025,7 +8037,7 @@
|
||||
<value>4, 22</value>
|
||||
</data>
|
||||
<data name="tabAutoProfiles.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>666, 279</value>
|
||||
<value>857, 339</value>
|
||||
</data>
|
||||
<data name="tabAutoProfiles.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>2</value>
|
||||
@ -8082,7 +8094,7 @@
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="cBUpdate.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>452, 3</value>
|
||||
<value>452, 5</value>
|
||||
</data>
|
||||
<data name="cBUpdate.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>164, 17</value>
|
||||
@ -8190,7 +8202,7 @@
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="pNUpdate.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 26</value>
|
||||
<value>622, 3</value>
|
||||
</data>
|
||||
<data name="pNUpdate.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>189, 22</value>
|
||||
@ -8217,7 +8229,7 @@
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="cBSwipeProfiles.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>198, 28</value>
|
||||
<value>3, 31</value>
|
||||
</data>
|
||||
<data name="cBSwipeProfiles.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>194, 17</value>
|
||||
@ -8247,7 +8259,7 @@
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="cBDisconnectBT.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>398, 28</value>
|
||||
<value>203, 31</value>
|
||||
</data>
|
||||
<data name="cBDisconnectBT.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>194, 17</value>
|
||||
@ -8277,7 +8289,7 @@
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="linkProfiles.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 56</value>
|
||||
<value>403, 33</value>
|
||||
</data>
|
||||
<data name="linkProfiles.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>65, 13</value>
|
||||
@ -8304,7 +8316,7 @@
|
||||
<value>None</value>
|
||||
</data>
|
||||
<data name="lLBUpdate.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>153, 51</value>
|
||||
<value>553, 28</value>
|
||||
</data>
|
||||
<data name="lLBUpdate.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>116, 23</value>
|
||||
@ -8334,7 +8346,7 @@
|
||||
<value>None</value>
|
||||
</data>
|
||||
<data name="linkUninstall.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>275, 51</value>
|
||||
<value>675, 28</value>
|
||||
</data>
|
||||
<data name="linkUninstall.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>106, 23</value>
|
||||
@ -8367,7 +8379,7 @@
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="lLSetup.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>387, 56</value>
|
||||
<value>3, 51</value>
|
||||
</data>
|
||||
<data name="lLSetup.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>82, 13</value>
|
||||
@ -8397,7 +8409,7 @@
|
||||
<value>3, 3</value>
|
||||
</data>
|
||||
<data name="flowLayoutPanel1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>660, 273</value>
|
||||
<value>851, 333</value>
|
||||
</data>
|
||||
<data name="flowLayoutPanel1.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
@ -8421,7 +8433,7 @@
|
||||
<value>3, 3, 3, 3</value>
|
||||
</data>
|
||||
<data name="tabSettings.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>666, 279</value>
|
||||
<value>857, 339</value>
|
||||
</data>
|
||||
<data name="tabSettings.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>4</value>
|
||||
@ -8448,7 +8460,7 @@
|
||||
<value>3, 3, 3, 3</value>
|
||||
</data>
|
||||
<data name="tabLog.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>666, 279</value>
|
||||
<value>857, 339</value>
|
||||
</data>
|
||||
<data name="tabLog.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>1</value>
|
||||
@ -8475,7 +8487,7 @@
|
||||
<value>0, 0</value>
|
||||
</data>
|
||||
<data name="tabMain.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>674, 305</value>
|
||||
<value>865, 365</value>
|
||||
</data>
|
||||
<data name="tabMain.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>12</value>
|
||||
@ -8505,7 +8517,7 @@
|
||||
<value>96, 96</value>
|
||||
</data>
|
||||
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||
<value>674, 335</value>
|
||||
<value>865, 395</value>
|
||||
</data>
|
||||
<data name="$this.MinimumSize" type="System.Drawing.Size, System.Drawing">
|
||||
<value>440, 231</value>
|
||||
@ -8675,6 +8687,18 @@
|
||||
<data name=">>tSBCancel.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>toolStripSeparator3.Name" xml:space="preserve">
|
||||
<value>toolStripSeparator3</value>
|
||||
</data>
|
||||
<data name=">>toolStripSeparator3.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>tSBKeepSize.Name" xml:space="preserve">
|
||||
<value>tSBKeepSize</value>
|
||||
</data>
|
||||
<data name=">>tSBKeepSize.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>tsBNewProfle.Name" xml:space="preserve">
|
||||
<value>tsBNewProfle</value>
|
||||
</data>
|
||||
|
Loading…
Reference in New Issue
Block a user