mirror of
https://github.com/cemu-project/DS4Windows.git
synced 2024-11-22 17:29:18 +01:00
Sixaxis tilts can now mapped, map them to the analog sticks, buttons, keyboards, and even macros
Better Support of multiple action being mapped to analog sticks Fixed crash with an empty macro UI Fixes
This commit is contained in:
parent
edd7cf9403
commit
1a8fb309ee
@ -409,7 +409,7 @@ namespace DS4Control
|
||||
|
||||
if (Global.getHasCustomKeysorButtons(ind))
|
||||
{
|
||||
Mapping.MapCustom(ind, cState, MappedState[ind]);
|
||||
Mapping.MapCustom(ind, cState, MappedState[ind], ExposedState[ind]);
|
||||
cState = MappedState[ind];
|
||||
}
|
||||
|
||||
@ -441,38 +441,42 @@ namespace DS4Control
|
||||
public string GetInputkeys(int ind)
|
||||
{
|
||||
DS4State cState = CurrentState[ind];
|
||||
DS4StateExposed eState = ExposedState[ind];
|
||||
if (DS4Controllers[ind] != null)
|
||||
if (Mapping.getBoolMapping(DS4Controls.Cross, cState)) return "Cross";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.Circle, cState)) return "Circle";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.Triangle, cState)) return "Triangle";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.Square, cState)) return "Square";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.L1, cState)) return "L1";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.R1, cState)) return "R1";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.L2, cState)) return "L2";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.R2, cState)) return "R2";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.L3, cState)) return "L3";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.R3, cState)) return "R3";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.DpadUp, cState)) return "Up";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.DpadDown, cState)) return "Down";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.DpadLeft, cState)) return "Left";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.DpadRight, cState)) return "Right";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.Share, cState)) return "Share";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.Options, cState)) return "Options";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.PS, cState)) return "PS";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.LXPos, cState)) return "LS Right";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.LXNeg, cState)) return "LS Left";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.LYPos, cState)) return "LS Down";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.LYNeg, cState)) return "LS Up";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.RXPos, cState)) return "RS Right";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.RXNeg, cState)) return "RS Left";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.RYPos, cState)) return "RS Down";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.RYNeg, cState)) return "RS Up";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.TouchLeft, cState)) return "Touch Left";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.TouchRight, cState)) return "Touch Right";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.TouchMulti, cState)) return "Touch Multi";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.TouchUpper, cState)) return "Touch Upper";
|
||||
else return "nothing";
|
||||
else return "nothing";
|
||||
if (Mapping.getBoolMapping(DS4Controls.Cross, cState, eState)) return "Cross";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.Circle, cState, eState)) return "Circle";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.Triangle, cState, eState)) return "Triangle";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.Square, cState, eState)) return "Square";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.L1, cState, eState)) return "L1";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.R1, cState, eState)) return "R1";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.L2, cState, eState)) return "L2";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.R2, cState, eState)) return "R2";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.L3, cState, eState)) return "L3";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.R3, cState, eState)) return "R3";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.DpadUp, cState, eState)) return "Up";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.DpadDown, cState, eState)) return "Down";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.DpadLeft, cState, eState)) return "Left";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.DpadRight, cState, eState)) return "Right";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.Share, cState, eState)) return "Share";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.Options, cState, eState)) return "Options";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.PS, cState, eState)) return "PS";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.LXPos, cState, eState)) return "LS Right";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.LXNeg, cState, eState)) return "LS Left";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.LYPos, cState, eState)) return "LS Down";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.LYNeg, cState, eState)) return "LS Up";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.RXPos, cState, eState)) return "RS Right";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.RXNeg, cState, eState)) return "RS Left";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.RYPos, cState, eState)) return "RS Down";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.RYNeg, cState, eState)) return "RS Up";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.TouchLeft, cState, eState)) return "Touch Left";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.TouchRight, cState, eState)) return "Touch Right";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.TouchMulti, cState, eState)) return "Touch Multi";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.TouchUpper, cState, eState)) return "Touch Upper";
|
||||
/*else if (Mapping.getBoolMapping(DS4Controls.GyroXPos, cState, eState)) return "GyroXP";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.GyroXNeg, cState, eState)) return "GyroXN";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.GyroZPos, cState, eState)) return "GyroZP";
|
||||
else if (Mapping.getBoolMapping(DS4Controls.GyroZNeg, cState, eState)) return "GyroZN";*/
|
||||
return "nothing";
|
||||
}
|
||||
|
||||
bool[] touchreleased = { true, true, true, true }, touchslid = { false, false, false, false };
|
||||
|
@ -200,7 +200,6 @@ namespace DS4Control
|
||||
{
|
||||
oldnow = DateTime.UtcNow;
|
||||
InputMethods.performKeyPress(kvp.Key);
|
||||
Console.WriteLine(((System.Windows.Forms.Keys)kvp.Key).ToString());
|
||||
pressagain = false;
|
||||
keyshelddown = kvp.Key;
|
||||
}
|
||||
@ -463,14 +462,14 @@ namespace DS4Control
|
||||
public static bool[] pressedonce = new bool[261], macrodone = new bool[30];
|
||||
public static int test = 0;
|
||||
/** Map DS4 Buttons/Axes to other DS4 Buttons/Axes (largely the same as Xinput ones) and to keyboard and mouse buttons. */
|
||||
public static async void MapCustom(int device, DS4State cState, DS4State MappedState)
|
||||
public static async void MapCustom(int device, DS4State cState, DS4State MappedState, DS4StateExposed eState)
|
||||
{
|
||||
cState.CopyTo(MappedState);
|
||||
SyntheticState deviceState = Mapping.deviceState[device];
|
||||
foreach (KeyValuePair<DS4Controls, string> customKey in Global.getCustomMacros(device)) //with delays
|
||||
{
|
||||
DS4KeyType keyType = Global.getCustomKeyType(device, customKey.Key);
|
||||
if (getBoolMapping(customKey.Key, cState))
|
||||
if (getBoolMapping(customKey.Key, cState, eState))
|
||||
{
|
||||
resetToDefaultValue(customKey.Key, MappedState);
|
||||
bool LXChanged = (Math.Abs(127 - MappedState.LX) < 5);
|
||||
@ -492,33 +491,33 @@ namespace DS4Control
|
||||
for (int i = 0; i < keys.Length; i++)
|
||||
keys[i] = ushort.Parse(skeys[i]);
|
||||
bool[] keydown = new bool[261];
|
||||
if (keys[0] > 260 && keys[0] < 300)
|
||||
if (keys.Length > 0 && keys[0] > 260 && keys[0] < 300)
|
||||
{
|
||||
if (keys[0] == 261 && !MappedState.Cross) MappedState.Cross = getBoolMapping(customKey.Key, cState);
|
||||
if (keys[0] == 262 && !MappedState.Circle) MappedState.Circle = getBoolMapping(customKey.Key, cState);
|
||||
if (keys[0] == 263 && !MappedState.Square) MappedState.Square = getBoolMapping(customKey.Key, cState);
|
||||
if (keys[0] == 264 && !MappedState.Triangle) MappedState.Triangle = getBoolMapping(customKey.Key, cState);
|
||||
if (keys[0] == 265 && !MappedState.DpadUp) MappedState.DpadUp = getBoolMapping(customKey.Key, cState);
|
||||
if (keys[0] == 266 && !MappedState.DpadDown) MappedState.DpadDown = getBoolMapping(customKey.Key, cState);
|
||||
if (keys[0] == 267 && !MappedState.DpadLeft) MappedState.DpadLeft = getBoolMapping(customKey.Key, cState);
|
||||
if (keys[0] == 268 && !MappedState.DpadRight) MappedState.DpadRight = getBoolMapping(customKey.Key, cState);
|
||||
if (keys[0] == 269 && !MappedState.Options) MappedState.Options = getBoolMapping(customKey.Key, cState);
|
||||
if (keys[0] == 270 && !MappedState.Share) MappedState.Share = getBoolMapping(customKey.Key, cState);
|
||||
if (keys[0] == 271 && !MappedState.PS) MappedState.PS = getBoolMapping(customKey.Key, cState);
|
||||
if (keys[0] == 272 && !MappedState.L1) MappedState.L1 = getBoolMapping(customKey.Key, cState);
|
||||
if (keys[0] == 273 && !MappedState.R1) MappedState.R1 = getBoolMapping(customKey.Key, cState);
|
||||
if (keys[0] == 274 && MappedState.L2 == 0) MappedState.L2 = getByteMapping(customKey.Key, cState);
|
||||
if (keys[0] == 275 && MappedState.R2 == 0) MappedState.R2 = getByteMapping(customKey.Key, cState);
|
||||
if (keys[0] == 276 && !MappedState.L3) MappedState.L3 = getBoolMapping(customKey.Key, cState);
|
||||
if (keys[0] == 277 && !MappedState.R3) MappedState.R3 = getBoolMapping(customKey.Key, cState);
|
||||
if (keys[0] == 278 && LYChanged) MappedState.LY = getXYAxisMapping(customKey.Key, cState);
|
||||
if (keys[0] == 279 && LYChanged) MappedState.LY = getXYAxisMapping(customKey.Key, cState, true);
|
||||
if (keys[0] == 280 && LXChanged) MappedState.LX = getXYAxisMapping(customKey.Key, cState);
|
||||
if (keys[0] == 281 && LXChanged) MappedState.LX = getXYAxisMapping(customKey.Key, cState, true);
|
||||
if (keys[0] == 282 && RYChanged) MappedState.RY = getXYAxisMapping(customKey.Key, cState);
|
||||
if (keys[0] == 283 && RYChanged) MappedState.RY = getXYAxisMapping(customKey.Key, cState, true);
|
||||
if (keys[0] == 284 && RXChanged) MappedState.RX = getXYAxisMapping(customKey.Key, cState);
|
||||
if (keys[0] == 285 && RXChanged) MappedState.RX = getXYAxisMapping(customKey.Key, cState, true);
|
||||
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(customKey.Key, cState, eState);
|
||||
if (keys[0] == 275 && MappedState.R2 == 0) MappedState.R2 = getByteMapping(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(customKey.Key, cState, eState);
|
||||
if (keys[0] == 279 && LYChanged) MappedState.LY = getXYAxisMapping(customKey.Key, cState, eState, true);
|
||||
if (keys[0] == 280 && LXChanged) MappedState.LX = getXYAxisMapping(customKey.Key, cState, eState);
|
||||
if (keys[0] == 281 && LXChanged) MappedState.LX = getXYAxisMapping(customKey.Key, cState, eState, true);
|
||||
if (keys[0] == 282 && RYChanged) MappedState.RY = getXYAxisMapping(customKey.Key, cState, eState);
|
||||
if (keys[0] == 283 && RYChanged) MappedState.RY = getXYAxisMapping(customKey.Key, cState, eState, true);
|
||||
if (keys[0] == 284 && RXChanged) MappedState.RX = getXYAxisMapping(customKey.Key, cState, eState);
|
||||
if (keys[0] == 285 && RXChanged) MappedState.RX = getXYAxisMapping(customKey.Key, cState, eState, true);
|
||||
}
|
||||
if (!macrodone[DS4ControltoInt(customKey.Key)])
|
||||
{
|
||||
@ -569,13 +568,13 @@ namespace DS4Control
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (!getBoolMapping(customKey.Key, cState))
|
||||
else if (!getBoolMapping(customKey.Key, cState, eState))
|
||||
macrodone[DS4ControltoInt(customKey.Key)] = false;
|
||||
}
|
||||
foreach (KeyValuePair<DS4Controls, ushort> customKey in Global.getCustomKeys(device))
|
||||
{
|
||||
DS4KeyType keyType = Global.getCustomKeyType(device, customKey.Key);
|
||||
if (getBoolMapping(customKey.Key, cState))
|
||||
if (getBoolMapping(customKey.Key, cState, eState))
|
||||
{
|
||||
resetToDefaultValue(customKey.Key, MappedState);
|
||||
SyntheticState.KeyPresses kp;
|
||||
@ -626,7 +625,7 @@ namespace DS4Control
|
||||
}
|
||||
if (keyType.HasFlag(DS4KeyType.Toggle))
|
||||
{
|
||||
if (getBoolMapping(customButton.Key, cState))
|
||||
if (getBoolMapping(customButton.Key, cState, eState))
|
||||
{
|
||||
resetToDefaultValue(customButton.Key, MappedState);
|
||||
if (!pressedonce[keyvalue])
|
||||
@ -642,213 +641,216 @@ namespace DS4Control
|
||||
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);
|
||||
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);
|
||||
MappedState.Cross = getBoolMapping(customButton.Key, cState, eState);
|
||||
break;
|
||||
case X360Controls.B:
|
||||
if (!MappedState.Circle)
|
||||
MappedState.Circle = getBoolMapping(customButton.Key, cState);
|
||||
MappedState.Circle = getBoolMapping(customButton.Key, cState, eState);
|
||||
break;
|
||||
case X360Controls.X:
|
||||
if (!MappedState.Square)
|
||||
MappedState.Square = getBoolMapping(customButton.Key, cState);
|
||||
MappedState.Square = getBoolMapping(customButton.Key, cState, eState);
|
||||
break;
|
||||
case X360Controls.Y:
|
||||
if (!MappedState.Triangle)
|
||||
MappedState.Triangle = getBoolMapping(customButton.Key, cState);
|
||||
MappedState.Triangle = getBoolMapping(customButton.Key, cState, eState);
|
||||
break;
|
||||
case X360Controls.LB:
|
||||
if (!MappedState.L1)
|
||||
MappedState.L1 = getBoolMapping(customButton.Key, cState);
|
||||
MappedState.L1 = getBoolMapping(customButton.Key, cState, eState);
|
||||
break;
|
||||
case X360Controls.LS:
|
||||
if (!MappedState.L3)
|
||||
MappedState.L3 = getBoolMapping(customButton.Key, cState);
|
||||
MappedState.L3 = getBoolMapping(customButton.Key, cState, eState);
|
||||
break;
|
||||
case X360Controls.RB:
|
||||
if (!MappedState.R1)
|
||||
MappedState.R1 = getBoolMapping(customButton.Key, cState);
|
||||
MappedState.R1 = getBoolMapping(customButton.Key, cState, eState);
|
||||
break;
|
||||
case X360Controls.RS:
|
||||
if (!MappedState.R3)
|
||||
MappedState.R3 = getBoolMapping(customButton.Key, cState);
|
||||
MappedState.R3 = getBoolMapping(customButton.Key, cState, eState);
|
||||
break;
|
||||
case X360Controls.DpadUp:
|
||||
if (!MappedState.DpadUp)
|
||||
MappedState.DpadUp = getBoolMapping(customButton.Key, cState);
|
||||
MappedState.DpadUp = getBoolMapping(customButton.Key, cState, eState);
|
||||
break;
|
||||
case X360Controls.DpadDown:
|
||||
if (!MappedState.DpadDown)
|
||||
MappedState.DpadDown = getBoolMapping(customButton.Key, cState);
|
||||
MappedState.DpadDown = getBoolMapping(customButton.Key, cState, eState);
|
||||
break;
|
||||
case X360Controls.DpadLeft:
|
||||
if (!MappedState.DpadLeft)
|
||||
MappedState.DpadLeft = getBoolMapping(customButton.Key, cState);
|
||||
MappedState.DpadLeft = getBoolMapping(customButton.Key, cState, eState);
|
||||
break;
|
||||
case X360Controls.DpadRight:
|
||||
if (!MappedState.DpadRight)
|
||||
MappedState.DpadRight = getBoolMapping(customButton.Key, cState);
|
||||
MappedState.DpadRight = getBoolMapping(customButton.Key, cState, eState);
|
||||
break;
|
||||
case X360Controls.Guide:
|
||||
if (!MappedState.PS)
|
||||
MappedState.PS = getBoolMapping(customButton.Key, cState);
|
||||
MappedState.PS = getBoolMapping(customButton.Key, cState, eState);
|
||||
break;
|
||||
case X360Controls.Back:
|
||||
if (!MappedState.Share)
|
||||
MappedState.Share = getBoolMapping(customButton.Key, cState);
|
||||
MappedState.Share = getBoolMapping(customButton.Key, cState, eState);
|
||||
break;
|
||||
case X360Controls.Start:
|
||||
if (!MappedState.Options)
|
||||
MappedState.Options = getBoolMapping(customButton.Key, cState);
|
||||
MappedState.Options = getBoolMapping(customButton.Key, cState, eState);
|
||||
break;
|
||||
case X360Controls.LXNeg:
|
||||
if (LXChanged)
|
||||
{
|
||||
MappedState.LX = getXYAxisMapping(customButton.Key, cState);
|
||||
MappedState.LX = getXYAxisMapping(customButton.Key, cState, eState);
|
||||
LX = true;
|
||||
}
|
||||
break;
|
||||
case X360Controls.LYNeg:
|
||||
if (LYChanged)
|
||||
{
|
||||
MappedState.LY = getXYAxisMapping(customButton.Key, cState);
|
||||
MappedState.LY = getXYAxisMapping(customButton.Key, cState, eState);
|
||||
LY = true;
|
||||
}
|
||||
break;
|
||||
case X360Controls.RXNeg:
|
||||
if (RXChanged)
|
||||
{
|
||||
MappedState.RX = getXYAxisMapping(customButton.Key, cState);
|
||||
MappedState.RX = getXYAxisMapping(customButton.Key, cState, eState);
|
||||
if (MappedState.RX != 127)
|
||||
RX = true;
|
||||
}
|
||||
break;
|
||||
case X360Controls.RYNeg:
|
||||
if (RYChanged)
|
||||
{
|
||||
MappedState.RY = getXYAxisMapping(customButton.Key, cState);
|
||||
MappedState.RY = getXYAxisMapping(customButton.Key, cState, eState);
|
||||
RY = true;
|
||||
}
|
||||
break;
|
||||
case X360Controls.LXPos:
|
||||
if (LXChanged)
|
||||
{
|
||||
MappedState.LX = getXYAxisMapping(customButton.Key, cState, true);
|
||||
MappedState.LX = getXYAxisMapping(customButton.Key, cState, eState, true);
|
||||
//Console.WriteLine(MappedState.LX + "");
|
||||
LX = true;
|
||||
}
|
||||
break;
|
||||
case X360Controls.LYPos:
|
||||
if (LYChanged)
|
||||
{
|
||||
MappedState.LY = getXYAxisMapping(customButton.Key, cState, true);
|
||||
MappedState.LY = getXYAxisMapping(customButton.Key, cState, eState, true);
|
||||
//Console.WriteLine(MappedState.LY + "");
|
||||
LY = true;
|
||||
}
|
||||
break;
|
||||
case X360Controls.RXPos:
|
||||
if (RXChanged)
|
||||
{
|
||||
MappedState.RX = getXYAxisMapping(customButton.Key, cState, true);
|
||||
MappedState.RX = getXYAxisMapping(customButton.Key, cState, eState, true);
|
||||
RX = true;
|
||||
}
|
||||
break;
|
||||
case X360Controls.RYPos:
|
||||
if (RYChanged)
|
||||
{
|
||||
MappedState.RY = getXYAxisMapping(customButton.Key, cState, true);
|
||||
MappedState.RY = getXYAxisMapping(customButton.Key, cState, eState, true);
|
||||
RY = true;
|
||||
}
|
||||
break;
|
||||
case X360Controls.LT:
|
||||
if (MappedState.L2 == 0)
|
||||
MappedState.L2 = getByteMapping(customButton.Key, cState);
|
||||
MappedState.L2 = getByteMapping(customButton.Key, cState, eState);
|
||||
break;
|
||||
case X360Controls.RT:
|
||||
if (MappedState.R2 == 0)
|
||||
MappedState.R2 = getByteMapping(customButton.Key, cState);
|
||||
MappedState.R2 = getByteMapping(customButton.Key, cState, eState);
|
||||
break;
|
||||
case X360Controls.LeftMouse:
|
||||
if (getBoolMapping(customButton.Key, cState))
|
||||
if (getBoolMapping(customButton.Key, cState, eState))
|
||||
deviceState.currentClicks.leftCount++;
|
||||
break;
|
||||
case X360Controls.RightMouse:
|
||||
if (getBoolMapping(customButton.Key, cState))
|
||||
if (getBoolMapping(customButton.Key, cState, eState))
|
||||
deviceState.currentClicks.rightCount++;
|
||||
break;
|
||||
case X360Controls.MiddleMouse:
|
||||
if (getBoolMapping(customButton.Key, cState))
|
||||
if (getBoolMapping(customButton.Key, cState, eState))
|
||||
deviceState.currentClicks.middleCount++;
|
||||
break;
|
||||
case X360Controls.FourthMouse:
|
||||
if (getBoolMapping(customButton.Key, cState))
|
||||
if (getBoolMapping(customButton.Key, cState, eState))
|
||||
deviceState.currentClicks.fourthCount++;
|
||||
break;
|
||||
case X360Controls.FifthMouse:
|
||||
if (getBoolMapping(customButton.Key, cState))
|
||||
if (getBoolMapping(customButton.Key, cState, eState))
|
||||
deviceState.currentClicks.fifthCount++;
|
||||
break;
|
||||
case X360Controls.WUP:
|
||||
if (getBoolMapping(customButton.Key, cState))
|
||||
if (getBoolMapping(customButton.Key, cState, eState))
|
||||
deviceState.currentClicks.wUpCount++;
|
||||
break;
|
||||
case X360Controls.WDOWN:
|
||||
if (getBoolMapping(customButton.Key, cState))
|
||||
if (getBoolMapping(customButton.Key, cState, eState))
|
||||
deviceState.currentClicks.wDownCount++;
|
||||
break;
|
||||
case X360Controls.MouseUp:
|
||||
if (MouseDeltaY == 0)
|
||||
{
|
||||
MouseDeltaY = getMouseMapping(device, customButton.Key, cState, 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, 1);
|
||||
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, 2);
|
||||
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, 3);
|
||||
MouseDeltaX = getMouseMapping(device, customButton.Key, cState, eState, 3);
|
||||
MouseDeltaX = Math.Abs((MouseDeltaX == -2147483648 ? 0 : MouseDeltaX));
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!LX)
|
||||
//Console.WriteLine(MappedState.LY + " " + LY);
|
||||
//if (!LX)
|
||||
if (Math.Abs(127 - MappedState.LX) <= 5)// || (Math.Abs(127 - cState.LX) > 5))
|
||||
MappedState.LX = cState.LX;
|
||||
if (!LY)
|
||||
if (Math.Abs(127 - MappedState.LY) <= 5)
|
||||
MappedState.LY = cState.LY;
|
||||
if (!RX)
|
||||
if (Math.Abs(127 - MappedState.RX) <= 5)
|
||||
MappedState.RX = cState.RX;
|
||||
if (!RY)
|
||||
if (Math.Abs(127 - MappedState.RY) <= 5)
|
||||
MappedState.RY = cState.RY;
|
||||
/*if (!L2)
|
||||
MappedState.L2 = cState.L2;
|
||||
if (!R2)
|
||||
MappedState.R2 = cState.R2;//*/
|
||||
InputMethods.MoveCursorBy(MouseDeltaX, MouseDeltaY);
|
||||
}
|
||||
public static DateTime[] mousenow = { DateTime.UtcNow, DateTime.UtcNow, DateTime.UtcNow, DateTime.UtcNow };
|
||||
public static double mvalue = 0;
|
||||
private static int getMouseMapping(int device, DS4Controls control, DS4State cState, int mnum)
|
||||
private static int getMouseMapping(int device, DS4Controls control, DS4State cState, DS4StateExposed eState, int mnum)
|
||||
{
|
||||
|
||||
int deadzone = 10;
|
||||
@ -909,9 +911,18 @@ namespace DS4Control
|
||||
case DS4Controls.L2: value = Math.Pow(root + speed / divide, cState.L2 / 2d) - 1; break;
|
||||
case DS4Controls.R2: value = Math.Pow(root + speed / divide, cState.R2 / 2d) - 1; break;
|
||||
}
|
||||
//if (value != 0)
|
||||
//mvalue = value;
|
||||
|
||||
if (eState != null)
|
||||
switch (control)
|
||||
{
|
||||
case DS4Controls.GyroXPos: return (byte)(eState.GyroX > 1800 ?
|
||||
Math.Pow(root + speed / divide, eState.GyroX / 48) : 0);
|
||||
case DS4Controls.GyroXNeg: return (byte)(eState.GyroX < -1800 ?
|
||||
Math.Pow(root + speed / divide, -eState.GyroX / 48) : 0);
|
||||
case DS4Controls.GyroZPos: return (byte)(eState.GyroZ > 1800 ?
|
||||
Math.Pow(root + speed / divide, eState.GyroZ / 48) : 0);
|
||||
case DS4Controls.GyroZNeg: return (byte)(eState.GyroZ < -1800 ?
|
||||
Math.Pow(root + speed / divide, -eState.GyroZ / 48) : 0);
|
||||
}
|
||||
bool LXChanged = (Math.Abs(127 - cState.LX) < deadzone);
|
||||
bool LYChanged = (Math.Abs(127 - cState.LY) < deadzone);
|
||||
bool RXChanged = (Math.Abs(127 - cState.RX) < deadzone);
|
||||
@ -943,7 +954,7 @@ namespace DS4Control
|
||||
|
||||
static bool[] touchArea = { true, true, true, true };
|
||||
|
||||
public static byte getByteMapping(DS4Controls control, DS4State cState)
|
||||
public static byte getByteMapping(DS4Controls control, DS4State cState, DS4StateExposed eState)
|
||||
{
|
||||
if (!cState.TouchButton)
|
||||
for (int i = 0; i < 4; i++)
|
||||
@ -987,6 +998,14 @@ namespace DS4Control
|
||||
case DS4Controls.L2: return (byte)cState.L2;
|
||||
case DS4Controls.R2: return (byte)cState.R2;
|
||||
}
|
||||
if (eState != null)
|
||||
switch (control)
|
||||
{
|
||||
case DS4Controls.GyroXPos: return (byte)(eState.GyroX > 1800 ? Math.Min(255, eState.GyroX / 24) : 0);
|
||||
case DS4Controls.GyroXNeg: return (byte)(eState.GyroX < -1800 ? Math.Min(255,-eState.GyroX / 24) : 0);
|
||||
case DS4Controls.GyroZPos: return (byte)(eState.GyroZ > 1800 ? Math.Min(255, eState.GyroZ / 24) : 0);
|
||||
case DS4Controls.GyroZNeg: return (byte)(eState.GyroZ < -1800 ? Math.Min(255, -eState.GyroZ / 24) : 0);
|
||||
}
|
||||
if (cState.TouchButton)
|
||||
{
|
||||
if (control == DS4Controls.TouchMulti)
|
||||
@ -1004,7 +1023,7 @@ namespace DS4Control
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
public static bool getBoolMapping(DS4Controls control, DS4State cState)
|
||||
public static bool getBoolMapping(DS4Controls control, DS4State cState, DS4StateExposed eState)
|
||||
{
|
||||
if (!cState.TouchButton)
|
||||
for (int i = 0; i < 4; i++)
|
||||
@ -1047,7 +1066,14 @@ namespace DS4Control
|
||||
case DS4Controls.RYPos: return cState.RY > 127 + 55;
|
||||
case DS4Controls.L2: return cState.L2 > 100;
|
||||
case DS4Controls.R2: return cState.R2 > 100;
|
||||
|
||||
}
|
||||
if (eState != null)
|
||||
switch (control)
|
||||
{
|
||||
case DS4Controls.GyroXPos: return eState.GyroX > 5000;
|
||||
case DS4Controls.GyroXNeg: return eState.GyroX < -5000;
|
||||
case DS4Controls.GyroZPos: return eState.GyroZ > 5000;
|
||||
case DS4Controls.GyroZNeg: return eState.GyroZ < -5000;
|
||||
}
|
||||
if (cState.TouchButton)
|
||||
{
|
||||
@ -1067,14 +1093,12 @@ namespace DS4Control
|
||||
return false;
|
||||
}
|
||||
|
||||
public static byte getXYAxisMapping(DS4Controls control, DS4State cState, bool alt = false)
|
||||
public static byte getXYAxisMapping(DS4Controls control, DS4State cState, DS4StateExposed eState, bool alt = false)
|
||||
{
|
||||
byte trueVal = 0;
|
||||
byte falseVal = 127;
|
||||
if (alt)
|
||||
{
|
||||
trueVal = 255;
|
||||
}
|
||||
if (!cState.TouchButton)
|
||||
for (int i = 0; i < 4; i++)
|
||||
touchArea[i] = false;
|
||||
@ -1106,10 +1130,28 @@ namespace DS4Control
|
||||
case DS4Controls.Square: return (byte)(cState.Square ? trueVal : falseVal);
|
||||
case DS4Controls.Triangle: return (byte)(cState.Triangle ? trueVal : falseVal);
|
||||
case DS4Controls.Circle: return (byte)(cState.Circle ? trueVal : falseVal);
|
||||
case DS4Controls.L2: return (byte)(cState.L2 == 255 ? trueVal : falseVal);
|
||||
case DS4Controls.R2: return (byte)(cState.R2 == 255 ? trueVal : falseVal);
|
||||
case DS4Controls.L2: if (alt) return (byte)(127 + cState.L2 / 2); else return (byte)(127 - cState.L2 / 2);
|
||||
case DS4Controls.R2: if (alt) return (byte)(127 + cState.R2 / 2); else return (byte)(127 - cState.R2 / 2);
|
||||
}
|
||||
if (eState != null)
|
||||
{
|
||||
switch (control)
|
||||
{
|
||||
case DS4Controls.GyroXPos: if (eState.GyroX > 1800)
|
||||
if (alt) return (byte)Math.Min(255, 127 + eState.GyroX / 48); else return (byte)Math.Max(0, 127 - eState.GyroX / 48);
|
||||
else return falseVal;
|
||||
case DS4Controls.GyroXNeg: if (eState.GyroX < -1800)
|
||||
if (alt) return (byte)Math.Min(255, 127 + -eState.GyroX / 48); else return (byte)Math.Max(0, 127 - -eState.GyroX / 48);
|
||||
else return falseVal;
|
||||
case DS4Controls.GyroZPos: if (eState.GyroZ > 1800)
|
||||
if (alt) return (byte)Math.Min(255, 127 + eState.GyroZ / 48); else return (byte)Math.Max(0, 127 - eState.GyroZ / 48);
|
||||
else return falseVal;
|
||||
case DS4Controls.GyroZNeg: if (eState.GyroZ < -1800)
|
||||
if (alt) return (byte)Math.Min(255, 127 + -eState.GyroZ / 48); else return (byte)Math.Max(0, 127 - -eState.GyroZ / 48);
|
||||
else return falseVal;
|
||||
}
|
||||
//Console.Write(eState.GyroX.ToString());
|
||||
}
|
||||
|
||||
if (!alt)
|
||||
{
|
||||
switch (control)
|
||||
|
@ -115,7 +115,7 @@ namespace DS4Control
|
||||
private DS4State remapped = new DS4State();
|
||||
private void synthesizeMouseButtons()
|
||||
{
|
||||
Mapping.MapCustom(deviceNum, s, remapped);
|
||||
Mapping.MapCustom(deviceNum, s, remapped, null);
|
||||
if (leftDown)
|
||||
Mapping.MapTouchpadButton(deviceNum, DS4Controls.TouchLeft, Mapping.Click.Left, remapped);
|
||||
if (upperDown)
|
||||
|
@ -13,7 +13,7 @@ namespace DS4Control
|
||||
[Flags]
|
||||
public enum DS4KeyType : byte { None = 0, ScanCode = 1, Toggle = 2, Unbound = 4, Macro = 8, HoldMacro = 16, RepeatMacro = 32 }; //Increment by exponents of 2*, starting at 2^0
|
||||
public enum Ds3PadId : byte { None = 0xFF, One = 0x00, Two = 0x01, Three = 0x02, Four = 0x03, All = 0x04 };
|
||||
public enum DS4Controls : byte { None, LXNeg, LXPos, LYNeg, LYPos, RXNeg, RXPos, RYNeg, RYPos, L1, L2, L3, R1, R2, R3, Square, Triangle, Circle, Cross, DpadUp, DpadRight, DpadDown, DpadLeft, PS, TouchLeft, TouchUpper, TouchMulti, TouchRight, Share, Options };
|
||||
public enum DS4Controls : byte { None, LXNeg, LXPos, LYNeg, LYPos, RXNeg, RXPos, RYNeg, RYPos, L1, L2, L3, R1, R2, R3, Square, Triangle, Circle, Cross, DpadUp, DpadRight, DpadDown, DpadLeft, PS, TouchLeft, TouchUpper, TouchMulti, TouchRight, Share, Options, GyroXPos, GyroXNeg, GyroZPos, GyroZNeg };
|
||||
public enum X360Controls : byte { None, LXNeg, LXPos, LYNeg, LYPos, RXNeg, RXPos, RYNeg, RYPos, LB, LT, LS, RB, RT, RS, X, Y, B, A, DpadUp, DpadRight, DpadDown, DpadLeft, Guide, Back, Start, LeftMouse, RightMouse, MiddleMouse, FourthMouse, FifthMouse, WUP, WDOWN, MouseUp, MouseDown, MouseLeft, MouseRight, Unbound };
|
||||
|
||||
public class DebugEventArgs : EventArgs
|
||||
@ -836,6 +836,10 @@ namespace DS4Control
|
||||
case "bnTouchMulti": return DS4Controls.TouchMulti;
|
||||
case "bnTouchUpper": return DS4Controls.TouchUpper;
|
||||
case "bnTouchRight": return DS4Controls.TouchRight;
|
||||
case "bnGyroXP": return DS4Controls.GyroXPos;
|
||||
case "bnGyroXN": return DS4Controls.GyroXNeg;
|
||||
case "bnGyroZP": return DS4Controls.GyroZPos;
|
||||
case "bnGyroZN": return DS4Controls.GyroZNeg;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
16
DS4Tool/Hotkeys.Designer.cs
generated
16
DS4Tool/Hotkeys.Designer.cs
generated
@ -67,6 +67,7 @@
|
||||
this.label30 = new System.Windows.Forms.Label();
|
||||
this.label31 = new System.Windows.Forms.Label();
|
||||
this.lLChangelog = new System.Windows.Forms.LinkLabel();
|
||||
this.linkDonate = new System.Windows.Forms.LinkLabel();
|
||||
this.tableLayoutPanel1.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
@ -153,7 +154,7 @@
|
||||
// label23
|
||||
//
|
||||
this.label23.AutoSize = true;
|
||||
this.label23.Location = new System.Drawing.Point(458, 9);
|
||||
this.label23.Location = new System.Drawing.Point(6, 333);
|
||||
this.label23.Name = "label23";
|
||||
this.label23.Size = new System.Drawing.Size(58, 13);
|
||||
this.label23.TabIndex = 3;
|
||||
@ -497,6 +498,17 @@
|
||||
this.lLChangelog.Text = "Changelog";
|
||||
this.lLChangelog.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.lLChangelog_LinkClicked);
|
||||
//
|
||||
// linkDonate
|
||||
//
|
||||
this.linkDonate.AutoSize = true;
|
||||
this.linkDonate.Location = new System.Drawing.Point(422, 9);
|
||||
this.linkDonate.Name = "linkDonate";
|
||||
this.linkDonate.Size = new System.Drawing.Size(94, 13);
|
||||
this.linkDonate.TabIndex = 21;
|
||||
this.linkDonate.TabStop = true;
|
||||
this.linkDonate.Text = "Donate via Paypal";
|
||||
this.linkDonate.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkDonate_LinkClicked);
|
||||
//
|
||||
// Hotkeys
|
||||
//
|
||||
this.AcceptButton = this.button1;
|
||||
@ -504,6 +516,7 @@
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.CancelButton = this.button1;
|
||||
this.ClientSize = new System.Drawing.Size(520, 413);
|
||||
this.Controls.Add(this.linkDonate);
|
||||
this.Controls.Add(this.lLChangelog);
|
||||
this.Controls.Add(this.tableLayoutPanel1);
|
||||
this.Controls.Add(this.linkJhebbel);
|
||||
@ -567,5 +580,6 @@
|
||||
private System.Windows.Forms.Label label30;
|
||||
private System.Windows.Forms.Label label31;
|
||||
private System.Windows.Forms.LinkLabel lLChangelog;
|
||||
private System.Windows.Forms.LinkLabel linkDonate;
|
||||
}
|
||||
}
|
@ -44,7 +44,7 @@ namespace ScpServer
|
||||
|
||||
private void linkJhebbel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
{
|
||||
System.Diagnostics.Process.Start("https://code.google.com/r/jhebbel-ds4tool/source/browse/");
|
||||
System.Diagnostics.Process.Start("http://dsdcs.com/index.php/portfolio/software-development/4-ds4windows");
|
||||
}
|
||||
|
||||
private void lLChangelog_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
@ -52,5 +52,10 @@ namespace ScpServer
|
||||
System.Diagnostics.Process.Start("https://docs.google.com/document/d/1l4xcgVQkGUskc5CQ0p069yW22Cd5WAH_yE3Fz2hXo0E/edit?usp=sharing");
|
||||
}
|
||||
|
||||
private void linkDonate_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
{
|
||||
System.Diagnostics.Process.Start("https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=2FTZ9BZEHSQ8Q&lc=US&item_name=DS4Windows¤cy_code=USD&bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
106
DS4Tool/Options.Designer.cs
generated
106
DS4Tool/Options.Designer.cs
generated
@ -120,6 +120,7 @@
|
||||
this.FullPanel = new System.Windows.Forms.Panel();
|
||||
this.lowBatteryPanel = new System.Windows.Forms.Panel();
|
||||
this.SixaxisPanel = new System.Windows.Forms.Panel();
|
||||
this.bnGyroZP = new System.Windows.Forms.Button();
|
||||
this.lBProfileTip = new System.Windows.Forms.Label();
|
||||
this.tBProfile = new System.Windows.Forms.TextBox();
|
||||
this.btnSaveProfile = new System.Windows.Forms.Button();
|
||||
@ -147,6 +148,10 @@
|
||||
this.gBRumble = new System.Windows.Forms.GroupBox();
|
||||
this.gBDeadzone = new System.Windows.Forms.GroupBox();
|
||||
this.btnCancel = new System.Windows.Forms.Button();
|
||||
this.bnGyroXP = new System.Windows.Forms.Button();
|
||||
this.bnGyroXN = new System.Windows.Forms.Button();
|
||||
this.bnGyroZN = new System.Windows.Forms.Button();
|
||||
this.fLPTiltControls = new System.Windows.Forms.FlowLayoutPanel();
|
||||
this.advColorDialog = new ScpServer.AdvancedColorDialog();
|
||||
this.MainPanel.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pBController)).BeginInit();
|
||||
@ -188,6 +193,7 @@
|
||||
((System.ComponentModel.ISupportInitialize)(this.nUDflashLED)).BeginInit();
|
||||
this.gBRumble.SuspendLayout();
|
||||
this.gBDeadzone.SuspendLayout();
|
||||
this.fLPTiltControls.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// bnTouchUpper
|
||||
@ -893,7 +899,7 @@
|
||||
// lBControlTip
|
||||
//
|
||||
this.lBControlTip.AutoSize = true;
|
||||
this.lBControlTip.Location = new System.Drawing.Point(25, 9);
|
||||
this.lBControlTip.Location = new System.Drawing.Point(25, 3);
|
||||
this.lBControlTip.Name = "lBControlTip";
|
||||
this.lBControlTip.Size = new System.Drawing.Size(219, 26);
|
||||
this.lBControlTip.TabIndex = 181;
|
||||
@ -933,7 +939,11 @@
|
||||
"Right Stick Up :",
|
||||
"Right Stick Down :",
|
||||
"Right Stick Left :",
|
||||
"Right Stick Right :"});
|
||||
"Right Stick Right :",
|
||||
"Sixaxis Up :",
|
||||
"Sixaxis Down :",
|
||||
"Sixaxis Left :",
|
||||
"Sixaxis Right :"});
|
||||
this.lBControls.Location = new System.Drawing.Point(258, 9);
|
||||
this.lBControls.Name = "lBControls";
|
||||
this.lBControls.Size = new System.Drawing.Size(169, 173);
|
||||
@ -1252,7 +1262,7 @@
|
||||
// nUDIdleDisconnect
|
||||
//
|
||||
this.nUDIdleDisconnect.DecimalPlaces = 1;
|
||||
this.nUDIdleDisconnect.Location = new System.Drawing.Point(108, 46);
|
||||
this.nUDIdleDisconnect.Location = new System.Drawing.Point(109, 46);
|
||||
this.nUDIdleDisconnect.Maximum = new decimal(new int[] {
|
||||
60,
|
||||
0,
|
||||
@ -1286,8 +1296,7 @@
|
||||
//
|
||||
this.tBsixaxisAccelZ.AutoSize = false;
|
||||
this.tBsixaxisAccelZ.BackColor = System.Drawing.Color.White;
|
||||
this.tBsixaxisAccelZ.Enabled = false;
|
||||
this.tBsixaxisAccelZ.Location = new System.Drawing.Point(382, 6);
|
||||
this.tBsixaxisAccelZ.Location = new System.Drawing.Point(315, 3);
|
||||
this.tBsixaxisAccelZ.Maximum = 32767;
|
||||
this.tBsixaxisAccelZ.Minimum = -32768;
|
||||
this.tBsixaxisAccelZ.Name = "tBsixaxisAccelZ";
|
||||
@ -1312,8 +1321,7 @@
|
||||
//
|
||||
this.tBsixaxisAccelY.AutoSize = false;
|
||||
this.tBsixaxisAccelY.BackColor = System.Drawing.Color.White;
|
||||
this.tBsixaxisAccelY.Enabled = false;
|
||||
this.tBsixaxisAccelY.Location = new System.Drawing.Point(335, 6);
|
||||
this.tBsixaxisAccelY.Location = new System.Drawing.Point(268, 3);
|
||||
this.tBsixaxisAccelY.Maximum = 32767;
|
||||
this.tBsixaxisAccelY.Minimum = -32768;
|
||||
this.tBsixaxisAccelY.Name = "tBsixaxisAccelY";
|
||||
@ -1334,8 +1342,7 @@
|
||||
//
|
||||
this.tBsixaxisAccelX.AutoSize = false;
|
||||
this.tBsixaxisAccelX.BackColor = System.Drawing.Color.White;
|
||||
this.tBsixaxisAccelX.Enabled = false;
|
||||
this.tBsixaxisAccelX.Location = new System.Drawing.Point(289, 6);
|
||||
this.tBsixaxisAccelX.Location = new System.Drawing.Point(222, 3);
|
||||
this.tBsixaxisAccelX.Maximum = 32767;
|
||||
this.tBsixaxisAccelX.Minimum = -32768;
|
||||
this.tBsixaxisAccelX.Name = "tBsixaxisAccelX";
|
||||
@ -1356,8 +1363,7 @@
|
||||
//
|
||||
this.tBsixaxisGyroZ.AutoSize = false;
|
||||
this.tBsixaxisGyroZ.BackColor = System.Drawing.Color.White;
|
||||
this.tBsixaxisGyroZ.Enabled = false;
|
||||
this.tBsixaxisGyroZ.Location = new System.Drawing.Point(163, 6);
|
||||
this.tBsixaxisGyroZ.Location = new System.Drawing.Point(96, 3);
|
||||
this.tBsixaxisGyroZ.Maximum = 32767;
|
||||
this.tBsixaxisGyroZ.Minimum = -32768;
|
||||
this.tBsixaxisGyroZ.Name = "tBsixaxisGyroZ";
|
||||
@ -1378,8 +1384,7 @@
|
||||
//
|
||||
this.tBsixaxisGyroY.AutoSize = false;
|
||||
this.tBsixaxisGyroY.BackColor = System.Drawing.Color.White;
|
||||
this.tBsixaxisGyroY.Enabled = false;
|
||||
this.tBsixaxisGyroY.Location = new System.Drawing.Point(116, 6);
|
||||
this.tBsixaxisGyroY.Location = new System.Drawing.Point(49, 3);
|
||||
this.tBsixaxisGyroY.Maximum = 32767;
|
||||
this.tBsixaxisGyroY.Minimum = -32768;
|
||||
this.tBsixaxisGyroY.Name = "tBsixaxisGyroY";
|
||||
@ -1391,8 +1396,7 @@
|
||||
//
|
||||
this.tBsixaxisGyroX.AutoSize = false;
|
||||
this.tBsixaxisGyroX.BackColor = System.Drawing.Color.White;
|
||||
this.tBsixaxisGyroX.Enabled = false;
|
||||
this.tBsixaxisGyroX.Location = new System.Drawing.Point(69, 6);
|
||||
this.tBsixaxisGyroX.Location = new System.Drawing.Point(2, 3);
|
||||
this.tBsixaxisGyroX.Maximum = 32767;
|
||||
this.tBsixaxisGyroX.Minimum = -32768;
|
||||
this.tBsixaxisGyroX.Name = "tBsixaxisGyroX";
|
||||
@ -1421,7 +1425,7 @@
|
||||
// lB6Accel
|
||||
//
|
||||
this.lB6Accel.AutoSize = true;
|
||||
this.lB6Accel.Location = new System.Drawing.Point(220, 6);
|
||||
this.lB6Accel.Location = new System.Drawing.Point(153, 3);
|
||||
this.lB6Accel.Name = "lB6Accel";
|
||||
this.lB6Accel.Size = new System.Drawing.Size(72, 13);
|
||||
this.lB6Accel.TabIndex = 215;
|
||||
@ -1443,11 +1447,12 @@
|
||||
// lB6Gryo
|
||||
//
|
||||
this.lB6Gryo.AutoSize = true;
|
||||
this.lB6Gryo.Location = new System.Drawing.Point(5, 6);
|
||||
this.lB6Gryo.Location = new System.Drawing.Point(4, 197);
|
||||
this.lB6Gryo.Name = "lB6Gryo";
|
||||
this.lB6Gryo.Size = new System.Drawing.Size(67, 13);
|
||||
this.lB6Gryo.TabIndex = 216;
|
||||
this.lB6Gryo.Text = "Sixaxis Gyro:";
|
||||
this.lB6Gryo.MouseClick += new System.Windows.Forms.MouseEventHandler(this.lB6Gryo_MouseClick);
|
||||
//
|
||||
// nUDLightRumble
|
||||
//
|
||||
@ -1597,17 +1602,27 @@
|
||||
// SixaxisPanel
|
||||
//
|
||||
this.SixaxisPanel.Controls.Add(this.tBsixaxisAccelX);
|
||||
this.SixaxisPanel.Controls.Add(this.lB6Gryo);
|
||||
this.SixaxisPanel.Controls.Add(this.lB6Accel);
|
||||
this.SixaxisPanel.Controls.Add(this.tBsixaxisGyroX);
|
||||
this.SixaxisPanel.Controls.Add(this.tBsixaxisGyroY);
|
||||
this.SixaxisPanel.Controls.Add(this.tBsixaxisGyroZ);
|
||||
this.SixaxisPanel.Controls.Add(this.tBsixaxisAccelY);
|
||||
this.SixaxisPanel.Controls.Add(this.tBsixaxisAccelZ);
|
||||
this.SixaxisPanel.Location = new System.Drawing.Point(1, 193);
|
||||
this.SixaxisPanel.Location = new System.Drawing.Point(70, 195);
|
||||
this.SixaxisPanel.Name = "SixaxisPanel";
|
||||
this.SixaxisPanel.Size = new System.Drawing.Size(435, 27);
|
||||
this.SixaxisPanel.Size = new System.Drawing.Size(371, 28);
|
||||
this.SixaxisPanel.TabIndex = 236;
|
||||
this.SixaxisPanel.Visible = false;
|
||||
//
|
||||
// bnGyroZP
|
||||
//
|
||||
this.bnGyroZP.Location = new System.Drawing.Point(89, 3);
|
||||
this.bnGyroZP.Name = "bnGyroZP";
|
||||
this.bnGyroZP.Size = new System.Drawing.Size(80, 23);
|
||||
this.bnGyroZP.TabIndex = 250;
|
||||
this.bnGyroZP.Text = "Tilt Down";
|
||||
this.bnGyroZP.UseVisualStyleBackColor = true;
|
||||
this.bnGyroZP.Click += new System.EventHandler(this.Show_ControlsBn);
|
||||
//
|
||||
// lBProfileTip
|
||||
//
|
||||
@ -1991,6 +2006,47 @@
|
||||
this.btnCancel.Visible = false;
|
||||
this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click);
|
||||
//
|
||||
// bnGyroXP
|
||||
//
|
||||
this.bnGyroXP.Location = new System.Drawing.Point(175, 3);
|
||||
this.bnGyroXP.Name = "bnGyroXP";
|
||||
this.bnGyroXP.Size = new System.Drawing.Size(80, 23);
|
||||
this.bnGyroXP.TabIndex = 250;
|
||||
this.bnGyroXP.Text = "Tilt Left";
|
||||
this.bnGyroXP.UseVisualStyleBackColor = true;
|
||||
this.bnGyroXP.Click += new System.EventHandler(this.Show_ControlsBn);
|
||||
//
|
||||
// bnGyroXN
|
||||
//
|
||||
this.bnGyroXN.Location = new System.Drawing.Point(261, 3);
|
||||
this.bnGyroXN.Name = "bnGyroXN";
|
||||
this.bnGyroXN.Size = new System.Drawing.Size(80, 23);
|
||||
this.bnGyroXN.TabIndex = 250;
|
||||
this.bnGyroXN.Text = "Tilt Right";
|
||||
this.bnGyroXN.UseVisualStyleBackColor = true;
|
||||
this.bnGyroXN.Click += new System.EventHandler(this.Show_ControlsBn);
|
||||
//
|
||||
// bnGyroZN
|
||||
//
|
||||
this.bnGyroZN.Location = new System.Drawing.Point(3, 3);
|
||||
this.bnGyroZN.Name = "bnGyroZN";
|
||||
this.bnGyroZN.Size = new System.Drawing.Size(80, 23);
|
||||
this.bnGyroZN.TabIndex = 250;
|
||||
this.bnGyroZN.Text = "Tilt Up";
|
||||
this.bnGyroZN.UseVisualStyleBackColor = true;
|
||||
this.bnGyroZN.Click += new System.EventHandler(this.Show_ControlsBn);
|
||||
//
|
||||
// fLPTiltControls
|
||||
//
|
||||
this.fLPTiltControls.Controls.Add(this.bnGyroZN);
|
||||
this.fLPTiltControls.Controls.Add(this.bnGyroZP);
|
||||
this.fLPTiltControls.Controls.Add(this.bnGyroXP);
|
||||
this.fLPTiltControls.Controls.Add(this.bnGyroXN);
|
||||
this.fLPTiltControls.Location = new System.Drawing.Point(84, 190);
|
||||
this.fLPTiltControls.Name = "fLPTiltControls";
|
||||
this.fLPTiltControls.Size = new System.Drawing.Size(350, 31);
|
||||
this.fLPTiltControls.TabIndex = 252;
|
||||
//
|
||||
// advColorDialog
|
||||
//
|
||||
this.advColorDialog.AnyColor = true;
|
||||
@ -2006,11 +2062,11 @@
|
||||
this.CancelButton = this.btnCancel;
|
||||
this.ClientSize = new System.Drawing.Size(888, 295);
|
||||
this.Controls.Add(this.btnCancel);
|
||||
this.Controls.Add(this.lB6Gryo);
|
||||
this.Controls.Add(this.gBDeadzone);
|
||||
this.Controls.Add(this.gBRumble);
|
||||
this.Controls.Add(this.gBLightbar);
|
||||
this.Controls.Add(this.gBTouchpad);
|
||||
this.Controls.Add(this.SixaxisPanel);
|
||||
this.Controls.Add(this.lBProfileTip);
|
||||
this.Controls.Add(this.tBProfile);
|
||||
this.Controls.Add(this.btnSaveProfile);
|
||||
@ -2019,6 +2075,8 @@
|
||||
this.Controls.Add(this.MainPanel);
|
||||
this.Controls.Add(this.SticksPanel);
|
||||
this.Controls.Add(this.gBOther);
|
||||
this.Controls.Add(this.fLPTiltControls);
|
||||
this.Controls.Add(this.SixaxisPanel);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
||||
this.MaximizeBox = false;
|
||||
this.MinimizeBox = false;
|
||||
@ -2074,6 +2132,7 @@
|
||||
this.gBRumble.PerformLayout();
|
||||
this.gBDeadzone.ResumeLayout(false);
|
||||
this.gBDeadzone.PerformLayout();
|
||||
this.fLPTiltControls.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
@ -2203,6 +2262,11 @@
|
||||
private System.Windows.Forms.Button btnChargingColor;
|
||||
private System.Windows.Forms.RadioButton rBColor;
|
||||
private System.Windows.Forms.CheckBox cBIdleDisconnect;
|
||||
private System.Windows.Forms.Button bnGyroXP;
|
||||
private System.Windows.Forms.Button bnGyroXN;
|
||||
private System.Windows.Forms.Button bnGyroZP;
|
||||
private System.Windows.Forms.Button bnGyroZN;
|
||||
private System.Windows.Forms.FlowLayoutPanel fLPTiltControls;
|
||||
}
|
||||
}
|
||||
|
@ -107,18 +107,15 @@ namespace ScpServer
|
||||
}
|
||||
else
|
||||
Set();
|
||||
sixaxisTimer.Start();
|
||||
#region watch sixaxis data
|
||||
|
||||
sixaxisTimer.Tick += sixaxisTimer_Tick;
|
||||
|
||||
sixaxisTimer.Interval = 1000 / 60;
|
||||
#endregion
|
||||
foreach (System.Windows.Forms.Control control in this.MainPanel.Controls)
|
||||
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 this.SticksPanel.Controls)
|
||||
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);
|
||||
@ -133,12 +130,21 @@ 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(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");
|
||||
advColorDialog.OnUpdateColor += advColorDialog_OnUpdateColor;
|
||||
btnLeftStick.Enter += btnSticks_Enter;
|
||||
btnRightStick.Enter += btnSticks_Enter;
|
||||
UpdateLists();
|
||||
inputtimer.Start();
|
||||
inputtimer.Tick += InputDS4;
|
||||
sixaxisTimer.Tick += sixaxisTimer_Tick;
|
||||
sixaxisTimer.Interval = 1000 / 60;
|
||||
}
|
||||
|
||||
void sixaxisTimer_Tick(object sender, EventArgs e)
|
||||
@ -188,6 +194,10 @@ namespace ScpServer
|
||||
case ("RS Down"): Show_ControlsBn(bnRSDown, e); break;
|
||||
case ("RS Left"): Show_ControlsBn(bnRSLeft, e); break;
|
||||
case ("RS Right"): Show_ControlsBn(bnRSRight, e); break;
|
||||
case ("GyroXP"): Show_ControlsBn(bnGyroXP, e); break;
|
||||
case ("GyroXN"): Show_ControlsBn(bnGyroXN, e); break;
|
||||
case ("GyroZP"): Show_ControlsBn(bnGyroZP, e); break;
|
||||
case ("GyroZN"): Show_ControlsBn(bnGyroZN, e); break;
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
@ -225,6 +235,11 @@ namespace ScpServer
|
||||
case ("bnRSDown"): lBControls.SelectedIndex = 26; break;
|
||||
case ("bnRSLeft"): lBControls.SelectedIndex = 27; break;
|
||||
case ("bnRSRight"): lBControls.SelectedIndex = 28; break;
|
||||
case ("bnGyroZN"): lBControls.SelectedIndex = 29; break;
|
||||
case ("bnGyroZP"): lBControls.SelectedIndex = 30; break;
|
||||
case ("bnGyroXP"): lBControls.SelectedIndex = 31; break;
|
||||
case ("bnGyroXN"): lBControls.SelectedIndex = 32; break;
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@ -704,8 +719,29 @@ namespace ScpServer
|
||||
lBControls.Items[26] = "RS Down : " + bnRSDown.Text;
|
||||
lBControls.Items[27] = "RS Left : " + bnRSLeft.Text;
|
||||
lBControls.Items[28] = "RS Right : " + bnRSRight.Text;
|
||||
lBControls.Items[29] = "Tilt Up : " + UpdateGyroList(bnGyroZN);
|
||||
lBControls.Items[30] = "Tilt Down : " + UpdateGyroList(bnGyroZP);
|
||||
lBControls.Items[31] = "Tilt Left : " + UpdateGyroList(bnGyroXP);
|
||||
lBControls.Items[32] = "Tilt Right : " + UpdateGyroList(bnGyroXN);
|
||||
bnGyroZN.Text = "Tilt Up";
|
||||
bnGyroZP.Text = "Tilt Down";
|
||||
bnGyroXP.Text = "Tilt Left";
|
||||
bnGyroXN.Text = "Tilt Right";
|
||||
}
|
||||
|
||||
private string UpdateGyroList(Button button)
|
||||
{
|
||||
if (button.Tag is String && (String)button.Tag == "Unbound")
|
||||
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 string)
|
||||
return button.Tag.ToString();
|
||||
else
|
||||
return string.Empty;
|
||||
}
|
||||
private void Show_ControlsList(object sender, EventArgs e)
|
||||
{
|
||||
if (lBControls.SelectedIndex == 0) Show_ControlsBn(bnCross, e);
|
||||
@ -739,6 +775,11 @@ namespace ScpServer
|
||||
if (lBControls.SelectedIndex == 26) Show_ControlsBn(bnRSDown, e);
|
||||
if (lBControls.SelectedIndex == 27) Show_ControlsBn(bnRSLeft, e);
|
||||
if (lBControls.SelectedIndex == 28) Show_ControlsBn(bnRSRight, e);
|
||||
|
||||
if (lBControls.SelectedIndex == 29) Show_ControlsBn(bnGyroZN, e);
|
||||
if (lBControls.SelectedIndex == 30) Show_ControlsBn(bnGyroZP, e);
|
||||
if (lBControls.SelectedIndex == 31) Show_ControlsBn(bnGyroXP, e);
|
||||
if (lBControls.SelectedIndex == 32) Show_ControlsBn(bnGyroXN, e);
|
||||
}
|
||||
|
||||
private void List_MouseDoubleClick(object sender, MouseEventArgs e)
|
||||
@ -828,10 +869,6 @@ namespace ScpServer
|
||||
Global.setRightTriggerMiddle(device, (byte)(nUDR2.Value * 255));
|
||||
}
|
||||
|
||||
private void flashLed_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
Image L = Properties.Resources.LeftTouch;
|
||||
Image R = Properties.Resources.RightTouch;
|
||||
Image M = Properties.Resources.MultiTouch;
|
||||
@ -925,7 +962,14 @@ namespace ScpServer
|
||||
btnChargingColor.Visible = true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void lB6Gryo_MouseClick(object sender, MouseEventArgs e)
|
||||
{
|
||||
fLPTiltControls.Visible = !fLPTiltControls.Visible;
|
||||
SixaxisPanel.Visible = !SixaxisPanel.Visible;
|
||||
if (SixaxisPanel.Visible)
|
||||
sixaxisTimer.Start();
|
||||
else
|
||||
sixaxisTimer.Stop();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -17,7 +17,7 @@ namespace ScpServer
|
||||
{
|
||||
public partial class ScpForm : Form
|
||||
{
|
||||
double version = 10.55;
|
||||
double version = 10.6;
|
||||
private DS4Control.Control rootHub;
|
||||
delegate void LogDebugDelegate(DateTime Time, String Data);
|
||||
|
||||
@ -257,7 +257,7 @@ namespace ScpServer
|
||||
private void test_Tick(object sender, EventArgs e)
|
||||
{
|
||||
lBTest.Visible = true;
|
||||
lBTest.Text = Mapping.getByteMapping(DS4Controls.R1, rootHub.getDS4State(0)).ToString() + " " + rootHub.getDS4StateMapped(0).R2.ToString();
|
||||
lBTest.Text = rootHub.getDS4StateMapped(0).LY.ToString();
|
||||
}
|
||||
void Hotkeys(object sender, EventArgs e)
|
||||
{
|
||||
@ -838,12 +838,10 @@ namespace ScpServer
|
||||
lBProfiles.SendToBack();
|
||||
toolStrip1.SendToBack();
|
||||
tSOptions.SendToBack();
|
||||
FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
||||
opt.FormClosed += delegate
|
||||
{
|
||||
opt = null;
|
||||
RefreshProfiles();
|
||||
FormBorderStyle = System.Windows.Forms.FormBorderStyle.Sizable;
|
||||
this.Size = oldsize;
|
||||
oldsize = new System.Drawing.Size(0, 0);
|
||||
tSOptions.Visible = false;
|
||||
|
Loading…
Reference in New Issue
Block a user