mirror of
https://github.com/cemu-project/DS4Windows.git
synced 2024-11-23 01:39:17 +01:00
Merge pull request #8 from Ryochan7/jay
Merge changes from Ryochan7/DS4Windows
This commit is contained in:
commit
cf5ea7a5f9
5
.gitignore
vendored
5
.gitignore
vendored
@ -97,7 +97,7 @@ publish/
|
||||
|
||||
# NuGet Packages Directory
|
||||
## TODO: If you have NuGet Package Restore enabled, uncomment the next line
|
||||
#packages/
|
||||
packages/
|
||||
|
||||
# Windows Azure Build Output
|
||||
csx
|
||||
@ -154,3 +154,6 @@ $RECYCLE.BIN/
|
||||
|
||||
# Mac desktop service store files
|
||||
.DS_Store
|
||||
|
||||
.vs/
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -9,18 +9,24 @@ Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Debug|x64 = Debug|x64
|
||||
Debug|x86 = Debug|x86
|
||||
Release|Any CPU = Release|Any CPU
|
||||
Release|x64 = Release|x64
|
||||
Release|x86 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{7B9354BF-AF82-4CCB-A83D-4BEB1E9D8C96}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{7B9354BF-AF82-4CCB-A83D-4BEB1E9D8C96}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{7B9354BF-AF82-4CCB-A83D-4BEB1E9D8C96}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{7B9354BF-AF82-4CCB-A83D-4BEB1E9D8C96}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{7B9354BF-AF82-4CCB-A83D-4BEB1E9D8C96}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{7B9354BF-AF82-4CCB-A83D-4BEB1E9D8C96}.Debug|x64.Build.0 = Debug|x64
|
||||
{7B9354BF-AF82-4CCB-A83D-4BEB1E9D8C96}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{7B9354BF-AF82-4CCB-A83D-4BEB1E9D8C96}.Debug|x86.Build.0 = Debug|x86
|
||||
{7B9354BF-AF82-4CCB-A83D-4BEB1E9D8C96}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{7B9354BF-AF82-4CCB-A83D-4BEB1E9D8C96}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{7B9354BF-AF82-4CCB-A83D-4BEB1E9D8C96}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{7B9354BF-AF82-4CCB-A83D-4BEB1E9D8C96}.Release|x64.Build.0 = Release|Any CPU
|
||||
{7B9354BF-AF82-4CCB-A83D-4BEB1E9D8C96}.Release|x64.ActiveCfg = Release|x64
|
||||
{7B9354BF-AF82-4CCB-A83D-4BEB1E9D8C96}.Release|x64.Build.0 = Release|x64
|
||||
{7B9354BF-AF82-4CCB-A83D-4BEB1E9D8C96}.Release|x86.ActiveCfg = Release|x86
|
||||
{7B9354BF-AF82-4CCB-A83D-4BEB1E9D8C96}.Release|x86.Build.0 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
@ -1,851 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using System.Media;
|
||||
using System.Threading.Tasks;
|
||||
using static DS4Windows.Global;
|
||||
namespace DS4Windows
|
||||
{
|
||||
public class ControlService
|
||||
{
|
||||
public X360Device x360Bus;
|
||||
public DS4Device[] DS4Controllers = new DS4Device[4];
|
||||
public Mouse[] touchPad = new Mouse[4];
|
||||
private bool running = false;
|
||||
private DS4State[] MappedState = new DS4State[4];
|
||||
private DS4State[] CurrentState = new DS4State[4];
|
||||
private DS4State[] PreviousState = new DS4State[4];
|
||||
public DS4StateExposed[] ExposedState = new DS4StateExposed[4];
|
||||
public bool recordingMacro = false;
|
||||
public event EventHandler<DebugEventArgs> Debug = null;
|
||||
public bool eastertime = false;
|
||||
private int eCode = 0;
|
||||
bool[] buttonsdown = { false, false, false, false };
|
||||
List<DS4Controls> dcs = new List<DS4Controls>();
|
||||
bool[] held = new bool[4];
|
||||
int[] oldmouse = new int[4] { -1, -1, -1, -1 };
|
||||
SoundPlayer sp = new SoundPlayer();
|
||||
|
||||
private class X360Data
|
||||
{
|
||||
public byte[] Report = new byte[28];
|
||||
public byte[] Rumble = new byte[8];
|
||||
}
|
||||
private X360Data[] processingData = new X360Data[4];
|
||||
|
||||
public ControlService()
|
||||
{
|
||||
sp.Stream = Properties.Resources.EE;
|
||||
x360Bus = new X360Device();
|
||||
AddtoDS4List();
|
||||
for (int i = 0; i < DS4Controllers.Length; i++)
|
||||
{
|
||||
processingData[i] = new X360Data();
|
||||
MappedState[i] = new DS4State();
|
||||
CurrentState[i] = new DS4State();
|
||||
PreviousState[i] = new DS4State();
|
||||
ExposedState[i] = new DS4StateExposed(CurrentState[i]);
|
||||
}
|
||||
}
|
||||
|
||||
void AddtoDS4List()
|
||||
{
|
||||
dcs.Add(DS4Controls.Cross);
|
||||
dcs.Add(DS4Controls.Cross);
|
||||
dcs.Add(DS4Controls.Circle);
|
||||
dcs.Add(DS4Controls.Square);
|
||||
dcs.Add(DS4Controls.Triangle);
|
||||
dcs.Add(DS4Controls.Options);
|
||||
dcs.Add(DS4Controls.Share);
|
||||
dcs.Add(DS4Controls.DpadUp);
|
||||
dcs.Add(DS4Controls.DpadDown);
|
||||
dcs.Add(DS4Controls.DpadLeft);
|
||||
dcs.Add(DS4Controls.DpadRight);
|
||||
dcs.Add(DS4Controls.PS);
|
||||
dcs.Add(DS4Controls.L1);
|
||||
dcs.Add(DS4Controls.R1);
|
||||
dcs.Add(DS4Controls.L2);
|
||||
dcs.Add(DS4Controls.R2);
|
||||
dcs.Add(DS4Controls.L3);
|
||||
dcs.Add(DS4Controls.R3);
|
||||
dcs.Add(DS4Controls.LXPos);
|
||||
dcs.Add(DS4Controls.LXNeg);
|
||||
dcs.Add(DS4Controls.LYPos);
|
||||
dcs.Add(DS4Controls.LYNeg);
|
||||
dcs.Add(DS4Controls.RXPos);
|
||||
dcs.Add(DS4Controls.RXNeg);
|
||||
dcs.Add(DS4Controls.RYPos);
|
||||
dcs.Add(DS4Controls.RYNeg);
|
||||
dcs.Add(DS4Controls.SwipeUp);
|
||||
dcs.Add(DS4Controls.SwipeDown);
|
||||
dcs.Add(DS4Controls.SwipeLeft);
|
||||
dcs.Add(DS4Controls.SwipeRight);
|
||||
}
|
||||
|
||||
private async void WarnExclusiveModeFailure(DS4Device device)
|
||||
{
|
||||
if (DS4Devices.isExclusiveMode && !device.IsExclusive)
|
||||
{
|
||||
await System.Threading.Tasks.Task.Delay(5);
|
||||
String message = Properties.Resources.CouldNotOpenDS4.Replace("*Mac address*", device.MacAddress) + " " + Properties.Resources.QuitOtherPrograms;
|
||||
LogDebug(message, true);
|
||||
Log.LogToTray(message, true);
|
||||
}
|
||||
}
|
||||
public bool Start(bool showlog = true)
|
||||
{
|
||||
if (x360Bus.Open() && x360Bus.Start())
|
||||
{
|
||||
if (showlog)
|
||||
LogDebug(Properties.Resources.Starting);
|
||||
DS4Devices.isExclusiveMode = UseExclusiveMode;
|
||||
if (showlog)
|
||||
{
|
||||
LogDebug(Properties.Resources.SearchingController);
|
||||
LogDebug(DS4Devices.isExclusiveMode ? Properties.Resources.UsingExclusive: Properties.Resources.UsingShared);
|
||||
}
|
||||
try
|
||||
{
|
||||
DS4Devices.findControllers();
|
||||
IEnumerable<DS4Device> devices = DS4Devices.getDS4Controllers();
|
||||
int ind = 0;
|
||||
DS4LightBar.defualtLight = false;
|
||||
foreach (DS4Device device in devices)
|
||||
{
|
||||
if (showlog)
|
||||
LogDebug(Properties.Resources.FoundController + device.MacAddress + " (" + device.ConnectionType + ")");
|
||||
WarnExclusiveModeFailure(device);
|
||||
DS4Controllers[ind] = device;
|
||||
device.Removal -= DS4Devices.On_Removal;
|
||||
device.Removal += this.On_DS4Removal;
|
||||
device.Removal += DS4Devices.On_Removal;
|
||||
touchPad[ind] = new Mouse(ind, device);
|
||||
device.LightBarColor = MainColor[ind];
|
||||
if (!DinputOnly[ind])
|
||||
x360Bus.Plugin(ind);
|
||||
device.Report += this.On_Report;
|
||||
TouchPadOn(ind, device);
|
||||
//string filename = ProfilePath[ind];
|
||||
ind++;
|
||||
if (showlog)
|
||||
if (System.IO.File.Exists(appdatapath + "\\Profiles\\" + ProfilePath[ind-1] + ".xml"))
|
||||
{
|
||||
string prolog = Properties.Resources.UsingProfile.Replace("*number*", ind.ToString()).Replace("*Profile name*", ProfilePath[ind-1]);
|
||||
LogDebug(prolog);
|
||||
Log.LogToTray(prolog);
|
||||
}
|
||||
else
|
||||
{
|
||||
string prolog = Properties.Resources.NotUsingProfile.Replace("*number*", (ind).ToString());
|
||||
LogDebug(prolog);
|
||||
Log.LogToTray(prolog);
|
||||
}
|
||||
if (ind >= 4) // out of Xinput devices!
|
||||
break;
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LogDebug(e.Message);
|
||||
Log.LogToTray(e.Message);
|
||||
}
|
||||
running = true;
|
||||
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public bool Stop(bool showlog = true)
|
||||
{
|
||||
if (running)
|
||||
{
|
||||
running = false;
|
||||
if (showlog)
|
||||
LogDebug(Properties.Resources.StoppingX360);
|
||||
bool anyUnplugged = false;
|
||||
for (int i = 0; i < DS4Controllers.Length; i++)
|
||||
{
|
||||
if (DS4Controllers[i] != null)
|
||||
{
|
||||
if (DCBTatStop && !DS4Controllers[i].Charging && showlog)
|
||||
DS4Controllers[i].DisconnectBT();
|
||||
else
|
||||
{
|
||||
DS4LightBar.forcelight[i] = false;
|
||||
DS4LightBar.forcedFlash[i] = 0;
|
||||
DS4LightBar.defualtLight = true;
|
||||
DS4LightBar.updateLightBar(DS4Controllers[i], i, CurrentState[i], ExposedState[i], touchPad[i]);
|
||||
System.Threading.Thread.Sleep(50);
|
||||
}
|
||||
CurrentState[i].Battery = PreviousState[i].Battery = 0; // Reset for the next connection's initial status change.
|
||||
x360Bus.Unplug(i);
|
||||
anyUnplugged = true;
|
||||
DS4Controllers[i] = null;
|
||||
touchPad[i] = null;
|
||||
}
|
||||
}
|
||||
if (anyUnplugged)
|
||||
System.Threading.Thread.Sleep(XINPUT_UNPLUG_SETTLE_TIME);
|
||||
x360Bus.UnplugAll();
|
||||
x360Bus.Stop();
|
||||
if (showlog)
|
||||
LogDebug(Properties.Resources.StoppingDS4);
|
||||
DS4Devices.stopControllers();
|
||||
if (showlog)
|
||||
LogDebug(Properties.Resources.StoppedDS4Windows);
|
||||
ControllerStatusChanged(this);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public bool HotPlug()
|
||||
{
|
||||
if (running)
|
||||
{
|
||||
DS4Devices.findControllers();
|
||||
IEnumerable<DS4Device> devices = DS4Devices.getDS4Controllers();
|
||||
foreach (DS4Device device in devices)
|
||||
{
|
||||
if (device.IsDisconnecting)
|
||||
continue;
|
||||
if (((Func<bool>)delegate
|
||||
{
|
||||
for (Int32 Index = 0; Index < DS4Controllers.Length; Index++)
|
||||
if (DS4Controllers[Index] != null && DS4Controllers[Index].MacAddress == device.MacAddress)
|
||||
return true;
|
||||
return false;
|
||||
})())
|
||||
continue;
|
||||
for (Int32 Index = 0; Index < DS4Controllers.Length; Index++)
|
||||
if (DS4Controllers[Index] == null)
|
||||
{
|
||||
LogDebug(Properties.Resources.FoundController + device.MacAddress + " (" + device.ConnectionType + ")");
|
||||
WarnExclusiveModeFailure(device);
|
||||
DS4Controllers[Index] = device;
|
||||
device.Removal -= DS4Devices.On_Removal;
|
||||
device.Removal += this.On_DS4Removal;
|
||||
device.Removal += DS4Devices.On_Removal;
|
||||
touchPad[Index] = new Mouse(Index, device);
|
||||
device.LightBarColor = MainColor[Index];
|
||||
device.Report += this.On_Report;
|
||||
if (!DinputOnly[Index])
|
||||
x360Bus.Plugin(Index);
|
||||
TouchPadOn(Index, device);
|
||||
//string filename = Path.GetFileName(ProfilePath[Index]);
|
||||
if (System.IO.File.Exists(appdatapath + "\\Profiles\\" + ProfilePath[Index] + ".xml"))
|
||||
{
|
||||
string prolog = Properties.Resources.UsingProfile.Replace("*number*", (Index + 1).ToString()).Replace("*Profile name*", ProfilePath[Index]);
|
||||
LogDebug(prolog);
|
||||
Log.LogToTray(prolog);
|
||||
}
|
||||
else
|
||||
{
|
||||
string prolog = Properties.Resources.NotUsingProfile.Replace("*number*", (Index + 1).ToString());
|
||||
LogDebug(prolog);
|
||||
Log.LogToTray(prolog);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public void TouchPadOn(int ind, DS4Device device)
|
||||
{
|
||||
ITouchpadBehaviour tPad = touchPad[ind];
|
||||
device.Touchpad.TouchButtonDown += tPad.touchButtonDown;
|
||||
device.Touchpad.TouchButtonUp += tPad.touchButtonUp;
|
||||
device.Touchpad.TouchesBegan += tPad.touchesBegan;
|
||||
device.Touchpad.TouchesMoved += tPad.touchesMoved;
|
||||
device.Touchpad.TouchesEnded += tPad.touchesEnded;
|
||||
device.Touchpad.TouchUnchanged += tPad.touchUnchanged;
|
||||
device.SixAxis.SixAccelMoved += tPad.sixaxisMoved;
|
||||
//LogDebug("Touchpad mode for " + device.MacAddress + " is now " + tmode.ToString());
|
||||
//Log.LogToTray("Touchpad mode for " + device.MacAddress + " is now " + tmode.ToString());
|
||||
ControllerStatusChanged(this);
|
||||
}
|
||||
|
||||
public void TimeoutConnection(DS4Device d)
|
||||
{
|
||||
try
|
||||
{
|
||||
System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();
|
||||
sw.Start();
|
||||
while (!d.IsAlive())
|
||||
{
|
||||
if (sw.ElapsedMilliseconds < 1000)
|
||||
System.Threading.Thread.SpinWait(500);
|
||||
//If weve been waiting less than 1 second let the thread keep its processing chunk
|
||||
else
|
||||
System.Threading.Thread.Sleep(500);
|
||||
//If weve been waiting more than 1 second give up some resources
|
||||
|
||||
if (sw.ElapsedMilliseconds > 5000) throw new TimeoutException(); //Weve waited long enough
|
||||
}
|
||||
sw.Reset();
|
||||
}
|
||||
catch (TimeoutException)
|
||||
{
|
||||
Stop(false);
|
||||
Start(false);
|
||||
}
|
||||
}
|
||||
|
||||
public string getDS4ControllerInfo(int index)
|
||||
{
|
||||
if (DS4Controllers[index] != null)
|
||||
{
|
||||
DS4Device d = DS4Controllers[index];
|
||||
if (!d.IsAlive())
|
||||
//return "Connecting..."; // awaiting the first battery charge indication
|
||||
{
|
||||
var TimeoutThread = new System.Threading.Thread(() => TimeoutConnection(d));
|
||||
TimeoutThread.IsBackground = true;
|
||||
TimeoutThread.Name = "TimeoutFor" + d.MacAddress.ToString();
|
||||
TimeoutThread.Start();
|
||||
return Properties.Resources.Connecting;
|
||||
}
|
||||
String battery;
|
||||
if (d.Charging)
|
||||
{
|
||||
if (d.Battery >= 100)
|
||||
battery = Properties.Resources.Charged;
|
||||
else
|
||||
battery = Properties.Resources.Charging.Replace("*number*", d.Battery.ToString());
|
||||
}
|
||||
else
|
||||
{
|
||||
battery = Properties.Resources.Battery.Replace("*number*", d.Battery.ToString());
|
||||
}
|
||||
return d.MacAddress + " (" + d.ConnectionType + "), " + battery;
|
||||
//return d.MacAddress + " (" + d.ConnectionType + "), Battery is " + battery + ", Touchpad in " + modeSwitcher[index].ToString();
|
||||
}
|
||||
else
|
||||
return String.Empty;
|
||||
}
|
||||
|
||||
public string getDS4MacAddress(int index)
|
||||
{
|
||||
if (DS4Controllers[index] != null)
|
||||
{
|
||||
DS4Device d = DS4Controllers[index];
|
||||
if (!d.IsAlive())
|
||||
//return "Connecting..."; // awaiting the first battery charge indication
|
||||
{
|
||||
var TimeoutThread = new System.Threading.Thread(() => TimeoutConnection(d));
|
||||
TimeoutThread.IsBackground = true;
|
||||
TimeoutThread.Name = "TimeoutFor" + d.MacAddress.ToString();
|
||||
TimeoutThread.Start();
|
||||
return Properties.Resources.Connecting;
|
||||
}
|
||||
return d.MacAddress;
|
||||
}
|
||||
else
|
||||
return String.Empty;
|
||||
}
|
||||
|
||||
public string getShortDS4ControllerInfo(int index)
|
||||
{
|
||||
if (DS4Controllers[index] != null)
|
||||
{
|
||||
DS4Device d = DS4Controllers[index];
|
||||
String battery;
|
||||
if (!d.IsAlive())
|
||||
battery = "...";
|
||||
if (d.Charging)
|
||||
{
|
||||
if (d.Battery >= 100)
|
||||
battery = Properties.Resources.Full;
|
||||
else
|
||||
battery = d.Battery + "%+";
|
||||
}
|
||||
else
|
||||
{
|
||||
battery = d.Battery + "%";
|
||||
}
|
||||
return (d.ConnectionType + " " + battery);
|
||||
}
|
||||
else
|
||||
return Properties.Resources.NoneText;
|
||||
}
|
||||
|
||||
public string getDS4Battery(int index)
|
||||
{
|
||||
if (DS4Controllers[index] != null)
|
||||
{
|
||||
DS4Device d = DS4Controllers[index];
|
||||
String battery;
|
||||
if (!d.IsAlive())
|
||||
battery = "...";
|
||||
if (d.Charging)
|
||||
{
|
||||
if (d.Battery >= 100)
|
||||
battery = Properties.Resources.Full;
|
||||
else
|
||||
battery = d.Battery + "%+";
|
||||
}
|
||||
else
|
||||
{
|
||||
battery = d.Battery + "%";
|
||||
}
|
||||
return battery;
|
||||
}
|
||||
else
|
||||
return Properties.Resources.NA;
|
||||
}
|
||||
|
||||
public string getDS4Status(int index)
|
||||
{
|
||||
if (DS4Controllers[index] != null)
|
||||
{
|
||||
DS4Device d = DS4Controllers[index];
|
||||
return d.ConnectionType+"";
|
||||
}
|
||||
else
|
||||
return Properties.Resources.NoneText;
|
||||
}
|
||||
|
||||
|
||||
private int XINPUT_UNPLUG_SETTLE_TIME = 250; // Inhibit races that occur with the asynchronous teardown of ScpVBus -> X360 driver instance.
|
||||
//Called when DS4 is disconnected or timed out
|
||||
protected virtual void On_DS4Removal(object sender, EventArgs e)
|
||||
{
|
||||
DS4Device device = (DS4Device)sender;
|
||||
int ind = -1;
|
||||
for (int i = 0; i < DS4Controllers.Length; i++)
|
||||
if (DS4Controllers[i] != null && device.MacAddress == DS4Controllers[i].MacAddress)
|
||||
ind = i;
|
||||
if (ind != -1)
|
||||
{
|
||||
CurrentState[ind].Battery = PreviousState[ind].Battery = 0; // Reset for the next connection's initial status change.
|
||||
x360Bus.Unplug(ind);
|
||||
string removed = Properties.Resources.ControllerWasRemoved.Replace("*Mac address*", (ind +1).ToString());
|
||||
if (DS4Controllers[ind].Battery <= 20 &&
|
||||
DS4Controllers[ind].ConnectionType == ConnectionType.BT && !DS4Controllers[ind].Charging)
|
||||
removed += ". " + Properties.Resources.ChargeController;
|
||||
LogDebug(removed);
|
||||
Log.LogToTray(removed);
|
||||
System.Threading.Thread.Sleep(XINPUT_UNPLUG_SETTLE_TIME);
|
||||
DS4Controllers[ind] = null;
|
||||
touchPad[ind] = null;
|
||||
ControllerStatusChanged(this);
|
||||
}
|
||||
}
|
||||
public bool[] lag = { false, false, false, false };
|
||||
//Called every time the new input report has arrived
|
||||
protected virtual void On_Report(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
DS4Device device = (DS4Device)sender;
|
||||
|
||||
int ind = -1;
|
||||
for (int i = 0; i < DS4Controllers.Length; i++)
|
||||
if (device == DS4Controllers[i])
|
||||
ind = i;
|
||||
|
||||
if (ind != -1)
|
||||
{
|
||||
if (FlushHIDQueue[ind])
|
||||
device.FlushHID();
|
||||
if (!string.IsNullOrEmpty(device.error))
|
||||
{
|
||||
LogDebug(device.error);
|
||||
}
|
||||
if (DateTime.UtcNow - device.firstActive > TimeSpan.FromSeconds(5))
|
||||
{
|
||||
if (device.Latency >= FlashWhenLateAt && !lag[ind])
|
||||
LagFlashWarning(ind, true);
|
||||
else if (device.Latency < FlashWhenLateAt && lag[ind])
|
||||
LagFlashWarning(ind, false);
|
||||
}
|
||||
device.getExposedState(ExposedState[ind], CurrentState[ind]);
|
||||
DS4State cState = CurrentState[ind];
|
||||
device.getPreviousState(PreviousState[ind]);
|
||||
DS4State pState = PreviousState[ind];
|
||||
if (pState.Battery != cState.Battery)
|
||||
ControllerStatusChanged(this);
|
||||
CheckForHotkeys(ind, cState, pState);
|
||||
if (eastertime)
|
||||
EasterTime(ind);
|
||||
GetInputkeys(ind);
|
||||
if (LSCurve[ind] != 0 || RSCurve[ind] != 0 || LSDeadzone[ind] != 0 || RSDeadzone[ind] != 0 ||
|
||||
L2Deadzone[ind] != 0 || R2Deadzone[ind] != 0 || LSSens[ind] != 0 || RSSens[ind] != 0 ||
|
||||
L2Sens[ind] != 0 || R2Sens[ind] != 0) //if a curve or deadzone is in place
|
||||
cState = Mapping.SetCurveAndDeadzone(ind, cState);
|
||||
if (!recordingMacro && (!string.IsNullOrEmpty(tempprofilename[ind]) ||
|
||||
HasCustomAction(ind) || HasCustomExtras(ind) || ProfileActions[ind].Count > 0))
|
||||
{
|
||||
Mapping.MapCustom(ind, cState, MappedState[ind], ExposedState[ind], touchPad[ind], this);
|
||||
cState = MappedState[ind];
|
||||
}
|
||||
//if (HasCustomExtras(ind))
|
||||
// DoExtras(ind);
|
||||
|
||||
// Update the GUI/whatever.
|
||||
DS4LightBar.updateLightBar(device, ind, cState, ExposedState[ind], touchPad[ind]);
|
||||
|
||||
x360Bus.Parse(cState, processingData[ind].Report, ind);
|
||||
// We push the translated Xinput state, and simultaneously we
|
||||
// pull back any possible rumble data coming from Xinput consumers.
|
||||
if (x360Bus.Report(processingData[ind].Report, processingData[ind].Rumble))
|
||||
{
|
||||
Byte Big = (Byte)(processingData[ind].Rumble[3]);
|
||||
Byte Small = (Byte)(processingData[ind].Rumble[4]);
|
||||
|
||||
if (processingData[ind].Rumble[1] == 0x08)
|
||||
{
|
||||
setRumble(Big, Small, ind);
|
||||
}
|
||||
}
|
||||
|
||||
// Output any synthetic events.
|
||||
Mapping.Commit(ind);
|
||||
// Pull settings updates.
|
||||
device.IdleTimeout = IdleDisconnectTimeout[ind];
|
||||
}
|
||||
}
|
||||
|
||||
public void LagFlashWarning(int ind, bool on)
|
||||
{
|
||||
if (on)
|
||||
{
|
||||
lag[ind] = true;
|
||||
LogDebug(Properties.Resources.LatencyOverTen.Replace("*number*", (ind + 1).ToString()), true);
|
||||
if (FlashWhenLate)
|
||||
{
|
||||
DS4Color color = new DS4Color { red = 50, green = 0, blue = 0 };
|
||||
DS4LightBar.forcedColor[ind] = color;
|
||||
DS4LightBar.forcedFlash[ind] = 2;
|
||||
DS4LightBar.forcelight[ind] = true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
lag[ind] = false;
|
||||
LogDebug(Properties.Resources.LatencyNotOverTen.Replace("*number*", (ind + 1).ToString()));
|
||||
DS4LightBar.forcelight[ind] = false;
|
||||
DS4LightBar.forcedFlash[ind] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* private void DoExtras(int ind)
|
||||
{
|
||||
DS4State cState = CurrentState[ind];
|
||||
DS4StateExposed eState = ExposedState[ind];
|
||||
Mouse tp = touchPad[ind];
|
||||
DS4Controls helddown = DS4Controls.None;
|
||||
foreach (KeyValuePair<DS4Controls, string> p in getCustomExtras(ind))
|
||||
{
|
||||
if (Mapping.getBoolMapping(ind, p.Key, cState, eState, tp))
|
||||
{
|
||||
helddown = p.Key;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (helddown != DS4Controls.None)
|
||||
{
|
||||
string p = getCustomExtras(ind)[helddown];
|
||||
string[] extraS = p.Split(',');
|
||||
int[] extras = new int[extraS.Length];
|
||||
for (int i = 0; i < extraS.Length; i++)
|
||||
{
|
||||
int b;
|
||||
if (int.TryParse(extraS[i], out b))
|
||||
extras[i] = b;
|
||||
}
|
||||
held[ind] = true;
|
||||
try
|
||||
{
|
||||
if (!(extras[0] == extras[1] && extras[1] == 0))
|
||||
setRumble((byte)extras[0], (byte)extras[1], ind);
|
||||
if (extras[2] == 1)
|
||||
{
|
||||
DS4Color color = new DS4Color { red = (byte)extras[3], green = (byte)extras[4], blue = (byte)extras[5] };
|
||||
DS4LightBar.forcedColor[ind] = color;
|
||||
DS4LightBar.forcedFlash[ind] = (byte)extras[6];
|
||||
DS4LightBar.forcelight[ind] = true;
|
||||
}
|
||||
if (extras[7] == 1)
|
||||
{
|
||||
if (oldmouse[ind] == -1)
|
||||
oldmouse[ind] = ButtonMouseSensitivity[ind];
|
||||
ButtonMouseSensitivity[ind] = extras[8];
|
||||
}
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
else if (held[ind])
|
||||
{
|
||||
DS4LightBar.forcelight[ind] = false;
|
||||
DS4LightBar.forcedFlash[ind] = 0;
|
||||
ButtonMouseSensitivity[ind] = oldmouse[ind];
|
||||
oldmouse[ind] = -1;
|
||||
setRumble(0, 0, ind);
|
||||
held[ind] = false;
|
||||
}
|
||||
}*/
|
||||
|
||||
|
||||
|
||||
public void EasterTime(int ind)
|
||||
{
|
||||
DS4State cState = CurrentState[ind];
|
||||
DS4StateExposed eState = ExposedState[ind];
|
||||
Mouse tp = touchPad[ind];
|
||||
|
||||
bool pb = false;
|
||||
foreach (DS4Controls dc in dcs)
|
||||
{
|
||||
if (Mapping.getBoolMapping(ind, dc, cState, eState, tp))
|
||||
{
|
||||
pb = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
int temp = eCode;
|
||||
//Looks like you found the easter egg code, since you're already cheating,
|
||||
//I scrambled the code for you :)
|
||||
if (pb && !buttonsdown[ind])
|
||||
{
|
||||
if (cState.Cross && eCode == 9)
|
||||
eCode++;
|
||||
else if (!cState.Cross && eCode == 9)
|
||||
eCode = 0;
|
||||
else if (cState.DpadLeft && eCode == 6)
|
||||
eCode++;
|
||||
else if (!cState.DpadLeft && eCode == 6)
|
||||
eCode = 0;
|
||||
else if (cState.DpadRight && eCode == 7)
|
||||
eCode++;
|
||||
else if (!cState.DpadRight && eCode == 7)
|
||||
eCode = 0;
|
||||
else if (cState.DpadLeft && eCode == 4)
|
||||
eCode++;
|
||||
else if (!cState.DpadLeft && eCode == 4)
|
||||
eCode = 0;
|
||||
else if (cState.DpadDown && eCode == 2)
|
||||
eCode++;
|
||||
else if (!cState.DpadDown && eCode == 2)
|
||||
eCode = 0;
|
||||
else if (cState.DpadRight && eCode == 5)
|
||||
eCode++;
|
||||
else if (!cState.DpadRight && eCode == 5)
|
||||
eCode = 0;
|
||||
else if (cState.DpadUp && eCode == 1)
|
||||
eCode++;
|
||||
else if (!cState.DpadUp && eCode == 1)
|
||||
eCode = 0;
|
||||
else if (cState.DpadDown && eCode == 3)
|
||||
eCode++;
|
||||
else if (!cState.DpadDown && eCode == 3)
|
||||
eCode = 0;
|
||||
else if (cState.Circle && eCode == 8)
|
||||
eCode++;
|
||||
else if (!cState.Circle && eCode == 8)
|
||||
eCode = 0;
|
||||
|
||||
if (cState.DpadUp && eCode == 0)
|
||||
eCode++;
|
||||
|
||||
if (eCode == 10)
|
||||
{
|
||||
string message = "(!)";
|
||||
sp.Play();
|
||||
LogDebug(message, true);
|
||||
eCode = 0;
|
||||
}
|
||||
|
||||
if (temp != eCode)
|
||||
Console.WriteLine(eCode);
|
||||
buttonsdown[ind] = true;
|
||||
}
|
||||
else if (!pb)
|
||||
buttonsdown[ind] = false;
|
||||
}
|
||||
|
||||
public string GetInputkeys(int ind)
|
||||
{
|
||||
DS4State cState = CurrentState[ind];
|
||||
DS4StateExposed eState = ExposedState[ind];
|
||||
Mouse tp = touchPad[ind];
|
||||
if (DS4Controllers[ind] != null)
|
||||
if (Mapping.getBoolMapping(ind, DS4Controls.Cross, cState, eState, tp)) return "Cross";
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.Circle, cState, eState, tp)) return "Circle";
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.Triangle, cState, eState, tp)) return "Triangle";
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.Square, cState, eState, tp)) return "Square";
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.L1, cState, eState, tp)) return "L1";
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.R1, cState, eState, tp)) return "R1";
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.L2, cState, eState, tp)) return "L2";
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.R2, cState, eState, tp)) return "R2";
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.L3, cState, eState, tp)) return "L3";
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.R3, cState, eState, tp)) return "R3";
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.DpadUp, cState, eState, tp)) return "Up";
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.DpadDown, cState, eState, tp)) return "Down";
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.DpadLeft, cState, eState, tp)) return "Left";
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.DpadRight, cState, eState, tp)) return "Right";
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.Share, cState, eState, tp)) return "Share";
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.Options, cState, eState, tp)) return "Options";
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.PS, cState, eState, tp)) return "PS";
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.LXPos, cState, eState, tp)) return "LS Right";
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.LXNeg, cState, eState, tp)) return "LS Left";
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.LYPos, cState, eState, tp)) return "LS Down";
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.LYNeg, cState, eState, tp)) return "LS Up";
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.RXPos, cState, eState, tp)) return "RS Right";
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.RXNeg, cState, eState, tp)) return "RS Left";
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.RYPos, cState, eState, tp)) return "RS Down";
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.RYNeg, cState, eState, tp)) return "RS Up";
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.TouchLeft, cState, eState, tp)) return "Touch Left";
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.TouchRight, cState, eState, tp)) return "Touch Right";
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.TouchMulti, cState, eState, tp)) return "Touch Multi";
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.TouchUpper, cState, eState, tp)) return "Touch Upper";
|
||||
return "nothing";
|
||||
}
|
||||
|
||||
public DS4Controls GetInputkeysDS4(int ind)
|
||||
{
|
||||
DS4State cState = CurrentState[ind];
|
||||
DS4StateExposed eState = ExposedState[ind];
|
||||
Mouse tp = touchPad[ind];
|
||||
if (DS4Controllers[ind] != null)
|
||||
if (Mapping.getBoolMapping(ind, DS4Controls.Cross, cState, eState, tp)) return DS4Controls.Cross;
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.Circle, cState, eState, tp)) return DS4Controls.Circle;
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.Triangle, cState, eState, tp)) return DS4Controls.Triangle;
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.Square, cState, eState, tp)) return DS4Controls.Square;
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.L1, cState, eState, tp)) return DS4Controls.L1;
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.R1, cState, eState, tp)) return DS4Controls.R1;
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.L2, cState, eState, tp)) return DS4Controls.L2;
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.R2, cState, eState, tp)) return DS4Controls.R2;
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.L3, cState, eState, tp)) return DS4Controls.L3;
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.R3, cState, eState, tp)) return DS4Controls.R3;
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.DpadUp, cState, eState, tp)) return DS4Controls.DpadUp;
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.DpadDown, cState, eState, tp)) return DS4Controls.DpadDown;
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.DpadLeft, cState, eState, tp)) return DS4Controls.DpadLeft;
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.DpadRight, cState, eState, tp)) return DS4Controls.DpadRight;
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.Share, cState, eState, tp)) return DS4Controls.Share;
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.Options, cState, eState, tp)) return DS4Controls.Options;
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.PS, cState, eState, tp)) return DS4Controls.PS;
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.LXPos, cState, eState, tp)) return DS4Controls.LXPos;
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.LXNeg, cState, eState, tp)) return DS4Controls.LXNeg;
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.LYPos, cState, eState, tp)) return DS4Controls.LYPos;
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.LYNeg, cState, eState, tp)) return DS4Controls.LYNeg;
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.RXPos, cState, eState, tp)) return DS4Controls.RXPos;
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.RXNeg, cState, eState, tp)) return DS4Controls.RXNeg;
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.RYPos, cState, eState, tp)) return DS4Controls.RYPos;
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.RYNeg, cState, eState, tp)) return DS4Controls.RYNeg;
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.TouchLeft, cState, eState, tp)) return DS4Controls.TouchLeft;
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.TouchRight, cState, eState, tp)) return DS4Controls.TouchRight;
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.TouchMulti, cState, eState, tp)) return DS4Controls.TouchMulti;
|
||||
else if (Mapping.getBoolMapping(ind, DS4Controls.TouchUpper, cState, eState, tp)) return DS4Controls.TouchUpper;
|
||||
return DS4Controls.None;
|
||||
}
|
||||
|
||||
public bool[] touchreleased = { true, true, true, true }, touchslid = { false, false, false, false };
|
||||
public byte[] oldtouchvalue = { 0, 0, 0, 0 };
|
||||
public int[] oldscrollvalue = { 0, 0, 0, 0 };
|
||||
protected virtual void CheckForHotkeys(int deviceID, DS4State cState, DS4State pState)
|
||||
{
|
||||
if (!UseTPforControls[deviceID] && cState.Touch1 && pState.PS)
|
||||
{
|
||||
if (TouchSensitivity[deviceID] > 0 && touchreleased[deviceID])
|
||||
{
|
||||
oldtouchvalue[deviceID] = TouchSensitivity[deviceID];
|
||||
oldscrollvalue[deviceID] = ScrollSensitivity[deviceID];
|
||||
TouchSensitivity[deviceID] = 0;
|
||||
ScrollSensitivity[deviceID] = 0;
|
||||
LogDebug(TouchSensitivity[deviceID] > 0 ? Properties.Resources.TouchpadMovementOn : Properties.Resources.TouchpadMovementOff);
|
||||
Log.LogToTray(TouchSensitivity[deviceID] > 0 ? Properties.Resources.TouchpadMovementOn : Properties.Resources.TouchpadMovementOff);
|
||||
touchreleased[deviceID] = false;
|
||||
}
|
||||
else if (touchreleased[deviceID])
|
||||
{
|
||||
TouchSensitivity[deviceID] = oldtouchvalue[deviceID];
|
||||
ScrollSensitivity[deviceID] = oldscrollvalue[deviceID];
|
||||
LogDebug(TouchSensitivity[deviceID] > 0 ? Properties.Resources.TouchpadMovementOn : Properties.Resources.TouchpadMovementOff);
|
||||
Log.LogToTray(TouchSensitivity[deviceID] > 0 ? Properties.Resources.TouchpadMovementOn : Properties.Resources.TouchpadMovementOff);
|
||||
touchreleased[deviceID] = false;
|
||||
}
|
||||
}
|
||||
else
|
||||
touchreleased[deviceID] = true;
|
||||
}
|
||||
|
||||
public virtual void StartTPOff(int deviceID)
|
||||
{
|
||||
if (deviceID < 4)
|
||||
{
|
||||
oldtouchvalue[deviceID] = TouchSensitivity[deviceID];
|
||||
oldscrollvalue[deviceID] = ScrollSensitivity[deviceID];
|
||||
TouchSensitivity[deviceID] = 0;
|
||||
ScrollSensitivity[deviceID] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
public virtual string TouchpadSlide(int ind)
|
||||
{
|
||||
DS4State cState = CurrentState[ind];
|
||||
string slidedir = "none";
|
||||
if (DS4Controllers[ind] != null && cState.Touch2 && !(touchPad[ind].dragging || touchPad[ind].dragging2))
|
||||
if (touchPad[ind].slideright && !touchslid[ind])
|
||||
{
|
||||
slidedir = "right";
|
||||
touchslid[ind] = true;
|
||||
}
|
||||
else if (touchPad[ind].slideleft && !touchslid[ind])
|
||||
{
|
||||
slidedir = "left";
|
||||
touchslid[ind] = true;
|
||||
}
|
||||
else if (!touchPad[ind].slideleft && !touchPad[ind].slideright)
|
||||
{
|
||||
slidedir = "";
|
||||
touchslid[ind] = false;
|
||||
}
|
||||
return slidedir;
|
||||
}
|
||||
public virtual void LogDebug(String Data, bool warning = false)
|
||||
{
|
||||
Console.WriteLine(System.DateTime.Now.ToString("G") + "> " + Data);
|
||||
if (Debug != null)
|
||||
{
|
||||
DebugEventArgs args = new DebugEventArgs(Data, warning);
|
||||
OnDebug(this, args);
|
||||
}
|
||||
}
|
||||
|
||||
public virtual void OnDebug(object sender, DebugEventArgs args)
|
||||
{
|
||||
if (Debug != null)
|
||||
Debug(this, args);
|
||||
}
|
||||
|
||||
//sets the rumble adjusted with rumble boost
|
||||
public virtual void setRumble(byte heavyMotor, byte lightMotor, int deviceNum)
|
||||
{
|
||||
byte boost = RumbleBoost[deviceNum];
|
||||
uint lightBoosted = ((uint)lightMotor * (uint)boost) / 100;
|
||||
if (lightBoosted > 255)
|
||||
lightBoosted = 255;
|
||||
uint heavyBoosted = ((uint)heavyMotor * (uint)boost) / 100;
|
||||
if (heavyBoosted > 255)
|
||||
heavyBoosted = 255;
|
||||
if (deviceNum < 4)
|
||||
if (DS4Controllers[deviceNum] != null)
|
||||
DS4Controllers[deviceNum].setRumble((byte)lightBoosted, (byte)heavyBoosted);
|
||||
}
|
||||
|
||||
public DS4State getDS4State(int ind)
|
||||
{
|
||||
return CurrentState[ind];
|
||||
}
|
||||
public DS4State getDS4StateMapped(int ind)
|
||||
{
|
||||
return MappedState[ind];
|
||||
}
|
||||
}
|
||||
}
|
1077
DS4Windows/DS4Control/ControlService.cs
Normal file
1077
DS4Windows/DS4Control/ControlService.cs
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,10 +1,9 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Drawing;
|
||||
using static System.Math;
|
||||
using static DS4Windows.Global;
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace DS4Windows
|
||||
{
|
||||
public class DS4LightBar
|
||||
@ -19,128 +18,222 @@ namespace DS4Windows
|
||||
{ 140, 140 },
|
||||
{ 168, 112 },
|
||||
{ 196, 84 },
|
||||
{ 224, 56}, // on 80% of the time at 80, etc.
|
||||
{ 224, 56 }, // on 80% of the time at 80, etc.
|
||||
{ 252, 28 } // on 90% of the time at 90
|
||||
};
|
||||
|
||||
static double[] counters = new double[4] { 0, 0, 0, 0 };
|
||||
public static double[] fadetimer = new double[4] { 0, 0, 0, 0 };
|
||||
public static Stopwatch[] fadewatches = new Stopwatch[4]
|
||||
{ new Stopwatch(), new Stopwatch(), new Stopwatch(), new Stopwatch() };
|
||||
|
||||
static bool[] fadedirection = new bool[4] { false, false, false, false };
|
||||
static DateTime oldnow = DateTime.UtcNow;
|
||||
static DateTime[] oldnow = new DateTime[4]
|
||||
{ DateTime.UtcNow, DateTime.UtcNow, DateTime.UtcNow, DateTime.UtcNow };
|
||||
|
||||
public static bool[] forcelight = new bool[4] { false, false, false, false };
|
||||
public static DS4Color[] forcedColor = new DS4Color[4];
|
||||
public static byte[] forcedFlash = new byte[4];
|
||||
public static void updateLightBar(DS4Device device, int deviceNum, DS4State cState, DS4StateExposed eState, Mouse tp)
|
||||
internal const int PULSE_FLASH_DURATION = 2000;
|
||||
internal const double PULSE_FLASH_SEGMENTS = PULSE_FLASH_DURATION / 40;
|
||||
internal const int PULSE_CHARGING_DURATION = 4000;
|
||||
internal const double PULSE_CHARGING_SEGMENTS = (PULSE_CHARGING_DURATION / 40) - 2;
|
||||
|
||||
public static void updateLightBar(DS4Device device, int deviceNum)
|
||||
{
|
||||
DS4Color color;
|
||||
if (!defualtLight && !forcelight[deviceNum])
|
||||
if (!defaultLight && !forcelight[deviceNum])
|
||||
{
|
||||
if (UseCustomLed[deviceNum])
|
||||
if (getUseCustomLed(deviceNum))
|
||||
{
|
||||
if (LedAsBatteryIndicator[deviceNum])
|
||||
if (getLedAsBatteryIndicator(deviceNum))
|
||||
{
|
||||
DS4Color fullColor = CustomColor[deviceNum];
|
||||
DS4Color lowColor = LowColor[deviceNum];
|
||||
|
||||
color = getTransitionedColor(lowColor, fullColor, device.Battery);
|
||||
DS4Color fullColor = getCustomColor(deviceNum);
|
||||
DS4Color lowColor = getLowColor(deviceNum);
|
||||
color = getTransitionedColor(lowColor, fullColor, device.getBattery());
|
||||
}
|
||||
else
|
||||
color = CustomColor[deviceNum];
|
||||
color = getCustomColor(deviceNum);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (Rainbow[deviceNum] > 0)
|
||||
{// Display rainbow
|
||||
double rainbow = getRainbow(deviceNum);
|
||||
if (rainbow > 0)
|
||||
{
|
||||
// Display rainbow
|
||||
DateTime now = DateTime.UtcNow;
|
||||
if (now >= oldnow + TimeSpan.FromMilliseconds(10)) //update by the millisecond that way it's a smooth transtion
|
||||
if (now >= oldnow[deviceNum] + TimeSpan.FromMilliseconds(10)) //update by the millisecond that way it's a smooth transtion
|
||||
{
|
||||
oldnow = now;
|
||||
if (device.Charging)
|
||||
counters[deviceNum] -= 1.5 * 3 / Rainbow[deviceNum];
|
||||
oldnow[deviceNum] = now;
|
||||
if (device.isCharging())
|
||||
counters[deviceNum] -= 1.5 * 3 / rainbow;
|
||||
else
|
||||
counters[deviceNum] += 1.5 * 3 / Rainbow[deviceNum];
|
||||
counters[deviceNum] += 1.5 * 3 / rainbow;
|
||||
}
|
||||
|
||||
if (counters[deviceNum] < 0)
|
||||
counters[deviceNum] = 180000;
|
||||
if (counters[deviceNum] > 180000)
|
||||
else if (counters[deviceNum] > 180000)
|
||||
counters[deviceNum] = 0;
|
||||
if (LedAsBatteryIndicator[deviceNum])
|
||||
color = HuetoRGB((float)counters[deviceNum] % 360, (byte)(2.55 * device.Battery));
|
||||
|
||||
if (getLedAsBatteryIndicator(deviceNum))
|
||||
color = HuetoRGB((float)counters[deviceNum] % 360, (byte)(device.getBattery() * 2.55));
|
||||
else
|
||||
color = HuetoRGB((float)counters[deviceNum] % 360, 255);
|
||||
|
||||
}
|
||||
else if (LedAsBatteryIndicator[deviceNum])
|
||||
else if (getLedAsBatteryIndicator(deviceNum))
|
||||
{
|
||||
//if (device.Charging == false || device.Battery >= 100) // when charged, don't show the charging animation
|
||||
{
|
||||
DS4Color fullColor = MainColor[deviceNum];
|
||||
DS4Color lowColor = LowColor[deviceNum];
|
||||
|
||||
color = getTransitionedColor(lowColor, fullColor, (uint)device.Battery);
|
||||
}
|
||||
DS4Color fullColor = getMainColor(deviceNum);
|
||||
DS4Color lowColor = getLowColor(deviceNum);
|
||||
color = getTransitionedColor(lowColor, fullColor, device.getBattery());
|
||||
}
|
||||
else
|
||||
{
|
||||
color = MainColor[deviceNum];
|
||||
color = getMainColor(deviceNum);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (device.Battery <= FlashAt[deviceNum] && !defualtLight && !device.Charging)
|
||||
if (device.getBattery() <= getFlashAt(deviceNum) && !defaultLight && !device.isCharging())
|
||||
{
|
||||
if (!(FlashColor[deviceNum].red == 0 &&
|
||||
FlashColor[deviceNum].green == 0 &&
|
||||
FlashColor[deviceNum].blue == 0))
|
||||
color = FlashColor[deviceNum];
|
||||
if (FlashType[deviceNum] == 1)
|
||||
DS4Color flashColor = getFlashColor(deviceNum);
|
||||
if (!(flashColor.red == 0 &&
|
||||
flashColor.green == 0 &&
|
||||
flashColor.blue == 0))
|
||||
color = flashColor;
|
||||
|
||||
if (getFlashType(deviceNum) == 1)
|
||||
{
|
||||
if (fadetimer[deviceNum] <= 0)
|
||||
fadedirection[deviceNum] = true;
|
||||
else if (fadetimer[deviceNum] >= 100)
|
||||
fadedirection[deviceNum] = false;
|
||||
if (fadedirection[deviceNum])
|
||||
fadetimer[deviceNum] += 1;
|
||||
double ratio = 0.0;
|
||||
|
||||
if (!fadewatches[deviceNum].IsRunning)
|
||||
{
|
||||
bool temp = fadedirection[deviceNum];
|
||||
fadedirection[deviceNum] = !temp;
|
||||
fadewatches[deviceNum].Restart();
|
||||
ratio = temp ? 100.0 : 0.0;
|
||||
}
|
||||
else
|
||||
fadetimer[deviceNum] -= 1;
|
||||
color = getTransitionedColor(color, new DS4Color(0, 0, 0), fadetimer[deviceNum]);
|
||||
{
|
||||
long elapsed = fadewatches[deviceNum].ElapsedMilliseconds;
|
||||
|
||||
if (fadedirection[deviceNum])
|
||||
{
|
||||
if (elapsed < PULSE_FLASH_DURATION)
|
||||
{
|
||||
elapsed = elapsed / 40;
|
||||
ratio = 100.0 * (elapsed / PULSE_FLASH_SEGMENTS);
|
||||
}
|
||||
else
|
||||
{
|
||||
ratio = 100.0;
|
||||
fadewatches[deviceNum].Stop();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (elapsed < PULSE_FLASH_DURATION)
|
||||
{
|
||||
elapsed = elapsed / 40;
|
||||
ratio = (0 - 100.0) * (elapsed / PULSE_FLASH_SEGMENTS) + 100.0;
|
||||
}
|
||||
else
|
||||
{
|
||||
ratio = 0.0;
|
||||
fadewatches[deviceNum].Stop();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
color = getTransitionedColor(color, new DS4Color(0, 0, 0), ratio);
|
||||
}
|
||||
}
|
||||
|
||||
if (IdleDisconnectTimeout[deviceNum] > 0 && LedAsBatteryIndicator[deviceNum] && (!device.Charging || device.Battery >= 100))
|
||||
{//Fade lightbar by idle time
|
||||
int idleDisconnectTimeout = getIdleDisconnectTimeout(deviceNum);
|
||||
if (idleDisconnectTimeout > 0 && getLedAsBatteryIndicator(deviceNum) &&
|
||||
(!device.isCharging() || device.getBattery() >= 100))
|
||||
{
|
||||
//Fade lightbar by idle time
|
||||
TimeSpan timeratio = new TimeSpan(DateTime.UtcNow.Ticks - device.lastActive.Ticks);
|
||||
double botratio = timeratio.TotalMilliseconds;
|
||||
double topratio = TimeSpan.FromSeconds(IdleDisconnectTimeout[deviceNum]).TotalMilliseconds;
|
||||
double ratio = ((botratio / topratio) * 100);
|
||||
if (ratio >= 50 && ratio <= 100)
|
||||
color = getTransitionedColor(color, new DS4Color(0, 0, 0), (uint)((ratio - 50) * 2));
|
||||
else if (ratio >= 100)
|
||||
color = getTransitionedColor(color, new DS4Color(0, 0, 0), 100);
|
||||
double topratio = TimeSpan.FromSeconds(idleDisconnectTimeout).TotalMilliseconds;
|
||||
double ratio = 100.0 * (botratio / topratio), elapsed = ratio;
|
||||
if (ratio >= 50.0 && ratio < 100.0)
|
||||
{
|
||||
color = getTransitionedColor(color, new DS4Color(0, 0, 0),
|
||||
(uint)(-100.0 * (elapsed = 0.02 * (ratio - 50.0)) * (elapsed - 2.0)));
|
||||
}
|
||||
else if (ratio >= 100.0)
|
||||
color = getTransitionedColor(color, new DS4Color(0, 0, 0), 100.0);
|
||||
}
|
||||
if (device.Charging && device.Battery < 100)
|
||||
switch (ChargingType[deviceNum])
|
||||
|
||||
if (device.isCharging() && device.getBattery() < 100)
|
||||
{
|
||||
switch (getChargingType(deviceNum))
|
||||
{
|
||||
case 1:
|
||||
if (fadetimer[deviceNum] <= 0)
|
||||
fadedirection[deviceNum] = true;
|
||||
else if (fadetimer[deviceNum] >= 105)
|
||||
fadedirection[deviceNum] = false;
|
||||
if (fadedirection[deviceNum])
|
||||
fadetimer[deviceNum] += .1;
|
||||
{
|
||||
double ratio = 0.0;
|
||||
|
||||
if (!fadewatches[deviceNum].IsRunning)
|
||||
{
|
||||
bool temp = fadedirection[deviceNum];
|
||||
fadedirection[deviceNum] = !temp;
|
||||
fadewatches[deviceNum].Restart();
|
||||
ratio = temp ? 100.0 : 0.0;
|
||||
}
|
||||
else
|
||||
fadetimer[deviceNum] -= .1;
|
||||
color = getTransitionedColor(color, new DS4Color(0, 0, 0), fadetimer[deviceNum]);
|
||||
{
|
||||
long elapsed = fadewatches[deviceNum].ElapsedMilliseconds;
|
||||
|
||||
if (fadedirection[deviceNum])
|
||||
{
|
||||
if (elapsed < PULSE_CHARGING_DURATION)
|
||||
{
|
||||
elapsed = elapsed / 40;
|
||||
if (elapsed > PULSE_CHARGING_SEGMENTS)
|
||||
elapsed = (long)PULSE_CHARGING_SEGMENTS;
|
||||
ratio = 100.0 * (elapsed / PULSE_CHARGING_SEGMENTS);
|
||||
}
|
||||
else
|
||||
{
|
||||
ratio = 100.0;
|
||||
fadewatches[deviceNum].Stop();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (elapsed < PULSE_CHARGING_DURATION)
|
||||
{
|
||||
elapsed = elapsed / 40;
|
||||
if (elapsed > PULSE_CHARGING_SEGMENTS)
|
||||
elapsed = (long)PULSE_CHARGING_SEGMENTS;
|
||||
ratio = (0 - 100.0) * (elapsed / PULSE_CHARGING_SEGMENTS) + 100.0;
|
||||
}
|
||||
else
|
||||
{
|
||||
ratio = 0.0;
|
||||
fadewatches[deviceNum].Stop();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
color = getTransitionedColor(color, new DS4Color(0, 0, 0), ratio);
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
counters[deviceNum] += .167;
|
||||
{
|
||||
counters[deviceNum] += 0.167;
|
||||
color = HuetoRGB((float)counters[deviceNum] % 360, 255);
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
color = ChargingColor[deviceNum];
|
||||
break;
|
||||
default:
|
||||
{
|
||||
color = getChargingColor(deviceNum);
|
||||
break;
|
||||
}
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (forcelight[deviceNum])
|
||||
{
|
||||
@ -150,25 +243,30 @@ namespace DS4Windows
|
||||
color = new DS4Color(0, 0, 0);
|
||||
else
|
||||
{
|
||||
if (device.ConnectionType == ConnectionType.BT)
|
||||
if (device.getConnectionType() == ConnectionType.BT)
|
||||
color = new DS4Color(32, 64, 64);
|
||||
else
|
||||
color = new DS4Color(0, 0, 0);
|
||||
}
|
||||
bool distanceprofile = (ProfilePath[deviceNum].ToLower().Contains("distance") || tempprofilename[deviceNum].ToLower().Contains("distance"));
|
||||
if (distanceprofile && !defualtLight)
|
||||
{ //Thing I did for Distance
|
||||
float rumble = device.LeftHeavySlowRumble / 2.55f;
|
||||
|
||||
bool distanceprofile = DistanceProfiles[deviceNum] || tempprofileDistance[deviceNum];
|
||||
//distanceprofile = (ProfilePath[deviceNum].ToLower().Contains("distance") || tempprofilename[deviceNum].ToLower().Contains("distance"));
|
||||
if (distanceprofile && !defaultLight)
|
||||
{
|
||||
// Thing I did for Distance
|
||||
float rumble = device.getLeftHeavySlowRumble() / 2.55f;
|
||||
byte max = Max(color.red, Max(color.green, color.blue));
|
||||
if (device.LeftHeavySlowRumble > 100)
|
||||
if (device.getLeftHeavySlowRumble() > 100)
|
||||
color = getTransitionedColor(new DS4Color(max, max, 0), new DS4Color(255, 0, 0), rumble);
|
||||
else
|
||||
color = getTransitionedColor(color, getTransitionedColor(new DS4Color(max, max, 0), new DS4Color(255, 0, 0), 39.6078f), device.LeftHeavySlowRumble);
|
||||
color = getTransitionedColor(color, getTransitionedColor(new DS4Color(max, max, 0), new DS4Color(255, 0, 0), 39.6078f), device.getLeftHeavySlowRumble());
|
||||
}
|
||||
|
||||
DS4HapticState haptics = new DS4HapticState
|
||||
{
|
||||
LightBarColor = color
|
||||
};
|
||||
|
||||
if (haptics.IsLightBarSet())
|
||||
{
|
||||
if (forcelight[deviceNum] && forcedFlash[deviceNum] > 0)
|
||||
@ -176,17 +274,18 @@ namespace DS4Windows
|
||||
haptics.LightBarFlashDurationOff = haptics.LightBarFlashDurationOn = (byte)(25 - forcedFlash[deviceNum]);
|
||||
haptics.LightBarExplicitlyOff = true;
|
||||
}
|
||||
else if (device.Battery <= FlashAt[deviceNum] && FlashType[deviceNum] == 0 && !defualtLight && !device.Charging)
|
||||
else if (device.getBattery() <= getFlashAt(deviceNum) && getFlashType(deviceNum) == 0 && !defaultLight && !device.isCharging())
|
||||
{
|
||||
int level = device.Battery / 10;
|
||||
//if (level >= 10)
|
||||
//level = 0; // all values of ~0% or >~100% are rendered the same
|
||||
int level = device.getBattery() / 10;
|
||||
if (level >= 10)
|
||||
level = 0; // all values of ~0% or >~100% are rendered the same
|
||||
|
||||
haptics.LightBarFlashDurationOn = BatteryIndicatorDurations[level, 0];
|
||||
haptics.LightBarFlashDurationOff = BatteryIndicatorDurations[level, 1];
|
||||
}
|
||||
else if (distanceprofile && device.LeftHeavySlowRumble > 155) //also part of Distance
|
||||
else if (distanceprofile && device.getLeftHeavySlowRumble() > 155) //also part of Distance
|
||||
{
|
||||
haptics.LightBarFlashDurationOff = haptics.LightBarFlashDurationOn = (byte)((-device.LeftHeavySlowRumble + 265));
|
||||
haptics.LightBarFlashDurationOff = haptics.LightBarFlashDurationOn = (byte)((-device.getLeftHeavySlowRumble() + 265));
|
||||
haptics.LightBarExplicitlyOff = true;
|
||||
}
|
||||
else
|
||||
@ -200,14 +299,15 @@ namespace DS4Windows
|
||||
{
|
||||
haptics.LightBarExplicitlyOff = true;
|
||||
}
|
||||
if (device.LightBarOnDuration != haptics.LightBarFlashDurationOn && device.LightBarOnDuration != 1 && haptics.LightBarFlashDurationOn == 0)
|
||||
|
||||
byte tempLightBarOnDuration = device.getLightBarOnDuration();
|
||||
if (tempLightBarOnDuration != haptics.LightBarFlashDurationOn && tempLightBarOnDuration != 1 && haptics.LightBarFlashDurationOn == 0)
|
||||
haptics.LightBarFlashDurationOff = haptics.LightBarFlashDurationOn = 1;
|
||||
if (device.LightBarOnDuration == 1) //helps better reset the color
|
||||
System.Threading.Thread.Sleep(5);
|
||||
device.pushHapticState(haptics);
|
||||
|
||||
device.pushHapticState(ref haptics);
|
||||
}
|
||||
|
||||
public static bool defualtLight = false, shuttingdown = false;
|
||||
public static bool defaultLight = false, shuttingdown = false;
|
||||
|
||||
public static DS4Color HuetoRGB(float hue, byte sat)
|
||||
{
|
||||
|
155
DS4Windows/DS4Control/DS4StateFieldMapping.cs
Normal file
155
DS4Windows/DS4Control/DS4StateFieldMapping.cs
Normal file
@ -0,0 +1,155 @@
|
||||
|
||||
namespace DS4Windows
|
||||
{
|
||||
public class DS4StateFieldMapping
|
||||
{
|
||||
public enum ControlType: int { Unknown = 0, Button, AxisDir, Trigger, Touch, GyroDir, SwipeDir }
|
||||
|
||||
public bool[] buttons = new bool[(int)DS4Controls.SwipeDown + 1];
|
||||
public byte[] axisdirs = new byte[(int)DS4Controls.SwipeDown + 1];
|
||||
public byte[] triggers = new byte[(int)DS4Controls.SwipeDown + 1];
|
||||
public int[] gryodirs = new int[(int)DS4Controls.SwipeDown + 1];
|
||||
public byte[] swipedirs = new byte[(int)DS4Controls.SwipeDown + 1];
|
||||
public bool[] swipedirbools = new bool[(int)DS4Controls.SwipeDown + 1];
|
||||
|
||||
public static ControlType[] mappedType = new ControlType[38] { ControlType.Unknown, // DS4Controls.None
|
||||
ControlType.AxisDir, // DS4Controls.LXNeg
|
||||
ControlType.AxisDir, // DS4Controls.LXPos
|
||||
ControlType.AxisDir, // DS4Controls.LYNeg
|
||||
ControlType.AxisDir, // DS4Controls.LYPos
|
||||
ControlType.AxisDir, // DS4Controls.RXNeg
|
||||
ControlType.AxisDir, // DS4Controls.RXPos
|
||||
ControlType.AxisDir, // DS4Controls.RYNeg
|
||||
ControlType.AxisDir, // DS4Controls.RYPos
|
||||
ControlType.Button, // DS4Controls.L1
|
||||
ControlType.Trigger, // DS4Controls.L2
|
||||
ControlType.Button, // DS4Controls.L3
|
||||
ControlType.Button, // DS4Controls.R1
|
||||
ControlType.Trigger, // DS4Controls.R2
|
||||
ControlType.Button, // DS4Controls.R3
|
||||
ControlType.Button, // DS4Controls.Square
|
||||
ControlType.Button, // DS4Controls.Triangle
|
||||
ControlType.Button, // DS4Controls.Circle
|
||||
ControlType.Button, // DS4Controls.Cross
|
||||
ControlType.Button, // DS4Controls.DpadUp
|
||||
ControlType.Button, // DS4Controls.DpadRight
|
||||
ControlType.Button, // DS4Controls.DpadDown
|
||||
ControlType.Button, // DS4Controls.DpadLeft
|
||||
ControlType.Button, // DS4Controls.PS
|
||||
ControlType.Touch, // DS4Controls.TouchLeft
|
||||
ControlType.Touch, // DS4Controls.TouchUpper
|
||||
ControlType.Touch, // DS4Controls.TouchMulti
|
||||
ControlType.Touch, // DS4Controls.TouchRight
|
||||
ControlType.Button, // DS4Controls.Share
|
||||
ControlType.Button, // DS4Controls.Options
|
||||
ControlType.GyroDir, // DS4Controls.GyroXPos
|
||||
ControlType.GyroDir, // DS4Controls.GyroXNeg
|
||||
ControlType.GyroDir, // DS4Controls.GyroZPos
|
||||
ControlType.GyroDir, // DS4Controls.GyroZNeg
|
||||
ControlType.SwipeDir, // DS4Controls.SwipeLeft
|
||||
ControlType.SwipeDir, // DS4Controls.SwipeRight
|
||||
ControlType.SwipeDir, // DS4Controls.SwipeUp
|
||||
ControlType.SwipeDir, // DS4Controls.SwipeDown
|
||||
};
|
||||
|
||||
public DS4StateFieldMapping()
|
||||
{
|
||||
}
|
||||
|
||||
public DS4StateFieldMapping(DS4State cState, DS4StateExposed exposeState, Mouse tp, bool priorMouse=false)
|
||||
{
|
||||
populateFieldMapping(cState, exposeState, tp, priorMouse);
|
||||
}
|
||||
|
||||
public void populateFieldMapping(DS4State cState, DS4StateExposed exposeState, Mouse tp, bool priorMouse = false)
|
||||
{
|
||||
axisdirs[(int)DS4Controls.LXNeg] = cState.LX;
|
||||
axisdirs[(int)DS4Controls.LXPos] = cState.LX;
|
||||
axisdirs[(int)DS4Controls.LYNeg] = cState.LY;
|
||||
axisdirs[(int)DS4Controls.LYPos] = cState.LY;
|
||||
|
||||
axisdirs[(int)DS4Controls.RXNeg] = cState.RX;
|
||||
axisdirs[(int)DS4Controls.RXPos] = cState.RX;
|
||||
axisdirs[(int)DS4Controls.RYNeg] = cState.RY;
|
||||
axisdirs[(int)DS4Controls.RYPos] = cState.RY;
|
||||
|
||||
triggers[(int)DS4Controls.L2] = cState.L2;
|
||||
triggers[(int)DS4Controls.R2] = cState.R2;
|
||||
|
||||
buttons[(int)DS4Controls.L1] = cState.L1;
|
||||
buttons[(int)DS4Controls.L3] = cState.L3;
|
||||
buttons[(int)DS4Controls.R1] = cState.R1;
|
||||
buttons[(int)DS4Controls.R3] = cState.R3;
|
||||
|
||||
buttons[(int)DS4Controls.Cross] = cState.Cross;
|
||||
buttons[(int)DS4Controls.Triangle] = cState.Triangle;
|
||||
buttons[(int)DS4Controls.Circle] = cState.Circle;
|
||||
buttons[(int)DS4Controls.Square] = cState.Square;
|
||||
buttons[(int)DS4Controls.PS] = cState.PS;
|
||||
buttons[(int)DS4Controls.Options] = cState.Options;
|
||||
buttons[(int)DS4Controls.Share] = cState.Share;
|
||||
|
||||
buttons[(int)DS4Controls.DpadUp] = cState.DpadUp;
|
||||
buttons[(int)DS4Controls.DpadRight] = cState.DpadRight;
|
||||
buttons[(int)DS4Controls.DpadDown] = cState.DpadDown;
|
||||
buttons[(int)DS4Controls.DpadLeft] = cState.DpadLeft;
|
||||
|
||||
buttons[(int)DS4Controls.TouchLeft] = tp != null ? (!priorMouse ? tp.leftDown : tp.priorLeftDown) : false;
|
||||
buttons[(int)DS4Controls.TouchRight] = tp != null ? (!priorMouse ? tp.rightDown : tp.priorRightDown) : false;
|
||||
buttons[(int)DS4Controls.TouchUpper] = tp != null ? (!priorMouse ? tp.upperDown : tp.priorUpperDown) : false;
|
||||
buttons[(int)DS4Controls.TouchMulti] = tp != null ? (!priorMouse ? tp.multiDown : tp.priorMultiDown) : false;
|
||||
|
||||
int sixAxisX = -exposeState.getOutputAccelX();
|
||||
gryodirs[(int)DS4Controls.GyroXPos] = sixAxisX > 0 ? sixAxisX : 0;
|
||||
gryodirs[(int)DS4Controls.GyroXNeg] = sixAxisX < 0 ? sixAxisX : 0;
|
||||
|
||||
int sixAxisZ = exposeState.getOutputAccelZ();
|
||||
gryodirs[(int)DS4Controls.GyroZPos] = sixAxisZ > 0 ? sixAxisZ : 0;
|
||||
gryodirs[(int)DS4Controls.GyroZNeg] = sixAxisZ < 0 ? sixAxisZ : 0;
|
||||
|
||||
swipedirs[(int)DS4Controls.SwipeLeft] = tp != null ? (!priorMouse ? tp.swipeLeftB : tp.priorSwipeLeftB) : (byte)0;
|
||||
swipedirs[(int)DS4Controls.SwipeRight] = tp != null ? (!priorMouse ? tp.swipeRightB : tp.priorSwipeRightB) : (byte)0;
|
||||
swipedirs[(int)DS4Controls.SwipeUp] = tp != null ? (!priorMouse ? tp.swipeUpB : tp.priorSwipeUpB) : (byte)0;
|
||||
swipedirs[(int)DS4Controls.SwipeDown] = tp != null ? (!priorMouse ? tp.swipeDownB : tp.priorSwipeDownB) : (byte)0;
|
||||
|
||||
swipedirbools[(int)DS4Controls.SwipeLeft] = tp != null ? (!priorMouse ? tp.swipeLeft : tp.priorSwipeLeft) : false;
|
||||
swipedirbools[(int)DS4Controls.SwipeRight] = tp != null ? (!priorMouse ? tp.swipeRight : tp.priorSwipeRight) : false;
|
||||
swipedirbools[(int)DS4Controls.SwipeUp] = tp != null ? (!priorMouse ? tp.swipeUp : tp.priorSwipeUp) : false;
|
||||
swipedirbools[(int)DS4Controls.SwipeDown] = tp != null ? (!priorMouse ? tp.swipeDown : tp.priorSwipeDown) : false;
|
||||
}
|
||||
|
||||
public void populateState(DS4State state)
|
||||
{
|
||||
state.LX = axisdirs[(int)DS4Controls.LXNeg];
|
||||
state.LX = axisdirs[(int)DS4Controls.LXPos];
|
||||
state.LY = axisdirs[(int)DS4Controls.LYNeg];
|
||||
state.LY = axisdirs[(int)DS4Controls.LYPos];
|
||||
|
||||
state.RX = axisdirs[(int)DS4Controls.RXNeg];
|
||||
state.RX = axisdirs[(int)DS4Controls.RXPos];
|
||||
state.RY = axisdirs[(int)DS4Controls.RYNeg];
|
||||
state.RY = axisdirs[(int)DS4Controls.RYPos];
|
||||
|
||||
state.L2 = triggers[(int)DS4Controls.L2];
|
||||
state.R2 = triggers[(int)DS4Controls.R2];
|
||||
|
||||
state.L1 = buttons[(int)DS4Controls.L1];
|
||||
state.L3 = buttons[(int)DS4Controls.L3];
|
||||
state.R1 = buttons[(int)DS4Controls.R1];
|
||||
state.R3 = buttons[(int)DS4Controls.R3];
|
||||
|
||||
state.Cross = buttons[(int)DS4Controls.Cross];
|
||||
state.Triangle = buttons[(int)DS4Controls.Triangle];
|
||||
state.Circle = buttons[(int)DS4Controls.Circle];
|
||||
state.Square = buttons[(int)DS4Controls.Square];
|
||||
state.PS = buttons[(int)DS4Controls.PS];
|
||||
state.Options = buttons[(int)DS4Controls.Options];
|
||||
state.Share = buttons[(int)DS4Controls.Share];
|
||||
|
||||
state.DpadUp = buttons[(int)DS4Controls.DpadUp];
|
||||
state.DpadRight = buttons[(int)DS4Controls.DpadRight];
|
||||
state.DpadDown = buttons[(int)DS4Controls.DpadDown];
|
||||
state.DpadLeft = buttons[(int)DS4Controls.DpadLeft];
|
||||
}
|
||||
}
|
||||
}
|
@ -1,7 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace DS4Windows
|
||||
{
|
||||
|
@ -1,14 +1,13 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace DS4Windows
|
||||
{
|
||||
class InputMethods
|
||||
{
|
||||
private static INPUT[] sendInputs = new INPUT[2]; // will allow for keyboard + mouse/tablet input within one SendInput call, or two mouse events
|
||||
private static object lockob = new object();
|
||||
|
||||
public static void MoveCursorBy(int x, int y)
|
||||
{
|
||||
lock (lockob)
|
||||
@ -43,6 +42,7 @@ namespace DS4Windows
|
||||
sendInputs[inputs].Data.Mouse.Y = 0;
|
||||
inputs++;
|
||||
}
|
||||
|
||||
if (horizontal != 0)
|
||||
{
|
||||
sendInputs[inputs].Type = INPUT_MOUSE;
|
||||
@ -54,6 +54,7 @@ namespace DS4Windows
|
||||
sendInputs[inputs].Data.Mouse.Y = 0;
|
||||
inputs++;
|
||||
}
|
||||
|
||||
SendInput(inputs, sendInputs, (int)inputs * Marshal.SizeOf(sendInputs[0]));
|
||||
}
|
||||
}
|
||||
@ -88,69 +89,6 @@ namespace DS4Windows
|
||||
}
|
||||
}
|
||||
|
||||
public static void performLeftClick()
|
||||
{
|
||||
lock (lockob)
|
||||
{
|
||||
sendInputs[0].Type = INPUT_MOUSE;
|
||||
sendInputs[0].Data.Mouse.ExtraInfo = IntPtr.Zero;
|
||||
sendInputs[0].Data.Mouse.Flags = 0;
|
||||
sendInputs[0].Data.Mouse.Flags |= MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP;
|
||||
sendInputs[0].Data.Mouse.MouseData = 0;
|
||||
sendInputs[0].Data.Mouse.Time = 0;
|
||||
sendInputs[0].Data.Mouse.X = 0;
|
||||
sendInputs[0].Data.Mouse.Y = 0;
|
||||
uint result = SendInput(1, sendInputs, Marshal.SizeOf(sendInputs[0]));
|
||||
}
|
||||
}
|
||||
|
||||
public static void performRightClick()
|
||||
{
|
||||
lock (lockob)
|
||||
{
|
||||
sendInputs[0].Type = INPUT_MOUSE;
|
||||
sendInputs[0].Data.Mouse.ExtraInfo = IntPtr.Zero;
|
||||
sendInputs[0].Data.Mouse.Flags = 0;
|
||||
sendInputs[0].Data.Mouse.Flags |= MOUSEEVENTF_RIGHTDOWN | MOUSEEVENTF_RIGHTUP;
|
||||
sendInputs[0].Data.Mouse.MouseData = 0;
|
||||
sendInputs[0].Data.Mouse.Time = 0;
|
||||
sendInputs[0].Data.Mouse.X = 0;
|
||||
sendInputs[0].Data.Mouse.Y = 0;
|
||||
uint result = SendInput(1, sendInputs, Marshal.SizeOf(sendInputs[0]));
|
||||
}
|
||||
}
|
||||
|
||||
public static void performMiddleClick()
|
||||
{
|
||||
lock (lockob)
|
||||
{
|
||||
sendInputs[0].Type = INPUT_MOUSE;
|
||||
sendInputs[0].Data.Mouse.ExtraInfo = IntPtr.Zero;
|
||||
sendInputs[0].Data.Mouse.Flags = 0;
|
||||
sendInputs[0].Data.Mouse.Flags |= MOUSEEVENTF_MIDDLEDOWN | MOUSEEVENTF_MIDDLEUP;
|
||||
sendInputs[0].Data.Mouse.MouseData = 0;
|
||||
sendInputs[0].Data.Mouse.Time = 0;
|
||||
sendInputs[0].Data.Mouse.X = 0;
|
||||
sendInputs[0].Data.Mouse.Y = 0;
|
||||
uint result = SendInput(1, sendInputs, Marshal.SizeOf(sendInputs[0]));
|
||||
}
|
||||
}
|
||||
|
||||
public static void performFourthClick()
|
||||
{
|
||||
lock (lockob)
|
||||
{
|
||||
sendInputs[0].Type = INPUT_MOUSE;
|
||||
sendInputs[0].Data.Mouse.ExtraInfo = IntPtr.Zero;
|
||||
sendInputs[0].Data.Mouse.Flags = 0;
|
||||
sendInputs[0].Data.Mouse.Flags |= MOUSEEVENTF_XBUTTONDOWN | MOUSEEVENTF_XBUTTONUP;
|
||||
sendInputs[0].Data.Mouse.MouseData = 1;
|
||||
sendInputs[0].Data.Mouse.Time = 0;
|
||||
sendInputs[0].Data.Mouse.X = 0;
|
||||
sendInputs[0].Data.Mouse.Y = 0;
|
||||
uint result = SendInput(1, sendInputs, Marshal.SizeOf(sendInputs[0]));
|
||||
}
|
||||
}
|
||||
public static void performSCKeyPress(ushort key)
|
||||
{
|
||||
lock (lockob)
|
||||
@ -169,10 +107,16 @@ namespace DS4Windows
|
||||
{
|
||||
lock (lockob)
|
||||
{
|
||||
ushort scancode = scancodeFromVK(key);
|
||||
bool extended = (scancode & 0x100) != 0;
|
||||
uint curflags = extended ? KEYEVENTF_EXTENDEDKEY : 0;
|
||||
|
||||
sendInputs[0].Type = INPUT_KEYBOARD;
|
||||
sendInputs[0].Data.Keyboard.ExtraInfo = IntPtr.Zero;
|
||||
sendInputs[0].Data.Keyboard.Flags = 1;
|
||||
sendInputs[0].Data.Keyboard.Scan = 0;
|
||||
sendInputs[0].Data.Keyboard.Flags = curflags;
|
||||
sendInputs[0].Data.Keyboard.Scan = scancode;
|
||||
//sendInputs[0].Data.Keyboard.Flags = 1;
|
||||
//sendInputs[0].Data.Keyboard.Scan = 0;
|
||||
sendInputs[0].Data.Keyboard.Time = 0;
|
||||
sendInputs[0].Data.Keyboard.Vk = key;
|
||||
uint result = SendInput(1, sendInputs, Marshal.SizeOf(sendInputs[0]));
|
||||
@ -197,16 +141,71 @@ namespace DS4Windows
|
||||
{
|
||||
lock (lockob)
|
||||
{
|
||||
ushort scancode = scancodeFromVK(key);
|
||||
bool extended = (scancode & 0x100) != 0;
|
||||
uint curflags = extended ? KEYEVENTF_EXTENDEDKEY : 0;
|
||||
|
||||
sendInputs[0].Type = INPUT_KEYBOARD;
|
||||
sendInputs[0].Data.Keyboard.ExtraInfo = IntPtr.Zero;
|
||||
sendInputs[0].Data.Keyboard.Flags = KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP;
|
||||
sendInputs[0].Data.Keyboard.Scan = 0;
|
||||
sendInputs[0].Data.Keyboard.Flags = curflags | KEYEVENTF_KEYUP;
|
||||
sendInputs[0].Data.Keyboard.Scan = scancode;
|
||||
//sendInputs[0].Data.Keyboard.Flags = KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP;
|
||||
//sendInputs[0].Data.Keyboard.Scan = 0;
|
||||
sendInputs[0].Data.Keyboard.Time = 0;
|
||||
sendInputs[0].Data.Keyboard.Vk = key;
|
||||
uint result = SendInput(1, sendInputs, Marshal.SizeOf(sendInputs[0]));
|
||||
}
|
||||
}
|
||||
|
||||
private static ushort scancodeFromVK(uint vkey)
|
||||
{
|
||||
ushort scancode = 0;
|
||||
if (vkey == VK_PAUSE)
|
||||
{
|
||||
// MapVirtualKey does not work with VK_PAUSE
|
||||
scancode = 0x45;
|
||||
}
|
||||
else
|
||||
{
|
||||
scancode = MapVirtualKey(vkey, MAPVK_VK_TO_VSC);
|
||||
}
|
||||
|
||||
switch (vkey)
|
||||
{
|
||||
case VK_LEFT:
|
||||
case VK_UP:
|
||||
case VK_RIGHT:
|
||||
case VK_DOWN:
|
||||
case VK_PRIOR:
|
||||
case VK_NEXT:
|
||||
case VK_END:
|
||||
case VK_HOME:
|
||||
case VK_INSERT:
|
||||
case VK_DELETE:
|
||||
case VK_DIVIDE:
|
||||
case VK_NUMLOCK:
|
||||
case VK_RCONTROL:
|
||||
case VK_RMENU:
|
||||
case VK_VOLUME_MUTE:
|
||||
case VK_VOLUME_DOWN:
|
||||
case VK_VOLUME_UP:
|
||||
case VK_MEDIA_NEXT_TRACK:
|
||||
case VK_MEDIA_PREV_TRACK:
|
||||
case VK_LAUNCH_MEDIA_SELECT:
|
||||
case VK_BROWSER_HOME:
|
||||
case VK_LAUNCH_MAIL:
|
||||
case VK_LAUNCH_APP1:
|
||||
case VK_LAUNCH_APP2:
|
||||
case VK_APPS:
|
||||
{
|
||||
scancode |= (ushort)EXTENDED_FLAG; // set extended bit
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return scancode;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// http://msdn.microsoft.com/en-us/library/windows/desktop/ms646270(v=vs.85).aspx
|
||||
/// </summary>
|
||||
@ -277,7 +276,14 @@ namespace DS4Windows
|
||||
MOUSEEVENTF_XBUTTONDOWN = 128, MOUSEEVENTF_XBUTTONUP = 256,
|
||||
KEYEVENTF_EXTENDEDKEY = 1, KEYEVENTF_KEYUP = 2, MOUSEEVENTF_WHEEL = 0x0800, MOUSEEVENTF_HWHEEL = 0x1000,
|
||||
MOUSEEVENTF_MIDDLEWDOWN = 0x0020, MOUSEEVENTF_MIDDLEWUP = 0x0040,
|
||||
KEYEVENTF_SCANCODE = 0x0008, MAPVK_VK_TO_VSC = 0, KEYEVENTF_UNICODE = 0x0004;
|
||||
KEYEVENTF_SCANCODE = 0x0008, MAPVK_VK_TO_VSC = 0, KEYEVENTF_UNICODE = 0x0004, EXTENDED_FLAG = 0x100;
|
||||
|
||||
internal const uint VK_PAUSE = 0x13, VK_LEFT = 0x25, VK_UP = 0x26, VK_RIGHT = 0x27, VK_DOWN = 0x28,
|
||||
VK_PRIOR = 0x21, VK_NEXT = 0x22, VK_END = 0x23, VK_HOME = 0x24, VK_INSERT = 0x2D, VK_DELETE = 0x2E, VK_APPS = 0x5D,
|
||||
VK_DIVIDE = 0x6F, VK_NUMLOCK = 0x90, VK_RCONTROL = 0xA3, VK_RMENU = 0xA5, VK_BROWSER_HOME = 0xAC,
|
||||
VK_VOLUME_MUTE = 0xAD, VK_VOLUME_DOWN = 0xAE, VK_VOLUME_UP = 0xAF,
|
||||
VK_MEDIA_NEXT_TRACK = 0xB0, VK_MEDIA_PREV_TRACK = 0xB1, VK_MEDIA_STOP = 0xB2, VK_MEDIA_PLAY_PAUSE = 0xB3,
|
||||
VK_LAUNCH_MAIL = 0xB4, VK_LAUNCH_MEDIA_SELECT = 0xB5, VK_LAUNCH_APP1 = 0xB6, VK_LAUNCH_APP2 = 0xB7;
|
||||
|
||||
[DllImport("user32.dll", SetLastError = true)]
|
||||
private static extern uint SendInput(uint numberOfInputs, INPUT[] inputs, int sizeOfInputs);
|
||||
@ -285,6 +291,7 @@ namespace DS4Windows
|
||||
private static extern ushort MapVirtualKey(uint uCode, uint uMapType);
|
||||
[DllImport("user32.dll", SetLastError = true)]
|
||||
static extern void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo);
|
||||
|
||||
//Not used, just here
|
||||
public static void DownKeys(ushort key)
|
||||
{
|
||||
@ -301,5 +308,5 @@ namespace DS4Windows
|
||||
keybd_event((byte)key, 0, (int)KEYEVENTF_KEYUP, 0);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace DS4Windows
|
||||
{
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,8 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace DS4Windows
|
||||
{
|
||||
@ -17,35 +13,83 @@ namespace DS4Windows
|
||||
private readonly MouseWheel wheel;
|
||||
private bool tappedOnce = false, secondtouchbegin = false;
|
||||
public bool swipeLeft, swipeRight, swipeUp, swipeDown;
|
||||
public bool priorSwipeLeft, priorSwipeRight, priorSwipeUp, priorSwipeDown;
|
||||
public byte swipeLeftB, swipeRightB, swipeUpB, swipeDownB, swipedB;
|
||||
public byte priorSwipeLeftB, priorSwipeRightB, priorSwipeUpB, priorSwipeDownB, priorSwipedB;
|
||||
public bool slideleft, slideright;
|
||||
public bool priorSlideLeft, priorSlideright;
|
||||
// touch area stuff
|
||||
public bool leftDown, rightDown, upperDown, multiDown;
|
||||
public bool priorLeftDown, priorRightDown, priorUpperDown, priorMultiDown;
|
||||
protected DS4Controls pushed = DS4Controls.None;
|
||||
protected Mapping.Click clicked = Mapping.Click.None;
|
||||
|
||||
internal const int TRACKBALL_INIT_FICTION = 10;
|
||||
internal const int TRACKBALL_MASS = 45;
|
||||
internal const double TRACKBALL_RADIUS = 0.0245;
|
||||
|
||||
private double TRACKBALL_INERTIA = 2.0 * (TRACKBALL_MASS * TRACKBALL_RADIUS * TRACKBALL_RADIUS) / 5.0;
|
||||
private double TRACKBALL_SCALE = 0.004;
|
||||
private const int TRACKBALL_BUFFER_LEN = 8;
|
||||
private double[] trackballXBuffer = new double[TRACKBALL_BUFFER_LEN];
|
||||
private double[] trackballYBuffer = new double[TRACKBALL_BUFFER_LEN];
|
||||
private int trackballBufferTail = 0;
|
||||
private int trackballBufferHead = 0;
|
||||
private double trackballAccel = 0.0;
|
||||
private double trackballXVel = 0.0;
|
||||
private double trackballYVel = 0.0;
|
||||
private bool trackballActive = false;
|
||||
private double trackballDXRemain = 0.0;
|
||||
private double trackballDYRemain = 0.0;
|
||||
|
||||
public Mouse(int deviceID, DS4Device d)
|
||||
{
|
||||
deviceNum = deviceID;
|
||||
dev = d;
|
||||
cursor = new MouseCursor(deviceNum);
|
||||
wheel = new MouseWheel(deviceNum);
|
||||
trackballAccel = TRACKBALL_RADIUS * TRACKBALL_INIT_FICTION / TRACKBALL_INERTIA;
|
||||
firstTouch = new Touch(0, 0, 0, null);
|
||||
}
|
||||
|
||||
public void ResetTrackAccel(double friction)
|
||||
{
|
||||
trackballAccel = TRACKBALL_RADIUS * friction / TRACKBALL_INERTIA;
|
||||
}
|
||||
|
||||
bool triggeractivated = false;
|
||||
bool useReverseRatchet = false;
|
||||
|
||||
public virtual void sixaxisMoved(object sender, SixAxisEventArgs arg)
|
||||
{
|
||||
if (Global.UseSAforMouse[deviceNum] && Global.GyroSensitivity[deviceNum] > 0)
|
||||
if (Global.isUsingSAforMouse(deviceNum) && Global.getGyroSensitivity(deviceNum) > 0)
|
||||
{
|
||||
bool triggeractivated = true;
|
||||
s = dev.getCurrentStateRef();
|
||||
|
||||
triggeractivated = true;
|
||||
useReverseRatchet = Global.getGyroTriggerTurns(deviceNum);
|
||||
int i = 0;
|
||||
string[] ss = Global.SATriggers[deviceNum].Split(',');
|
||||
string[] ss = Global.getSATriggers(deviceNum).Split(',');
|
||||
if (!string.IsNullOrEmpty(ss[0]))
|
||||
foreach (string s in ss)
|
||||
{
|
||||
string s = string.Empty;
|
||||
for (int index = 0, arlen = ss.Length;
|
||||
triggeractivated && index < arlen; index++)
|
||||
{
|
||||
s = ss[index];
|
||||
if (!(int.TryParse(s, out i) && getDS4ControlsByName(i)))
|
||||
{
|
||||
triggeractivated = false;
|
||||
if (triggeractivated)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (useReverseRatchet && triggeractivated)
|
||||
cursor.sixaxisMoved(arg);
|
||||
dev.getCurrentState(s);
|
||||
else if (!useReverseRatchet && !triggeractivated)
|
||||
cursor.sixaxisMoved(arg);
|
||||
else
|
||||
cursor.mouseRemainderReset();
|
||||
}
|
||||
}
|
||||
|
||||
@ -68,20 +112,43 @@ namespace DS4Windows
|
||||
case 11: return s.DpadRight;
|
||||
case 12: return s.L3;
|
||||
case 13: return s.R3;
|
||||
case 14: return s.Touch1;
|
||||
case 15: return s.Touch2;
|
||||
case 14: return s.Touch1Finger;
|
||||
case 15: return s.Touch2Fingers;
|
||||
case 16: return s.Options;
|
||||
case 17: return s.Share;
|
||||
case 18: return s.PS;
|
||||
default: break;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private bool tempBool = false;
|
||||
public virtual void touchesMoved(object sender, TouchpadEventArgs arg)
|
||||
{
|
||||
if (!Global.UseTPforControls[deviceNum])
|
||||
s = dev.getCurrentStateRef();
|
||||
|
||||
if (Global.getUseTPforControls(deviceNum) == false)
|
||||
{
|
||||
cursor.touchesMoved(arg, dragging || dragging2);
|
||||
int[] disArray = Global.getTouchDisInvertTriggers(deviceNum);
|
||||
tempBool = true;
|
||||
for (int i = 0, arlen = disArray.Length; tempBool && i < arlen; i++)
|
||||
{
|
||||
if (getDS4ControlsByName(disArray[i]) == false)
|
||||
tempBool = false;
|
||||
}
|
||||
|
||||
if (Global.getTrackballMode(deviceNum))
|
||||
{
|
||||
int iIndex = trackballBufferTail;
|
||||
trackballXBuffer[iIndex] = (arg.touches[0].deltaX * TRACKBALL_SCALE) / dev.getCurrentStateRef().elapsedTime;
|
||||
trackballYBuffer[iIndex] = (arg.touches[0].deltaY * TRACKBALL_SCALE) / dev.getCurrentStateRef().elapsedTime;
|
||||
trackballBufferTail = (iIndex + 1) % TRACKBALL_BUFFER_LEN;
|
||||
if (trackballBufferHead == trackballBufferTail)
|
||||
trackballBufferHead = (trackballBufferHead + 1) % TRACKBALL_BUFFER_LEN;
|
||||
}
|
||||
|
||||
cursor.touchesMoved(arg, dragging || dragging2, tempBool);
|
||||
wheel.touchesMoved(arg, dragging || dragging2);
|
||||
}
|
||||
else
|
||||
@ -93,54 +160,78 @@ namespace DS4Windows
|
||||
if (arg.touches[0].hwY - firstTouch.hwY > 300) swipeDown = true;
|
||||
if (arg.touches[0].hwY - firstTouch.hwY < -300) swipeUp = true;
|
||||
}
|
||||
|
||||
swipeUpB = (byte)Math.Min(255, Math.Max(0, (firstTouch.hwY - arg.touches[0].hwY) * 1.5f));
|
||||
swipeDownB = (byte)Math.Min(255, Math.Max(0, (arg.touches[0].hwY - firstTouch.hwY) * 1.5f));
|
||||
swipeLeftB = (byte)Math.Min(255, Math.Max(0, firstTouch.hwX - arg.touches[0].hwX));
|
||||
swipeRightB = (byte)Math.Min(255, Math.Max(0, arg.touches[0].hwX - firstTouch.hwX));
|
||||
}
|
||||
|
||||
if (Math.Abs(firstTouch.hwY - arg.touches[0].hwY) < 50 && arg.touches.Length == 2)
|
||||
{
|
||||
if (arg.touches[0].hwX - firstTouch.hwX > 200 && !slideleft)
|
||||
slideright = true;
|
||||
else if (firstTouch.hwX - arg.touches[0].hwX > 200 && !slideright)
|
||||
slideleft = true;
|
||||
dev.getCurrentState(s);
|
||||
}
|
||||
|
||||
synthesizeMouseButtons();
|
||||
}
|
||||
|
||||
public virtual void touchesBegan(object sender, TouchpadEventArgs arg)
|
||||
{
|
||||
if (!Global.UseTPforControls[deviceNum])
|
||||
{
|
||||
Array.Clear(trackballXBuffer, 0, TRACKBALL_BUFFER_LEN);
|
||||
Array.Clear(trackballXBuffer, 0, TRACKBALL_BUFFER_LEN);
|
||||
trackballXVel = 0.0;
|
||||
trackballYVel = 0.0;
|
||||
trackballActive = false;
|
||||
trackballBufferTail = 0;
|
||||
trackballBufferHead = 0;
|
||||
trackballDXRemain = 0.0;
|
||||
trackballDYRemain = 0.0;
|
||||
|
||||
cursor.touchesBegan(arg);
|
||||
wheel.touchesBegan(arg);
|
||||
}
|
||||
|
||||
pastTime = arg.timeStamp;
|
||||
firstTouch = arg.touches[0];
|
||||
if (Global.DoubleTap[deviceNum])
|
||||
firstTouch.populate(arg.touches[0].hwX, arg.touches[0].hwY, arg.touches[0].touchID,
|
||||
arg.touches[0].previousTouch);
|
||||
|
||||
if (Global.getDoubleTap(deviceNum))
|
||||
{
|
||||
DateTime test = arg.timeStamp;
|
||||
if (test <= (firstTap + TimeSpan.FromMilliseconds((double)Global.TapSensitivity[deviceNum] * 1.5)) && !arg.touchButtonPressed)
|
||||
secondtouchbegin = true;
|
||||
}
|
||||
dev.getCurrentState(s);
|
||||
|
||||
s = dev.getCurrentStateRef();
|
||||
synthesizeMouseButtons();
|
||||
}
|
||||
|
||||
public virtual void touchesEnded(object sender, TouchpadEventArgs arg)
|
||||
{
|
||||
s = dev.getCurrentStateRef();
|
||||
slideright = slideleft = false;
|
||||
swipeUp = swipeDown = swipeLeft = swipeRight = false;
|
||||
swipeUpB = swipeDownB = swipeLeftB = swipeRightB = 0;
|
||||
if (Global.TapSensitivity[deviceNum] != 0 && !Global.UseTPforControls[deviceNum])
|
||||
byte tapSensitivity = Global.getTapSensitivity(deviceNum);
|
||||
if (tapSensitivity != 0 && !Global.getUseTPforControls(deviceNum))
|
||||
{
|
||||
|
||||
if (secondtouchbegin)
|
||||
{
|
||||
tappedOnce = false;
|
||||
secondtouchbegin = false;
|
||||
}
|
||||
|
||||
DateTime test = arg.timeStamp;
|
||||
if (test <= (pastTime + TimeSpan.FromMilliseconds((double)Global.TapSensitivity[deviceNum] * 2)) && !arg.touchButtonPressed && !tappedOnce)
|
||||
if (test <= (pastTime + TimeSpan.FromMilliseconds((double)tapSensitivity * 2)) && !arg.touchButtonPressed && !tappedOnce)
|
||||
{
|
||||
if (Math.Abs(firstTouch.hwX - arg.touches[0].hwX) < 10 && Math.Abs(firstTouch.hwY - arg.touches[0].hwY) < 10)
|
||||
if (Global.DoubleTap[deviceNum])
|
||||
{
|
||||
if (Global.getDoubleTap(deviceNum))
|
||||
{
|
||||
tappedOnce = true;
|
||||
firstTap = arg.timeStamp;
|
||||
@ -148,8 +239,97 @@ namespace DS4Windows
|
||||
}
|
||||
else
|
||||
Mapping.MapClick(deviceNum, Mapping.Click.Left); //this way no delay if disabled
|
||||
}
|
||||
}
|
||||
}
|
||||
dev.getCurrentState(s);
|
||||
else
|
||||
{
|
||||
if (Global.getUseTPforControls(deviceNum) == false)
|
||||
{
|
||||
int[] disArray = Global.getTouchDisInvertTriggers(deviceNum);
|
||||
tempBool = true;
|
||||
for (int i = 0, arlen = disArray.Length; tempBool && i < arlen; i++)
|
||||
{
|
||||
if (getDS4ControlsByName(disArray[i]) == false)
|
||||
tempBool = false;
|
||||
}
|
||||
|
||||
if (Global.getTrackballMode(deviceNum))
|
||||
{
|
||||
if (!trackballActive)
|
||||
{
|
||||
double currentWeight = 1.0;
|
||||
double finalWeight = 0.0;
|
||||
double x_out = 0.0, y_out = 0.0;
|
||||
int idx = -1;
|
||||
for (int i = 0; i < TRACKBALL_BUFFER_LEN && idx != trackballBufferHead; i++)
|
||||
{
|
||||
idx = (trackballBufferTail - i - 1 + TRACKBALL_BUFFER_LEN) % TRACKBALL_BUFFER_LEN;
|
||||
x_out += trackballXBuffer[idx] * currentWeight;
|
||||
y_out += trackballYBuffer[idx] * currentWeight;
|
||||
finalWeight += currentWeight;
|
||||
currentWeight *= 1.0;
|
||||
}
|
||||
|
||||
x_out /= finalWeight;
|
||||
trackballXVel = x_out;
|
||||
y_out /= finalWeight;
|
||||
trackballYVel = y_out;
|
||||
|
||||
trackballActive = true;
|
||||
}
|
||||
|
||||
double tempAngle = Math.Atan2(-trackballYVel, trackballXVel);
|
||||
double normX = Math.Abs(Math.Cos(tempAngle));
|
||||
double normY = Math.Abs(Math.Sin(tempAngle));
|
||||
int signX = Math.Sign(trackballXVel);
|
||||
int signY = Math.Sign(trackballYVel);
|
||||
|
||||
double trackXvDecay = Math.Min(Math.Abs(trackballXVel), trackballAccel * s.elapsedTime * normX);
|
||||
double trackYvDecay = Math.Min(Math.Abs(trackballYVel), trackballAccel * s.elapsedTime * normY);
|
||||
double xVNew = trackballXVel - (trackXvDecay * signX);
|
||||
double yVNew = trackballYVel - (trackYvDecay * signY);
|
||||
double xMotion = (xVNew * s.elapsedTime) / TRACKBALL_SCALE;
|
||||
double yMotion = (yVNew * s.elapsedTime) / TRACKBALL_SCALE;
|
||||
if (xMotion != 0.0)
|
||||
{
|
||||
xMotion += trackballDXRemain;
|
||||
}
|
||||
else
|
||||
{
|
||||
trackballDXRemain = 0.0;
|
||||
}
|
||||
|
||||
int dx = (int)xMotion;
|
||||
trackballDXRemain = xMotion - dx;
|
||||
|
||||
if (yMotion != 0.0)
|
||||
{
|
||||
yMotion += trackballDYRemain;
|
||||
}
|
||||
else
|
||||
{
|
||||
trackballDYRemain = 0.0;
|
||||
}
|
||||
|
||||
int dy = (int)yMotion;
|
||||
trackballDYRemain = yMotion - dy;
|
||||
|
||||
trackballXVel = xVNew;
|
||||
trackballYVel = yVNew;
|
||||
|
||||
if (dx == 0 && dy == 0)
|
||||
{
|
||||
trackballActive = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
cursor.TouchMoveCursor(dx, dy, tempBool);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
synthesizeMouseButtons();
|
||||
}
|
||||
|
||||
@ -165,28 +345,95 @@ namespace DS4Windows
|
||||
|
||||
public virtual void touchUnchanged(object sender, EventArgs unused)
|
||||
{
|
||||
dev.getCurrentState(s);
|
||||
//if (s.Touch1 || s.Touch2 || s.TouchButton)
|
||||
synthesizeMouseButtons();
|
||||
s = dev.getCurrentStateRef();
|
||||
|
||||
if (trackballActive)
|
||||
{
|
||||
if (Global.getUseTPforControls(deviceNum) == false)
|
||||
{
|
||||
int[] disArray = Global.getTouchDisInvertTriggers(deviceNum);
|
||||
tempBool = true;
|
||||
for (int i = 0, arlen = disArray.Length; tempBool && i < arlen; i++)
|
||||
{
|
||||
if (getDS4ControlsByName(disArray[i]) == false)
|
||||
tempBool = false;
|
||||
}
|
||||
|
||||
double tempAngle = Math.Atan2(-trackballYVel, trackballXVel);
|
||||
double normX = Math.Abs(Math.Cos(tempAngle));
|
||||
double normY = Math.Abs(Math.Sin(tempAngle));
|
||||
int signX = Math.Sign(trackballXVel);
|
||||
int signY = Math.Sign(trackballYVel);
|
||||
double trackXvDecay = Math.Min(Math.Abs(trackballXVel), trackballAccel * s.elapsedTime * normX);
|
||||
double trackYvDecay = Math.Min(Math.Abs(trackballYVel), trackballAccel * s.elapsedTime * normY);
|
||||
double xVNew = trackballXVel - (trackXvDecay * signX);
|
||||
double yVNew = trackballYVel - (trackYvDecay * signY);
|
||||
double xMotion = (xVNew * s.elapsedTime) / TRACKBALL_SCALE;
|
||||
double yMotion = (yVNew * s.elapsedTime) / TRACKBALL_SCALE;
|
||||
if (xMotion != 0.0)
|
||||
{
|
||||
xMotion += trackballDXRemain;
|
||||
}
|
||||
else
|
||||
{
|
||||
trackballDXRemain = 0.0;
|
||||
}
|
||||
|
||||
int dx = (int)xMotion;
|
||||
trackballDXRemain = xMotion - dx;
|
||||
|
||||
if (yMotion != 0.0)
|
||||
{
|
||||
yMotion += trackballDYRemain;
|
||||
}
|
||||
else
|
||||
{
|
||||
trackballDYRemain = 0.0;
|
||||
}
|
||||
|
||||
int dy = (int)yMotion;
|
||||
trackballDYRemain = yMotion - dy;
|
||||
|
||||
trackballXVel = xVNew;
|
||||
trackballYVel = yVNew;
|
||||
|
||||
if (dx == 0 && dy == 0)
|
||||
{
|
||||
trackballActive = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
cursor.TouchMoveCursor(dx, dy, tempBool);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (s.TouchButton)
|
||||
synthesizeMouseButtons();
|
||||
}
|
||||
|
||||
private DS4State remapped = new DS4State();
|
||||
public bool dragging, dragging2;
|
||||
private void synthesizeMouseButtons()
|
||||
{
|
||||
if (Global.GetDS4Action(deviceNum, DS4Controls.TouchLeft.ToString(), false) == null && leftDown)
|
||||
if (Global.GetDS4Action(deviceNum, DS4Controls.TouchLeft, false) == null && leftDown)
|
||||
{
|
||||
Mapping.MapClick(deviceNum, Mapping.Click.Left);
|
||||
dragging2 = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
dragging2 = false;
|
||||
if (Global.GetDS4Action(deviceNum, DS4Controls.TouchUpper.ToString(), false) == null && upperDown)
|
||||
}
|
||||
|
||||
if (Global.GetDS4Action(deviceNum, DS4Controls.TouchUpper, false) == null && upperDown)
|
||||
Mapping.MapClick(deviceNum, Mapping.Click.Middle);
|
||||
if (Global.GetDS4Action(deviceNum, DS4Controls.TouchRight.ToString(), false) == null && rightDown)
|
||||
|
||||
if (Global.GetDS4Action(deviceNum, DS4Controls.TouchRight, false) == null && rightDown)
|
||||
Mapping.MapClick(deviceNum, Mapping.Click.Left);
|
||||
if (Global.GetDS4Action(deviceNum, DS4Controls.TouchMulti.ToString(), false) == null && multiDown)
|
||||
|
||||
if (Global.GetDS4Action(deviceNum, DS4Controls.TouchMulti, false) == null && multiDown)
|
||||
Mapping.MapClick(deviceNum, Mapping.Click.Right);
|
||||
|
||||
if (!Global.UseTPforControls[deviceNum])
|
||||
{
|
||||
if (tappedOnce)
|
||||
@ -205,10 +452,10 @@ namespace DS4Windows
|
||||
dragging = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
dragging = false;
|
||||
}
|
||||
}
|
||||
s = remapped;
|
||||
//remapped.CopyTo(s);
|
||||
}
|
||||
|
||||
public virtual void touchButtonUp(object sender, TouchpadEventArgs arg)
|
||||
@ -216,7 +463,7 @@ namespace DS4Windows
|
||||
pushed = DS4Controls.None;
|
||||
upperDown = leftDown = rightDown = multiDown = false;
|
||||
dev.setRumble(0, 0);
|
||||
dev.getCurrentState(s);
|
||||
s = dev.getCurrentStateRef();
|
||||
if (s.Touch1 || s.Touch2)
|
||||
synthesizeMouseButtons();
|
||||
}
|
||||
@ -231,15 +478,30 @@ namespace DS4Windows
|
||||
{
|
||||
if ((Global.LowerRCOn[deviceNum] && arg.touches[0].hwX > (1920 * 3) / 4 && arg.touches[0].hwY > (960 * 3) / 4))
|
||||
Mapping.MapClick(deviceNum, Mapping.Click.Right);
|
||||
|
||||
if (isLeft(arg.touches[0]))
|
||||
leftDown = true;
|
||||
else if (isRight(arg.touches[0]))
|
||||
rightDown = true;
|
||||
}
|
||||
dev.getCurrentState(s);
|
||||
|
||||
s = dev.getCurrentStateRef();
|
||||
synthesizeMouseButtons();
|
||||
}
|
||||
|
||||
public void populatePriorButtonStates()
|
||||
{
|
||||
priorUpperDown = upperDown;
|
||||
priorLeftDown = leftDown;
|
||||
priorRightDown = rightDown;
|
||||
priorMultiDown = multiDown;
|
||||
|
||||
priorSwipeLeft = swipeLeft; priorSwipeRight = swipeRight;
|
||||
priorSwipeUp = swipeUp; priorSwipeDown = swipeDown;
|
||||
priorSwipeLeftB = swipeLeftB; priorSwipeRightB = swipeRightB; priorSwipeUpB = swipeUpB;
|
||||
priorSwipeDownB = swipeDownB; priorSwipedB = swipedB;
|
||||
}
|
||||
|
||||
public DS4State getDS4State()
|
||||
{
|
||||
return s;
|
||||
|
@ -1,8 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
|
||||
namespace DS4Windows
|
||||
{
|
||||
@ -20,32 +16,164 @@ namespace DS4Windows
|
||||
/** Indicate x/y direction for doing jitter compensation, etc. */
|
||||
public enum Direction { Negative, Neutral, Positive }
|
||||
// Track direction vector separately and very trivially for now.
|
||||
private Direction horizontalDirection = Direction.Neutral, verticalDirection = Direction.Neutral;
|
||||
private Direction horizontalDirection = Direction.Neutral,
|
||||
verticalDirection = Direction.Neutral;
|
||||
private Direction hDirection = Direction.Neutral, vDirection = Direction.Neutral;
|
||||
|
||||
private const double GYRO_MOUSE_COEFFICIENT = 0.0095;
|
||||
private const int GYRO_MOUSE_DEADZONE = 10;
|
||||
private const double GYRO_MOUSE_OFFSET = 0.1463;
|
||||
private const double GYRO_SMOOTH_MOUSE_OFFSET = 0.14698;
|
||||
private const double TOUCHPAD_MOUSE_OFFSET = 0.015;
|
||||
|
||||
private const int SMOOTH_BUFFER_LEN = 3;
|
||||
private double[] xSmoothBuffer = new double[SMOOTH_BUFFER_LEN];
|
||||
private double[] ySmoothBuffer = new double[SMOOTH_BUFFER_LEN];
|
||||
private int smoothBufferTail = 0;
|
||||
|
||||
|
||||
|
||||
double coefficient = 0.0;
|
||||
double verticalScale = 0.0;
|
||||
bool gyroSmooth = false;
|
||||
|
||||
int tempInt = 0;
|
||||
double tempDouble = 0.0;
|
||||
bool tempBool = false;
|
||||
|
||||
public virtual void sixaxisMoved(SixAxisEventArgs arg)
|
||||
{
|
||||
int deltaX = 0, deltaY = 0;
|
||||
deltaX = -arg.sixAxis.accelX;
|
||||
deltaY = -arg.sixAxis.accelY;
|
||||
//Console.WriteLine(arg.sixAxis.deltaX);
|
||||
deltaX = Global.getGyroMouseHorizontalAxis(deviceNumber) == 0 ? arg.sixAxis.gyroYawFull :
|
||||
arg.sixAxis.gyroRollFull;
|
||||
deltaY = -arg.sixAxis.gyroPitchFull;
|
||||
//tempDouble = arg.sixAxis.elapsed * 0.001 * 200.0; // Base default speed on 5 ms
|
||||
tempDouble = arg.sixAxis.elapsed * 200.0; // Base default speed on 5 ms
|
||||
|
||||
double coefficient = Global.GyroSensitivity[deviceNumber] / 100f;
|
||||
//Collect rounding errors instead of losing motion.
|
||||
double xMotion = coefficient * deltaX;
|
||||
xMotion += hRemainder;
|
||||
int xAction = (int)xMotion;
|
||||
hRemainder += xMotion - xAction;
|
||||
hRemainder -= (int)hRemainder;
|
||||
double yMotion = coefficient * deltaY;
|
||||
yMotion += vRemainder;
|
||||
int yAction = (int)yMotion;
|
||||
vRemainder += yMotion - yAction;
|
||||
vRemainder -= (int)vRemainder;
|
||||
if (Global.GyroInvert[deviceNumber] == 2 || Global.GyroInvert[deviceNumber] == 3)
|
||||
gyroSmooth = Global.getGyroSmoothing(deviceNumber);
|
||||
double gyroSmoothWeight = 0.0;
|
||||
|
||||
coefficient = (Global.getGyroSensitivity(deviceNumber) * 0.01) * GYRO_MOUSE_COEFFICIENT;
|
||||
double offset = GYRO_MOUSE_OFFSET;
|
||||
if (gyroSmooth)
|
||||
{
|
||||
gyroSmoothWeight = Global.getGyroSmoothingWeight(deviceNumber);
|
||||
if (gyroSmoothWeight > 0.0)
|
||||
{
|
||||
offset = GYRO_SMOOTH_MOUSE_OFFSET;
|
||||
}
|
||||
}
|
||||
|
||||
double tempAngle = Math.Atan2(-deltaY, deltaX);
|
||||
double normX = Math.Abs(Math.Cos(tempAngle));
|
||||
double normY = Math.Abs(Math.Sin(tempAngle));
|
||||
int signX = Math.Sign(deltaX);
|
||||
int signY = Math.Sign(deltaY);
|
||||
|
||||
if (deltaX == 0 || (hRemainder > 0 != deltaX > 0))
|
||||
{
|
||||
hRemainder = 0.0;
|
||||
}
|
||||
|
||||
if (deltaY == 0 || (vRemainder > 0 != deltaY > 0))
|
||||
{
|
||||
vRemainder = 0.0;
|
||||
}
|
||||
|
||||
int deadzoneX = (int)Math.Abs(normX * GYRO_MOUSE_DEADZONE);
|
||||
int deadzoneY = (int)Math.Abs(normY * GYRO_MOUSE_DEADZONE);
|
||||
|
||||
if (Math.Abs(deltaX) > deadzoneX)
|
||||
{
|
||||
deltaX -= signX * deadzoneX;
|
||||
}
|
||||
else
|
||||
{
|
||||
deltaX = 0;
|
||||
}
|
||||
|
||||
if (Math.Abs(deltaY) > deadzoneY)
|
||||
{
|
||||
deltaY -= signY * deadzoneY;
|
||||
}
|
||||
else
|
||||
{
|
||||
deltaY = 0;
|
||||
}
|
||||
|
||||
double xMotion = deltaX != 0 ? coefficient * (deltaX * tempDouble)
|
||||
+ (normX * (offset * signX)) : 0;
|
||||
|
||||
int xAction = 0;
|
||||
if (xMotion != 0.0)
|
||||
{
|
||||
xMotion += hRemainder;
|
||||
}
|
||||
else
|
||||
{
|
||||
hRemainder = 0.0;
|
||||
}
|
||||
|
||||
verticalScale = Global.getGyroSensVerticalScale(deviceNumber) * 0.01;
|
||||
double yMotion = deltaY != 0 ? (coefficient * verticalScale) * (deltaY * tempDouble)
|
||||
+ (normY * (offset * signY)) : 0;
|
||||
|
||||
int yAction = 0;
|
||||
if (yMotion != 0.0)
|
||||
{
|
||||
yMotion += vRemainder;
|
||||
}
|
||||
else
|
||||
{
|
||||
vRemainder = 0.0;
|
||||
}
|
||||
|
||||
if (gyroSmooth)
|
||||
{
|
||||
int iIndex = smoothBufferTail % SMOOTH_BUFFER_LEN;
|
||||
xSmoothBuffer[iIndex] = xMotion;
|
||||
ySmoothBuffer[iIndex] = yMotion;
|
||||
smoothBufferTail = iIndex + 1;
|
||||
|
||||
double currentWeight = 1.0;
|
||||
double finalWeight = 0.0;
|
||||
double x_out = 0.0, y_out = 0.0;
|
||||
int idx = 0;
|
||||
for (int i = 0; i < SMOOTH_BUFFER_LEN; i++)
|
||||
{
|
||||
idx = (smoothBufferTail - i - 1 + SMOOTH_BUFFER_LEN) % SMOOTH_BUFFER_LEN;
|
||||
x_out += xSmoothBuffer[idx] * currentWeight;
|
||||
y_out += ySmoothBuffer[idx] * currentWeight;
|
||||
finalWeight += currentWeight;
|
||||
currentWeight *= gyroSmoothWeight;
|
||||
}
|
||||
|
||||
x_out /= finalWeight;
|
||||
xMotion = x_out;
|
||||
y_out /= finalWeight;
|
||||
yMotion = y_out;
|
||||
}
|
||||
|
||||
hRemainder = vRemainder = 0.0;
|
||||
if (xMotion != 0.0)
|
||||
{
|
||||
xAction = (int)xMotion;
|
||||
hRemainder = xMotion - xAction;
|
||||
}
|
||||
|
||||
if (yMotion != 0.0)
|
||||
{
|
||||
yAction = (int)yMotion;
|
||||
vRemainder = yMotion - yAction;
|
||||
}
|
||||
|
||||
int gyroInvert = Global.getGyroInvert(deviceNumber);
|
||||
if ((gyroInvert & 0x02) == 2)
|
||||
xAction *= -1;
|
||||
if (Global.GyroInvert[deviceNumber] == 1 || Global.GyroInvert[deviceNumber] == 3)
|
||||
|
||||
if ((gyroInvert & 0x01) == 1)
|
||||
yAction *= -1;
|
||||
|
||||
if (yAction != 0 || xAction != 0)
|
||||
InputMethods.MoveCursorBy(xAction, yAction);
|
||||
|
||||
@ -53,21 +181,33 @@ namespace DS4Windows
|
||||
vDirection = yMotion > 0.0 ? Direction.Positive : yMotion < 0.0 ? Direction.Negative : Direction.Neutral;
|
||||
}
|
||||
|
||||
public void mouseRemainderReset()
|
||||
{
|
||||
hRemainder = vRemainder = 0.0;
|
||||
int iIndex = smoothBufferTail % SMOOTH_BUFFER_LEN;
|
||||
xSmoothBuffer[iIndex] = 0.0;
|
||||
ySmoothBuffer[iIndex] = 0.0;
|
||||
smoothBufferTail = iIndex + 1;
|
||||
}
|
||||
|
||||
public void touchesBegan(TouchpadEventArgs arg)
|
||||
{
|
||||
if (arg.touches.Length == 1)
|
||||
{
|
||||
horizontalRemainder = verticalRemainder = 0.0;
|
||||
horizontalDirection = verticalDirection = Direction.Neutral;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private byte lastTouchID;
|
||||
public void touchesMoved(TouchpadEventArgs arg, bool dragging)
|
||||
public void touchesMoved(TouchpadEventArgs arg, bool dragging, bool disableInvert = false)
|
||||
{
|
||||
if ((!dragging && arg.touches.Length != 1) || (dragging && arg.touches.Length < 1))
|
||||
int touchesLen = arg.touches.Length;
|
||||
if ((!dragging && touchesLen != 1) || (dragging && touchesLen < 1))
|
||||
return;
|
||||
int deltaX, deltaY;
|
||||
|
||||
int deltaX = 0, deltaY = 0;
|
||||
if (arg.touches[0].touchID != lastTouchID)
|
||||
{
|
||||
deltaX = deltaY = 0;
|
||||
@ -75,59 +215,9 @@ namespace DS4Windows
|
||||
horizontalDirection = verticalDirection = Direction.Neutral;
|
||||
lastTouchID = arg.touches[0].touchID;
|
||||
}
|
||||
else if (Global.TouchpadJitterCompensation[deviceNumber])
|
||||
{
|
||||
// Often the DS4's internal jitter compensation kicks in and starts hiding changes, ironically creating jitter...
|
||||
|
||||
if (dragging && arg.touches.Length > 1)
|
||||
{
|
||||
deltaX = arg.touches[1].deltaX;
|
||||
deltaY = arg.touches[1].deltaY;
|
||||
}
|
||||
else
|
||||
{
|
||||
deltaX = arg.touches[0].deltaX;
|
||||
deltaY = arg.touches[0].deltaY;
|
||||
}
|
||||
// allow only very fine, slow motions, when changing direction, even from neutral
|
||||
// TODO maybe just consume it completely?
|
||||
if (deltaX <= -1)
|
||||
{
|
||||
if (horizontalDirection != Direction.Negative)
|
||||
{
|
||||
deltaX = -1;
|
||||
horizontalRemainder = 0.0;
|
||||
}
|
||||
}
|
||||
else if (deltaX >= 1)
|
||||
{
|
||||
if (horizontalDirection != Direction.Positive)
|
||||
{
|
||||
deltaX = 1;
|
||||
horizontalRemainder = 0.0;
|
||||
}
|
||||
}
|
||||
|
||||
if (deltaY <= -1)
|
||||
{
|
||||
if (verticalDirection != Direction.Negative)
|
||||
{
|
||||
deltaY = -1;
|
||||
verticalRemainder = 0.0;
|
||||
}
|
||||
}
|
||||
else if (deltaY >= 1)
|
||||
{
|
||||
if (verticalDirection != Direction.Positive)
|
||||
{
|
||||
deltaY = 1;
|
||||
verticalRemainder = 0.0;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (dragging && arg.touches.Length > 1)
|
||||
if (dragging && touchesLen > 1)
|
||||
{
|
||||
deltaX = arg.touches[1].deltaX;
|
||||
deltaY = arg.touches[1].deltaY;
|
||||
@ -139,36 +229,73 @@ namespace DS4Windows
|
||||
}
|
||||
}
|
||||
|
||||
double coefficient = Global.TouchSensitivity[deviceNumber] / 100.0;
|
||||
// Collect rounding errors instead of losing motion.
|
||||
double xMotion = coefficient * deltaX;
|
||||
if (xMotion > 0.0)
|
||||
TouchMoveCursor(deltaX, deltaY, disableInvert);
|
||||
}
|
||||
|
||||
public void TouchMoveCursor(int dx, int dy, bool disableInvert = false)
|
||||
{
|
||||
double tempAngle = Math.Atan2(-dy, dx);
|
||||
double normX = Math.Abs(Math.Cos(tempAngle));
|
||||
double normY = Math.Abs(Math.Sin(tempAngle));
|
||||
int signX = Math.Sign(dx);
|
||||
int signY = Math.Sign(dy);
|
||||
double coefficient = Global.getTouchSensitivity(deviceNumber) * 0.01;
|
||||
bool jitterCompenstation = Global.getTouchpadJitterCompensation(deviceNumber);
|
||||
|
||||
double xMotion = dx != 0 ?
|
||||
coefficient * dx + (normX * (TOUCHPAD_MOUSE_OFFSET * signX)) : 0.0;
|
||||
|
||||
double yMotion = dy != 0 ?
|
||||
coefficient * dy + (normY * (TOUCHPAD_MOUSE_OFFSET * signY)) : 0.0;
|
||||
|
||||
if (jitterCompenstation)
|
||||
{
|
||||
if (horizontalRemainder > 0.0)
|
||||
xMotion += horizontalRemainder;
|
||||
double absX = Math.Abs(xMotion);
|
||||
if (absX <= normX * 0.15)
|
||||
{
|
||||
xMotion = signX * Math.Pow(absX / 0.15f, 1.408) * 0.15;
|
||||
}
|
||||
|
||||
double absY = Math.Abs(yMotion);
|
||||
if (absY <= normY * 0.15)
|
||||
{
|
||||
yMotion = signY * Math.Pow(absY / 0.15f, 1.408) * 0.15;
|
||||
}
|
||||
}
|
||||
else if (xMotion < 0.0)
|
||||
|
||||
// Collect rounding errors instead of losing motion.
|
||||
if (xMotion > 0.0 && horizontalRemainder > 0.0)
|
||||
{
|
||||
if (horizontalRemainder < 0.0)
|
||||
xMotion += horizontalRemainder;
|
||||
xMotion += horizontalRemainder;
|
||||
}
|
||||
else if (xMotion < 0.0 && horizontalRemainder < 0.0)
|
||||
{
|
||||
xMotion += horizontalRemainder;
|
||||
}
|
||||
int xAction = (int)xMotion;
|
||||
horizontalRemainder = xMotion - xAction;
|
||||
|
||||
double yMotion = coefficient * deltaY;
|
||||
if (yMotion > 0.0)
|
||||
if (yMotion > 0.0 && verticalRemainder > 0.0)
|
||||
{
|
||||
if (verticalRemainder > 0.0)
|
||||
yMotion += verticalRemainder;
|
||||
yMotion += verticalRemainder;
|
||||
}
|
||||
else if (yMotion < 0.0)
|
||||
else if (yMotion < 0.0 && verticalRemainder < 0.0)
|
||||
{
|
||||
if (verticalRemainder < 0.0)
|
||||
yMotion += verticalRemainder;
|
||||
yMotion += verticalRemainder;
|
||||
}
|
||||
int yAction = (int)yMotion;
|
||||
verticalRemainder = yMotion - yAction;
|
||||
|
||||
if (disableInvert == false)
|
||||
{
|
||||
int touchpadInvert = tempInt = Global.getTouchpadInvert(deviceNumber);
|
||||
if ((touchpadInvert & 0x02) == 2)
|
||||
xAction *= -1;
|
||||
|
||||
if ((touchpadInvert & 0x01) == 1)
|
||||
yAction *= -1;
|
||||
}
|
||||
|
||||
if (yAction != 0 || xAction != 0)
|
||||
InputMethods.MoveCursorBy(xAction, yAction);
|
||||
|
||||
|
@ -1,8 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
|
||||
namespace DS4Windows
|
||||
{
|
||||
@ -27,6 +23,7 @@ namespace DS4Windows
|
||||
{
|
||||
if (arg.touches.Length != 2 || dragging)
|
||||
return;
|
||||
|
||||
Touch lastT0 = arg.touches[0].previousTouch;
|
||||
Touch lastT1 = arg.touches[1].previousTouch;
|
||||
Touch T0 = arg.touches[0];
|
||||
|
@ -1,7 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Windows.Forms;
|
||||
|
||||
using System.Runtime.InteropServices;
|
||||
using Microsoft.Win32.SafeHandles;
|
||||
@ -522,7 +521,7 @@ namespace DS4Windows
|
||||
|
||||
protected virtual Boolean GetDeviceHandle(String Path)
|
||||
{
|
||||
m_FileHandle = CreateFile(Path, (GENERIC_WRITE | GENERIC_READ), FILE_SHARE_READ | FILE_SHARE_WRITE, IntPtr.Zero, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, 0);
|
||||
m_FileHandle = CreateFile(Path, (GENERIC_WRITE | GENERIC_READ), FILE_SHARE_READ | FILE_SHARE_WRITE, IntPtr.Zero, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED | 0x20000000 | 0x80000000, 0);
|
||||
|
||||
return !m_FileHandle.IsInvalid;
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,7 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Windows.Forms;
|
||||
|
||||
using System.Runtime.InteropServices;
|
||||
using Microsoft.Win32.SafeHandles;
|
||||
@ -12,6 +11,9 @@ namespace DS4Windows
|
||||
{
|
||||
private const String DS3_BUS_CLASS_GUID = "{F679F562-3164-42CE-A4DB-E7DDBE723909}";
|
||||
private const int CONTROLLER_OFFSET = 1; // Device 0 is the virtual USB hub itself, and we leave devices 1-10 available for other software (like the Scarlet.Crush DualShock driver itself)
|
||||
private const int inputResolution = 127 - (-128);
|
||||
private const float reciprocalInputResolution = 1 / (float)inputResolution;
|
||||
private const int outputResolution = 32767 - (-32768);
|
||||
|
||||
private int firstController = 1;
|
||||
// Device 0 is the virtual USB hub itself, and we can leave more available for other software (like the Scarlet.Crush DualShock driver)
|
||||
@ -25,10 +27,11 @@ namespace DS4Windows
|
||||
{
|
||||
Value -= 0x80;
|
||||
|
||||
if (Value == -128) Value = -127;
|
||||
if (Flip) Value *= -1;
|
||||
//float temp = (Value - (-128)) / (float)inputResolution;
|
||||
float temp = (Value - (-128)) * reciprocalInputResolution;
|
||||
if (Flip) temp = (temp - 0.5f) * -1.0f + 0.5f;
|
||||
|
||||
return (Int32)((float)Value * 258.00787401574803149606299212599f);
|
||||
return (Int32)(temp * outputResolution + (-32768));
|
||||
}
|
||||
|
||||
|
||||
@ -105,10 +108,11 @@ namespace DS4Windows
|
||||
Output[4] = (Byte)(device + firstController);
|
||||
Output[9] = 0x14;
|
||||
|
||||
for (int i = 10; i < Output.Length; i++)
|
||||
for (int i = 10, outLen = Output.Length; i < outLen; i++)
|
||||
{
|
||||
Output[i] = 0;
|
||||
}
|
||||
|
||||
if (state.Share) Output[10] |= (Byte)(1 << 5); // Back
|
||||
if (state.L3) Output[10] |= (Byte)(1 << 6); // Left Thumb
|
||||
if (state.R3) Output[10] |= (Byte)(1 << 7); // Right Thumb
|
||||
@ -133,9 +137,9 @@ namespace DS4Windows
|
||||
Output[13] = state.R2; // Right Trigger
|
||||
|
||||
Int32 ThumbLX = Scale(state.LX, false);
|
||||
Int32 ThumbLY = -Scale(state.LY, false);
|
||||
Int32 ThumbLY = Scale(state.LY, true);
|
||||
Int32 ThumbRX = Scale(state.RX, false);
|
||||
Int32 ThumbRY = -Scale(state.RY, false);
|
||||
Int32 ThumbRY = Scale(state.RY, true);
|
||||
Output[14] = (Byte)((ThumbLX >> 0) & 0xFF); // LX
|
||||
Output[15] = (Byte)((ThumbLX >> 8) & 0xFF);
|
||||
Output[16] = (Byte)((ThumbLY >> 0) & 0xFF); // LY
|
||||
|
@ -19,26 +19,26 @@ namespace DS4Windows
|
||||
internal class WindowsEnumerator
|
||||
{
|
||||
private delegate int EnumCallBackDelegate(IntPtr hwnd, int lParam);
|
||||
[DllImport("user32", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
|
||||
|
||||
[DllImport("user32", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
|
||||
private static extern int EnumWindows(EnumCallBackDelegate lpEnumFunc, int lParam);
|
||||
[DllImport("user32", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
|
||||
|
||||
[DllImport("user32", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
|
||||
private static extern int EnumChildWindows(IntPtr hWndParent, EnumCallBackDelegate lpEnumFunc, int lParam);
|
||||
|
||||
[DllImport("user32", EntryPoint = "GetClassNameA", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
|
||||
|
||||
private static extern int GetClassName(IntPtr hwnd, System.Text.StringBuilder lpClassName, int nMaxCount);
|
||||
[DllImport("user32", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
|
||||
|
||||
[DllImport("user32", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
|
||||
private static extern int IsWindowVisible(IntPtr hwnd);
|
||||
|
||||
[DllImport("user32", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
|
||||
|
||||
private static extern int GetParent(IntPtr hwnd);
|
||||
[DllImport("user32", EntryPoint = "SendMessageA", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
|
||||
|
||||
[DllImport("user32", EntryPoint = "SendMessageA", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
|
||||
private static extern int SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam);
|
||||
[DllImport("user32", EntryPoint = "SendMessageA", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
|
||||
|
||||
[DllImport("user32", EntryPoint = "SendMessageA", CharSet = CharSet.Ansi, SetLastError = true, ExactSpelling = true)]
|
||||
private static extern int SendMessage(IntPtr hwnd, int wMsg, int wParam, System.Text.StringBuilder lParam);
|
||||
|
||||
private List<ApiWindow> _listChildren = new List<ApiWindow>();
|
||||
@ -160,7 +160,7 @@ namespace DS4Windows
|
||||
if (Byte.TryParse(WindowsEnumerator.WindowText(EditWindows[3].hWnd), out red))
|
||||
if (Byte.TryParse(WindowsEnumerator.WindowText(EditWindows[4].hWnd), out green))
|
||||
if (Byte.TryParse(WindowsEnumerator.WindowText(EditWindows[5].hWnd), out blue))
|
||||
OnUpdateColor(Color.FromArgb(red, green, blue), EventArgs.Empty);
|
||||
OnUpdateColor?.Invoke(Color.FromArgb(red, green, blue), EventArgs.Empty);
|
||||
}
|
||||
}
|
||||
// Always call the base class hook procedure.
|
||||
|
48
DS4Windows/DS4Forms/Alreadyrunning.Designer.cs
generated
48
DS4Windows/DS4Forms/Alreadyrunning.Designer.cs
generated
@ -1,48 +0,0 @@
|
||||
namespace DS4Windows
|
||||
{
|
||||
partial class Alreadyrunning
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// Alreadyrunning
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(226, 43);
|
||||
this.Name = "Alreadyrunning";
|
||||
this.ShowInTaskbar = false;
|
||||
this.Text = "Alreadyrunning";
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
@ -1,36 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Diagnostics;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace DS4Windows
|
||||
{
|
||||
public partial class Alreadyrunning : Form
|
||||
{
|
||||
Stopwatch sw;
|
||||
|
||||
public Alreadyrunning()
|
||||
{
|
||||
InitializeComponent();
|
||||
this.WindowState = FormWindowState.Minimized;
|
||||
Hide();
|
||||
Timer t = new Timer();
|
||||
t.Start();
|
||||
t.Tick += t_Tick;
|
||||
sw = new Stopwatch();
|
||||
sw.Start();
|
||||
}
|
||||
|
||||
void t_Tick(object sender, EventArgs e)
|
||||
{
|
||||
if (sw.ElapsedMilliseconds >= 10)
|
||||
this.Close();
|
||||
}
|
||||
}
|
||||
}
|
391
DS4Windows/DS4Forms/DS4Form.Designer.cs
generated
391
DS4Windows/DS4Forms/DS4Form.Designer.cs
generated
@ -33,28 +33,32 @@
|
||||
this.lvDebug = new System.Windows.Forms.ListView();
|
||||
this.chTime = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
||||
this.chData = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
|
||||
this.tmrUpdate = new System.Windows.Forms.Timer(this.components);
|
||||
this.pnlButton = new System.Windows.Forms.Panel();
|
||||
this.llbHelp = new System.Windows.Forms.LinkLabel();
|
||||
this.lbTest = new System.Windows.Forms.Label();
|
||||
this.btnStartStop = new System.Windows.Forms.Button();
|
||||
this.lbLastMessage = new System.Windows.Forms.Label();
|
||||
this.btnClear = new System.Windows.Forms.Button();
|
||||
this.notifyIcon1 = new System.Windows.Forms.NotifyIcon(this.components);
|
||||
this.cMTaskbar = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||
this.editProfileForController1ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.editProfileForController2ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.editProfileForController3ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.editProfileForController4ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.disconToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.discon1toolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.discon2ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.discon3ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.discon4ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.startToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.openToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.openProgramFolderToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.openProfiles = new System.Windows.Forms.OpenFileDialog();
|
||||
this.tabMain = new System.Windows.Forms.TabControl();
|
||||
this.tabControllers = new System.Windows.Forms.TabPage();
|
||||
this.btnConnectDS4Win10 = new System.Windows.Forms.Button();
|
||||
this.tLPControllers = new System.Windows.Forms.TableLayoutPanel();
|
||||
this.bnLight3 = new System.Windows.Forms.Button();
|
||||
this.pBStatus1 = new System.Windows.Forms.PictureBox();
|
||||
@ -84,6 +88,11 @@
|
||||
this.bnLight1 = new System.Windows.Forms.Button();
|
||||
this.bnLight2 = new System.Windows.Forms.Button();
|
||||
this.bnLight4 = new System.Windows.Forms.Button();
|
||||
this.lbLinkProfile = new System.Windows.Forms.Label();
|
||||
this.linkCB1 = new System.Windows.Forms.CheckBox();
|
||||
this.linkCB2 = new System.Windows.Forms.CheckBox();
|
||||
this.linkCB3 = new System.Windows.Forms.CheckBox();
|
||||
this.linkCB4 = new System.Windows.Forms.CheckBox();
|
||||
this.lbNoControllers = new System.Windows.Forms.Label();
|
||||
this.tabProfiles = new System.Windows.Forms.TabPage();
|
||||
this.lBProfiles = new System.Windows.Forms.ListBox();
|
||||
@ -118,7 +127,11 @@
|
||||
this.hideDS4CheckBox = new System.Windows.Forms.CheckBox();
|
||||
this.cBSwipeProfiles = new System.Windows.Forms.CheckBox();
|
||||
this.StartWindowsCheckBox = new System.Windows.Forms.CheckBox();
|
||||
this.startMinimizedCheckBox = new System.Windows.Forms.CheckBox();
|
||||
this.runStartupPanel = new System.Windows.Forms.Panel();
|
||||
this.uacPictureBox = new System.Windows.Forms.PictureBox();
|
||||
this.runStartTaskRadio = new System.Windows.Forms.RadioButton();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.runStartProgRadio = new System.Windows.Forms.RadioButton();
|
||||
this.panel1 = new System.Windows.Forms.Panel();
|
||||
this.lbNotifications = new System.Windows.Forms.Label();
|
||||
this.cBoxNotifications = new System.Windows.Forms.ComboBox();
|
||||
@ -127,9 +140,11 @@
|
||||
this.nUDLatency = new System.Windows.Forms.NumericUpDown();
|
||||
this.lbMsLatency = new System.Windows.Forms.Label();
|
||||
this.cBFlashWhenLate = new System.Windows.Forms.CheckBox();
|
||||
this.startMinimizedCheckBox = new System.Windows.Forms.CheckBox();
|
||||
this.mintoTaskCheckBox = new System.Windows.Forms.CheckBox();
|
||||
this.cBCloseMini = new System.Windows.Forms.CheckBox();
|
||||
this.cBQuickCharge = new System.Windows.Forms.CheckBox();
|
||||
this.cBDownloadLangauge = new System.Windows.Forms.CheckBox();
|
||||
this.cBUseWhiteIcon = new System.Windows.Forms.CheckBox();
|
||||
this.cBUpdate = new System.Windows.Forms.CheckBox();
|
||||
this.pNUpdate = new System.Windows.Forms.Panel();
|
||||
this.cBUpdateTime = new System.Windows.Forms.ComboBox();
|
||||
@ -139,14 +154,21 @@
|
||||
this.lbUseXIPorts = new System.Windows.Forms.Label();
|
||||
this.nUDXIPorts = new System.Windows.Forms.NumericUpDown();
|
||||
this.lbLastXIPort = new System.Windows.Forms.Label();
|
||||
this.cBUseWhiteIcon = new System.Windows.Forms.CheckBox();
|
||||
this.languagePackComboBox1 = new DS4Windows.DS4Forms.LanguagePackComboBox();
|
||||
this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel();
|
||||
this.linkProfiles = new System.Windows.Forms.LinkLabel();
|
||||
this.lnkControllers = new System.Windows.Forms.LinkLabel();
|
||||
this.linkUninstall = new System.Windows.Forms.LinkLabel();
|
||||
this.linkSetup = new System.Windows.Forms.LinkLabel();
|
||||
this.lLBUpdate = new System.Windows.Forms.LinkLabel();
|
||||
this.linkSplitLabel = new System.Windows.Forms.Label();
|
||||
this.hidGuardWhiteList = new System.Windows.Forms.LinkLabel();
|
||||
this.clrHidGuardWlistLinkLabel = new System.Windows.Forms.LinkLabel();
|
||||
this.hidGuardRegLinkLabel = new System.Windows.Forms.LinkLabel();
|
||||
this.tabLog = new System.Windows.Forms.TabPage();
|
||||
this.panel3 = new System.Windows.Forms.Panel();
|
||||
this.exportLogTxtBtn = new System.Windows.Forms.Button();
|
||||
this.btnClear = new System.Windows.Forms.Button();
|
||||
this.saveProfiles = new System.Windows.Forms.SaveFileDialog();
|
||||
this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
|
||||
this.cMCustomLed = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||
@ -168,6 +190,8 @@
|
||||
this.toolStrip1.SuspendLayout();
|
||||
this.tabSettings.SuspendLayout();
|
||||
this.fLPSettings.SuspendLayout();
|
||||
this.runStartupPanel.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.uacPictureBox)).BeginInit();
|
||||
this.panel1.SuspendLayout();
|
||||
this.panel2.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.nUDLatency)).BeginInit();
|
||||
@ -177,6 +201,7 @@
|
||||
((System.ComponentModel.ISupportInitialize)(this.nUDXIPorts)).BeginInit();
|
||||
this.flowLayoutPanel1.SuspendLayout();
|
||||
this.tabLog.SuspendLayout();
|
||||
this.panel3.SuspendLayout();
|
||||
this.cMCustomLed.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
@ -200,11 +225,6 @@
|
||||
//
|
||||
resources.ApplyResources(this.chData, "chData");
|
||||
//
|
||||
// tmrUpdate
|
||||
//
|
||||
this.tmrUpdate.Interval = 1;
|
||||
this.tmrUpdate.Tick += new System.EventHandler(this.ControllerStatusChange);
|
||||
//
|
||||
// pnlButton
|
||||
//
|
||||
this.pnlButton.BackColor = System.Drawing.SystemColors.Control;
|
||||
@ -233,7 +253,7 @@
|
||||
resources.ApplyResources(this.btnStartStop, "btnStartStop");
|
||||
this.btnStartStop.Name = "btnStartStop";
|
||||
this.btnStartStop.UseVisualStyleBackColor = true;
|
||||
this.btnStartStop.Click += new System.EventHandler(this.btnStartStop_Click);
|
||||
this.btnStartStop.Click += new System.EventHandler(this.BtnStartStop_Click);
|
||||
//
|
||||
// lbLastMessage
|
||||
//
|
||||
@ -242,13 +262,6 @@
|
||||
this.lbLastMessage.Name = "lbLastMessage";
|
||||
this.lbLastMessage.MouseHover += new System.EventHandler(this.lbLastMessage_MouseHover);
|
||||
//
|
||||
// btnClear
|
||||
//
|
||||
resources.ApplyResources(this.btnClear, "btnClear");
|
||||
this.btnClear.Name = "btnClear";
|
||||
this.btnClear.UseVisualStyleBackColor = true;
|
||||
this.btnClear.Click += new System.EventHandler(this.btnClear_Click);
|
||||
//
|
||||
// notifyIcon1
|
||||
//
|
||||
this.notifyIcon1.BalloonTipIcon = System.Windows.Forms.ToolTipIcon.Info;
|
||||
@ -266,9 +279,12 @@
|
||||
this.editProfileForController2ToolStripMenuItem,
|
||||
this.editProfileForController3ToolStripMenuItem,
|
||||
this.editProfileForController4ToolStripMenuItem,
|
||||
this.toolStripSeparator4,
|
||||
this.disconToolStripMenuItem,
|
||||
this.toolStripSeparator1,
|
||||
this.startToolStripMenuItem,
|
||||
this.openToolStripMenuItem,
|
||||
this.openProgramFolderToolStripMenuItem,
|
||||
this.exitToolStripMenuItem});
|
||||
this.cMTaskbar.Name = "cMTaskbar";
|
||||
resources.ApplyResources(this.cMTaskbar, "cMTaskbar");
|
||||
@ -302,6 +318,49 @@
|
||||
this.editProfileForController4ToolStripMenuItem.Tag = "4";
|
||||
this.editProfileForController4ToolStripMenuItem.Click += new System.EventHandler(this.editMenu_Click);
|
||||
//
|
||||
// toolStripSeparator4
|
||||
//
|
||||
this.toolStripSeparator4.Name = "toolStripSeparator4";
|
||||
resources.ApplyResources(this.toolStripSeparator4, "toolStripSeparator4");
|
||||
//
|
||||
// disconToolStripMenuItem
|
||||
//
|
||||
this.disconToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.discon1toolStripMenuItem,
|
||||
this.discon2ToolStripMenuItem,
|
||||
this.discon3ToolStripMenuItem,
|
||||
this.discon4ToolStripMenuItem});
|
||||
this.disconToolStripMenuItem.Name = "disconToolStripMenuItem";
|
||||
resources.ApplyResources(this.disconToolStripMenuItem, "disconToolStripMenuItem");
|
||||
//
|
||||
// discon1toolStripMenuItem
|
||||
//
|
||||
this.discon1toolStripMenuItem.Name = "discon1toolStripMenuItem";
|
||||
resources.ApplyResources(this.discon1toolStripMenuItem, "discon1toolStripMenuItem");
|
||||
this.discon1toolStripMenuItem.Tag = "0";
|
||||
this.discon1toolStripMenuItem.Click += new System.EventHandler(this.DiscontoolStripMenuItem_Click);
|
||||
//
|
||||
// discon2ToolStripMenuItem
|
||||
//
|
||||
this.discon2ToolStripMenuItem.Name = "discon2ToolStripMenuItem";
|
||||
resources.ApplyResources(this.discon2ToolStripMenuItem, "discon2ToolStripMenuItem");
|
||||
this.discon2ToolStripMenuItem.Tag = "1";
|
||||
this.discon2ToolStripMenuItem.Click += new System.EventHandler(this.DiscontoolStripMenuItem_Click);
|
||||
//
|
||||
// discon3ToolStripMenuItem
|
||||
//
|
||||
this.discon3ToolStripMenuItem.Name = "discon3ToolStripMenuItem";
|
||||
resources.ApplyResources(this.discon3ToolStripMenuItem, "discon3ToolStripMenuItem");
|
||||
this.discon3ToolStripMenuItem.Tag = "2";
|
||||
this.discon3ToolStripMenuItem.Click += new System.EventHandler(this.DiscontoolStripMenuItem_Click);
|
||||
//
|
||||
// discon4ToolStripMenuItem
|
||||
//
|
||||
this.discon4ToolStripMenuItem.Name = "discon4ToolStripMenuItem";
|
||||
resources.ApplyResources(this.discon4ToolStripMenuItem, "discon4ToolStripMenuItem");
|
||||
this.discon4ToolStripMenuItem.Tag = "3";
|
||||
this.discon4ToolStripMenuItem.Click += new System.EventHandler(this.DiscontoolStripMenuItem_Click);
|
||||
//
|
||||
// toolStripSeparator1
|
||||
//
|
||||
this.toolStripSeparator1.Name = "toolStripSeparator1";
|
||||
@ -319,6 +378,12 @@
|
||||
this.openToolStripMenuItem.Name = "openToolStripMenuItem";
|
||||
this.openToolStripMenuItem.Click += new System.EventHandler(this.openToolStripMenuItem_Click);
|
||||
//
|
||||
// openProgramFolderToolStripMenuItem
|
||||
//
|
||||
this.openProgramFolderToolStripMenuItem.Name = "openProgramFolderToolStripMenuItem";
|
||||
resources.ApplyResources(this.openProgramFolderToolStripMenuItem, "openProgramFolderToolStripMenuItem");
|
||||
this.openProgramFolderToolStripMenuItem.Click += new System.EventHandler(this.OpenProgramFolderToolStripMenuItem_Click);
|
||||
//
|
||||
// exitToolStripMenuItem
|
||||
//
|
||||
this.exitToolStripMenuItem.Name = "exitToolStripMenuItem";
|
||||
@ -349,38 +414,30 @@
|
||||
//
|
||||
// tabControllers
|
||||
//
|
||||
this.tabControllers.Controls.Add(this.btnConnectDS4Win10);
|
||||
this.tabControllers.Controls.Add(this.tLPControllers);
|
||||
this.tabControllers.Controls.Add(this.lbNoControllers);
|
||||
resources.ApplyResources(this.tabControllers, "tabControllers");
|
||||
this.tabControllers.Name = "tabControllers";
|
||||
this.tabControllers.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// btnConnectDS4Win10
|
||||
//
|
||||
resources.ApplyResources(this.btnConnectDS4Win10, "btnConnectDS4Win10");
|
||||
this.btnConnectDS4Win10.Name = "btnConnectDS4Win10";
|
||||
this.btnConnectDS4Win10.UseVisualStyleBackColor = true;
|
||||
this.btnConnectDS4Win10.Click += new System.EventHandler(this.btnConnectDS4Win10_Click);
|
||||
//
|
||||
// tLPControllers
|
||||
//
|
||||
resources.ApplyResources(this.tLPControllers, "tLPControllers");
|
||||
this.tLPControllers.Controls.Add(this.bnLight3, 5, 3);
|
||||
this.tLPControllers.Controls.Add(this.bnLight3, 6, 3);
|
||||
this.tLPControllers.Controls.Add(this.pBStatus1, 1, 1);
|
||||
this.tLPControllers.Controls.Add(this.lbPad1, 0, 1);
|
||||
this.tLPControllers.Controls.Add(this.lbPad2, 0, 2);
|
||||
this.tLPControllers.Controls.Add(this.bnEditC3, 4, 3);
|
||||
this.tLPControllers.Controls.Add(this.bnEditC4, 4, 4);
|
||||
this.tLPControllers.Controls.Add(this.bnEditC3, 5, 3);
|
||||
this.tLPControllers.Controls.Add(this.bnEditC4, 5, 4);
|
||||
this.tLPControllers.Controls.Add(this.lbPad3, 0, 3);
|
||||
this.tLPControllers.Controls.Add(this.lbPad4, 0, 4);
|
||||
this.tLPControllers.Controls.Add(this.cBController1, 3, 1);
|
||||
this.tLPControllers.Controls.Add(this.bnEditC2, 4, 2);
|
||||
this.tLPControllers.Controls.Add(this.cBController2, 3, 2);
|
||||
this.tLPControllers.Controls.Add(this.cBController3, 3, 3);
|
||||
this.tLPControllers.Controls.Add(this.bnEditC1, 4, 1);
|
||||
this.tLPControllers.Controls.Add(this.cBController4, 3, 4);
|
||||
this.tLPControllers.Controls.Add(this.lbSelectedProfile, 3, 0);
|
||||
this.tLPControllers.Controls.Add(this.cBController1, 4, 1);
|
||||
this.tLPControllers.Controls.Add(this.bnEditC2, 5, 2);
|
||||
this.tLPControllers.Controls.Add(this.cBController2, 4, 2);
|
||||
this.tLPControllers.Controls.Add(this.cBController3, 4, 3);
|
||||
this.tLPControllers.Controls.Add(this.bnEditC1, 5, 1);
|
||||
this.tLPControllers.Controls.Add(this.cBController4, 4, 4);
|
||||
this.tLPControllers.Controls.Add(this.lbSelectedProfile, 4, 0);
|
||||
this.tLPControllers.Controls.Add(this.lbID, 0, 0);
|
||||
this.tLPControllers.Controls.Add(this.lbStatus, 1, 0);
|
||||
this.tLPControllers.Controls.Add(this.lbBattery, 2, 0);
|
||||
@ -391,9 +448,14 @@
|
||||
this.tLPControllers.Controls.Add(this.pBStatus2, 1, 2);
|
||||
this.tLPControllers.Controls.Add(this.pBStatus3, 1, 3);
|
||||
this.tLPControllers.Controls.Add(this.pBStatus4, 1, 4);
|
||||
this.tLPControllers.Controls.Add(this.bnLight1, 5, 1);
|
||||
this.tLPControllers.Controls.Add(this.bnLight2, 5, 2);
|
||||
this.tLPControllers.Controls.Add(this.bnLight4, 5, 4);
|
||||
this.tLPControllers.Controls.Add(this.bnLight1, 6, 1);
|
||||
this.tLPControllers.Controls.Add(this.bnLight2, 6, 2);
|
||||
this.tLPControllers.Controls.Add(this.bnLight4, 6, 4);
|
||||
this.tLPControllers.Controls.Add(this.lbLinkProfile, 3, 0);
|
||||
this.tLPControllers.Controls.Add(this.linkCB1, 3, 1);
|
||||
this.tLPControllers.Controls.Add(this.linkCB2, 3, 2);
|
||||
this.tLPControllers.Controls.Add(this.linkCB3, 3, 3);
|
||||
this.tLPControllers.Controls.Add(this.linkCB4, 3, 4);
|
||||
this.tLPControllers.Name = "tLPControllers";
|
||||
//
|
||||
// bnLight3
|
||||
@ -435,7 +497,7 @@
|
||||
//
|
||||
resources.ApplyResources(this.bnEditC3, "bnEditC3");
|
||||
this.bnEditC3.Name = "bnEditC3";
|
||||
this.bnEditC3.Tag = "2";
|
||||
this.bnEditC3.Tag = "";
|
||||
this.bnEditC3.UseVisualStyleBackColor = true;
|
||||
this.bnEditC3.Click += new System.EventHandler(this.editButtons_Click);
|
||||
//
|
||||
@ -443,7 +505,7 @@
|
||||
//
|
||||
resources.ApplyResources(this.bnEditC4, "bnEditC4");
|
||||
this.bnEditC4.Name = "bnEditC4";
|
||||
this.bnEditC4.Tag = "3";
|
||||
this.bnEditC4.Tag = "";
|
||||
this.bnEditC4.UseVisualStyleBackColor = true;
|
||||
this.bnEditC4.Click += new System.EventHandler(this.editButtons_Click);
|
||||
//
|
||||
@ -476,7 +538,7 @@
|
||||
//
|
||||
resources.ApplyResources(this.bnEditC2, "bnEditC2");
|
||||
this.bnEditC2.Name = "bnEditC2";
|
||||
this.bnEditC2.Tag = "1";
|
||||
this.bnEditC2.Tag = "";
|
||||
this.bnEditC2.UseVisualStyleBackColor = true;
|
||||
this.bnEditC2.Click += new System.EventHandler(this.editButtons_Click);
|
||||
//
|
||||
@ -502,7 +564,7 @@
|
||||
//
|
||||
resources.ApplyResources(this.bnEditC1, "bnEditC1");
|
||||
this.bnEditC1.Name = "bnEditC1";
|
||||
this.bnEditC1.Tag = "0";
|
||||
this.bnEditC1.Tag = "";
|
||||
this.bnEditC1.UseVisualStyleBackColor = true;
|
||||
this.bnEditC1.Click += new System.EventHandler(this.editButtons_Click);
|
||||
//
|
||||
@ -612,6 +674,43 @@
|
||||
this.bnLight4.UseVisualStyleBackColor = false;
|
||||
this.bnLight4.Click += new System.EventHandler(this.EditCustomLed);
|
||||
//
|
||||
// lbLinkProfile
|
||||
//
|
||||
resources.ApplyResources(this.lbLinkProfile, "lbLinkProfile");
|
||||
this.lbLinkProfile.Name = "lbLinkProfile";
|
||||
//
|
||||
// linkCB1
|
||||
//
|
||||
resources.ApplyResources(this.linkCB1, "linkCB1");
|
||||
this.linkCB1.Name = "linkCB1";
|
||||
this.linkCB1.Tag = "0";
|
||||
this.linkCB1.UseVisualStyleBackColor = true;
|
||||
this.linkCB1.CheckedChanged += new System.EventHandler(this.linkCB_CheckedChanged);
|
||||
//
|
||||
// linkCB2
|
||||
//
|
||||
resources.ApplyResources(this.linkCB2, "linkCB2");
|
||||
this.linkCB2.Name = "linkCB2";
|
||||
this.linkCB2.Tag = "1";
|
||||
this.linkCB2.UseVisualStyleBackColor = true;
|
||||
this.linkCB2.CheckedChanged += new System.EventHandler(this.linkCB_CheckedChanged);
|
||||
//
|
||||
// linkCB3
|
||||
//
|
||||
resources.ApplyResources(this.linkCB3, "linkCB3");
|
||||
this.linkCB3.Name = "linkCB3";
|
||||
this.linkCB3.Tag = "2";
|
||||
this.linkCB3.UseVisualStyleBackColor = true;
|
||||
this.linkCB3.CheckedChanged += new System.EventHandler(this.linkCB_CheckedChanged);
|
||||
//
|
||||
// linkCB4
|
||||
//
|
||||
resources.ApplyResources(this.linkCB4, "linkCB4");
|
||||
this.linkCB4.Name = "linkCB4";
|
||||
this.linkCB4.Tag = "3";
|
||||
this.linkCB4.UseVisualStyleBackColor = true;
|
||||
this.linkCB4.CheckedChanged += new System.EventHandler(this.linkCB_CheckedChanged);
|
||||
//
|
||||
// lbNoControllers
|
||||
//
|
||||
resources.ApplyResources(this.lbNoControllers, "lbNoControllers");
|
||||
@ -632,8 +731,8 @@
|
||||
this.lBProfiles.ContextMenuStrip = this.cMProfile;
|
||||
resources.ApplyResources(this.lBProfiles, "lBProfiles");
|
||||
this.lBProfiles.FormattingEnabled = true;
|
||||
this.lBProfiles.MultiColumn = true;
|
||||
this.lBProfiles.Name = "lBProfiles";
|
||||
this.lBProfiles.SelectedIndexChanged += new System.EventHandler(this.lBProfiles_SelectedIndexChanged);
|
||||
this.lBProfiles.KeyDown += new System.Windows.Forms.KeyEventHandler(this.lBProfiles_KeyDown);
|
||||
this.lBProfiles.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.lBProfiles_MouseDoubleClick);
|
||||
this.lBProfiles.MouseDown += new System.Windows.Forms.MouseEventHandler(this.lBProfiles_MouseDown);
|
||||
@ -795,22 +894,22 @@
|
||||
//
|
||||
// tsBEditProfile
|
||||
//
|
||||
this.tsBEditProfile.Image = global::DS4Windows.Properties.Resources.edit;
|
||||
resources.ApplyResources(this.tsBEditProfile, "tsBEditProfile");
|
||||
this.tsBEditProfile.Image = global::DS4Windows.Properties.Resources.edit;
|
||||
this.tsBEditProfile.Name = "tsBEditProfile";
|
||||
this.tsBEditProfile.Click += new System.EventHandler(this.tsBNEditProfile_Click);
|
||||
//
|
||||
// tsBDeleteProfile
|
||||
//
|
||||
this.tsBDeleteProfile.Image = global::DS4Windows.Properties.Resources.delete;
|
||||
resources.ApplyResources(this.tsBDeleteProfile, "tsBDeleteProfile");
|
||||
this.tsBDeleteProfile.Image = global::DS4Windows.Properties.Resources.delete;
|
||||
this.tsBDeleteProfile.Name = "tsBDeleteProfile";
|
||||
this.tsBDeleteProfile.Click += new System.EventHandler(this.tsBDeleteProfle_Click);
|
||||
//
|
||||
// tSBDupProfile
|
||||
//
|
||||
this.tSBDupProfile.Image = global::DS4Windows.Properties.Resources.copy;
|
||||
resources.ApplyResources(this.tSBDupProfile, "tSBDupProfile");
|
||||
this.tSBDupProfile.Image = global::DS4Windows.Properties.Resources.copy;
|
||||
this.tSBDupProfile.Name = "tSBDupProfile";
|
||||
this.tSBDupProfile.Click += new System.EventHandler(this.tSBDupProfile_Click);
|
||||
//
|
||||
@ -823,8 +922,8 @@
|
||||
//
|
||||
// tSBExportProfile
|
||||
//
|
||||
this.tSBExportProfile.Image = global::DS4Windows.Properties.Resources.export;
|
||||
resources.ApplyResources(this.tSBExportProfile, "tSBExportProfile");
|
||||
this.tSBExportProfile.Image = global::DS4Windows.Properties.Resources.export;
|
||||
this.tSBExportProfile.Name = "tSBExportProfile";
|
||||
this.tSBExportProfile.Click += new System.EventHandler(this.tSBExportProfile_Click);
|
||||
//
|
||||
@ -847,17 +946,19 @@
|
||||
this.fLPSettings.Controls.Add(this.hideDS4CheckBox);
|
||||
this.fLPSettings.Controls.Add(this.cBSwipeProfiles);
|
||||
this.fLPSettings.Controls.Add(this.StartWindowsCheckBox);
|
||||
this.fLPSettings.Controls.Add(this.startMinimizedCheckBox);
|
||||
this.fLPSettings.Controls.Add(this.runStartupPanel);
|
||||
this.fLPSettings.Controls.Add(this.panel1);
|
||||
this.fLPSettings.Controls.Add(this.cBDisconnectBT);
|
||||
this.fLPSettings.Controls.Add(this.panel2);
|
||||
this.fLPSettings.Controls.Add(this.startMinimizedCheckBox);
|
||||
this.fLPSettings.Controls.Add(this.mintoTaskCheckBox);
|
||||
this.fLPSettings.Controls.Add(this.cBCloseMini);
|
||||
this.fLPSettings.Controls.Add(this.cBQuickCharge);
|
||||
this.fLPSettings.Controls.Add(this.cBUseWhiteIcon);
|
||||
this.fLPSettings.Controls.Add(this.cBDownloadLangauge);
|
||||
this.fLPSettings.Controls.Add(this.cBUpdate);
|
||||
this.fLPSettings.Controls.Add(this.pNUpdate);
|
||||
this.fLPSettings.Controls.Add(this.pnlXIPorts);
|
||||
this.fLPSettings.Controls.Add(this.languagePackComboBox1);
|
||||
this.fLPSettings.Controls.Add(this.flowLayoutPanel1);
|
||||
this.fLPSettings.Name = "fLPSettings";
|
||||
//
|
||||
@ -865,7 +966,7 @@
|
||||
//
|
||||
resources.ApplyResources(this.hideDS4CheckBox, "hideDS4CheckBox");
|
||||
this.hideDS4CheckBox.Name = "hideDS4CheckBox";
|
||||
this.hideDS4CheckBox.UseVisualStyleBackColor = true;
|
||||
this.hideDS4CheckBox.UseVisualStyleBackColor = false;
|
||||
this.hideDS4CheckBox.CheckedChanged += new System.EventHandler(this.hideDS4CheckBox_CheckedChanged);
|
||||
//
|
||||
// cBSwipeProfiles
|
||||
@ -874,7 +975,7 @@
|
||||
this.cBSwipeProfiles.Checked = true;
|
||||
this.cBSwipeProfiles.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||
this.cBSwipeProfiles.Name = "cBSwipeProfiles";
|
||||
this.cBSwipeProfiles.UseVisualStyleBackColor = true;
|
||||
this.cBSwipeProfiles.UseVisualStyleBackColor = false;
|
||||
this.cBSwipeProfiles.CheckedChanged += new System.EventHandler(this.cBSwipeProfiles_CheckedChanged);
|
||||
//
|
||||
// StartWindowsCheckBox
|
||||
@ -884,12 +985,43 @@
|
||||
this.StartWindowsCheckBox.UseVisualStyleBackColor = true;
|
||||
this.StartWindowsCheckBox.CheckedChanged += new System.EventHandler(this.StartWindowsCheckBox_CheckedChanged);
|
||||
//
|
||||
// startMinimizedCheckBox
|
||||
// runStartupPanel
|
||||
//
|
||||
resources.ApplyResources(this.startMinimizedCheckBox, "startMinimizedCheckBox");
|
||||
this.startMinimizedCheckBox.Name = "startMinimizedCheckBox";
|
||||
this.startMinimizedCheckBox.UseVisualStyleBackColor = true;
|
||||
this.startMinimizedCheckBox.CheckedChanged += new System.EventHandler(this.startMinimizedCheckBox_CheckedChanged);
|
||||
this.runStartupPanel.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.runStartupPanel.Controls.Add(this.uacPictureBox);
|
||||
this.runStartupPanel.Controls.Add(this.runStartTaskRadio);
|
||||
this.runStartupPanel.Controls.Add(this.label1);
|
||||
this.runStartupPanel.Controls.Add(this.runStartProgRadio);
|
||||
resources.ApplyResources(this.runStartupPanel, "runStartupPanel");
|
||||
this.runStartupPanel.Name = "runStartupPanel";
|
||||
//
|
||||
// uacPictureBox
|
||||
//
|
||||
resources.ApplyResources(this.uacPictureBox, "uacPictureBox");
|
||||
this.uacPictureBox.Name = "uacPictureBox";
|
||||
this.uacPictureBox.TabStop = false;
|
||||
//
|
||||
// runStartTaskRadio
|
||||
//
|
||||
resources.ApplyResources(this.runStartTaskRadio, "runStartTaskRadio");
|
||||
this.runStartTaskRadio.Name = "runStartTaskRadio";
|
||||
this.runStartTaskRadio.TabStop = true;
|
||||
this.runStartTaskRadio.UseVisualStyleBackColor = false;
|
||||
this.runStartTaskRadio.Click += new System.EventHandler(this.runStartTaskRadio_Click);
|
||||
//
|
||||
// label1
|
||||
//
|
||||
resources.ApplyResources(this.label1, "label1");
|
||||
this.label1.Name = "label1";
|
||||
//
|
||||
// runStartProgRadio
|
||||
//
|
||||
resources.ApplyResources(this.runStartProgRadio, "runStartProgRadio");
|
||||
this.runStartProgRadio.Checked = true;
|
||||
this.runStartProgRadio.Name = "runStartProgRadio";
|
||||
this.runStartProgRadio.TabStop = true;
|
||||
this.runStartProgRadio.UseVisualStyleBackColor = false;
|
||||
this.runStartProgRadio.Click += new System.EventHandler(this.runStartProgRadio_Click);
|
||||
//
|
||||
// panel1
|
||||
//
|
||||
@ -940,7 +1072,7 @@
|
||||
0});
|
||||
this.nUDLatency.Name = "nUDLatency";
|
||||
this.nUDLatency.Value = new decimal(new int[] {
|
||||
10,
|
||||
20,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
@ -957,9 +1089,22 @@
|
||||
this.cBFlashWhenLate.Checked = true;
|
||||
this.cBFlashWhenLate.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||
this.cBFlashWhenLate.Name = "cBFlashWhenLate";
|
||||
this.cBFlashWhenLate.UseVisualStyleBackColor = true;
|
||||
this.cBFlashWhenLate.UseVisualStyleBackColor = false;
|
||||
this.cBFlashWhenLate.CheckedChanged += new System.EventHandler(this.cBFlashWhenLate_CheckedChanged);
|
||||
//
|
||||
// startMinimizedCheckBox
|
||||
//
|
||||
resources.ApplyResources(this.startMinimizedCheckBox, "startMinimizedCheckBox");
|
||||
this.startMinimizedCheckBox.Name = "startMinimizedCheckBox";
|
||||
this.startMinimizedCheckBox.UseVisualStyleBackColor = true;
|
||||
this.startMinimizedCheckBox.CheckedChanged += new System.EventHandler(this.startMinimizedCheckBox_CheckedChanged);
|
||||
//
|
||||
// mintoTaskCheckBox
|
||||
//
|
||||
resources.ApplyResources(this.mintoTaskCheckBox, "mintoTaskCheckBox");
|
||||
this.mintoTaskCheckBox.Name = "mintoTaskCheckBox";
|
||||
this.mintoTaskCheckBox.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// cBCloseMini
|
||||
//
|
||||
resources.ApplyResources(this.cBCloseMini, "cBCloseMini");
|
||||
@ -974,20 +1119,18 @@
|
||||
this.cBQuickCharge.UseVisualStyleBackColor = true;
|
||||
this.cBQuickCharge.CheckedChanged += new System.EventHandler(this.cBQuickCharge_CheckedChanged);
|
||||
//
|
||||
// cBDownloadLangauge
|
||||
// cBUseWhiteIcon
|
||||
//
|
||||
resources.ApplyResources(this.cBDownloadLangauge, "cBDownloadLangauge");
|
||||
this.cBDownloadLangauge.Checked = true;
|
||||
this.cBDownloadLangauge.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||
this.cBDownloadLangauge.Name = "cBDownloadLangauge";
|
||||
this.cBDownloadLangauge.UseVisualStyleBackColor = true;
|
||||
this.cBDownloadLangauge.CheckedChanged += new System.EventHandler(this.cBDownloadLangauge_CheckedChanged);
|
||||
resources.ApplyResources(this.cBUseWhiteIcon, "cBUseWhiteIcon");
|
||||
this.cBUseWhiteIcon.Name = "cBUseWhiteIcon";
|
||||
this.cBUseWhiteIcon.UseVisualStyleBackColor = true;
|
||||
this.cBUseWhiteIcon.CheckedChanged += new System.EventHandler(this.cBUseWhiteIcon_CheckedChanged);
|
||||
//
|
||||
// cBUpdate
|
||||
//
|
||||
resources.ApplyResources(this.cBUpdate, "cBUpdate");
|
||||
this.cBUpdate.Name = "cBUpdate";
|
||||
this.cBUpdate.UseVisualStyleBackColor = true;
|
||||
this.cBUpdate.UseVisualStyleBackColor = false;
|
||||
this.cBUpdate.CheckedChanged += new System.EventHandler(this.cBUpdate_CheckedChanged);
|
||||
//
|
||||
// pNUpdate
|
||||
@ -1032,8 +1175,6 @@
|
||||
this.pnlXIPorts.Controls.Add(this.lbLastXIPort);
|
||||
resources.ApplyResources(this.pnlXIPorts, "pnlXIPorts");
|
||||
this.pnlXIPorts.Name = "pnlXIPorts";
|
||||
this.pnlXIPorts.MouseEnter += new System.EventHandler(this.pnlXIPorts_MouseEnter);
|
||||
this.pnlXIPorts.MouseLeave += new System.EventHandler(this.pnlXIPorts_MouseLeave);
|
||||
//
|
||||
// lbUseXIPorts
|
||||
//
|
||||
@ -1068,21 +1209,26 @@
|
||||
resources.ApplyResources(this.lbLastXIPort, "lbLastXIPort");
|
||||
this.lbLastXIPort.Name = "lbLastXIPort";
|
||||
//
|
||||
// cBUseWhiteIcon
|
||||
// languagePackComboBox1
|
||||
//
|
||||
resources.ApplyResources(this.cBUseWhiteIcon, "cBUseWhiteIcon");
|
||||
this.cBUseWhiteIcon.Name = "cBUseWhiteIcon";
|
||||
this.cBUseWhiteIcon.UseVisualStyleBackColor = true;
|
||||
this.cBUseWhiteIcon.CheckedChanged += new System.EventHandler(this.cBUseWhiteIcon_CheckedChanged);
|
||||
resources.ApplyResources(this.languagePackComboBox1, "languagePackComboBox1");
|
||||
this.languagePackComboBox1.Name = "languagePackComboBox1";
|
||||
this.languagePackComboBox1.SelectedValueChanged += new System.EventHandler(this.languagePackComboBox1_SelectedValueChanged);
|
||||
//
|
||||
// flowLayoutPanel1
|
||||
//
|
||||
resources.ApplyResources(this.flowLayoutPanel1, "flowLayoutPanel1");
|
||||
this.flowLayoutPanel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.flowLayoutPanel1.Controls.Add(this.linkProfiles);
|
||||
this.flowLayoutPanel1.Controls.Add(this.lnkControllers);
|
||||
this.flowLayoutPanel1.Controls.Add(this.linkUninstall);
|
||||
this.flowLayoutPanel1.Controls.Add(this.linkSetup);
|
||||
this.flowLayoutPanel1.Controls.Add(this.lLBUpdate);
|
||||
this.flowLayoutPanel1.Controls.Add(this.linkSplitLabel);
|
||||
this.flowLayoutPanel1.Controls.Add(this.hidGuardWhiteList);
|
||||
this.flowLayoutPanel1.Controls.Add(this.clrHidGuardWlistLinkLabel);
|
||||
this.flowLayoutPanel1.Controls.Add(this.hidGuardRegLinkLabel);
|
||||
this.flowLayoutPanel1.ForeColor = System.Drawing.SystemColors.ControlText;
|
||||
this.flowLayoutPanel1.Name = "flowLayoutPanel1";
|
||||
//
|
||||
// linkProfiles
|
||||
@ -1120,14 +1266,64 @@
|
||||
this.lLBUpdate.TabStop = true;
|
||||
this.lLBUpdate.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.lLBUpdate_LinkClicked);
|
||||
//
|
||||
// linkSplitLabel
|
||||
//
|
||||
resources.ApplyResources(this.linkSplitLabel, "linkSplitLabel");
|
||||
this.linkSplitLabel.BackColor = System.Drawing.SystemColors.ActiveBorder;
|
||||
this.linkSplitLabel.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
|
||||
this.linkSplitLabel.ForeColor = System.Drawing.SystemColors.ControlText;
|
||||
this.linkSplitLabel.Name = "linkSplitLabel";
|
||||
//
|
||||
// hidGuardWhiteList
|
||||
//
|
||||
resources.ApplyResources(this.hidGuardWhiteList, "hidGuardWhiteList");
|
||||
this.hidGuardWhiteList.Name = "hidGuardWhiteList";
|
||||
this.hidGuardWhiteList.TabStop = true;
|
||||
this.hidGuardWhiteList.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.HidGuardWhiteList_LinkClicked);
|
||||
//
|
||||
// clrHidGuardWlistLinkLabel
|
||||
//
|
||||
resources.ApplyResources(this.clrHidGuardWlistLinkLabel, "clrHidGuardWlistLinkLabel");
|
||||
this.clrHidGuardWlistLinkLabel.Name = "clrHidGuardWlistLinkLabel";
|
||||
this.clrHidGuardWlistLinkLabel.TabStop = true;
|
||||
this.clrHidGuardWlistLinkLabel.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.ClrHidGuardWlistLinkLabel_LinkClicked);
|
||||
//
|
||||
// hidGuardRegLinkLabel
|
||||
//
|
||||
resources.ApplyResources(this.hidGuardRegLinkLabel, "hidGuardRegLinkLabel");
|
||||
this.hidGuardRegLinkLabel.Name = "hidGuardRegLinkLabel";
|
||||
this.hidGuardRegLinkLabel.TabStop = true;
|
||||
this.hidGuardRegLinkLabel.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.HidGuardRegLinkLabel_LinkClicked);
|
||||
//
|
||||
// tabLog
|
||||
//
|
||||
this.tabLog.Controls.Add(this.lvDebug);
|
||||
this.tabLog.Controls.Add(this.btnClear);
|
||||
this.tabLog.Controls.Add(this.panel3);
|
||||
resources.ApplyResources(this.tabLog, "tabLog");
|
||||
this.tabLog.Name = "tabLog";
|
||||
this.tabLog.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// panel3
|
||||
//
|
||||
this.panel3.Controls.Add(this.exportLogTxtBtn);
|
||||
this.panel3.Controls.Add(this.btnClear);
|
||||
resources.ApplyResources(this.panel3, "panel3");
|
||||
this.panel3.Name = "panel3";
|
||||
//
|
||||
// exportLogTxtBtn
|
||||
//
|
||||
resources.ApplyResources(this.exportLogTxtBtn, "exportLogTxtBtn");
|
||||
this.exportLogTxtBtn.Name = "exportLogTxtBtn";
|
||||
this.exportLogTxtBtn.UseVisualStyleBackColor = true;
|
||||
this.exportLogTxtBtn.Click += new System.EventHandler(this.exportLogTxtBtn_Click);
|
||||
//
|
||||
// btnClear
|
||||
//
|
||||
resources.ApplyResources(this.btnClear, "btnClear");
|
||||
this.btnClear.Name = "btnClear";
|
||||
this.btnClear.UseVisualStyleBackColor = true;
|
||||
this.btnClear.Click += new System.EventHandler(this.BtnClear_Click);
|
||||
//
|
||||
// saveProfiles
|
||||
//
|
||||
resources.ApplyResources(this.saveProfiles, "saveProfiles");
|
||||
@ -1157,16 +1353,12 @@
|
||||
resources.ApplyResources(this.useCustomColorToolStripMenuItem, "useCustomColorToolStripMenuItem");
|
||||
this.useCustomColorToolStripMenuItem.Click += new System.EventHandler(this.useCustomColorToolStripMenuItem_Click);
|
||||
//
|
||||
// advColorDialog
|
||||
//
|
||||
this.advColorDialog.OnUpdateColor += new DS4Windows.AdvancedColorDialog.ColorUpdateHandler(this.advColorDialog_OnUpdateColor);
|
||||
//
|
||||
// DS4Form
|
||||
//
|
||||
this.AllowDrop = true;
|
||||
resources.ApplyResources(this, "$this");
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
|
||||
this.BackColor = System.Drawing.Color.White;
|
||||
this.BackColor = System.Drawing.SystemColors.Window;
|
||||
this.Controls.Add(this.tabMain);
|
||||
this.Controls.Add(this.pnlButton);
|
||||
this.Name = "DS4Form";
|
||||
@ -1179,7 +1371,6 @@
|
||||
this.cMTaskbar.ResumeLayout(false);
|
||||
this.tabMain.ResumeLayout(false);
|
||||
this.tabControllers.ResumeLayout(false);
|
||||
this.tabControllers.PerformLayout();
|
||||
this.tLPControllers.ResumeLayout(false);
|
||||
this.tLPControllers.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pBStatus1)).EndInit();
|
||||
@ -1196,6 +1387,9 @@
|
||||
this.tabSettings.ResumeLayout(false);
|
||||
this.fLPSettings.ResumeLayout(false);
|
||||
this.fLPSettings.PerformLayout();
|
||||
this.runStartupPanel.ResumeLayout(false);
|
||||
this.runStartupPanel.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.uacPictureBox)).EndInit();
|
||||
this.panel1.ResumeLayout(false);
|
||||
this.panel1.PerformLayout();
|
||||
this.panel2.ResumeLayout(false);
|
||||
@ -1210,6 +1404,7 @@
|
||||
this.flowLayoutPanel1.ResumeLayout(false);
|
||||
this.flowLayoutPanel1.PerformLayout();
|
||||
this.tabLog.ResumeLayout(false);
|
||||
this.panel3.ResumeLayout(false);
|
||||
this.cMCustomLed.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
@ -1220,10 +1415,8 @@
|
||||
private System.Windows.Forms.ListView lvDebug;
|
||||
private System.Windows.Forms.ColumnHeader chTime;
|
||||
private System.Windows.Forms.ColumnHeader chData;
|
||||
private System.Windows.Forms.Timer tmrUpdate;
|
||||
private System.Windows.Forms.Panel pnlButton;
|
||||
private System.Windows.Forms.Button btnStartStop;
|
||||
private System.Windows.Forms.Button btnClear;
|
||||
private System.Windows.Forms.NotifyIcon notifyIcon1;
|
||||
private System.Windows.Forms.ContextMenuStrip cMTaskbar;
|
||||
private System.Windows.Forms.ToolStripMenuItem openToolStripMenuItem;
|
||||
@ -1264,7 +1457,6 @@
|
||||
private System.Windows.Forms.Label lbSelectedProfile;
|
||||
private System.Windows.Forms.Label lbID;
|
||||
private System.Windows.Forms.Label lbStatus;
|
||||
private System.Windows.Forms.Label lbBattery;
|
||||
private System.Windows.Forms.Label lbBatt1;
|
||||
private System.Windows.Forms.Label lbBatt2;
|
||||
private System.Windows.Forms.Label lbBatt3;
|
||||
@ -1322,7 +1514,6 @@
|
||||
private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1;
|
||||
private System.Windows.Forms.Label lbNoControllers;
|
||||
private System.Windows.Forms.ToolTip toolTip1;
|
||||
private System.Windows.Forms.CheckBox cBDownloadLangauge;
|
||||
private System.Windows.Forms.CheckBox cBFlashWhenLate;
|
||||
private System.Windows.Forms.Panel panel1;
|
||||
private System.Windows.Forms.Label lbNotifications;
|
||||
@ -1330,7 +1521,6 @@
|
||||
private System.Windows.Forms.Panel panel2;
|
||||
private System.Windows.Forms.NumericUpDown nUDLatency;
|
||||
private System.Windows.Forms.Label lbMsLatency;
|
||||
private System.Windows.Forms.Button btnConnectDS4Win10;
|
||||
private System.Windows.Forms.Button bnLight3;
|
||||
private System.Windows.Forms.Button bnLight1;
|
||||
private System.Windows.Forms.Button bnLight2;
|
||||
@ -1340,6 +1530,33 @@
|
||||
private System.Windows.Forms.ToolStripMenuItem useCustomColorToolStripMenuItem;
|
||||
private AdvancedColorDialog advColorDialog;
|
||||
private System.Windows.Forms.CheckBox cBUseWhiteIcon;
|
||||
private System.Windows.Forms.Panel runStartupPanel;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private System.Windows.Forms.RadioButton runStartProgRadio;
|
||||
private System.Windows.Forms.RadioButton runStartTaskRadio;
|
||||
private System.Windows.Forms.PictureBox uacPictureBox;
|
||||
private System.Windows.Forms.Label lbBattery;
|
||||
private System.Windows.Forms.Label lbLinkProfile;
|
||||
private System.Windows.Forms.CheckBox linkCB1;
|
||||
private System.Windows.Forms.CheckBox linkCB2;
|
||||
private System.Windows.Forms.CheckBox linkCB3;
|
||||
private System.Windows.Forms.CheckBox linkCB4;
|
||||
private System.Windows.Forms.Panel panel3;
|
||||
private System.Windows.Forms.Button exportLogTxtBtn;
|
||||
private System.Windows.Forms.Button btnClear;
|
||||
private DS4Forms.LanguagePackComboBox languagePackComboBox1;
|
||||
private System.Windows.Forms.LinkLabel hidGuardWhiteList;
|
||||
private System.Windows.Forms.LinkLabel clrHidGuardWlistLinkLabel;
|
||||
private System.Windows.Forms.LinkLabel hidGuardRegLinkLabel;
|
||||
private System.Windows.Forms.Label linkSplitLabel;
|
||||
private System.Windows.Forms.ToolStripMenuItem openProgramFolderToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator4;
|
||||
private System.Windows.Forms.ToolStripMenuItem disconToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem discon1toolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem discon2ToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem discon3ToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem discon4ToolStripMenuItem;
|
||||
private System.Windows.Forms.CheckBox mintoTaskCheckBox;
|
||||
//private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem2;
|
||||
}
|
||||
}
|
||||
|
@ -196,9 +196,6 @@
|
||||
<data name="tabControllers.Text" xml:space="preserve">
|
||||
<value>الأيادي</value>
|
||||
</data>
|
||||
<data name="btnConnectDS4Win10.Text" xml:space="preserve">
|
||||
<value>وصل اليد بشكل حصري (تجريبي)</value>
|
||||
</data>
|
||||
<data name="bnLight3.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1046, 94</value>
|
||||
</data>
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
@ -117,28 +117,184 @@
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="chTime.Text" xml:space="preserve">
|
||||
<value>Čas</value>
|
||||
</data>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="lbLastMessage.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>861, 22</value>
|
||||
<data name="assignToController1ToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>214, 26</value>
|
||||
</data>
|
||||
<data name="llbHelp.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>874, 11</value>
|
||||
<data name="assignToController1ToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Přiřadit ovladači č.1</value>
|
||||
</data>
|
||||
<data name="llbHelp.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>168, 17</value>
|
||||
<data name="assignToController2ToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>214, 26</value>
|
||||
</data>
|
||||
<data name="llbHelp.Text" xml:space="preserve">
|
||||
<value>Kláv. zkratky/O programu</value>
|
||||
<data name="assignToController2ToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Přiřadit ovladači č.2</value>
|
||||
</data>
|
||||
<data name="assignToController3ToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>214, 26</value>
|
||||
</data>
|
||||
<data name="assignToController3ToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Přiřadit ovladači č.3</value>
|
||||
</data>
|
||||
<data name="assignToController4ToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>214, 26</value>
|
||||
</data>
|
||||
<data name="assignToController4ToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Přiřadit ovladači č.4</value>
|
||||
</data>
|
||||
<data name="bnEditC1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1018, 22</value>
|
||||
</data>
|
||||
<data name="bnEditC1.Text" xml:space="preserve">
|
||||
<value>Změnit</value>
|
||||
</data>
|
||||
<data name="bnEditC2.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1018, 58</value>
|
||||
</data>
|
||||
<data name="bnEditC2.Text" xml:space="preserve">
|
||||
<value>Změnit</value>
|
||||
</data>
|
||||
<data name="bnEditC3.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1018, 94</value>
|
||||
</data>
|
||||
<data name="bnEditC3.Text" xml:space="preserve">
|
||||
<value>Změnit</value>
|
||||
</data>
|
||||
<data name="bnEditC4.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1018, 130</value>
|
||||
</data>
|
||||
<data name="bnEditC4.Text" xml:space="preserve">
|
||||
<value>Změnit</value>
|
||||
</data>
|
||||
<data name="bnLight1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1072, 22</value>
|
||||
</data>
|
||||
<data name="bnLight1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>46, 28</value>
|
||||
</data>
|
||||
<data name="bnLight2.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1072, 58</value>
|
||||
</data>
|
||||
<data name="bnLight2.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>46, 28</value>
|
||||
</data>
|
||||
<data name="bnLight3.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1072, 94</value>
|
||||
</data>
|
||||
<data name="bnLight3.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>46, 28</value>
|
||||
</data>
|
||||
<data name="bnLight4.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1072, 130</value>
|
||||
</data>
|
||||
<data name="bnLight4.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>46, 28</value>
|
||||
</data>
|
||||
<data name="btnClear.Text" xml:space="preserve">
|
||||
<value>Vymazat</value>
|
||||
</data>
|
||||
<data name="btnStartStop.Text" xml:space="preserve">
|
||||
<value>Start</value>
|
||||
</data>
|
||||
<data name="cBCloseMini.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>181, 21</value>
|
||||
</data>
|
||||
<data name="cBCloseMini.Text" xml:space="preserve">
|
||||
<value>Zavřít při minimalizování</value>
|
||||
</data>
|
||||
<data name="cBController1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>872, 23</value>
|
||||
</data>
|
||||
<data name="cBController2.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>872, 59</value>
|
||||
</data>
|
||||
<data name="cBController3.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>872, 95</value>
|
||||
</data>
|
||||
<data name="cBController4.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>872, 131</value>
|
||||
</data>
|
||||
<data name="cBDisconnectBT.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>201, 21</value>
|
||||
</data>
|
||||
<data name="cBDisconnectBT.Text" xml:space="preserve">
|
||||
<value>Odpojit od BT při zastavení</value>
|
||||
</data>
|
||||
<data name="cBDownloadLangauge.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>348, 21</value>
|
||||
</data>
|
||||
<data name="cBDownloadLangauge.Text" xml:space="preserve">
|
||||
<value>Při aktualizaci stáhnout také nové jazykové balíčky</value>
|
||||
</data>
|
||||
<data name="cBFlashWhenLate.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>177, 21</value>
|
||||
</data>
|
||||
<data name="cBFlashWhenLate.Text" xml:space="preserve">
|
||||
<value>Blikat při vysoké latenci</value>
|
||||
</data>
|
||||
<data name="cBoxNotifications.Items" xml:space="preserve">
|
||||
<value>Žádný</value>
|
||||
</data>
|
||||
<data name="cBoxNotifications.Items1" xml:space="preserve">
|
||||
<value>Pouze varování</value>
|
||||
</data>
|
||||
<data name="cBoxNotifications.Items2" xml:space="preserve">
|
||||
<value>Vše</value>
|
||||
</data>
|
||||
<data name="cBQuickCharge.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>126, 21</value>
|
||||
</data>
|
||||
<data name="cBQuickCharge.Text" xml:space="preserve">
|
||||
<value>Rychlé nabíjení</value>
|
||||
</data>
|
||||
<data name="cBSwipeProfiles.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>289, 21</value>
|
||||
</data>
|
||||
<data name="cBSwipeProfiles.Text" xml:space="preserve">
|
||||
<value>Pro změnu profilu přejeďte po touchpadu</value>
|
||||
</data>
|
||||
<data name="cBUpdate.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>253, 21</value>
|
||||
</data>
|
||||
<data name="cBUpdate.Text" xml:space="preserve">
|
||||
<value>Při spuštění kontrolovat aktualizace</value>
|
||||
</data>
|
||||
<data name="cBUpdateTime.Items" xml:space="preserve">
|
||||
<value>hodin</value>
|
||||
</data>
|
||||
<data name="cBUpdateTime.Items1" xml:space="preserve">
|
||||
<value>dní</value>
|
||||
</data>
|
||||
<data name="cBUpdateTime.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>211, 0</value>
|
||||
</data>
|
||||
<data name="chData.Text" xml:space="preserve">
|
||||
<value>Data</value>
|
||||
</data>
|
||||
<data name="chTime.Text" xml:space="preserve">
|
||||
<value>Čas</value>
|
||||
</data>
|
||||
<data name="cMCustomLed.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>214, 56</value>
|
||||
</data>
|
||||
<data name="cMProfile.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>215, 264</value>
|
||||
</data>
|
||||
<data name="cMTaskbar.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>304, 192</value>
|
||||
</data>
|
||||
<data name="deleteToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>214, 26</value>
|
||||
</data>
|
||||
<data name="deleteToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Odstranit (Del)</value>
|
||||
</data>
|
||||
<data name="duplicateToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>214, 26</value>
|
||||
</data>
|
||||
<data name="duplicateToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Duplikovat (Ctrl+D)</value>
|
||||
</data>
|
||||
<data name="editProfileForController1ToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>303, 26</value>
|
||||
</data>
|
||||
@ -163,17 +319,11 @@
|
||||
<data name="editProfileForController4ToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Upravit profil ovladače č. 4</value>
|
||||
</data>
|
||||
<data name="toolStripSeparator1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>300, 6</value>
|
||||
<data name="editToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>214, 26</value>
|
||||
</data>
|
||||
<data name="startToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>303, 26</value>
|
||||
</data>
|
||||
<data name="openToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>303, 26</value>
|
||||
</data>
|
||||
<data name="openToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Otevřít</value>
|
||||
<data name="editToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Změnit</value>
|
||||
</data>
|
||||
<data name="exitToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>303, 26</value>
|
||||
@ -181,56 +331,80 @@
|
||||
<data name="exitToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Ukončit (prostřední tlačítko myši)</value>
|
||||
</data>
|
||||
<data name="tabControllers.Text" xml:space="preserve">
|
||||
<value>Ovladače</value>
|
||||
<data name="exportToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>214, 26</value>
|
||||
</data>
|
||||
<data name="btnConnectDS4Win10.Text" xml:space="preserve">
|
||||
<value>Připojit výhradně k DS4 (experimentální funkce)</value>
|
||||
<data name="exportToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Exportovat</value>
|
||||
</data>
|
||||
<data name="bnLight3.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1072, 94</value>
|
||||
<data name="flowLayoutPanel1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>369, 13</value>
|
||||
</data>
|
||||
<data name="bnLight3.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>46, 28</value>
|
||||
<data name="flowLayoutPanel1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>185, 85</value>
|
||||
</data>
|
||||
<data name="pBStatus1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>522, 26</value>
|
||||
<data name="hideDS4CheckBox.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>146, 21</value>
|
||||
</data>
|
||||
<data name="bnEditC3.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1018, 94</value>
|
||||
<data name="hideDS4CheckBox.Text" xml:space="preserve">
|
||||
<value>Skrýt DS4 ovladač</value>
|
||||
</data>
|
||||
<data name="bnEditC3.Text" xml:space="preserve">
|
||||
<value>Změnit</value>
|
||||
<data name="importToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>214, 26</value>
|
||||
</data>
|
||||
<data name="bnEditC4.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1018, 130</value>
|
||||
<data name="importToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Importovat</value>
|
||||
</data>
|
||||
<data name="bnEditC4.Text" xml:space="preserve">
|
||||
<value>Změnit</value>
|
||||
<data name="languagePackComboBox1.InvariantCultureText" xml:space="preserve">
|
||||
<value>Ne (anglické UI)</value>
|
||||
</data>
|
||||
<data name="cBController1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>872, 23</value>
|
||||
<data name="languagePackComboBox1.LabelText" xml:space="preserve">
|
||||
<value>Použít jazykový balíček</value>
|
||||
</data>
|
||||
<data name="bnEditC2.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1018, 58</value>
|
||||
<data name="lbBatt1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>740, 27</value>
|
||||
</data>
|
||||
<data name="bnEditC2.Text" xml:space="preserve">
|
||||
<value>Změnit</value>
|
||||
<data name="lbBatt2.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>740, 63</value>
|
||||
</data>
|
||||
<data name="cBController2.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>872, 59</value>
|
||||
<data name="lbBatt3.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>740, 99</value>
|
||||
</data>
|
||||
<data name="cBController3.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>872, 95</value>
|
||||
<data name="lbBatt4.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>740, 135</value>
|
||||
</data>
|
||||
<data name="bnEditC1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1018, 22</value>
|
||||
<data name="lbBattery.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>732, 0</value>
|
||||
</data>
|
||||
<data name="bnEditC1.Text" xml:space="preserve">
|
||||
<value>Změnit</value>
|
||||
<data name="lbBattery.Text" xml:space="preserve">
|
||||
<value>Baterie</value>
|
||||
</data>
|
||||
<data name="cBController4.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>872, 131</value>
|
||||
<data name="lbCheckEvery.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>128, 17</value>
|
||||
</data>
|
||||
<data name="lbCheckEvery.Text" xml:space="preserve">
|
||||
<value>Kontrolovat kažých</value>
|
||||
</data>
|
||||
<data name="lbID.Text" xml:space="preserve">
|
||||
<value>ID</value>
|
||||
</data>
|
||||
<data name="lbLastMessage.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>861, 22</value>
|
||||
</data>
|
||||
<data name="lbLastXIPort.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>209, 4</value>
|
||||
</data>
|
||||
<data name="lbMsLatency.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>237, 5</value>
|
||||
</data>
|
||||
<data name="lbNoControllers.Text" xml:space="preserve">
|
||||
<value>Žádné připojené ovladače (max. 4)</value>
|
||||
</data>
|
||||
<data name="lbNotifications.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>125, 17</value>
|
||||
</data>
|
||||
<data name="lbNotifications.Text" xml:space="preserve">
|
||||
<value>Zobrazit oznámení</value>
|
||||
</data>
|
||||
<data name="lbSelectedProfile.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>886, 0</value>
|
||||
@ -250,23 +424,77 @@
|
||||
<data name="lbStatus.Text" xml:space="preserve">
|
||||
<value>Stav</value>
|
||||
</data>
|
||||
<data name="lbBattery.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>732, 0</value>
|
||||
<data name="lbUseXIPorts.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>127, 17</value>
|
||||
</data>
|
||||
<data name="lbBattery.Text" xml:space="preserve">
|
||||
<value>Baterie</value>
|
||||
<data name="lbUseXIPorts.Text" xml:space="preserve">
|
||||
<value>Použít Xinput porty</value>
|
||||
</data>
|
||||
<data name="lbBatt1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>740, 27</value>
|
||||
<data name="linkProfiles.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>93, 17</value>
|
||||
</data>
|
||||
<data name="lbBatt2.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>740, 63</value>
|
||||
<data name="linkProfiles.Text" xml:space="preserve">
|
||||
<value>Složka profilu</value>
|
||||
</data>
|
||||
<data name="lbBatt3.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>740, 99</value>
|
||||
<data name="linkSetup.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>132, 17</value>
|
||||
</data>
|
||||
<data name="lbBatt4.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>740, 135</value>
|
||||
<data name="linkSetup.Text" xml:space="preserve">
|
||||
<value>Nastavení ovladače</value>
|
||||
</data>
|
||||
<data name="linkUninstall.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>177, 17</value>
|
||||
</data>
|
||||
<data name="linkUninstall.Text" xml:space="preserve">
|
||||
<value>Odinstalovat VBus ovladač</value>
|
||||
</data>
|
||||
<data name="llbHelp.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>874, 11</value>
|
||||
</data>
|
||||
<data name="llbHelp.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>168, 17</value>
|
||||
</data>
|
||||
<data name="llbHelp.Text" xml:space="preserve">
|
||||
<value>Kláv. zkratky/O programu</value>
|
||||
</data>
|
||||
<data name="lLBUpdate.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>162, 17</value>
|
||||
</data>
|
||||
<data name="lLBUpdate.Text" xml:space="preserve">
|
||||
<value>Zkontrolovat aktualizace</value>
|
||||
</data>
|
||||
<data name="lnkControllers.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>102, 17</value>
|
||||
</data>
|
||||
<data name="lnkControllers.Text" xml:space="preserve">
|
||||
<value>Ovládací panel</value>
|
||||
</data>
|
||||
<data name="newProfileToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>214, 26</value>
|
||||
</data>
|
||||
<data name="newProfileToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Nový profil</value>
|
||||
</data>
|
||||
<data name="nUDLatency.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>174, 2</value>
|
||||
</data>
|
||||
<data name="nUDUpdateTime.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>148, 1</value>
|
||||
</data>
|
||||
<data name="nUDXIPorts.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>146, 1</value>
|
||||
</data>
|
||||
<data name="openToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>303, 26</value>
|
||||
</data>
|
||||
<data name="openToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Otevřít</value>
|
||||
</data>
|
||||
<data name="panel2.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>266, 28</value>
|
||||
</data>
|
||||
<data name="pBStatus1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>522, 26</value>
|
||||
</data>
|
||||
<data name="pBStatus2.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>522, 62</value>
|
||||
@ -277,95 +505,44 @@
|
||||
<data name="pBStatus4.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>522, 134</value>
|
||||
</data>
|
||||
<data name="bnLight1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1072, 22</value>
|
||||
<data name="pnlXIPorts.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>253, 28</value>
|
||||
</data>
|
||||
<data name="bnLight1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>46, 28</value>
|
||||
<data name="pNUpdate.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>289, 28</value>
|
||||
</data>
|
||||
<data name="bnLight2.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1072, 58</value>
|
||||
<data name="startMinimizedCheckBox.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>173, 21</value>
|
||||
</data>
|
||||
<data name="bnLight2.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>46, 28</value>
|
||||
<data name="startMinimizedCheckBox.Text" xml:space="preserve">
|
||||
<value>Spustit minimalizovaně</value>
|
||||
</data>
|
||||
<data name="bnLight4.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1072, 130</value>
|
||||
<data name="startToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>303, 26</value>
|
||||
</data>
|
||||
<data name="bnLight4.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>46, 28</value>
|
||||
<data name="startToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Start</value>
|
||||
</data>
|
||||
<data name="lbNoControllers.Text" xml:space="preserve">
|
||||
<value>Žádné připojené ovladače (max. 4)</value>
|
||||
<data name="StartWindowsCheckBox.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>189, 21</value>
|
||||
</data>
|
||||
<data name="StartWindowsCheckBox.Text" xml:space="preserve">
|
||||
<value>Spustit při startu systému</value>
|
||||
</data>
|
||||
<data name="tabAutoProfiles.Text" xml:space="preserve">
|
||||
<value>Automatické profily</value>
|
||||
</data>
|
||||
<data name="tabControllers.Text" xml:space="preserve">
|
||||
<value>Ovladače</value>
|
||||
</data>
|
||||
<data name="tabLog.Text" xml:space="preserve">
|
||||
<value>Protokol</value>
|
||||
</data>
|
||||
<data name="tabProfiles.Text" xml:space="preserve">
|
||||
<value>Profily</value>
|
||||
</data>
|
||||
<data name="cMProfile.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>215, 264</value>
|
||||
</data>
|
||||
<data name="editToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>214, 26</value>
|
||||
</data>
|
||||
<data name="editToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Změnit</value>
|
||||
</data>
|
||||
<data name="assignToController1ToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>214, 26</value>
|
||||
</data>
|
||||
<data name="assignToController1ToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Přiřadit ovladači č.1</value>
|
||||
</data>
|
||||
<data name="assignToController2ToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>214, 26</value>
|
||||
</data>
|
||||
<data name="assignToController2ToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Přiřadit ovladači č.2</value>
|
||||
</data>
|
||||
<data name="assignToController3ToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>214, 26</value>
|
||||
</data>
|
||||
<data name="assignToController3ToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Přiřadit ovladači č.3</value>
|
||||
</data>
|
||||
<data name="assignToController4ToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>214, 26</value>
|
||||
</data>
|
||||
<data name="assignToController4ToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Přiřadit ovladači č.4</value>
|
||||
</data>
|
||||
<data name="deleteToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>214, 26</value>
|
||||
</data>
|
||||
<data name="deleteToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Odstranit (Del)</value>
|
||||
</data>
|
||||
<data name="duplicateToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>214, 26</value>
|
||||
</data>
|
||||
<data name="duplicateToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Duplikovat (Ctrl+D)</value>
|
||||
</data>
|
||||
<data name="newProfileToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>214, 26</value>
|
||||
</data>
|
||||
<data name="newProfileToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Nový profil</value>
|
||||
</data>
|
||||
<data name="importToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>214, 26</value>
|
||||
</data>
|
||||
<data name="importToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Importovat</value>
|
||||
</data>
|
||||
<data name="exportToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>214, 26</value>
|
||||
</data>
|
||||
<data name="exportToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Exportovat</value>
|
||||
</data>
|
||||
<data name="tSOptions.Text" xml:space="preserve">
|
||||
<value>Možnosti profilu</value>
|
||||
<data name="tabSettings.Text" xml:space="preserve">
|
||||
<value>Nastavení</value>
|
||||
</data>
|
||||
<data name="toolStripLabel1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>98, 24</value>
|
||||
@ -373,14 +550,8 @@
|
||||
<data name="toolStripLabel1.Text" xml:space="preserve">
|
||||
<value>Název profilu</value>
|
||||
</data>
|
||||
<data name="tSTBProfile.Text" xml:space="preserve">
|
||||
<value><zadejte název profilu></value>
|
||||
</data>
|
||||
<data name="tSBSaveProfile.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>112, 24</value>
|
||||
</data>
|
||||
<data name="tSBSaveProfile.Text" xml:space="preserve">
|
||||
<value>Uložit profil</value>
|
||||
<data name="toolStripSeparator1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>300, 6</value>
|
||||
</data>
|
||||
<data name="tSBCancel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>70, 24</value>
|
||||
@ -388,30 +559,6 @@
|
||||
<data name="tSBCancel.Text" xml:space="preserve">
|
||||
<value>Zrušit</value>
|
||||
</data>
|
||||
<data name="tSBKeepSize.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>207, 24</value>
|
||||
</data>
|
||||
<data name="tSBKeepSize.Text" xml:space="preserve">
|
||||
<value>Pamatovat si velikost okna</value>
|
||||
</data>
|
||||
<data name="tsBNewProfle.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>67, 24</value>
|
||||
</data>
|
||||
<data name="tsBNewProfle.Text" xml:space="preserve">
|
||||
<value>Nový</value>
|
||||
</data>
|
||||
<data name="tsBNewProfle.ToolTipText" xml:space="preserve">
|
||||
<value>Vytvořit nový profil</value>
|
||||
</data>
|
||||
<data name="tsBEditProfile.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>80, 24</value>
|
||||
</data>
|
||||
<data name="tsBEditProfile.Text" xml:space="preserve">
|
||||
<value>Změnit</value>
|
||||
</data>
|
||||
<data name="tsBEditProfile.ToolTipText" xml:space="preserve">
|
||||
<value>Upravit vybraný profil (Enter)</value>
|
||||
</data>
|
||||
<data name="tsBDeleteProfile.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>94, 24</value>
|
||||
</data>
|
||||
@ -430,14 +577,14 @@
|
||||
<data name="tSBDupProfile.ToolTipText" xml:space="preserve">
|
||||
<value>Duplikovat vybraný profil (Ctrl+D)</value>
|
||||
</data>
|
||||
<data name="tSBImportProfile.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>107, 24</value>
|
||||
<data name="tsBEditProfile.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>80, 24</value>
|
||||
</data>
|
||||
<data name="tSBImportProfile.Text" xml:space="preserve">
|
||||
<value>Importovat</value>
|
||||
<data name="tsBEditProfile.Text" xml:space="preserve">
|
||||
<value>Změnit</value>
|
||||
</data>
|
||||
<data name="tSBImportProfile.ToolTipText" xml:space="preserve">
|
||||
<value>Importovat profil</value>
|
||||
<data name="tsBEditProfile.ToolTipText" xml:space="preserve">
|
||||
<value>Upravit vybraný profil (Enter)</value>
|
||||
</data>
|
||||
<data name="tSBExportProfile.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>105, 24</value>
|
||||
@ -448,179 +595,41 @@
|
||||
<data name="tSBExportProfile.ToolTipText" xml:space="preserve">
|
||||
<value>Exportovat vybraný profil</value>
|
||||
</data>
|
||||
<data name="tabAutoProfiles.Text" xml:space="preserve">
|
||||
<value>Automatické profily</value>
|
||||
<data name="tSBImportProfile.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>107, 24</value>
|
||||
</data>
|
||||
<data name="tabSettings.Text" xml:space="preserve">
|
||||
<value>Nastavení</value>
|
||||
<data name="tSBImportProfile.Text" xml:space="preserve">
|
||||
<value>Importovat</value>
|
||||
</data>
|
||||
<data name="hideDS4CheckBox.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>146, 21</value>
|
||||
<data name="tSBImportProfile.ToolTipText" xml:space="preserve">
|
||||
<value>Importovat profil</value>
|
||||
</data>
|
||||
<data name="hideDS4CheckBox.Text" xml:space="preserve">
|
||||
<value>Skrýt DS4 ovladač</value>
|
||||
<data name="tSBKeepSize.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>207, 24</value>
|
||||
</data>
|
||||
<data name="cBSwipeProfiles.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>289, 21</value>
|
||||
<data name="tSBKeepSize.Text" xml:space="preserve">
|
||||
<value>Pamatovat si velikost okna</value>
|
||||
</data>
|
||||
<data name="cBSwipeProfiles.Text" xml:space="preserve">
|
||||
<value>Pro změnu profilu přejeďte po touchpadu</value>
|
||||
<data name="tsBNewProfle.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>67, 24</value>
|
||||
</data>
|
||||
<data name="StartWindowsCheckBox.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>189, 21</value>
|
||||
<data name="tsBNewProfle.Text" xml:space="preserve">
|
||||
<value>Nový</value>
|
||||
</data>
|
||||
<data name="StartWindowsCheckBox.Text" xml:space="preserve">
|
||||
<value>Spustit při startu systému</value>
|
||||
<data name="tsBNewProfle.ToolTipText" xml:space="preserve">
|
||||
<value>Vytvořit nový profil</value>
|
||||
</data>
|
||||
<data name="startMinimizedCheckBox.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>173, 21</value>
|
||||
<data name="tSBSaveProfile.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>112, 24</value>
|
||||
</data>
|
||||
<data name="startMinimizedCheckBox.Text" xml:space="preserve">
|
||||
<value>Spustit minimalizovaně</value>
|
||||
<data name="tSBSaveProfile.Text" xml:space="preserve">
|
||||
<value>Uložit profil</value>
|
||||
</data>
|
||||
<data name="lbNotifications.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>125, 17</value>
|
||||
<data name="tSOptions.Text" xml:space="preserve">
|
||||
<value>Možnosti profilu</value>
|
||||
</data>
|
||||
<data name="lbNotifications.Text" xml:space="preserve">
|
||||
<value>Zobrazit oznámení</value>
|
||||
</data>
|
||||
<data name="cBoxNotifications.Items" xml:space="preserve">
|
||||
<value>Žádný</value>
|
||||
</data>
|
||||
<data name="cBoxNotifications.Items1" xml:space="preserve">
|
||||
<value>Pouze varování</value>
|
||||
</data>
|
||||
<data name="cBoxNotifications.Items2" xml:space="preserve">
|
||||
<value>Vše</value>
|
||||
</data>
|
||||
<data name="cBDisconnectBT.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>201, 21</value>
|
||||
</data>
|
||||
<data name="cBDisconnectBT.Text" xml:space="preserve">
|
||||
<value>Odpojit od BT při zastavení</value>
|
||||
</data>
|
||||
<data name="panel2.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>266, 28</value>
|
||||
</data>
|
||||
<data name="nUDLatency.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>174, 2</value>
|
||||
</data>
|
||||
<data name="lbMsLatency.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>237, 5</value>
|
||||
</data>
|
||||
<data name="cBFlashWhenLate.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>177, 21</value>
|
||||
</data>
|
||||
<data name="cBFlashWhenLate.Text" xml:space="preserve">
|
||||
<value>Blikat při vysoké latenci</value>
|
||||
</data>
|
||||
<data name="cBCloseMini.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>181, 21</value>
|
||||
</data>
|
||||
<data name="cBCloseMini.Text" xml:space="preserve">
|
||||
<value>Zavřít při minimalizování</value>
|
||||
</data>
|
||||
<data name="cBQuickCharge.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>126, 21</value>
|
||||
</data>
|
||||
<data name="cBQuickCharge.Text" xml:space="preserve">
|
||||
<value>Rychlé nabíjení</value>
|
||||
</data>
|
||||
<data name="cBDownloadLangauge.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>348, 21</value>
|
||||
</data>
|
||||
<data name="cBDownloadLangauge.Text" xml:space="preserve">
|
||||
<value>Při aktualizaci stáhnout také nové jazykové balíčky</value>
|
||||
</data>
|
||||
<data name="cBUpdate.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>253, 21</value>
|
||||
</data>
|
||||
<data name="cBUpdate.Text" xml:space="preserve">
|
||||
<value>Při spuštění kontrolovat aktualizace</value>
|
||||
</data>
|
||||
<data name="pNUpdate.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>289, 28</value>
|
||||
</data>
|
||||
<data name="cBUpdateTime.Items" xml:space="preserve">
|
||||
<value>hodin</value>
|
||||
</data>
|
||||
<data name="cBUpdateTime.Items1" xml:space="preserve">
|
||||
<value>dní</value>
|
||||
</data>
|
||||
<data name="cBUpdateTime.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>211, 0</value>
|
||||
</data>
|
||||
<data name="lbCheckEvery.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>128, 17</value>
|
||||
</data>
|
||||
<data name="lbCheckEvery.Text" xml:space="preserve">
|
||||
<value>Kontrolovat kažých</value>
|
||||
</data>
|
||||
<data name="nUDUpdateTime.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>148, 1</value>
|
||||
</data>
|
||||
<data name="pnlXIPorts.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>253, 28</value>
|
||||
</data>
|
||||
<data name="lbUseXIPorts.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>127, 17</value>
|
||||
</data>
|
||||
<data name="lbUseXIPorts.Text" xml:space="preserve">
|
||||
<value>Použít Xinput porty</value>
|
||||
</data>
|
||||
<data name="nUDXIPorts.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>146, 1</value>
|
||||
</data>
|
||||
<data name="lbLastXIPort.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>209, 4</value>
|
||||
</data>
|
||||
<data name="flowLayoutPanel1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>369, 13</value>
|
||||
</data>
|
||||
<data name="flowLayoutPanel1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>185, 85</value>
|
||||
</data>
|
||||
<data name="linkProfiles.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>93, 17</value>
|
||||
</data>
|
||||
<data name="linkProfiles.Text" xml:space="preserve">
|
||||
<value>Složka profilu</value>
|
||||
</data>
|
||||
<data name="lnkControllers.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>102, 17</value>
|
||||
</data>
|
||||
<data name="lnkControllers.Text" xml:space="preserve">
|
||||
<value>Ovládací panel</value>
|
||||
</data>
|
||||
<data name="linkUninstall.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>177, 17</value>
|
||||
</data>
|
||||
<data name="linkUninstall.Text" xml:space="preserve">
|
||||
<value>Odinstalovat VBus ovladač</value>
|
||||
</data>
|
||||
<data name="linkSetup.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>132, 17</value>
|
||||
</data>
|
||||
<data name="linkSetup.Text" xml:space="preserve">
|
||||
<value>Nastavení ovladače</value>
|
||||
</data>
|
||||
<data name="lLBUpdate.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>162, 17</value>
|
||||
</data>
|
||||
<data name="lLBUpdate.Text" xml:space="preserve">
|
||||
<value>Zkontrolovat aktualizace</value>
|
||||
</data>
|
||||
<data name="tabLog.Text" xml:space="preserve">
|
||||
<value>Protokol</value>
|
||||
</data>
|
||||
<data name="cMCustomLed.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>214, 56</value>
|
||||
</data>
|
||||
<data name="useProfileColorToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>213, 26</value>
|
||||
</data>
|
||||
<data name="useProfileColorToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Použít barvu profilu</value>
|
||||
<data name="tSTBProfile.Text" xml:space="preserve">
|
||||
<value><zadejte název profilu></value>
|
||||
</data>
|
||||
<data name="useCustomColorToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>213, 26</value>
|
||||
@ -628,16 +637,10 @@
|
||||
<data name="useCustomColorToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Použít vlastní barvu</value>
|
||||
</data>
|
||||
<data name="btnStartStop.Text" xml:space="preserve">
|
||||
<value>Start</value>
|
||||
<data name="useProfileColorToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>213, 26</value>
|
||||
</data>
|
||||
<data name="chData.Text" xml:space="preserve">
|
||||
<value>Data</value>
|
||||
</data>
|
||||
<data name="lbID.Text" xml:space="preserve">
|
||||
<value>ID</value>
|
||||
</data>
|
||||
<data name="startToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Start</value>
|
||||
<data name="useProfileColorToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Použít barvu profilu</value>
|
||||
</data>
|
||||
</root>
|
@ -184,9 +184,6 @@
|
||||
<data name="exitToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Beenden (Mittlere Maustaste)</value>
|
||||
</data>
|
||||
<data name="btnConnectDS4Win10.Text" xml:space="preserve">
|
||||
<value>Verbinde den DS4 exklusiv (experimentell)</value>
|
||||
</data>
|
||||
<data name="bnLight3.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1071, 94</value>
|
||||
</data>
|
||||
|
@ -181,9 +181,6 @@
|
||||
<data name="tabControllers.Text" xml:space="preserve">
|
||||
<value>Χειριστήρια</value>
|
||||
</data>
|
||||
<data name="btnConnectDS4Win10.Text" xml:space="preserve">
|
||||
<value>Σύνδεσε το DS4 αποκλειστικά(δοκιμαστικό)</value>
|
||||
</data>
|
||||
<data name="bnLight3.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1076, 94</value>
|
||||
</data>
|
||||
|
@ -149,25 +149,25 @@
|
||||
<value>280, 24</value>
|
||||
</data>
|
||||
<data name="editProfileForController1ToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Editar perfil del Controlador 1</value>
|
||||
<value>Editar perfil del Control 1</value>
|
||||
</data>
|
||||
<data name="editProfileForController2ToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>280, 24</value>
|
||||
</data>
|
||||
<data name="editProfileForController2ToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Editar perfil del Controlador 2</value>
|
||||
<value>Editar perfil del Control 2</value>
|
||||
</data>
|
||||
<data name="editProfileForController3ToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>280, 24</value>
|
||||
</data>
|
||||
<data name="editProfileForController3ToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Editar perfil del Controlador 3</value>
|
||||
<value>Editar perfil del Control 3</value>
|
||||
</data>
|
||||
<data name="editProfileForController4ToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>280, 24</value>
|
||||
</data>
|
||||
<data name="editProfileForController4ToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Editar perfil del Controlador 4</value>
|
||||
<value>Editar perfil del Control 4</value>
|
||||
</data>
|
||||
<data name="toolStripSeparator1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>277, 6</value>
|
||||
@ -302,10 +302,10 @@
|
||||
<value>34, 28</value>
|
||||
</data>
|
||||
<data name="lbNoControllers.Text" xml:space="preserve">
|
||||
<value>Ningún controlador conectado (Máx 4)</value>
|
||||
<value>Ningún control conectado (Máx 4)</value>
|
||||
</data>
|
||||
<data name="tabControllers.Text" xml:space="preserve">
|
||||
<value>Controladores</value>
|
||||
<value>Control</value>
|
||||
</data>
|
||||
<data name="editToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>240, 24</value>
|
||||
@ -317,25 +317,25 @@
|
||||
<value>240, 24</value>
|
||||
</data>
|
||||
<data name="assignToController1ToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Asignar al Controlador 1</value>
|
||||
<value>Asignar al Control 1</value>
|
||||
</data>
|
||||
<data name="assignToController2ToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>240, 24</value>
|
||||
</data>
|
||||
<data name="assignToController2ToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Asignar al Controlador 2</value>
|
||||
<value>Asignar al Control 2</value>
|
||||
</data>
|
||||
<data name="assignToController3ToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>240, 24</value>
|
||||
</data>
|
||||
<data name="assignToController3ToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Asignar al Controlador 3</value>
|
||||
<value>Asignar al Control 3</value>
|
||||
</data>
|
||||
<data name="assignToController4ToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>240, 24</value>
|
||||
</data>
|
||||
<data name="assignToController4ToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Asignar al Controlador 4</value>
|
||||
<value>Asignar al Control 4</value>
|
||||
</data>
|
||||
<data name="deleteToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>240, 24</value>
|
||||
@ -464,13 +464,13 @@
|
||||
<value>185, 21</value>
|
||||
</data>
|
||||
<data name="hideDS4CheckBox.Text" xml:space="preserve">
|
||||
<value>Ocultar Controlador DS4</value>
|
||||
<value>Ocultar Control DS4</value>
|
||||
</data>
|
||||
<data name="cBSwipeProfiles.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>305, 21</value>
|
||||
</data>
|
||||
<data name="cBSwipeProfiles.Text" xml:space="preserve">
|
||||
<value>Deslizar el panel táctil para cambiar de perfil</value>
|
||||
<value>Deslice el panel táctil para cambiar de perfil</value>
|
||||
</data>
|
||||
<data name="StartWindowsCheckBox.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>198, 21</value>
|
||||
@ -599,7 +599,7 @@
|
||||
<value>235, 17</value>
|
||||
</data>
|
||||
<data name="linkSetup.Text" xml:space="preserve">
|
||||
<value>Controlador/Configuración de Driver</value>
|
||||
<value>Control/Configuración de Driver</value>
|
||||
</data>
|
||||
<data name="lLBUpdate.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>261, 17</value>
|
||||
@ -628,9 +628,6 @@
|
||||
<data name="cMCustomLed.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>197, 56</value>
|
||||
</data>
|
||||
<data name="btnConnectDS4Win10.Text" xml:space="preserve">
|
||||
<value>Conectar DS4 exclusivamente (experimental)</value>
|
||||
</data>
|
||||
<data name="cBoxNotifications.Items" xml:space="preserve">
|
||||
<value>Ninguna</value>
|
||||
</data>
|
||||
|
@ -190,9 +190,6 @@
|
||||
<data name="tabControllers.Text" xml:space="preserve">
|
||||
<value>Ohjaimet</value>
|
||||
</data>
|
||||
<data name="btnConnectDS4Win10.Text" xml:space="preserve">
|
||||
<value>Liitä vain DS4-ohjain (exclusive mode) (kokeellinen)</value>
|
||||
</data>
|
||||
<data name="bnLight3.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1074, 94</value>
|
||||
</data>
|
||||
|
@ -199,9 +199,6 @@
|
||||
<data name="cMTaskbar.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>287, 192</value>
|
||||
</data>
|
||||
<data name="btnConnectDS4Win10.Text" xml:space="preserve">
|
||||
<value>Connecter DS4 exclusivement (expérimental)</value>
|
||||
</data>
|
||||
<data name="bnLight3.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1077, 94</value>
|
||||
</data>
|
||||
|
@ -193,9 +193,6 @@
|
||||
<data name="tabControllers.Text" xml:space="preserve">
|
||||
<value>בקרים</value>
|
||||
</data>
|
||||
<data name="btnConnectDS4Win10.Text" xml:space="preserve">
|
||||
<value>התחבר ל-DS4 בלעדית (ניסיוני)</value>
|
||||
</data>
|
||||
<data name="bnLight3.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1084, 94</value>
|
||||
</data>
|
||||
|
@ -181,9 +181,6 @@
|
||||
<data name="tabControllers.Text" xml:space="preserve">
|
||||
<value>Vezérlők</value>
|
||||
</data>
|
||||
<data name="btnConnectDS4Win10.Text" xml:space="preserve">
|
||||
<value>DS4 exkluzív csatlakoztatása (kísérleti)</value>
|
||||
</data>
|
||||
<data name="bnLight3.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1077, 94</value>
|
||||
</data>
|
||||
|
@ -190,9 +190,6 @@
|
||||
<data name="tabControllers.Text" xml:space="preserve">
|
||||
<value>Controller</value>
|
||||
</data>
|
||||
<data name="btnConnectDS4Win10.Text" xml:space="preserve">
|
||||
<value>Sambung secara khusus (eksperimental)</value>
|
||||
</data>
|
||||
<data name="bnLight3.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1070, 94</value>
|
||||
</data>
|
||||
|
@ -604,9 +604,6 @@
|
||||
<data name="tabLog.Text" xml:space="preserve">
|
||||
<value>Registro</value>
|
||||
</data>
|
||||
<data name="btnConnectDS4Win10.Text" xml:space="preserve">
|
||||
<value>Connetti Solo DS4 (sperimentale)</value>
|
||||
</data>
|
||||
<data name="cBoxNotifications.Items" xml:space="preserve">
|
||||
<value>Nessuno</value>
|
||||
</data>
|
||||
|
@ -144,9 +144,6 @@
|
||||
<data name="btnClear.Text" xml:space="preserve">
|
||||
<value>삭제</value>
|
||||
</data>
|
||||
<data name="btnConnectDS4Win10.Text" xml:space="preserve">
|
||||
<value>DS4 만 연결하기 ( 실험버전 )</value>
|
||||
</data>
|
||||
<data name="btnStartStop.Text" xml:space="preserve">
|
||||
<value>시작</value>
|
||||
</data>
|
||||
|
@ -187,9 +187,6 @@
|
||||
<data name="exitToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Sluiten (Scroll klik)</value>
|
||||
</data>
|
||||
<data name="btnConnectDS4Win10.Text" xml:space="preserve">
|
||||
<value>Alleen de DS4 Controller Aansluiten (experimenteel)</value>
|
||||
</data>
|
||||
<data name="pBStatus1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>483, 26</value>
|
||||
</data>
|
||||
|
@ -190,9 +190,6 @@
|
||||
<data name="tabControllers.Text" xml:space="preserve">
|
||||
<value>Kontrolery</value>
|
||||
</data>
|
||||
<data name="btnConnectDS4Win10.Text" xml:space="preserve">
|
||||
<value>Podłącz kontroler DS4 na wyłączność (eksperymentalne)</value>
|
||||
</data>
|
||||
<data name="bnLight3.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1085, 94</value>
|
||||
</data>
|
||||
|
@ -187,9 +187,6 @@
|
||||
<data name="cMTaskbar.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>256, 192</value>
|
||||
</data>
|
||||
<data name="btnConnectDS4Win10.Text" xml:space="preserve">
|
||||
<value>Conectar exclusivamente o DS4 (experimental)</value>
|
||||
</data>
|
||||
<data name="bnLight3.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1038, 94</value>
|
||||
</data>
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -196,9 +196,6 @@
|
||||
<data name="tabControllers.Text" xml:space="preserve">
|
||||
<value>Krmilniki</value>
|
||||
</data>
|
||||
<data name="btnConnectDS4Win10.Text" xml:space="preserve">
|
||||
<value>Poveži izključno z DS4</value>
|
||||
</data>
|
||||
<data name="bnLight3.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1079, 94</value>
|
||||
</data>
|
||||
|
@ -141,9 +141,6 @@
|
||||
<data name="cMTaskbar.ToolTip" xml:space="preserve">
|
||||
<value />
|
||||
</data>
|
||||
<data name="btnConnectDS4Win10.ToolTip" xml:space="preserve">
|
||||
<value />
|
||||
</data>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="bnLight3.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1083, 94</value>
|
||||
|
@ -196,9 +196,6 @@
|
||||
<data name="cMTaskbar.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>322, 192</value>
|
||||
</data>
|
||||
<data name="btnConnectDS4Win10.Text" xml:space="preserve">
|
||||
<value>Ексклюзивне підключення DS4 (експерементальне)</value>
|
||||
</data>
|
||||
<data name="bnLight3.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1069, 94</value>
|
||||
</data>
|
||||
|
@ -6362,9 +6362,6 @@
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
|
||||
</value>
|
||||
</data>
|
||||
<data name="btnConnectDS4Win10.Text" xml:space="preserve">
|
||||
<value>Kết nối DS4 qua cmd (thử nghiệm)</value>
|
||||
</data>
|
||||
<data name="bnLight3.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1083, 94</value>
|
||||
</data>
|
||||
|
@ -123,69 +123,21 @@
|
||||
<data name="chData.Text" xml:space="preserve">
|
||||
<value>数据</value>
|
||||
</data>
|
||||
<data name="btnStartStop.Text" xml:space="preserve">
|
||||
<value>开始</value>
|
||||
</data>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="llbHelp.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>980, 11</value>
|
||||
<value>774, 9</value>
|
||||
</data>
|
||||
<data name="llbHelp.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>62, 17</value>
|
||||
<value>60, 13</value>
|
||||
</data>
|
||||
<data name="llbHelp.Text" xml:space="preserve">
|
||||
<value>热键/关于</value>
|
||||
</data>
|
||||
<data name="btnClear.Text" xml:space="preserve">
|
||||
<value>清空</value>
|
||||
</data>
|
||||
<data name="editProfileForController1ToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>228, 26</value>
|
||||
</data>
|
||||
<data name="editProfileForController1ToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>编辑 手柄1 配置文件</value>
|
||||
</data>
|
||||
<data name="editProfileForController2ToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>228, 26</value>
|
||||
</data>
|
||||
<data name="editProfileForController2ToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>编辑 手柄2 配置文件</value>
|
||||
</data>
|
||||
<data name="editProfileForController3ToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>228, 26</value>
|
||||
</data>
|
||||
<data name="editProfileForController3ToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>编辑 手柄3 配置文件</value>
|
||||
</data>
|
||||
<data name="editProfileForController4ToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>228, 26</value>
|
||||
</data>
|
||||
<data name="editProfileForController4ToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>编辑 手柄4 配置文件</value>
|
||||
</data>
|
||||
<data name="toolStripSeparator1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>225, 6</value>
|
||||
</data>
|
||||
<data name="startToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>228, 26</value>
|
||||
</data>
|
||||
<data name="startToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>启动</value>
|
||||
</data>
|
||||
<data name="openToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>228, 26</value>
|
||||
</data>
|
||||
<data name="openToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>打开</value>
|
||||
</data>
|
||||
<data name="exitToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>228, 26</value>
|
||||
</data>
|
||||
<data name="exitToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>退出(鼠标中键)</value>
|
||||
<data name="btnStartStop.Text" xml:space="preserve">
|
||||
<value>开始</value>
|
||||
</data>
|
||||
<data name="cMTaskbar.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>229, 192</value>
|
||||
<value>191, 186</value>
|
||||
</data>
|
||||
<data name="notifyIcon1.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
@ -6359,188 +6311,245 @@
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
|
||||
</value>
|
||||
</data>
|
||||
<data name="editProfileForController1ToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>190, 22</value>
|
||||
</data>
|
||||
<data name="editProfileForController1ToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>编辑 手柄1 配置文件</value>
|
||||
</data>
|
||||
<data name="editProfileForController2ToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>190, 22</value>
|
||||
</data>
|
||||
<data name="editProfileForController2ToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>编辑 手柄2 配置文件</value>
|
||||
</data>
|
||||
<data name="editProfileForController3ToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>190, 22</value>
|
||||
</data>
|
||||
<data name="editProfileForController3ToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>编辑 手柄3 配置文件</value>
|
||||
</data>
|
||||
<data name="editProfileForController4ToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>190, 22</value>
|
||||
</data>
|
||||
<data name="editProfileForController4ToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>编辑 手柄4 配置文件</value>
|
||||
</data>
|
||||
<data name="toolStripSeparator1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>187, 6</value>
|
||||
</data>
|
||||
<data name="startToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>190, 22</value>
|
||||
</data>
|
||||
<data name="startToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>启动</value>
|
||||
</data>
|
||||
<data name="openToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>190, 22</value>
|
||||
</data>
|
||||
<data name="openToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>打开</value>
|
||||
</data>
|
||||
<data name="openProgramFolderToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>190, 22</value>
|
||||
</data>
|
||||
<data name="exitToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>190, 22</value>
|
||||
</data>
|
||||
<data name="exitToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>退出(鼠标中键)</value>
|
||||
</data>
|
||||
<data name="tabControllers.Text" xml:space="preserve">
|
||||
<value>手柄</value>
|
||||
</data>
|
||||
<data name="bnLight3.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1053, 94</value>
|
||||
<value>797, 89</value>
|
||||
</data>
|
||||
<data name="bnLight3.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>65, 28</value>
|
||||
</data>
|
||||
<data name="pBStatus1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>493, 26</value>
|
||||
<value>96, 22</value>
|
||||
</data>
|
||||
<data name="bnEditC3.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>999, 94</value>
|
||||
<value>757, 89</value>
|
||||
</data>
|
||||
<data name="bnEditC3.Text" xml:space="preserve">
|
||||
<value>编辑</value>
|
||||
</data>
|
||||
<data name="bnEditC4.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>999, 130</value>
|
||||
<value>757, 117</value>
|
||||
</data>
|
||||
<data name="bnEditC4.Text" xml:space="preserve">
|
||||
<value>编辑</value>
|
||||
</data>
|
||||
<data name="cBController1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>853, 24</value>
|
||||
<value>640, 33</value>
|
||||
</data>
|
||||
<data name="bnEditC2.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>999, 58</value>
|
||||
<value>757, 61</value>
|
||||
</data>
|
||||
<data name="bnEditC2.Text" xml:space="preserve">
|
||||
<value>编辑</value>
|
||||
</data>
|
||||
<data name="cBController2.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>853, 60</value>
|
||||
<value>640, 61</value>
|
||||
</data>
|
||||
<data name="cBController3.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>853, 96</value>
|
||||
<value>640, 89</value>
|
||||
</data>
|
||||
<data name="bnEditC1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>999, 22</value>
|
||||
<value>757, 33</value>
|
||||
</data>
|
||||
<data name="bnEditC1.Text" xml:space="preserve">
|
||||
<value>编辑</value>
|
||||
</data>
|
||||
<data name="cBController4.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>853, 132</value>
|
||||
<value>640, 117</value>
|
||||
</data>
|
||||
<data name="lbSelectedProfile.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>880, 0</value>
|
||||
<value>653, 7</value>
|
||||
</data>
|
||||
<data name="lbSelectedProfile.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>84, 18</value>
|
||||
<value>85, 15</value>
|
||||
</data>
|
||||
<data name="lbSelectedProfile.Text" xml:space="preserve">
|
||||
<value>已选配置文件</value>
|
||||
</data>
|
||||
<data name="lbStatus.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>495, 0</value>
|
||||
<value>387, 7</value>
|
||||
</data>
|
||||
<data name="lbStatus.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>36, 18</value>
|
||||
<value>33, 15</value>
|
||||
</data>
|
||||
<data name="lbStatus.Text" xml:space="preserve">
|
||||
<value>状态</value>
|
||||
</data>
|
||||
<data name="lbBattery.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>723, 0</value>
|
||||
<value>491, 7</value>
|
||||
</data>
|
||||
<data name="lbBattery.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>36, 18</value>
|
||||
<value>33, 15</value>
|
||||
</data>
|
||||
<data name="lbBattery.Text" xml:space="preserve">
|
||||
<value>电池</value>
|
||||
</data>
|
||||
<data name="lbBatt1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>718, 27</value>
|
||||
<value>488, 36</value>
|
||||
</data>
|
||||
<data name="lbBatt2.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>718, 63</value>
|
||||
<value>488, 64</value>
|
||||
</data>
|
||||
<data name="lbBatt3.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>718, 99</value>
|
||||
<value>488, 92</value>
|
||||
</data>
|
||||
<data name="lbBatt4.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>718, 135</value>
|
||||
</data>
|
||||
<data name="pBStatus2.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>493, 62</value>
|
||||
</data>
|
||||
<data name="pBStatus3.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>493, 98</value>
|
||||
</data>
|
||||
<data name="pBStatus4.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>493, 134</value>
|
||||
<value>488, 120</value>
|
||||
</data>
|
||||
<data name="bnLight1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1053, 22</value>
|
||||
<value>797, 33</value>
|
||||
</data>
|
||||
<data name="bnLight1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>65, 28</value>
|
||||
<value>96, 22</value>
|
||||
</data>
|
||||
<data name="bnLight2.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1053, 58</value>
|
||||
<value>797, 61</value>
|
||||
</data>
|
||||
<data name="bnLight2.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>65, 28</value>
|
||||
<value>96, 22</value>
|
||||
</data>
|
||||
<data name="bnLight4.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1053, 130</value>
|
||||
<value>797, 117</value>
|
||||
</data>
|
||||
<data name="bnLight4.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>65, 28</value>
|
||||
<value>96, 22</value>
|
||||
</data>
|
||||
<data name="lbLinkProfile.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>563, 0</value>
|
||||
</data>
|
||||
<data name="linkCB1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>589, 37</value>
|
||||
</data>
|
||||
<data name="linkCB2.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>589, 65</value>
|
||||
</data>
|
||||
<data name="linkCB3.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>589, 93</value>
|
||||
</data>
|
||||
<data name="linkCB4.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>589, 121</value>
|
||||
</data>
|
||||
<data name="lbNoControllers.Text" xml:space="preserve">
|
||||
<value>没有连接的手柄(最多4个)</value>
|
||||
</data>
|
||||
<data name="tabControllers.Text" xml:space="preserve">
|
||||
<value>手柄</value>
|
||||
<data name="tabProfiles.Text" xml:space="preserve">
|
||||
<value>配置文件</value>
|
||||
</data>
|
||||
<data name="cMProfile.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>162, 224</value>
|
||||
</data>
|
||||
<data name="editToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>190, 26</value>
|
||||
<value>161, 22</value>
|
||||
</data>
|
||||
<data name="editToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>编辑</value>
|
||||
</data>
|
||||
<data name="assignToController1ToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>190, 26</value>
|
||||
<value>161, 22</value>
|
||||
</data>
|
||||
<data name="assignToController1ToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>指定至 手柄1</value>
|
||||
</data>
|
||||
<data name="assignToController2ToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>190, 26</value>
|
||||
<value>161, 22</value>
|
||||
</data>
|
||||
<data name="assignToController2ToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>指定至 手柄2</value>
|
||||
</data>
|
||||
<data name="assignToController3ToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>190, 26</value>
|
||||
<value>161, 22</value>
|
||||
</data>
|
||||
<data name="assignToController3ToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>指定至 手柄3</value>
|
||||
</data>
|
||||
<data name="assignToController4ToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>190, 26</value>
|
||||
<value>161, 22</value>
|
||||
</data>
|
||||
<data name="assignToController4ToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>指定至 手柄4</value>
|
||||
</data>
|
||||
<data name="deleteToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>190, 26</value>
|
||||
<value>161, 22</value>
|
||||
</data>
|
||||
<data name="deleteToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>删除(Del)</value>
|
||||
</data>
|
||||
<data name="duplicateToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>190, 26</value>
|
||||
<value>161, 22</value>
|
||||
</data>
|
||||
<data name="duplicateToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>复制(Ctrl+D)</value>
|
||||
</data>
|
||||
<data name="newProfileToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>190, 26</value>
|
||||
<value>161, 22</value>
|
||||
</data>
|
||||
<data name="newProfileToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>新建配置文件</value>
|
||||
</data>
|
||||
<data name="importToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>190, 26</value>
|
||||
<value>161, 22</value>
|
||||
</data>
|
||||
<data name="importToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>导入</value>
|
||||
</data>
|
||||
<data name="exportToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>190, 26</value>
|
||||
<value>161, 22</value>
|
||||
</data>
|
||||
<data name="exportToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>导出</value>
|
||||
</data>
|
||||
<data name="cMProfile.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>191, 264</value>
|
||||
<data name="tSOptions.Text" xml:space="preserve">
|
||||
<value>配置选项</value>
|
||||
</data>
|
||||
<data name="toolStripLabel1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>89, 24</value>
|
||||
<value>72, 24</value>
|
||||
</data>
|
||||
<data name="toolStripLabel1.Text" xml:space="preserve">
|
||||
<value>配置名称:</value>
|
||||
@ -6549,28 +6558,25 @@
|
||||
<value><输入配置名称></value>
|
||||
</data>
|
||||
<data name="tSBSaveProfile.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>97, 24</value>
|
||||
<value>83, 24</value>
|
||||
</data>
|
||||
<data name="tSBSaveProfile.Text" xml:space="preserve">
|
||||
<value>保存配置</value>
|
||||
</data>
|
||||
<data name="tSBCancel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>65, 24</value>
|
||||
<value>57, 24</value>
|
||||
</data>
|
||||
<data name="tSBCancel.Text" xml:space="preserve">
|
||||
<value>取消</value>
|
||||
</data>
|
||||
<data name="tSBKeepSize.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>177, 24</value>
|
||||
<value>148, 24</value>
|
||||
</data>
|
||||
<data name="tSBKeepSize.Text" xml:space="preserve">
|
||||
<value>关闭后保存窗口大小</value>
|
||||
</data>
|
||||
<data name="tSOptions.Text" xml:space="preserve">
|
||||
<value>配置选项</value>
|
||||
</data>
|
||||
<data name="tsBNewProfle.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>65, 24</value>
|
||||
<value>57, 24</value>
|
||||
</data>
|
||||
<data name="tsBNewProfle.Text" xml:space="preserve">
|
||||
<value>新建</value>
|
||||
@ -6579,7 +6585,7 @@
|
||||
<value>新建配置文件</value>
|
||||
</data>
|
||||
<data name="tsBEditProfile.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>65, 24</value>
|
||||
<value>57, 24</value>
|
||||
</data>
|
||||
<data name="tsBEditProfile.Text" xml:space="preserve">
|
||||
<value>编辑</value>
|
||||
@ -6588,7 +6594,7 @@
|
||||
<value>编辑选定的配置(Enter)</value>
|
||||
</data>
|
||||
<data name="tsBDeleteProfile.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>65, 24</value>
|
||||
<value>57, 24</value>
|
||||
</data>
|
||||
<data name="tsBDeleteProfile.Text" xml:space="preserve">
|
||||
<value>删除</value>
|
||||
@ -6597,7 +6603,7 @@
|
||||
<value>删除选定的配置(Delete)</value>
|
||||
</data>
|
||||
<data name="tSBDupProfile.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>65, 24</value>
|
||||
<value>57, 24</value>
|
||||
</data>
|
||||
<data name="tSBDupProfile.Text" xml:space="preserve">
|
||||
<value>复制</value>
|
||||
@ -6606,7 +6612,7 @@
|
||||
<value>复制选定的配置(Ctrl+D)</value>
|
||||
</data>
|
||||
<data name="tSBImportProfile.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>65, 24</value>
|
||||
<value>57, 24</value>
|
||||
</data>
|
||||
<data name="tSBImportProfile.Text" xml:space="preserve">
|
||||
<value>导入</value>
|
||||
@ -6615,7 +6621,7 @@
|
||||
<value>导入选定的配置</value>
|
||||
</data>
|
||||
<data name="tSBExportProfile.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>65, 24</value>
|
||||
<value>57, 24</value>
|
||||
</data>
|
||||
<data name="tSBExportProfile.Text" xml:space="preserve">
|
||||
<value>导出</value>
|
||||
@ -6623,150 +6629,42 @@
|
||||
<data name="tSBExportProfile.ToolTipText" xml:space="preserve">
|
||||
<value>导出选定的配置</value>
|
||||
</data>
|
||||
<data name="tabProfiles.Text" xml:space="preserve">
|
||||
<value>配置文件</value>
|
||||
</data>
|
||||
<data name="tabAutoProfiles.Text" xml:space="preserve">
|
||||
<value>自动配置</value>
|
||||
</data>
|
||||
<data name="tabSettings.Text" xml:space="preserve">
|
||||
<value>设置</value>
|
||||
</data>
|
||||
<data name="hideDS4CheckBox.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>112, 21</value>
|
||||
<value>101, 17</value>
|
||||
</data>
|
||||
<data name="hideDS4CheckBox.Text" xml:space="preserve">
|
||||
<value>隐藏 DS4 手柄</value>
|
||||
</data>
|
||||
<data name="cBSwipeProfiles.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>157, 21</value>
|
||||
<value>158, 17</value>
|
||||
</data>
|
||||
<data name="cBSwipeProfiles.Text" xml:space="preserve">
|
||||
<value>滑动触摸板更换配置文件</value>
|
||||
</data>
|
||||
<data name="StartWindowsCheckBox.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>88, 21</value>
|
||||
<value>86, 17</value>
|
||||
</data>
|
||||
<data name="StartWindowsCheckBox.Text" xml:space="preserve">
|
||||
<value>开机自启动</value>
|
||||
</data>
|
||||
<data name="startMinimizedCheckBox.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>99, 21</value>
|
||||
<value>98, 17</value>
|
||||
</data>
|
||||
<data name="startMinimizedCheckBox.Text" xml:space="preserve">
|
||||
<value>以最小化启动</value>
|
||||
</data>
|
||||
<data name="lbNotifications.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>55, 17</value>
|
||||
<value>55, 13</value>
|
||||
</data>
|
||||
<data name="lbNotifications.Text" xml:space="preserve">
|
||||
<value>显示通知</value>
|
||||
</data>
|
||||
<data name="cBDisconnectBT.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>113, 21</value>
|
||||
</data>
|
||||
<data name="cBDisconnectBT.Text" xml:space="preserve">
|
||||
<value>停止时断开蓝牙</value>
|
||||
</data>
|
||||
<data name="nUDLatency.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>140, 2</value>
|
||||
</data>
|
||||
<data name="lbMsLatency.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>203, 5</value>
|
||||
</data>
|
||||
<data name="cBFlashWhenLate.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>130, 21</value>
|
||||
</data>
|
||||
<data name="cBFlashWhenLate.Text" xml:space="preserve">
|
||||
<value>高延迟时闪烁灯条</value>
|
||||
</data>
|
||||
<data name="panel2.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>232, 28</value>
|
||||
</data>
|
||||
<data name="cBCloseMini.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>102, 21</value>
|
||||
</data>
|
||||
<data name="cBCloseMini.Text" xml:space="preserve">
|
||||
<value>关闭时最小化</value>
|
||||
</data>
|
||||
<data name="cBQuickCharge.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>77, 21</value>
|
||||
</data>
|
||||
<data name="cBQuickCharge.Text" xml:space="preserve">
|
||||
<value>快速充电</value>
|
||||
</data>
|
||||
<data name="cBDownloadLangauge.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>113, 21</value>
|
||||
</data>
|
||||
<data name="cBDownloadLangauge.Text" xml:space="preserve">
|
||||
<value>下载更新语言包</value>
|
||||
</data>
|
||||
<data name="cBUpdate.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>119, 21</value>
|
||||
</data>
|
||||
<data name="cBUpdate.Text" xml:space="preserve">
|
||||
<value>启动时检查更新</value>
|
||||
</data>
|
||||
<data name="cBUpdateTime.Items" xml:space="preserve">
|
||||
<value>小时</value>
|
||||
</data>
|
||||
<data name="cBUpdateTime.Items1" xml:space="preserve">
|
||||
<value>天</value>
|
||||
</data>
|
||||
<data name="lbCheckEvery.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>76, 17</value>
|
||||
</data>
|
||||
<data name="lbCheckEvery.Text" xml:space="preserve">
|
||||
<value>检查频率 每</value>
|
||||
</data>
|
||||
<data name="lbUseXIPorts.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>92, 17</value>
|
||||
</data>
|
||||
<data name="lbUseXIPorts.Text" xml:space="preserve">
|
||||
<value>使用Xinput接口</value>
|
||||
</data>
|
||||
<data name="linkProfiles.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>77, 17</value>
|
||||
</data>
|
||||
<data name="linkProfiles.Text" xml:space="preserve">
|
||||
<value>配置文件目录</value>
|
||||
</data>
|
||||
<data name="lnkControllers.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>52, 17</value>
|
||||
</data>
|
||||
<data name="lnkControllers.Text" xml:space="preserve">
|
||||
<value>控制面板</value>
|
||||
</data>
|
||||
<data name="linkUninstall.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>102, 17</value>
|
||||
</data>
|
||||
<data name="linkUninstall.Text" xml:space="preserve">
|
||||
<value>卸载 VBus 驱动</value>
|
||||
</data>
|
||||
<data name="linkSetup.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>88, 17</value>
|
||||
</data>
|
||||
<data name="linkSetup.Text" xml:space="preserve">
|
||||
<value>手柄/驱动 安装</value>
|
||||
</data>
|
||||
<data name="lLBUpdate.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>80, 17</value>
|
||||
</data>
|
||||
<data name="lLBUpdate.Text" xml:space="preserve">
|
||||
<value>立即检查更新</value>
|
||||
</data>
|
||||
<data name="flowLayoutPanel1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>287, 13</value>
|
||||
</data>
|
||||
<data name="flowLayoutPanel1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>110, 85</value>
|
||||
</data>
|
||||
<data name="tabSettings.Text" xml:space="preserve">
|
||||
<value>设置</value>
|
||||
</data>
|
||||
<data name="tabLog.Text" xml:space="preserve">
|
||||
<value>日志</value>
|
||||
</data>
|
||||
<data name="btnConnectDS4Win10.Text" xml:space="preserve">
|
||||
<value>仅连接DS4 (实验性功能)</value>
|
||||
</data>
|
||||
<data name="cBoxNotifications.Items" xml:space="preserve">
|
||||
<value>不显示</value>
|
||||
</data>
|
||||
@ -6776,13 +6674,136 @@
|
||||
<data name="cBoxNotifications.Items2" xml:space="preserve">
|
||||
<value>显示全部</value>
|
||||
</data>
|
||||
<data name="lbID.Text" xml:space="preserve">
|
||||
<value>ID</value>
|
||||
<data name="cBDisconnectBT.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>110, 17</value>
|
||||
</data>
|
||||
<data name="useCustomColorToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>使用自定义颜色</value>
|
||||
<data name="cBDisconnectBT.Text" xml:space="preserve">
|
||||
<value>停止时断开蓝牙</value>
|
||||
</data>
|
||||
<data name="panel2.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>232, 28</value>
|
||||
</data>
|
||||
<data name="nUDLatency.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>140, 2</value>
|
||||
</data>
|
||||
<data name="lbMsLatency.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>203, 5</value>
|
||||
</data>
|
||||
<data name="cBFlashWhenLate.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>122, 17</value>
|
||||
</data>
|
||||
<data name="cBFlashWhenLate.Text" xml:space="preserve">
|
||||
<value>高延迟时闪烁灯条</value>
|
||||
</data>
|
||||
<data name="cBCloseMini.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>10, 273</value>
|
||||
</data>
|
||||
<data name="cBCloseMini.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>98, 17</value>
|
||||
</data>
|
||||
<data name="cBCloseMini.Text" xml:space="preserve">
|
||||
<value>关闭时最小化</value>
|
||||
</data>
|
||||
<data name="cBQuickCharge.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>10, 296</value>
|
||||
</data>
|
||||
<data name="cBQuickCharge.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>74, 17</value>
|
||||
</data>
|
||||
<data name="cBQuickCharge.Text" xml:space="preserve">
|
||||
<value>快速充电</value>
|
||||
</data>
|
||||
<data name="cBUseWhiteIcon.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>9, 318</value>
|
||||
</data>
|
||||
<data name="cBUpdate.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>248, 10</value>
|
||||
</data>
|
||||
<data name="cBUpdate.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>110, 17</value>
|
||||
</data>
|
||||
<data name="cBUpdate.Text" xml:space="preserve">
|
||||
<value>启动时检查更新</value>
|
||||
</data>
|
||||
<data name="pNUpdate.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>248, 33</value>
|
||||
</data>
|
||||
<data name="cBUpdateTime.Items" xml:space="preserve">
|
||||
<value>小时</value>
|
||||
</data>
|
||||
<data name="cBUpdateTime.Items1" xml:space="preserve">
|
||||
<value>天</value>
|
||||
</data>
|
||||
<data name="lbCheckEvery.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>70, 13</value>
|
||||
</data>
|
||||
<data name="lbCheckEvery.Text" xml:space="preserve">
|
||||
<value>检查频率 每</value>
|
||||
</data>
|
||||
<data name="pnlXIPorts.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>248, 61</value>
|
||||
</data>
|
||||
<data name="lbUseXIPorts.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>85, 13</value>
|
||||
</data>
|
||||
<data name="lbUseXIPorts.Text" xml:space="preserve">
|
||||
<value>使用Xinput接口</value>
|
||||
</data>
|
||||
<data name="languagePackComboBox1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>248, 89</value>
|
||||
</data>
|
||||
<data name="flowLayoutPanel1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>248, 122</value>
|
||||
</data>
|
||||
<data name="linkProfiles.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>79, 13</value>
|
||||
</data>
|
||||
<data name="linkProfiles.Text" xml:space="preserve">
|
||||
<value>配置文件目录</value>
|
||||
</data>
|
||||
<data name="lnkControllers.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>55, 13</value>
|
||||
</data>
|
||||
<data name="lnkControllers.Text" xml:space="preserve">
|
||||
<value>控制面板</value>
|
||||
</data>
|
||||
<data name="linkUninstall.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>86, 13</value>
|
||||
</data>
|
||||
<data name="linkUninstall.Text" xml:space="preserve">
|
||||
<value>卸载 VBus 驱动</value>
|
||||
</data>
|
||||
<data name="linkSetup.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>87, 13</value>
|
||||
</data>
|
||||
<data name="linkSetup.Text" xml:space="preserve">
|
||||
<value>手柄/驱动 安装</value>
|
||||
</data>
|
||||
<data name="lLBUpdate.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>79, 13</value>
|
||||
</data>
|
||||
<data name="lLBUpdate.Text" xml:space="preserve">
|
||||
<value>立即检查更新</value>
|
||||
</data>
|
||||
<data name="tabLog.Text" xml:space="preserve">
|
||||
<value>日志</value>
|
||||
</data>
|
||||
<data name="btnClear.Text" xml:space="preserve">
|
||||
<value>清空</value>
|
||||
</data>
|
||||
<data name="cMCustomLed.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>166, 48</value>
|
||||
</data>
|
||||
<data name="useProfileColorToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>165, 22</value>
|
||||
</data>
|
||||
<data name="useProfileColorToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>使用配置颜色</value>
|
||||
</data>
|
||||
<data name="useCustomColorToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>165, 22</value>
|
||||
</data>
|
||||
<data name="useCustomColorToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>使用自定义颜色</value>
|
||||
</data>
|
||||
</root>
|
@ -123,72 +123,24 @@
|
||||
<data name="chData.Text" xml:space="preserve">
|
||||
<value>資料</value>
|
||||
</data>
|
||||
<data name="btnStartStop.Text" xml:space="preserve">
|
||||
<value>開始</value>
|
||||
</data>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="lbLastMessage.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>973, 22</value>
|
||||
</data>
|
||||
<data name="llbHelp.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>986, 11</value>
|
||||
<value>774, 9</value>
|
||||
</data>
|
||||
<data name="llbHelp.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>56, 17</value>
|
||||
<value>60, 13</value>
|
||||
</data>
|
||||
<data name="llbHelp.Text" xml:space="preserve">
|
||||
<value>熱鍵/關於</value>
|
||||
</data>
|
||||
<data name="btnClear.Text" xml:space="preserve">
|
||||
<value>清除</value>
|
||||
</data>
|
||||
<data name="editProfileForController1ToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>228, 26</value>
|
||||
</data>
|
||||
<data name="editProfileForController1ToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>編輯控制器 1 設定檔</value>
|
||||
</data>
|
||||
<data name="editProfileForController2ToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>228, 26</value>
|
||||
</data>
|
||||
<data name="editProfileForController2ToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>編輯控制器 2 設定檔</value>
|
||||
</data>
|
||||
<data name="editProfileForController3ToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>228, 26</value>
|
||||
</data>
|
||||
<data name="editProfileForController3ToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>編輯控制器 3 設定檔</value>
|
||||
</data>
|
||||
<data name="editProfileForController4ToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>228, 26</value>
|
||||
</data>
|
||||
<data name="editProfileForController4ToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>編輯控制器 4 設定檔</value>
|
||||
</data>
|
||||
<data name="toolStripSeparator1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>225, 6</value>
|
||||
</data>
|
||||
<data name="startToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>228, 26</value>
|
||||
</data>
|
||||
<data name="startToolStripMenuItem.Text" xml:space="preserve">
|
||||
<data name="btnStartStop.Text" xml:space="preserve">
|
||||
<value>開始</value>
|
||||
</data>
|
||||
<data name="openToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>228, 26</value>
|
||||
</data>
|
||||
<data name="openToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>開啟</value>
|
||||
</data>
|
||||
<data name="exitToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>228, 26</value>
|
||||
</data>
|
||||
<data name="exitToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>離開 (滑鼠中鍵)</value>
|
||||
<data name="lbLastMessage.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>973, 22</value>
|
||||
</data>
|
||||
<data name="cMTaskbar.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>229, 192</value>
|
||||
<value>191, 186</value>
|
||||
</data>
|
||||
<data name="notifyIcon1.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
@ -6362,191 +6314,257 @@
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
|
||||
</value>
|
||||
</data>
|
||||
<data name="btnConnectDS4Win10.Text" xml:space="preserve">
|
||||
<value>獨佔地連接 DS4 (實驗功能)</value>
|
||||
<data name="editProfileForController1ToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>190, 22</value>
|
||||
</data>
|
||||
<data name="editProfileForController1ToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>編輯控制器 1 設定檔</value>
|
||||
</data>
|
||||
<data name="editProfileForController2ToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>190, 22</value>
|
||||
</data>
|
||||
<data name="editProfileForController2ToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>編輯控制器 2 設定檔</value>
|
||||
</data>
|
||||
<data name="editProfileForController3ToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>190, 22</value>
|
||||
</data>
|
||||
<data name="editProfileForController3ToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>編輯控制器 3 設定檔</value>
|
||||
</data>
|
||||
<data name="editProfileForController4ToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>190, 22</value>
|
||||
</data>
|
||||
<data name="editProfileForController4ToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>編輯控制器 4 設定檔</value>
|
||||
</data>
|
||||
<data name="toolStripSeparator1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>187, 6</value>
|
||||
</data>
|
||||
<data name="startToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>190, 22</value>
|
||||
</data>
|
||||
<data name="startToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>開始</value>
|
||||
</data>
|
||||
<data name="openToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>190, 22</value>
|
||||
</data>
|
||||
<data name="openToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>開啟</value>
|
||||
</data>
|
||||
<data name="openProgramFolderToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>190, 22</value>
|
||||
</data>
|
||||
<data name="exitToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>190, 22</value>
|
||||
</data>
|
||||
<data name="exitToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>離開 (滑鼠中鍵)</value>
|
||||
</data>
|
||||
<data name="tabControllers.Text" xml:space="preserve">
|
||||
<value>控制器</value>
|
||||
</data>
|
||||
<data name="bnLight3.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1082, 94</value>
|
||||
<value>795, 89</value>
|
||||
</data>
|
||||
<data name="bnLight3.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>36, 28</value>
|
||||
<value>98, 22</value>
|
||||
</data>
|
||||
<data name="pBStatus1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>510, 26</value>
|
||||
<value>382, 34</value>
|
||||
</data>
|
||||
<data name="bnEditC3.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1028, 94</value>
|
||||
<value>755, 89</value>
|
||||
</data>
|
||||
<data name="bnEditC3.Text" xml:space="preserve">
|
||||
<value>編輯</value>
|
||||
</data>
|
||||
<data name="bnEditC4.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1028, 130</value>
|
||||
<value>755, 117</value>
|
||||
</data>
|
||||
<data name="bnEditC4.Text" xml:space="preserve">
|
||||
<value>編輯</value>
|
||||
</data>
|
||||
<data name="cBController1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>882, 23</value>
|
||||
<value>638, 33</value>
|
||||
</data>
|
||||
<data name="bnEditC2.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1028, 58</value>
|
||||
<value>755, 61</value>
|
||||
</data>
|
||||
<data name="bnEditC2.Text" xml:space="preserve">
|
||||
<value>編輯</value>
|
||||
</data>
|
||||
<data name="cBController2.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>882, 59</value>
|
||||
<value>638, 61</value>
|
||||
</data>
|
||||
<data name="cBController3.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>882, 95</value>
|
||||
<value>638, 89</value>
|
||||
</data>
|
||||
<data name="bnEditC1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1028, 22</value>
|
||||
<value>755, 33</value>
|
||||
</data>
|
||||
<data name="bnEditC1.Text" xml:space="preserve">
|
||||
<value>編輯</value>
|
||||
</data>
|
||||
<data name="cBController4.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>882, 131</value>
|
||||
<value>638, 117</value>
|
||||
</data>
|
||||
<data name="lbSelectedProfile.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>929, 0</value>
|
||||
<value>670, 7</value>
|
||||
</data>
|
||||
<data name="lbSelectedProfile.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>44, 18</value>
|
||||
<value>46, 15</value>
|
||||
</data>
|
||||
<data name="lbSelectedProfile.Text" xml:space="preserve">
|
||||
<value>設定檔</value>
|
||||
</data>
|
||||
<data name="lbStatus.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>514, 0</value>
|
||||
<value>385, 7</value>
|
||||
</data>
|
||||
<data name="lbStatus.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>32, 18</value>
|
||||
<value>33, 15</value>
|
||||
</data>
|
||||
<data name="lbStatus.Text" xml:space="preserve">
|
||||
<value>狀態</value>
|
||||
</data>
|
||||
<data name="lbBattery.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>750, 0</value>
|
||||
<value>489, 7</value>
|
||||
</data>
|
||||
<data name="lbBattery.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>32, 18</value>
|
||||
<value>33, 15</value>
|
||||
</data>
|
||||
<data name="lbBattery.Text" xml:space="preserve">
|
||||
<value>電池</value>
|
||||
</data>
|
||||
<data name="lbBatt1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>743, 27</value>
|
||||
<value>486, 36</value>
|
||||
</data>
|
||||
<data name="lbBatt2.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>743, 63</value>
|
||||
<value>486, 64</value>
|
||||
</data>
|
||||
<data name="lbBatt3.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>743, 99</value>
|
||||
<value>486, 92</value>
|
||||
</data>
|
||||
<data name="lbBatt4.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>743, 135</value>
|
||||
<value>486, 120</value>
|
||||
</data>
|
||||
<data name="pBStatus2.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>510, 62</value>
|
||||
<value>382, 62</value>
|
||||
</data>
|
||||
<data name="pBStatus3.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>510, 98</value>
|
||||
<value>382, 90</value>
|
||||
</data>
|
||||
<data name="pBStatus4.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>510, 134</value>
|
||||
<value>382, 118</value>
|
||||
</data>
|
||||
<data name="bnLight1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1082, 22</value>
|
||||
<value>795, 33</value>
|
||||
</data>
|
||||
<data name="bnLight1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>36, 28</value>
|
||||
<value>98, 22</value>
|
||||
</data>
|
||||
<data name="bnLight2.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1082, 58</value>
|
||||
<value>795, 61</value>
|
||||
</data>
|
||||
<data name="bnLight2.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>36, 28</value>
|
||||
<value>98, 22</value>
|
||||
</data>
|
||||
<data name="bnLight4.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1082, 130</value>
|
||||
<value>795, 117</value>
|
||||
</data>
|
||||
<data name="bnLight4.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>36, 28</value>
|
||||
<value>98, 22</value>
|
||||
</data>
|
||||
<data name="lbLinkProfile.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>561, 0</value>
|
||||
</data>
|
||||
<data name="linkCB1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>587, 37</value>
|
||||
</data>
|
||||
<data name="linkCB2.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>587, 65</value>
|
||||
</data>
|
||||
<data name="linkCB3.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>587, 93</value>
|
||||
</data>
|
||||
<data name="linkCB4.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>587, 121</value>
|
||||
</data>
|
||||
<data name="lbNoControllers.Text" xml:space="preserve">
|
||||
<value>沒有連接的控制器 (最多 4 個)</value>
|
||||
</data>
|
||||
<data name="tabControllers.Text" xml:space="preserve">
|
||||
<value>控制器</value>
|
||||
<data name="tabProfiles.Text" xml:space="preserve">
|
||||
<value>設定檔</value>
|
||||
</data>
|
||||
<data name="cMProfile.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>162, 224</value>
|
||||
</data>
|
||||
<data name="editToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>192, 26</value>
|
||||
<value>161, 22</value>
|
||||
</data>
|
||||
<data name="editToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>編輯</value>
|
||||
</data>
|
||||
<data name="assignToController1ToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>192, 26</value>
|
||||
<value>161, 22</value>
|
||||
</data>
|
||||
<data name="assignToController1ToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>指定給控制器 1</value>
|
||||
</data>
|
||||
<data name="assignToController2ToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>192, 26</value>
|
||||
<value>161, 22</value>
|
||||
</data>
|
||||
<data name="assignToController2ToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>指定給控制器 2</value>
|
||||
</data>
|
||||
<data name="assignToController3ToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>192, 26</value>
|
||||
<value>161, 22</value>
|
||||
</data>
|
||||
<data name="assignToController3ToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>指定給控制器 3</value>
|
||||
</data>
|
||||
<data name="assignToController4ToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>192, 26</value>
|
||||
<value>161, 22</value>
|
||||
</data>
|
||||
<data name="assignToController4ToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>指定給控制器 4</value>
|
||||
</data>
|
||||
<data name="deleteToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>192, 26</value>
|
||||
<value>161, 22</value>
|
||||
</data>
|
||||
<data name="deleteToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>刪除 (Del)</value>
|
||||
</data>
|
||||
<data name="duplicateToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>192, 26</value>
|
||||
<value>161, 22</value>
|
||||
</data>
|
||||
<data name="duplicateToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>複製 (Ctrl+D)</value>
|
||||
</data>
|
||||
<data name="newProfileToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>192, 26</value>
|
||||
<value>161, 22</value>
|
||||
</data>
|
||||
<data name="newProfileToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>新設定檔</value>
|
||||
</data>
|
||||
<data name="importToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>192, 26</value>
|
||||
<value>161, 22</value>
|
||||
</data>
|
||||
<data name="importToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>匯入</value>
|
||||
</data>
|
||||
<data name="exportToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>192, 26</value>
|
||||
<value>161, 22</value>
|
||||
</data>
|
||||
<data name="exportToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>匯出</value>
|
||||
</data>
|
||||
<data name="cMProfile.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>193, 264</value>
|
||||
<data name="tSOptions.Text" xml:space="preserve">
|
||||
<value>設定檔選項</value>
|
||||
</data>
|
||||
<data name="toolStripLabel1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>105, 24</value>
|
||||
<value>85, 24</value>
|
||||
</data>
|
||||
<data name="toolStripLabel1.Text" xml:space="preserve">
|
||||
<value>設定檔名稱:</value>
|
||||
@ -6555,28 +6573,25 @@
|
||||
<value><輸入設定檔名稱></value>
|
||||
</data>
|
||||
<data name="tSBSaveProfile.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>113, 24</value>
|
||||
<value>96, 24</value>
|
||||
</data>
|
||||
<data name="tSBSaveProfile.Text" xml:space="preserve">
|
||||
<value>儲存設定檔</value>
|
||||
</data>
|
||||
<data name="tSBCancel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>65, 24</value>
|
||||
<value>57, 24</value>
|
||||
</data>
|
||||
<data name="tSBCancel.Text" xml:space="preserve">
|
||||
<value>取消</value>
|
||||
</data>
|
||||
<data name="tSBKeepSize.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>225, 24</value>
|
||||
<value>187, 24</value>
|
||||
</data>
|
||||
<data name="tSBKeepSize.Text" xml:space="preserve">
|
||||
<value>關閉後保留現在的視窗大小</value>
|
||||
</data>
|
||||
<data name="tSOptions.Text" xml:space="preserve">
|
||||
<value>設定檔選項</value>
|
||||
</data>
|
||||
<data name="tsBNewProfle.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>65, 24</value>
|
||||
<value>57, 24</value>
|
||||
</data>
|
||||
<data name="tsBNewProfle.Text" xml:space="preserve">
|
||||
<value>新增</value>
|
||||
@ -6585,7 +6600,7 @@
|
||||
<value>新增設定檔</value>
|
||||
</data>
|
||||
<data name="tsBEditProfile.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>65, 24</value>
|
||||
<value>57, 24</value>
|
||||
</data>
|
||||
<data name="tsBEditProfile.Text" xml:space="preserve">
|
||||
<value>編輯</value>
|
||||
@ -6594,7 +6609,7 @@
|
||||
<value>編輯選擇的設定檔 (Enter)</value>
|
||||
</data>
|
||||
<data name="tsBDeleteProfile.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>65, 24</value>
|
||||
<value>57, 24</value>
|
||||
</data>
|
||||
<data name="tsBDeleteProfile.Text" xml:space="preserve">
|
||||
<value>刪除</value>
|
||||
@ -6603,7 +6618,7 @@
|
||||
<value>刪除選擇的設定檔 (Delete)</value>
|
||||
</data>
|
||||
<data name="tSBDupProfile.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>65, 24</value>
|
||||
<value>57, 24</value>
|
||||
</data>
|
||||
<data name="tSBDupProfile.Text" xml:space="preserve">
|
||||
<value>複製</value>
|
||||
@ -6612,7 +6627,7 @@
|
||||
<value>複製選擇的設定檔 (Ctrl+D)</value>
|
||||
</data>
|
||||
<data name="tSBImportProfile.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>65, 24</value>
|
||||
<value>57, 24</value>
|
||||
</data>
|
||||
<data name="tSBImportProfile.Text" xml:space="preserve">
|
||||
<value>匯入</value>
|
||||
@ -6621,7 +6636,7 @@
|
||||
<value>匯入一個或多個設定檔</value>
|
||||
</data>
|
||||
<data name="tSBExportProfile.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>65, 24</value>
|
||||
<value>57, 24</value>
|
||||
</data>
|
||||
<data name="tSBExportProfile.Text" xml:space="preserve">
|
||||
<value>匯出</value>
|
||||
@ -6629,38 +6644,41 @@
|
||||
<data name="tSBExportProfile.ToolTipText" xml:space="preserve">
|
||||
<value>匯出選擇的設定檔</value>
|
||||
</data>
|
||||
<data name="tabProfiles.Text" xml:space="preserve">
|
||||
<value>設定檔</value>
|
||||
</data>
|
||||
<data name="tabAutoProfiles.Text" xml:space="preserve">
|
||||
<value>自動設定檔</value>
|
||||
</data>
|
||||
<data name="tabSettings.Text" xml:space="preserve">
|
||||
<value>設定</value>
|
||||
</data>
|
||||
<data name="hideDS4CheckBox.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>120, 21</value>
|
||||
<value>113, 17</value>
|
||||
</data>
|
||||
<data name="hideDS4CheckBox.Text" xml:space="preserve">
|
||||
<value>隱藏 DS4 控制器</value>
|
||||
</data>
|
||||
<data name="cBSwipeProfiles.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>151, 21</value>
|
||||
<value>158, 17</value>
|
||||
</data>
|
||||
<data name="cBSwipeProfiles.Text" xml:space="preserve">
|
||||
<value>滑動觸控板以更換設定檔</value>
|
||||
</data>
|
||||
<data name="StartWindowsCheckBox.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>118, 21</value>
|
||||
<value>122, 17</value>
|
||||
</data>
|
||||
<data name="StartWindowsCheckBox.Text" xml:space="preserve">
|
||||
<value>開機自動執行程式</value>
|
||||
</data>
|
||||
<data name="startMinimizedCheckBox.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>99, 21</value>
|
||||
<value>98, 17</value>
|
||||
</data>
|
||||
<data name="startMinimizedCheckBox.Text" xml:space="preserve">
|
||||
<value>開啟時最小化</value>
|
||||
</data>
|
||||
<data name="panel1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>204, 28</value>
|
||||
</data>
|
||||
<data name="lbNotifications.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>52, 17</value>
|
||||
<value>55, 13</value>
|
||||
</data>
|
||||
<data name="lbNotifications.Text" xml:space="preserve">
|
||||
<value>顯示通知</value>
|
||||
@ -6677,15 +6695,21 @@
|
||||
<data name="cBoxNotifications.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>68, 1</value>
|
||||
</data>
|
||||
<data name="panel1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>204, 28</value>
|
||||
<data name="cBDisconnectBT.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>10, 222</value>
|
||||
</data>
|
||||
<data name="cBDisconnectBT.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>107, 21</value>
|
||||
<value>110, 17</value>
|
||||
</data>
|
||||
<data name="cBDisconnectBT.Text" xml:space="preserve">
|
||||
<value>停止時中斷藍牙</value>
|
||||
</data>
|
||||
<data name="panel2.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>10, 245</value>
|
||||
</data>
|
||||
<data name="panel2.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>232, 28</value>
|
||||
</data>
|
||||
<data name="nUDLatency.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>140, 2</value>
|
||||
</data>
|
||||
@ -6693,38 +6717,47 @@
|
||||
<value>203, 5</value>
|
||||
</data>
|
||||
<data name="cBFlashWhenLate.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>129, 21</value>
|
||||
<value>134, 17</value>
|
||||
</data>
|
||||
<data name="cBFlashWhenLate.Text" xml:space="preserve">
|
||||
<value>在高延遲時閃爍光條</value>
|
||||
</data>
|
||||
<data name="panel2.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>232, 28</value>
|
||||
<data name="cBCloseMini.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>10, 279</value>
|
||||
</data>
|
||||
<data name="cBCloseMini.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>96, 21</value>
|
||||
<value>98, 17</value>
|
||||
</data>
|
||||
<data name="cBCloseMini.Text" xml:space="preserve">
|
||||
<value>關閉時最小化</value>
|
||||
</data>
|
||||
<data name="cBQuickCharge.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>10, 302</value>
|
||||
</data>
|
||||
<data name="cBQuickCharge.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>74, 21</value>
|
||||
<value>74, 17</value>
|
||||
</data>
|
||||
<data name="cBQuickCharge.Text" xml:space="preserve">
|
||||
<value>快速充電</value>
|
||||
</data>
|
||||
<data name="cBDownloadLangauge.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>118, 21</value>
|
||||
<data name="cBUseWhiteIcon.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>9, 324</value>
|
||||
</data>
|
||||
<data name="cBDownloadLangauge.Text" xml:space="preserve">
|
||||
<value>更新時下載語言包</value>
|
||||
<data name="cBUpdate.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>248, 10</value>
|
||||
</data>
|
||||
<data name="cBUpdate.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>113, 21</value>
|
||||
<value>110, 17</value>
|
||||
</data>
|
||||
<data name="cBUpdate.Text" xml:space="preserve">
|
||||
<value>啟動時檢查更新</value>
|
||||
</data>
|
||||
<data name="pNUpdate.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>248, 33</value>
|
||||
</data>
|
||||
<data name="pNUpdate.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>195, 28</value>
|
||||
</data>
|
||||
<data name="cBUpdateTime.Items" xml:space="preserve">
|
||||
<value>小時</value>
|
||||
</data>
|
||||
@ -6735,7 +6768,7 @@
|
||||
<value>117, 0</value>
|
||||
</data>
|
||||
<data name="lbCheckEvery.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>44, 17</value>
|
||||
<value>43, 13</value>
|
||||
</data>
|
||||
<data name="lbCheckEvery.Text" xml:space="preserve">
|
||||
<value>檢查每</value>
|
||||
@ -6743,11 +6776,14 @@
|
||||
<data name="nUDUpdateTime.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>54, 1</value>
|
||||
</data>
|
||||
<data name="pNUpdate.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>195, 28</value>
|
||||
<data name="pnlXIPorts.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>248, 67</value>
|
||||
</data>
|
||||
<data name="pnlXIPorts.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>229, 28</value>
|
||||
</data>
|
||||
<data name="lbUseXIPorts.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>89, 17</value>
|
||||
<value>79, 13</value>
|
||||
</data>
|
||||
<data name="lbUseXIPorts.Text" xml:space="preserve">
|
||||
<value>使用 Xinput 埠</value>
|
||||
@ -6758,67 +6794,61 @@
|
||||
<data name="lbLastXIPort.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>176, 4</value>
|
||||
</data>
|
||||
<data name="pnlXIPorts.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>229, 28</value>
|
||||
<data name="languagePackComboBox1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>248, 101</value>
|
||||
</data>
|
||||
<data name="flowLayoutPanel1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>248, 134</value>
|
||||
</data>
|
||||
<data name="linkProfiles.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>74, 17</value>
|
||||
<value>79, 13</value>
|
||||
</data>
|
||||
<data name="linkProfiles.Text" xml:space="preserve">
|
||||
<value>設定檔資料夾</value>
|
||||
</data>
|
||||
<data name="lnkControllers.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>52, 17</value>
|
||||
<value>55, 13</value>
|
||||
</data>
|
||||
<data name="lnkControllers.Text" xml:space="preserve">
|
||||
<value>控制面版</value>
|
||||
</data>
|
||||
<data name="linkUninstall.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>93, 17</value>
|
||||
<value>86, 13</value>
|
||||
</data>
|
||||
<data name="linkUninstall.Text" xml:space="preserve">
|
||||
<value>移除 VBus 驅動</value>
|
||||
</data>
|
||||
<data name="linkSetup.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>115, 17</value>
|
||||
<value>123, 13</value>
|
||||
</data>
|
||||
<data name="linkSetup.Text" xml:space="preserve">
|
||||
<value>控制器/驅動程式 設定</value>
|
||||
</data>
|
||||
<data name="lLBUpdate.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>55, 17</value>
|
||||
<value>55, 13</value>
|
||||
</data>
|
||||
<data name="lLBUpdate.Text" xml:space="preserve">
|
||||
<value>檢查更新</value>
|
||||
</data>
|
||||
<data name="flowLayoutPanel1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>253, 13</value>
|
||||
</data>
|
||||
<data name="flowLayoutPanel1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>123, 85</value>
|
||||
</data>
|
||||
<data name="tabSettings.Text" xml:space="preserve">
|
||||
<value>設定</value>
|
||||
</data>
|
||||
<data name="tabLog.Text" xml:space="preserve">
|
||||
<value>紀錄</value>
|
||||
</data>
|
||||
<data name="btnClear.Text" xml:space="preserve">
|
||||
<value>清除</value>
|
||||
</data>
|
||||
<data name="cMCustomLed.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>166, 48</value>
|
||||
</data>
|
||||
<data name="useProfileColorToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>196, 26</value>
|
||||
<value>165, 22</value>
|
||||
</data>
|
||||
<data name="useProfileColorToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>使用設定檔顏色</value>
|
||||
</data>
|
||||
<data name="useCustomColorToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>196, 26</value>
|
||||
<value>165, 22</value>
|
||||
</data>
|
||||
<data name="useCustomColorToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>使用自訂顏色</value>
|
||||
</data>
|
||||
<data name="cMCustomLed.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>197, 56</value>
|
||||
</data>
|
||||
<data name="lbID.Text" xml:space="preserve">
|
||||
<value>ID</value>
|
||||
</data>
|
||||
</root>
|
@ -121,7 +121,7 @@
|
||||
<value>Guardar</value>
|
||||
</data>
|
||||
<data name="tBProfile.Text" xml:space="preserve">
|
||||
<value><Escribe nuevo nombre aqui></value>
|
||||
<value><Escribe el nuevo nombre aqui></value>
|
||||
</data>
|
||||
<data name="btnCancel.Text" xml:space="preserve">
|
||||
<value>Cancelar</value>
|
||||
|
@ -218,14 +218,11 @@
|
||||
</data>
|
||||
<data name="$this.Text" xml:space="preserve">
|
||||
<value>Type name of New Profile</value>
|
||||
<comment>@Invariant</comment></data>
|
||||
</data>
|
||||
<data name=">>tBProfile.Name" xml:space="preserve">
|
||||
<value>tBProfile</value>
|
||||
</data>
|
||||
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="$this.Language" type="System.Globalization.CultureInfo, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>vi</value>
|
||||
</metadata>
|
||||
</root>
|
@ -117,13 +117,13 @@
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="btnCancel.Text" xml:space="preserve">
|
||||
<value>Hủy</value>
|
||||
</data>
|
||||
<data name="btnSave.Text" xml:space="preserve">
|
||||
<value>Lưu</value>
|
||||
</data>
|
||||
<data name="tBProfile.Text" xml:space="preserve">
|
||||
<value><gõ tên Profile mới></value>
|
||||
</data>
|
||||
<data name="btnCancel.Text" xml:space="preserve">
|
||||
<value>Hủy</value>
|
||||
</data>
|
||||
</root>
|
66
DS4Windows/DS4Forms/Hotkeys.Designer.cs
generated
66
DS4Windows/DS4Forms/Hotkeys.Designer.cs
generated
@ -40,6 +40,8 @@
|
||||
this.tPHotkeys = new System.Windows.Forms.TabPage();
|
||||
this.lbHotkeys = new System.Windows.Forms.Label();
|
||||
this.tPCredits = new System.Windows.Forms.TabPage();
|
||||
this.linkCurrentSite = new System.Windows.Forms.LinkLabel();
|
||||
this.linkTeokp = new System.Windows.Forms.LinkLabel();
|
||||
this.linkKiliansch = new System.Windows.Forms.LinkLabel();
|
||||
this.linkChamilsaan = new System.Windows.Forms.LinkLabel();
|
||||
this.linkBoganhobo = new System.Windows.Forms.LinkLabel();
|
||||
@ -85,11 +87,15 @@
|
||||
this.lbTranslators = new System.Windows.Forms.Label();
|
||||
this.linkSourceCode = new System.Windows.Forms.LinkLabel();
|
||||
this.lbLinkText = new System.Windows.Forms.Label();
|
||||
this.linkTeokp = new System.Windows.Forms.LinkLabel();
|
||||
this.coinTP = new System.Windows.Forms.TabPage();
|
||||
this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel();
|
||||
this.textBox2 = new System.Windows.Forms.TextBox();
|
||||
this.tCAbout.SuspendLayout();
|
||||
this.tPHotkeys.SuspendLayout();
|
||||
this.tPCredits.SuspendLayout();
|
||||
this.tLPTranslators.SuspendLayout();
|
||||
this.coinTP.SuspendLayout();
|
||||
this.flowLayoutPanel1.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// linkElectro
|
||||
@ -104,7 +110,7 @@
|
||||
resources.ApplyResources(this.linkJays2Kings, "linkJays2Kings");
|
||||
this.linkJays2Kings.Name = "linkJays2Kings";
|
||||
this.linkJays2Kings.TabStop = true;
|
||||
this.linkJays2Kings.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkJays2Kings_LinkClicked);
|
||||
this.linkJays2Kings.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LinkJays2Kings_LinkClicked);
|
||||
//
|
||||
// lbAbout
|
||||
//
|
||||
@ -130,19 +136,20 @@
|
||||
resources.ApplyResources(this.lLChangelog, "lLChangelog");
|
||||
this.lLChangelog.Name = "lLChangelog";
|
||||
this.lLChangelog.TabStop = true;
|
||||
this.lLChangelog.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.lLChangelog_LinkClicked);
|
||||
this.lLChangelog.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LLChangelog_LinkClicked);
|
||||
//
|
||||
// linkDonate
|
||||
//
|
||||
resources.ApplyResources(this.linkDonate, "linkDonate");
|
||||
this.linkDonate.Name = "linkDonate";
|
||||
this.linkDonate.TabStop = true;
|
||||
this.linkDonate.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkDonate_LinkClicked);
|
||||
this.linkDonate.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LinkDonate_LinkClicked);
|
||||
//
|
||||
// tCAbout
|
||||
//
|
||||
this.tCAbout.Controls.Add(this.tPHotkeys);
|
||||
this.tCAbout.Controls.Add(this.tPCredits);
|
||||
this.tCAbout.Controls.Add(this.coinTP);
|
||||
resources.ApplyResources(this.tCAbout, "tCAbout");
|
||||
this.tCAbout.Name = "tCAbout";
|
||||
this.tCAbout.SelectedIndex = 0;
|
||||
@ -161,6 +168,7 @@
|
||||
//
|
||||
// tPCredits
|
||||
//
|
||||
this.tPCredits.Controls.Add(this.linkCurrentSite);
|
||||
this.tPCredits.Controls.Add(this.linkTeokp);
|
||||
this.tPCredits.Controls.Add(this.linkKiliansch);
|
||||
this.tPCredits.Controls.Add(this.linkChamilsaan);
|
||||
@ -177,6 +185,20 @@
|
||||
this.tPCredits.Name = "tPCredits";
|
||||
this.tPCredits.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// linkCurrentSite
|
||||
//
|
||||
resources.ApplyResources(this.linkCurrentSite, "linkCurrentSite");
|
||||
this.linkCurrentSite.Name = "linkCurrentSite";
|
||||
this.linkCurrentSite.TabStop = true;
|
||||
this.linkCurrentSite.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LinkCurrentSite_LinkClicked);
|
||||
//
|
||||
// linkTeokp
|
||||
//
|
||||
resources.ApplyResources(this.linkTeokp, "linkTeokp");
|
||||
this.linkTeokp.Name = "linkTeokp";
|
||||
this.linkTeokp.TabStop = true;
|
||||
this.linkTeokp.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkTeokp_LinkClicked);
|
||||
//
|
||||
// linkKiliansch
|
||||
//
|
||||
resources.ApplyResources(this.linkKiliansch, "linkKiliansch");
|
||||
@ -441,25 +463,38 @@
|
||||
resources.ApplyResources(this.linkSourceCode, "linkSourceCode");
|
||||
this.linkSourceCode.Name = "linkSourceCode";
|
||||
this.linkSourceCode.TabStop = true;
|
||||
this.linkSourceCode.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkSourceCode_LinkClicked);
|
||||
this.linkSourceCode.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.LinkSourceCode_LinkClicked);
|
||||
//
|
||||
// lbLinkText
|
||||
//
|
||||
resources.ApplyResources(this.lbLinkText, "lbLinkText");
|
||||
this.lbLinkText.Name = "lbLinkText";
|
||||
//
|
||||
// linkTeokp
|
||||
// coinTP
|
||||
//
|
||||
resources.ApplyResources(this.linkTeokp, "linkTeokp");
|
||||
this.linkTeokp.Name = "linkTeokp";
|
||||
this.linkTeokp.TabStop = true;
|
||||
this.linkTeokp.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkTeokp_LinkClicked);
|
||||
this.coinTP.Controls.Add(this.flowLayoutPanel1);
|
||||
resources.ApplyResources(this.coinTP, "coinTP");
|
||||
this.coinTP.Name = "coinTP";
|
||||
this.coinTP.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// flowLayoutPanel1
|
||||
//
|
||||
resources.ApplyResources(this.flowLayoutPanel1, "flowLayoutPanel1");
|
||||
this.flowLayoutPanel1.Controls.Add(this.textBox2);
|
||||
this.flowLayoutPanel1.Controls.Add(this.linkDonate);
|
||||
this.flowLayoutPanel1.Name = "flowLayoutPanel1";
|
||||
//
|
||||
// textBox2
|
||||
//
|
||||
this.textBox2.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
resources.ApplyResources(this.textBox2, "textBox2");
|
||||
this.textBox2.Name = "textBox2";
|
||||
this.textBox2.ReadOnly = true;
|
||||
//
|
||||
// Hotkeys
|
||||
//
|
||||
resources.ApplyResources(this, "$this");
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.linkDonate);
|
||||
this.Controls.Add(this.lLChangelog);
|
||||
this.Controls.Add(this.tCAbout);
|
||||
this.Controls.Add(this.lbAbout);
|
||||
@ -472,8 +507,11 @@
|
||||
this.tPCredits.PerformLayout();
|
||||
this.tLPTranslators.ResumeLayout(false);
|
||||
this.tLPTranslators.PerformLayout();
|
||||
this.coinTP.ResumeLayout(false);
|
||||
this.coinTP.PerformLayout();
|
||||
this.flowLayoutPanel1.ResumeLayout(false);
|
||||
this.flowLayoutPanel1.PerformLayout();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
@ -536,5 +574,9 @@
|
||||
private System.Windows.Forms.Label lbpt;
|
||||
private System.Windows.Forms.Label lbPortugueseT;
|
||||
private System.Windows.Forms.LinkLabel linkTeokp;
|
||||
private System.Windows.Forms.TabPage coinTP;
|
||||
private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1;
|
||||
private System.Windows.Forms.TextBox textBox2;
|
||||
private System.Windows.Forms.LinkLabel linkCurrentSite;
|
||||
}
|
||||
}
|
@ -22,31 +22,38 @@ namespace DS4Windows
|
||||
int ind = tLPTranslators.Controls.IndexOf(ctrls[0]) + 1;
|
||||
((Label)tLPTranslators.Controls[ind]).ForeColor = Color.DarkGreen;
|
||||
}
|
||||
|
||||
FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(Assembly.GetExecutingAssembly().Location);
|
||||
string version = fvi.FileVersion;
|
||||
lbAbout.Text += version + ")";
|
||||
if (tPCredits.HasChildren)
|
||||
foreach (System.Windows.Forms.Control ctrl in tPCredits.Controls)
|
||||
{
|
||||
foreach (Control ctrl in tPCredits.Controls)
|
||||
{
|
||||
if (ctrl.HasChildren)
|
||||
foreach (System.Windows.Forms.Control ctrl2 in ctrl.Controls)
|
||||
{
|
||||
foreach (Control ctrl2 in ctrl.Controls)
|
||||
ctrl2.MouseHover += Items_MouseHover;
|
||||
}
|
||||
|
||||
ctrl.MouseHover += Items_MouseHover;
|
||||
}
|
||||
}
|
||||
|
||||
tPCredits.MouseHover += Items_MouseHover;
|
||||
lbLinkText.Text = string.Empty;
|
||||
}
|
||||
|
||||
private void Items_MouseHover(object sender, EventArgs e)
|
||||
{
|
||||
switch (((System.Windows.Forms.Control)sender).Name)
|
||||
switch (((Control)sender).Name)
|
||||
{
|
||||
//if (File.Exists(appdatapath + "\\Auto Profiles.xml"))
|
||||
case "linkJays2Kings": lbLinkText.Text = "http://ds4windows.com"; break;
|
||||
case "linkElectro": lbLinkText.Text = "https://code.google.com/r/brianfundakowskifeldman-ds4windows/"; break;
|
||||
case "linkInhexSTER": lbLinkText.Text = "https://code.google.com/p/ds4-tool/"; break;
|
||||
case "linkJhebbel": lbLinkText.Text = "http://dsdcs.com/index.php/portfolio/software-development/4-ds4windows"; break;
|
||||
case "linkSourceCode": lbLinkText.Text = "https://github.com/Jays2Kings/DS4Windows"; break;
|
||||
case "linkCurrentSite": lbLinkText.Text = "https://ryochan7.github.io/ds4windows-site/"; break;
|
||||
case "linkSourceCode": lbLinkText.Text = "https://github.com/Ryochan7/DS4Windows"; break;
|
||||
case "linkBoganhobo": lbLinkText.Text = "https://github.com/boganhobo"; break;
|
||||
case "linkChamilsaan": lbLinkText.Text = "https://github.com/Chamilsaan"; break;
|
||||
case "linkKiliansch": lbLinkText.Text = "https://github.com/kiliansch"; break;
|
||||
@ -55,9 +62,9 @@ namespace DS4Windows
|
||||
}
|
||||
}
|
||||
|
||||
private void linkJays2Kings_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
private void LinkJays2Kings_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
{
|
||||
Process.Start("http://ds4windows.com");
|
||||
Process.Start("https://github.com/Jays2Kings/");
|
||||
}
|
||||
|
||||
private void linkElectro_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
@ -75,19 +82,19 @@ namespace DS4Windows
|
||||
Process.Start("http://dsdcs.com/index.php/portfolio/software-development/4-ds4windows");
|
||||
}
|
||||
|
||||
private void lLChangelog_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
private void LLChangelog_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
{
|
||||
Process.Start("https://docs.google.com/document/d/1l4xcgVQkGUskc5CQ0p069yW22Cd5WAH_yE3Fz2hXo0E/edit?usp=sharing");
|
||||
Process.Start("https://docs.google.com/document/d/1CovpH08fbPSXrC6TmEprzgPwCe0tTjQ_HTFfDotpmxk/edit?usp=sharing");
|
||||
}
|
||||
|
||||
private void linkDonate_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
private void LinkDonate_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
{
|
||||
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");
|
||||
Process.Start("https://paypal.me/ryochan7");
|
||||
}
|
||||
|
||||
private void linkSourceCode_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
private void LinkSourceCode_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
{
|
||||
Process.Start("https://github.com/Jays2Kings/DS4Windows");
|
||||
Process.Start("https://github.com/Ryochan7/DS4Windows");
|
||||
}
|
||||
|
||||
private void linkBoganhobo_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
@ -109,5 +116,10 @@ namespace DS4Windows
|
||||
{
|
||||
Process.Start("https://github.com/teokp");
|
||||
}
|
||||
|
||||
private void LinkCurrentSite_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
|
||||
{
|
||||
Process.Start("https://ryochan7.github.io/ds4windows-site/");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -140,23 +140,23 @@
|
||||
<value>540, 458</value>
|
||||
</data>
|
||||
<data name="lbHotkeys.Text" xml:space="preserve">
|
||||
<value>Ocultar Controlador DS4: Hides the DS4's regular input (Dinput) from other programs, check if you are getting double input in games or R2 pauses games
|
||||
Click left side of touchpad: Left Touch
|
||||
Click right side of touchpad: Right Touch
|
||||
Click touchpad with 2 fingers: Multitouch
|
||||
Click upper part of touchpad: Upper Touch
|
||||
PS + Options o mantener PS por 10 segundos: Desconectar Controlador (Solo Bluetooth)
|
||||
Tocar Touchpad + PS: Turn off touchpad movement (clicking still works)
|
||||
Pad click on lower right: Right click (Best used when right side is used as a mouse button)
|
||||
Two fingers up/down on touchpad*: Scroll Up/Down
|
||||
Tap then hold touchpad*: Left mouse drag
|
||||
2 finger touchpad swipe left or right: Cycle through profiles
|
||||
Shift Modifer: Hold an action to use another set of controls
|
||||
When mapping keyboard and mouse:
|
||||
Toggle: The key will remain in a ""held down"" state until pressed again
|
||||
Macro: Assign multiple keys to one input
|
||||
Scan Code: Keys are interpreted differently. May be needed for certain games
|
||||
*If enabled</value>
|
||||
<value>Ocultar Control DS4: Oculta la entrada regular del DS4 (Dinput) de otros programas, comprueba si tienes doble entrada en juegos o que R2 pause juegos
|
||||
Haga clic en el lado izquierdo del panel táctil: Toque izquierdo
|
||||
Haga clic en el lado derecho del panel táctil: Toque derecho
|
||||
Haga clic en el panel táctil con 2 dedos: Multi toque
|
||||
Haga clic en la parte superior del panel táctil: Toque superior
|
||||
PS + Options o mantener PS por 10 segundos: Desconectar Control (Solo Bluetooth)
|
||||
Clic en el panel táctil + PS: Desactiva el movimiento del panel táctil (el clic sigue funcionando)
|
||||
Clic en la parte inferior derecha del panel: Haga clic derecho (Mejor utilizado cuando el lado derecho se utiliza como un botón del ratón)
|
||||
Dos dedos arriba / abajo en el panel táctil*: Desplazar hacia arriba / abajo
|
||||
Toque y mantenga pulsado el panel táctil*: Arrastrar el ratón hacia la izquierda
|
||||
Deslizar el dedo hacia la izquierda o la derecha: Ciclo a través de perfiles
|
||||
Modificador de cambio: Realizar una acción para utilizar otro conjunto de controles
|
||||
Al asignar el teclado y el ratón:
|
||||
Palanca: La tecla permanecerá en estado "" presionado "" hasta que se vuelva a pulsar
|
||||
Macro: Asignar varias teclas a una entrada
|
||||
Código de exploración: Las claves se interpretan de manera diferente. Puede ser necesario para ciertos juegos
|
||||
*Si está activado</value>
|
||||
</data>
|
||||
<data name="tPHotkeys.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>563, 386</value>
|
||||
|
File diff suppressed because it is too large
Load Diff
65
DS4Windows/DS4Forms/KBM360.Designer.cs
generated
65
DS4Windows/DS4Forms/KBM360.Designer.cs
generated
@ -229,16 +229,16 @@
|
||||
//
|
||||
// pBHighlight
|
||||
//
|
||||
resources.ApplyResources(this.pBHighlight, "pBHighlight");
|
||||
this.pBHighlight.BackColor = System.Drawing.Color.Transparent;
|
||||
resources.ApplyResources(this.pBHighlight, "pBHighlight");
|
||||
this.pBHighlight.Image = global::DS4Windows.Properties.Resources._360_highlight;
|
||||
this.pBHighlight.Name = "pBHighlight";
|
||||
this.pBHighlight.TabStop = false;
|
||||
//
|
||||
// pBMouse
|
||||
//
|
||||
resources.ApplyResources(this.pBMouse, "pBMouse");
|
||||
this.pBMouse.Image = global::DS4Windows.Properties.Resources.mouse;
|
||||
resources.ApplyResources(this.pBMouse, "pBMouse");
|
||||
this.pBMouse.Name = "pBMouse";
|
||||
this.pBMouse.TabStop = false;
|
||||
//
|
||||
@ -1078,8 +1078,8 @@
|
||||
//
|
||||
// bnColor
|
||||
//
|
||||
resources.ApplyResources(this.bnColor, "bnColor");
|
||||
this.bnColor.BackColor = System.Drawing.Color.White;
|
||||
resources.ApplyResources(this.bnColor, "bnColor");
|
||||
this.bnColor.Name = "bnColor";
|
||||
this.bnColor.UseVisualStyleBackColor = false;
|
||||
this.bnColor.Click += new System.EventHandler(this.bnColor_Click);
|
||||
@ -1117,8 +1117,8 @@
|
||||
//
|
||||
// lBTip
|
||||
//
|
||||
resources.ApplyResources(this.lBTip, "lBTip");
|
||||
this.lBTip.ForeColor = System.Drawing.SystemColors.GrayText;
|
||||
resources.ApplyResources(this.lBTip, "lBTip");
|
||||
this.lBTip.Name = "lBTip";
|
||||
//
|
||||
// btnD
|
||||
@ -1131,11 +1131,11 @@
|
||||
//
|
||||
// btnAButton
|
||||
//
|
||||
resources.ApplyResources(this.btnAButton, "btnAButton");
|
||||
this.btnAButton.BackColor = System.Drawing.Color.Transparent;
|
||||
this.btnAButton.FlatAppearance.BorderSize = 0;
|
||||
this.btnAButton.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Transparent;
|
||||
this.btnAButton.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Transparent;
|
||||
resources.ApplyResources(this.btnAButton, "btnAButton");
|
||||
this.btnAButton.Name = "btnAButton";
|
||||
this.btnAButton.TabStop = false;
|
||||
this.btnAButton.Tag = "X360A Button";
|
||||
@ -1153,11 +1153,11 @@
|
||||
//
|
||||
// btnGuide
|
||||
//
|
||||
resources.ApplyResources(this.btnGuide, "btnGuide");
|
||||
this.btnGuide.BackColor = System.Drawing.Color.Transparent;
|
||||
this.btnGuide.FlatAppearance.BorderSize = 0;
|
||||
this.btnGuide.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Transparent;
|
||||
this.btnGuide.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Transparent;
|
||||
resources.ApplyResources(this.btnGuide, "btnGuide");
|
||||
this.btnGuide.Name = "btnGuide";
|
||||
this.btnGuide.TabStop = false;
|
||||
this.btnGuide.Tag = "X360Guide";
|
||||
@ -1175,11 +1175,11 @@
|
||||
//
|
||||
// btnStart
|
||||
//
|
||||
resources.ApplyResources(this.btnStart, "btnStart");
|
||||
this.btnStart.BackColor = System.Drawing.Color.Transparent;
|
||||
this.btnStart.FlatAppearance.BorderSize = 0;
|
||||
this.btnStart.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Transparent;
|
||||
this.btnStart.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Transparent;
|
||||
resources.ApplyResources(this.btnStart, "btnStart");
|
||||
this.btnStart.Name = "btnStart";
|
||||
this.btnStart.TabStop = false;
|
||||
this.btnStart.Tag = "X360Start";
|
||||
@ -1197,11 +1197,11 @@
|
||||
//
|
||||
// btnBack
|
||||
//
|
||||
resources.ApplyResources(this.btnBack, "btnBack");
|
||||
this.btnBack.BackColor = System.Drawing.Color.Transparent;
|
||||
this.btnBack.FlatAppearance.BorderSize = 0;
|
||||
this.btnBack.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Transparent;
|
||||
this.btnBack.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Transparent;
|
||||
resources.ApplyResources(this.btnBack, "btnBack");
|
||||
this.btnBack.Name = "btnBack";
|
||||
this.btnBack.TabStop = false;
|
||||
this.btnBack.Tag = "X360Back";
|
||||
@ -1219,11 +1219,11 @@
|
||||
//
|
||||
// btnBButton
|
||||
//
|
||||
resources.ApplyResources(this.btnBButton, "btnBButton");
|
||||
this.btnBButton.BackColor = System.Drawing.Color.Transparent;
|
||||
this.btnBButton.FlatAppearance.BorderSize = 0;
|
||||
this.btnBButton.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Transparent;
|
||||
this.btnBButton.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Transparent;
|
||||
resources.ApplyResources(this.btnBButton, "btnBButton");
|
||||
this.btnBButton.Name = "btnBButton";
|
||||
this.btnBButton.TabStop = false;
|
||||
this.btnBButton.Tag = "X360B Button";
|
||||
@ -1241,11 +1241,11 @@
|
||||
//
|
||||
// btnXButton
|
||||
//
|
||||
resources.ApplyResources(this.btnXButton, "btnXButton");
|
||||
this.btnXButton.BackColor = System.Drawing.Color.Transparent;
|
||||
this.btnXButton.FlatAppearance.BorderSize = 0;
|
||||
this.btnXButton.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Transparent;
|
||||
this.btnXButton.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Transparent;
|
||||
resources.ApplyResources(this.btnXButton, "btnXButton");
|
||||
this.btnXButton.Name = "btnXButton";
|
||||
this.btnXButton.TabStop = false;
|
||||
this.btnXButton.Tag = "X360X Button";
|
||||
@ -1263,11 +1263,11 @@
|
||||
//
|
||||
// btnYButton
|
||||
//
|
||||
resources.ApplyResources(this.btnYButton, "btnYButton");
|
||||
this.btnYButton.BackColor = System.Drawing.Color.Transparent;
|
||||
this.btnYButton.FlatAppearance.BorderSize = 0;
|
||||
this.btnYButton.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Transparent;
|
||||
this.btnYButton.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Transparent;
|
||||
resources.ApplyResources(this.btnYButton, "btnYButton");
|
||||
this.btnYButton.Name = "btnYButton";
|
||||
this.btnYButton.TabStop = false;
|
||||
this.btnYButton.Tag = "X360Y Button";
|
||||
@ -1285,11 +1285,11 @@
|
||||
//
|
||||
// btnLB
|
||||
//
|
||||
resources.ApplyResources(this.btnLB, "btnLB");
|
||||
this.btnLB.BackColor = System.Drawing.Color.Transparent;
|
||||
this.btnLB.FlatAppearance.BorderSize = 0;
|
||||
this.btnLB.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Transparent;
|
||||
this.btnLB.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Transparent;
|
||||
resources.ApplyResources(this.btnLB, "btnLB");
|
||||
this.btnLB.Name = "btnLB";
|
||||
this.btnLB.TabStop = false;
|
||||
this.btnLB.Tag = "X360Left Bumper";
|
||||
@ -1307,11 +1307,11 @@
|
||||
//
|
||||
// btnDpadRight
|
||||
//
|
||||
resources.ApplyResources(this.btnDpadRight, "btnDpadRight");
|
||||
this.btnDpadRight.BackColor = System.Drawing.Color.Transparent;
|
||||
this.btnDpadRight.FlatAppearance.BorderSize = 0;
|
||||
this.btnDpadRight.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Transparent;
|
||||
this.btnDpadRight.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Transparent;
|
||||
resources.ApplyResources(this.btnDpadRight, "btnDpadRight");
|
||||
this.btnDpadRight.Name = "btnDpadRight";
|
||||
this.btnDpadRight.TabStop = false;
|
||||
this.btnDpadRight.Tag = "X360Right Button";
|
||||
@ -1329,11 +1329,11 @@
|
||||
//
|
||||
// btnDpadUp
|
||||
//
|
||||
resources.ApplyResources(this.btnDpadUp, "btnDpadUp");
|
||||
this.btnDpadUp.BackColor = System.Drawing.Color.Transparent;
|
||||
this.btnDpadUp.FlatAppearance.BorderSize = 0;
|
||||
this.btnDpadUp.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Transparent;
|
||||
this.btnDpadUp.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Transparent;
|
||||
resources.ApplyResources(this.btnDpadUp, "btnDpadUp");
|
||||
this.btnDpadUp.Name = "btnDpadUp";
|
||||
this.btnDpadUp.TabStop = false;
|
||||
this.btnDpadUp.Tag = "X360Up Button";
|
||||
@ -1351,11 +1351,11 @@
|
||||
//
|
||||
// btnDpadDown
|
||||
//
|
||||
resources.ApplyResources(this.btnDpadDown, "btnDpadDown");
|
||||
this.btnDpadDown.BackColor = System.Drawing.Color.Transparent;
|
||||
this.btnDpadDown.FlatAppearance.BorderSize = 0;
|
||||
this.btnDpadDown.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Transparent;
|
||||
this.btnDpadDown.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Transparent;
|
||||
resources.ApplyResources(this.btnDpadDown, "btnDpadDown");
|
||||
this.btnDpadDown.Name = "btnDpadDown";
|
||||
this.btnDpadDown.TabStop = false;
|
||||
this.btnDpadDown.Tag = "X360Down Button";
|
||||
@ -1373,11 +1373,11 @@
|
||||
//
|
||||
// btnDpadLeft
|
||||
//
|
||||
resources.ApplyResources(this.btnDpadLeft, "btnDpadLeft");
|
||||
this.btnDpadLeft.BackColor = System.Drawing.Color.Transparent;
|
||||
this.btnDpadLeft.FlatAppearance.BorderSize = 0;
|
||||
this.btnDpadLeft.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Transparent;
|
||||
this.btnDpadLeft.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Transparent;
|
||||
resources.ApplyResources(this.btnDpadLeft, "btnDpadLeft");
|
||||
this.btnDpadLeft.Name = "btnDpadLeft";
|
||||
this.btnDpadLeft.TabStop = false;
|
||||
this.btnDpadLeft.Tag = "X360Left Button";
|
||||
@ -1395,11 +1395,11 @@
|
||||
//
|
||||
// btnLT
|
||||
//
|
||||
resources.ApplyResources(this.btnLT, "btnLT");
|
||||
this.btnLT.BackColor = System.Drawing.Color.Transparent;
|
||||
this.btnLT.FlatAppearance.BorderSize = 0;
|
||||
this.btnLT.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Transparent;
|
||||
this.btnLT.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Transparent;
|
||||
resources.ApplyResources(this.btnLT, "btnLT");
|
||||
this.btnLT.ForeColor = System.Drawing.Color.Transparent;
|
||||
this.btnLT.Name = "btnLT";
|
||||
this.btnLT.TabStop = false;
|
||||
@ -1473,11 +1473,11 @@
|
||||
//
|
||||
// btnRSLeft
|
||||
//
|
||||
resources.ApplyResources(this.btnRSLeft, "btnRSLeft");
|
||||
this.btnRSLeft.BackColor = System.Drawing.Color.Transparent;
|
||||
this.btnRSLeft.FlatAppearance.BorderSize = 0;
|
||||
this.btnRSLeft.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Transparent;
|
||||
this.btnRSLeft.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Transparent;
|
||||
resources.ApplyResources(this.btnRSLeft, "btnRSLeft");
|
||||
this.btnRSLeft.Name = "btnRSLeft";
|
||||
this.btnRSLeft.TabStop = false;
|
||||
this.btnRSLeft.Tag = "X360Right X-Axis-";
|
||||
@ -1495,11 +1495,11 @@
|
||||
//
|
||||
// btnRSDown
|
||||
//
|
||||
resources.ApplyResources(this.btnRSDown, "btnRSDown");
|
||||
this.btnRSDown.BackColor = System.Drawing.Color.Transparent;
|
||||
this.btnRSDown.FlatAppearance.BorderSize = 0;
|
||||
this.btnRSDown.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Transparent;
|
||||
this.btnRSDown.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Transparent;
|
||||
resources.ApplyResources(this.btnRSDown, "btnRSDown");
|
||||
this.btnRSDown.Name = "btnRSDown";
|
||||
this.btnRSDown.TabStop = false;
|
||||
this.btnRSDown.Tag = "X360Right Y-Axis+";
|
||||
@ -1517,11 +1517,11 @@
|
||||
//
|
||||
// btnRSRight
|
||||
//
|
||||
resources.ApplyResources(this.btnRSRight, "btnRSRight");
|
||||
this.btnRSRight.BackColor = System.Drawing.Color.Transparent;
|
||||
this.btnRSRight.FlatAppearance.BorderSize = 0;
|
||||
this.btnRSRight.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Transparent;
|
||||
this.btnRSRight.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Transparent;
|
||||
resources.ApplyResources(this.btnRSRight, "btnRSRight");
|
||||
this.btnRSRight.Name = "btnRSRight";
|
||||
this.btnRSRight.TabStop = false;
|
||||
this.btnRSRight.Tag = "X360Right X-Axis+";
|
||||
@ -1539,11 +1539,11 @@
|
||||
//
|
||||
// btnRB
|
||||
//
|
||||
resources.ApplyResources(this.btnRB, "btnRB");
|
||||
this.btnRB.BackColor = System.Drawing.Color.Transparent;
|
||||
this.btnRB.FlatAppearance.BorderSize = 0;
|
||||
this.btnRB.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Transparent;
|
||||
this.btnRB.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Transparent;
|
||||
resources.ApplyResources(this.btnRB, "btnRB");
|
||||
this.btnRB.Name = "btnRB";
|
||||
this.btnRB.TabStop = false;
|
||||
this.btnRB.Tag = "X360Right Bumper";
|
||||
@ -1561,11 +1561,11 @@
|
||||
//
|
||||
// btnLSLeft
|
||||
//
|
||||
resources.ApplyResources(this.btnLSLeft, "btnLSLeft");
|
||||
this.btnLSLeft.BackColor = System.Drawing.Color.Transparent;
|
||||
this.btnLSLeft.FlatAppearance.BorderSize = 0;
|
||||
this.btnLSLeft.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Transparent;
|
||||
this.btnLSLeft.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Transparent;
|
||||
resources.ApplyResources(this.btnLSLeft, "btnLSLeft");
|
||||
this.btnLSLeft.Name = "btnLSLeft";
|
||||
this.btnLSLeft.TabStop = false;
|
||||
this.btnLSLeft.Tag = "X360Left X-Axis-";
|
||||
@ -1583,11 +1583,11 @@
|
||||
//
|
||||
// btnRSUp
|
||||
//
|
||||
resources.ApplyResources(this.btnRSUp, "btnRSUp");
|
||||
this.btnRSUp.BackColor = System.Drawing.Color.Transparent;
|
||||
this.btnRSUp.FlatAppearance.BorderSize = 0;
|
||||
this.btnRSUp.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Transparent;
|
||||
this.btnRSUp.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Transparent;
|
||||
resources.ApplyResources(this.btnRSUp, "btnRSUp");
|
||||
this.btnRSUp.Name = "btnRSUp";
|
||||
this.btnRSUp.TabStop = false;
|
||||
this.btnRSUp.Tag = "X360Right Y-Axis-";
|
||||
@ -1605,11 +1605,11 @@
|
||||
//
|
||||
// btnLSDown
|
||||
//
|
||||
resources.ApplyResources(this.btnLSDown, "btnLSDown");
|
||||
this.btnLSDown.BackColor = System.Drawing.Color.Transparent;
|
||||
this.btnLSDown.FlatAppearance.BorderSize = 0;
|
||||
this.btnLSDown.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Transparent;
|
||||
this.btnLSDown.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Transparent;
|
||||
resources.ApplyResources(this.btnLSDown, "btnLSDown");
|
||||
this.btnLSDown.Name = "btnLSDown";
|
||||
this.btnLSDown.TabStop = false;
|
||||
this.btnLSDown.Tag = "X360Left Y-Axis+";
|
||||
@ -1627,11 +1627,11 @@
|
||||
//
|
||||
// btnRT
|
||||
//
|
||||
resources.ApplyResources(this.btnRT, "btnRT");
|
||||
this.btnRT.BackColor = System.Drawing.Color.Transparent;
|
||||
this.btnRT.FlatAppearance.BorderSize = 0;
|
||||
this.btnRT.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Transparent;
|
||||
this.btnRT.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Transparent;
|
||||
resources.ApplyResources(this.btnRT, "btnRT");
|
||||
this.btnRT.Name = "btnRT";
|
||||
this.btnRT.TabStop = false;
|
||||
this.btnRT.Tag = "X360Right Trigger";
|
||||
@ -1649,11 +1649,11 @@
|
||||
//
|
||||
// btnLSRight
|
||||
//
|
||||
resources.ApplyResources(this.btnLSRight, "btnLSRight");
|
||||
this.btnLSRight.BackColor = System.Drawing.Color.Transparent;
|
||||
this.btnLSRight.FlatAppearance.BorderSize = 0;
|
||||
this.btnLSRight.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Transparent;
|
||||
this.btnLSRight.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Transparent;
|
||||
resources.ApplyResources(this.btnLSRight, "btnLSRight");
|
||||
this.btnLSRight.Name = "btnLSRight";
|
||||
this.btnLSRight.TabStop = false;
|
||||
this.btnLSRight.Tag = "X360Left X-Axis+";
|
||||
@ -1671,11 +1671,11 @@
|
||||
//
|
||||
// btnRSClick
|
||||
//
|
||||
resources.ApplyResources(this.btnRSClick, "btnRSClick");
|
||||
this.btnRSClick.BackColor = System.Drawing.Color.Transparent;
|
||||
this.btnRSClick.FlatAppearance.BorderSize = 0;
|
||||
this.btnRSClick.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Transparent;
|
||||
this.btnRSClick.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Transparent;
|
||||
resources.ApplyResources(this.btnRSClick, "btnRSClick");
|
||||
this.btnRSClick.Name = "btnRSClick";
|
||||
this.btnRSClick.TabStop = false;
|
||||
this.btnRSClick.Tag = "X360Right Stick";
|
||||
@ -1693,11 +1693,11 @@
|
||||
//
|
||||
// btnLSUp
|
||||
//
|
||||
resources.ApplyResources(this.btnLSUp, "btnLSUp");
|
||||
this.btnLSUp.BackColor = System.Drawing.Color.Transparent;
|
||||
this.btnLSUp.FlatAppearance.BorderSize = 0;
|
||||
this.btnLSUp.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Transparent;
|
||||
this.btnLSUp.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Transparent;
|
||||
resources.ApplyResources(this.btnLSUp, "btnLSUp");
|
||||
this.btnLSUp.Name = "btnLSUp";
|
||||
this.btnLSUp.TabStop = false;
|
||||
this.btnLSUp.Tag = "X360Left Y-Axis-";
|
||||
@ -1707,11 +1707,11 @@
|
||||
//
|
||||
// btnLSClick
|
||||
//
|
||||
resources.ApplyResources(this.btnLSClick, "btnLSClick");
|
||||
this.btnLSClick.BackColor = System.Drawing.Color.Transparent;
|
||||
this.btnLSClick.FlatAppearance.BorderSize = 0;
|
||||
this.btnLSClick.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Transparent;
|
||||
this.btnLSClick.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Transparent;
|
||||
resources.ApplyResources(this.btnLSClick, "btnLSClick");
|
||||
this.btnLSClick.Name = "btnLSClick";
|
||||
this.btnLSClick.TabStop = false;
|
||||
this.btnLSClick.Tag = "X360Left Stick";
|
||||
@ -1751,7 +1751,6 @@
|
||||
//
|
||||
// gBExtras
|
||||
//
|
||||
resources.ApplyResources(this.gBExtras, "gBExtras");
|
||||
this.gBExtras.Controls.Add(this.nUDMouse);
|
||||
this.gBExtras.Controls.Add(this.cBMouse);
|
||||
this.gBExtras.Controls.Add(this.cBLightbar);
|
||||
@ -1774,6 +1773,7 @@
|
||||
this.gBExtras.Controls.Add(this.tBGreenBar);
|
||||
this.gBExtras.Controls.Add(this.tBRedBar);
|
||||
this.gBExtras.Controls.Add(this.lBTip);
|
||||
resources.ApplyResources(this.gBExtras, "gBExtras");
|
||||
this.gBExtras.Name = "gBExtras";
|
||||
this.gBExtras.TabStop = false;
|
||||
//
|
||||
@ -1824,7 +1824,6 @@
|
||||
//
|
||||
// cBShiftButton
|
||||
//
|
||||
resources.ApplyResources(this.cBShiftButton, "cBShiftButton");
|
||||
this.cBShiftButton.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.cBShiftButton.FormattingEnabled = true;
|
||||
this.cBShiftButton.Items.AddRange(new object[] {
|
||||
@ -1855,12 +1854,13 @@
|
||||
resources.GetString("cBShiftButton.Items24"),
|
||||
resources.GetString("cBShiftButton.Items25"),
|
||||
resources.GetString("cBShiftButton.Items26")});
|
||||
resources.ApplyResources(this.cBShiftButton, "cBShiftButton");
|
||||
this.cBShiftButton.Name = "cBShiftButton";
|
||||
//
|
||||
// pnl360Controls
|
||||
//
|
||||
resources.ApplyResources(this.pnl360Controls, "pnl360Controls");
|
||||
this.pnl360Controls.BackgroundImage = global::DS4Windows.Properties.Resources._360_map;
|
||||
resources.ApplyResources(this.pnl360Controls, "pnl360Controls");
|
||||
this.pnl360Controls.Controls.Add(this.lb360Tip);
|
||||
this.pnl360Controls.Controls.Add(this.pBHighlight);
|
||||
this.pnl360Controls.Controls.Add(this.btnGuide);
|
||||
@ -1890,6 +1890,7 @@
|
||||
this.pnl360Controls.Controls.Add(this.btnDpadDown);
|
||||
this.pnl360Controls.Controls.Add(this.btnDpadUp);
|
||||
this.pnl360Controls.Name = "pnl360Controls";
|
||||
this.pnl360Controls.Paint += new System.Windows.Forms.PaintEventHandler(this.pnl360Controls_Paint);
|
||||
//
|
||||
// lb360Tip
|
||||
//
|
||||
|
@ -1,10 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace DS4Windows
|
||||
@ -25,17 +21,22 @@ namespace DS4Windows
|
||||
bool loading = true;
|
||||
private int alphacolor;
|
||||
private Color reg, full;
|
||||
int bgc = 240; //Color of the form background, If greyscale color
|
||||
int bgc = 240; // Color of the form background, If greyscale color
|
||||
private bool extraChanged;
|
||||
private Bitmap pnl360BgImage;
|
||||
|
||||
public KBM360(int deviceNum, Options ooo, Button buton)
|
||||
{
|
||||
InitializeComponent();
|
||||
pnl360BgImage = (Bitmap)Properties.Resources._360_map.Clone();
|
||||
pnl360Controls.BackgroundImage = null;
|
||||
pnl360Controls.BackgroundImageLayout = ImageLayout.None;
|
||||
device = deviceNum;
|
||||
ops = ooo;
|
||||
button = buton;
|
||||
cBToggle.Checked = button.Font.Italic;
|
||||
cBScanCode.Checked = button.Font.Bold;
|
||||
DS4ControlSettings dcs = Global.getDS4CSetting(device, button.Name);
|
||||
cBToggle.Checked = dcs.keyType.HasFlag(DS4KeyType.Toggle);
|
||||
cBScanCode.Checked = dcs.keyType.HasFlag(DS4KeyType.ScanCode);
|
||||
oldSC = cBScanCode.Location;
|
||||
defaultText = btnDefault.Text;
|
||||
if (button.Name.StartsWith("bnShift"))
|
||||
@ -45,13 +46,22 @@ namespace DS4Windows
|
||||
btnDefault.Text = Properties.Resources.FallBack;
|
||||
}
|
||||
else if (button.Name.StartsWith("bn"))
|
||||
{
|
||||
Text = Properties.Resources.SelectActionTitle.Replace("*action*", button.Name.Substring(2));
|
||||
}
|
||||
|
||||
foreach (Control control in Controls)
|
||||
{
|
||||
if (control is Button)
|
||||
((Button)control).Click += anybtn_Click;
|
||||
}
|
||||
|
||||
foreach (Control control in pnl360Controls.Controls)
|
||||
{
|
||||
if (control is Button)
|
||||
((Button)control).Click += anybtn_Click;
|
||||
}
|
||||
|
||||
if (button.Name.Contains("Touch") || button.Name.Contains("Swipe"))
|
||||
{
|
||||
btnMOUSEDOWN.Visible = false;
|
||||
@ -59,6 +69,7 @@ namespace DS4Windows
|
||||
btnMOUSERIGHT.Visible = false;
|
||||
btnMOUSEUP.Visible = false;
|
||||
}
|
||||
|
||||
ActiveControl = lBMacroOn;
|
||||
guideText = btnGuide.Text;
|
||||
btnGuide.Text = "";
|
||||
@ -73,7 +84,9 @@ namespace DS4Windows
|
||||
InitializeComponent();
|
||||
sA = ooo;
|
||||
button = buton;
|
||||
Size = new Size(btnVolUp.Location.X + btnVolUp.Size.Width * 2, btnNUMENTER.Location.Y + btnNUMENTER.Size.Height * 2);
|
||||
Size = new Size(btnVolUp.Location.X + btnVolUp.Size.Width * 2,
|
||||
btnNUMENTER.Location.Y + btnNUMENTER.Size.Height * 2);
|
||||
|
||||
if (extras)
|
||||
{
|
||||
cBScanCode.Checked = button.Text.Contains("(SC)");
|
||||
@ -84,13 +97,17 @@ namespace DS4Windows
|
||||
cBScanCode.Visible = false;
|
||||
cBToggle.Visible = false;
|
||||
}
|
||||
|
||||
gBExtras.Visible = false;
|
||||
bnMacro.Visible = false;
|
||||
X360Label.Visible = false;
|
||||
Text = Properties.Resources.SelectActionTitle.Replace("*action*", "Trigger");
|
||||
foreach (Control control in Controls)
|
||||
{
|
||||
if (control is Button)
|
||||
((Button)control).Click += anybtn_Click;
|
||||
}
|
||||
|
||||
btnMOUSEDOWN.Visible = false;
|
||||
btnMOUSELEFT.Visible = false;
|
||||
btnMOUSERIGHT.Visible = false;
|
||||
@ -129,39 +146,61 @@ namespace DS4Windows
|
||||
keyname = "How did you get here?";
|
||||
}
|
||||
else */
|
||||
if (((Button)sender).Tag == null)
|
||||
keyname = ((Button)sender).Text;
|
||||
else if (((Button)sender).Tag.ToString().Contains("X360"))
|
||||
keyname = ((Button)sender).Tag.ToString().Substring(4);
|
||||
else if (((Button)sender).Tag != null && ushort.TryParse(((Button)sender).Tag.ToString(), out val))
|
||||
if (bn.Tag == null)
|
||||
keyname = bn.Text;
|
||||
else if (bn.Tag.ToString().Contains("X360"))
|
||||
keyname = bn.Tag.ToString().Substring(4);
|
||||
else if (bn.Tag != null && ushort.TryParse(bn.Tag.ToString(), out val))
|
||||
keyname = ((Keys)val).ToString();
|
||||
else
|
||||
keyname = ((Button)sender).Tag.ToString();
|
||||
keyname = bn.Tag.ToString();
|
||||
|
||||
object keytag;
|
||||
//ushort val;
|
||||
if (((Button)sender).Tag != null && ((Button)sender).Tag.ToString().Contains("X360"))
|
||||
keytag = ((Button)sender).Tag.ToString().Substring(4);
|
||||
else if (((Button)sender).Tag != null && ushort.TryParse(((Button)sender).Tag.ToString(), out val))
|
||||
if (bn.Tag != null && bn.Tag.ToString().Contains("X360"))
|
||||
{
|
||||
//keytag = ((Button)sender).Tag.ToString().Substring(4);
|
||||
keytag = Global.getX360ControlsByName(bn.Tag.ToString().Substring(4));
|
||||
DS4Controls psButton = Global.getDS4ControlsByName(button.Name);
|
||||
if ((X360Controls)keytag == Global.getDefaultX360ControlBinding(psButton) &&
|
||||
!cBScanCode.Checked && !cBToggle.Checked && !rBShiftModifer.Checked)
|
||||
{
|
||||
// Reset action
|
||||
keytag = null;
|
||||
}
|
||||
}
|
||||
else if (bn.Tag != null && ushort.TryParse(bn.Tag.ToString(), out val))
|
||||
keytag = val;
|
||||
else
|
||||
keytag = ((Button)sender).Tag;
|
||||
keytag = bn.Tag;
|
||||
|
||||
lBMacroOn.Visible = false;
|
||||
string extras = GetExtras();
|
||||
string extras = null;
|
||||
if (IsUsingExtras())
|
||||
{
|
||||
extras = GetExtras();
|
||||
}
|
||||
|
||||
KeyValuePair<object, string> tag = new KeyValuePair<object, string>(keytag, extras);
|
||||
|
||||
newaction = true;
|
||||
int value;
|
||||
bool tagisint = keytag != null && int.TryParse(keytag.ToString(), out value);
|
||||
bool scanavail = tagisint;
|
||||
bool toggleavil = tagisint;
|
||||
if (ops != null)
|
||||
ops.ChangeButtonText(button, rBShiftModifer.Checked, tag, (scanavail ? cBScanCode.Checked : false), (toggleavil ? cBToggle.Checked : false), false, false, cBShiftButton.SelectedIndex);
|
||||
{
|
||||
ops.ChangeButtonText(button, rBShiftModifer.Checked, tag,
|
||||
(scanavail ? cBScanCode.Checked : false), (toggleavil ? cBToggle.Checked : false),
|
||||
false, false, cBShiftButton.SelectedIndex);
|
||||
}
|
||||
else if (sA != null)
|
||||
{
|
||||
button.Text = keyname;
|
||||
button.Tag = keytag;
|
||||
button.ForeColor = Color.Black;
|
||||
}
|
||||
|
||||
this.Close();
|
||||
}
|
||||
}
|
||||
@ -171,9 +210,26 @@ namespace DS4Windows
|
||||
string t =(byte)nUDHeavy.Value + "," + (byte)nUDLight.Value + "," +
|
||||
(cBLightbar.Checked ? "1" + "," + tBRedBar.Value + "," + tBGreenBar.Value + "," + tBBlueBar.Value + "," + nUDLightFlash.Value: "0,0,0,0,0") + "," +
|
||||
(cBMouse.Checked ? "1" + "," + (byte)nUDMouse.Value : "0,0");
|
||||
|
||||
return t;
|
||||
}
|
||||
|
||||
private bool IsUsingExtras()
|
||||
{
|
||||
bool result = false;
|
||||
result = result || (nUDHeavy.Value != 0);
|
||||
result = result || (nUDLight.Value != 0);
|
||||
result = result || (cBLightbar.Checked);
|
||||
result = result ||
|
||||
(tBRedBar.Value != 255 && tBGreenBar.Value != 255 &&
|
||||
tBBlueBar.Value != 255);
|
||||
|
||||
result = result || (nUDLightFlash.Value != 0);
|
||||
result = result || (cBMouse.Checked);
|
||||
result = result || (nUDMouse.Value != 25);
|
||||
return result;
|
||||
}
|
||||
|
||||
private void finalMeasure(object sender, FormClosedEventArgs e)
|
||||
{
|
||||
if (ops != null)
|
||||
@ -186,13 +242,23 @@ namespace DS4Windows
|
||||
}
|
||||
if (lBMacroOn.Visible)
|
||||
{
|
||||
string extras = GetExtras();
|
||||
string extras = null;
|
||||
if (IsUsingExtras())
|
||||
{
|
||||
extras = GetExtras();
|
||||
}
|
||||
|
||||
KeyValuePair<object, string> tag = new KeyValuePair<object, string>(macrostag.ToArray(), extras);
|
||||
ops.ChangeButtonText(button, rBShiftModifer.Checked, tag, cBScanCode.Checked, false, lBMacroOn.Visible, macrorepeat, cBShiftButton.SelectedIndex);
|
||||
}
|
||||
else if (!newaction)
|
||||
{
|
||||
string extras = GetExtras();
|
||||
string extras = null;
|
||||
if (IsUsingExtras())
|
||||
{
|
||||
extras = GetExtras();
|
||||
}
|
||||
|
||||
int value;
|
||||
object tt = Global.GetDS4Action(device, button.Name, rBShiftModifer.Checked);
|
||||
bool tagisint = tt != null
|
||||
@ -228,17 +294,26 @@ namespace DS4Windows
|
||||
if (rb == null && !(ActiveControl is NumericUpDown) && !(ActiveControl is TrackBar))
|
||||
{
|
||||
lBMacroOn.Visible = false;
|
||||
string extras = GetExtras();
|
||||
string extras = null;
|
||||
if (IsUsingExtras())
|
||||
{
|
||||
extras = GetExtras();
|
||||
}
|
||||
|
||||
KeyValuePair<object, string> tag = new KeyValuePair<object, string>(e.KeyValue, extras);
|
||||
newaction = true;
|
||||
if (ops != null)
|
||||
ops.ChangeButtonText(button, rBShiftModifer.Checked, tag, cBScanCode.Checked, cBToggle.Checked, false, false, cBShiftButton.SelectedIndex);
|
||||
{
|
||||
ops.ChangeButtonText(button, rBShiftModifer.Checked, tag,
|
||||
cBScanCode.Checked, cBToggle.Checked, false, false, cBShiftButton.SelectedIndex);
|
||||
}
|
||||
else if (sA != null)
|
||||
{
|
||||
button.Text = e.KeyCode.ToString();
|
||||
button.Tag = e.KeyValue;
|
||||
button.ForeColor = Color.Black;
|
||||
}
|
||||
|
||||
this.Close();
|
||||
}
|
||||
}
|
||||
@ -248,26 +323,30 @@ namespace DS4Windows
|
||||
if (rb == null && !(ActiveControl is NumericUpDown) && !(ActiveControl is TrackBar))
|
||||
{
|
||||
lBMacroOn.Visible = false;
|
||||
string extras = GetExtras();
|
||||
string extras = null;
|
||||
if (IsUsingExtras())
|
||||
{
|
||||
extras = GetExtras();
|
||||
}
|
||||
|
||||
KeyValuePair<object, string> tag = new KeyValuePair<object, string>(e.KeyValue, extras);
|
||||
newaction = true;
|
||||
if (ops != null)
|
||||
ops.ChangeButtonText(button, rBShiftModifer.Checked, tag, cBScanCode.Checked, cBToggle.Checked, false, false, cBShiftButton.SelectedIndex);
|
||||
{
|
||||
ops.ChangeButtonText(button, rBShiftModifer.Checked, tag,
|
||||
cBScanCode.Checked, cBToggle.Checked, false, false, cBShiftButton.SelectedIndex);
|
||||
}
|
||||
else if (sA != null)
|
||||
{
|
||||
button.Text = e.KeyCode.ToString();
|
||||
button.Tag = e.KeyValue;
|
||||
button.ForeColor = Color.Black;
|
||||
}
|
||||
|
||||
this.Close();
|
||||
}
|
||||
}
|
||||
|
||||
private void cbToggle_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private void btnMacro_Click(object sender, EventArgs e)
|
||||
{
|
||||
gBExtras.Controls.Add(cBScanCode);
|
||||
@ -290,11 +369,14 @@ namespace DS4Windows
|
||||
case Keys.Up:
|
||||
case Keys.Down:
|
||||
return true;
|
||||
case Keys.Shift | Keys.Right:
|
||||
case Keys.Shift | Keys.Left:
|
||||
case Keys.Shift | Keys.Up:
|
||||
case Keys.Shift | Keys.Down:
|
||||
|
||||
case (Keys.Shift | Keys.Right):
|
||||
case (Keys.Shift | Keys.Left):
|
||||
case (Keys.Shift | Keys.Up):
|
||||
case (Keys.Shift | Keys.Down):
|
||||
return true;
|
||||
|
||||
default: break;
|
||||
}
|
||||
return base.IsInputKey(keyData);
|
||||
}
|
||||
@ -307,6 +389,7 @@ namespace DS4Windows
|
||||
case Keys.Right:
|
||||
case Keys.Up:
|
||||
case Keys.Down:
|
||||
{
|
||||
if (e.Shift)
|
||||
{
|
||||
|
||||
@ -315,6 +398,8 @@ namespace DS4Windows
|
||||
{
|
||||
}
|
||||
break;
|
||||
}
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -329,6 +414,7 @@ namespace DS4Windows
|
||||
int som = bgc + 11 * (int)(value * 0.0039215);
|
||||
tb.BackColor = Color.FromArgb(tb.Name.ToLower().Contains("red") ? som : sat, tb.Name.ToLower().Contains("green") ? som : sat, tb.Name.ToLower().Contains("blue") ? som : sat);
|
||||
}
|
||||
|
||||
alphacolor = Math.Max(tBRedBar.Value, Math.Max(tBGreenBar.Value, tBBlueBar.Value));
|
||||
reg = Color.FromArgb(tBRedBar.Value, tBGreenBar.Value, tBBlueBar.Value);
|
||||
full = HuetoRGB(reg.GetHue(), reg.GetBrightness(), reg);
|
||||
@ -367,6 +453,7 @@ namespace DS4Windows
|
||||
tBBlueBar.Value = advColorDialog.Color.B;
|
||||
extraChanged = true;
|
||||
}
|
||||
|
||||
if (device < 4)
|
||||
DS4LightBar.forcelight[device] = false;
|
||||
}
|
||||
@ -405,8 +492,10 @@ namespace DS4Windows
|
||||
if (s[i] >= 'A' && s[i] <= 'Z')
|
||||
s = s.Insert(i, " ");
|
||||
}
|
||||
|
||||
if (s == "Guide")
|
||||
s = guideText;
|
||||
|
||||
return s;
|
||||
}
|
||||
|
||||
@ -419,7 +508,16 @@ namespace DS4Windows
|
||||
private void rBShift_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (!loading && extraChanged)
|
||||
Global.UpdateDS4Extra(device, button.Name, !rBShiftModifer.Checked, GetExtras());
|
||||
{
|
||||
string strextras = null;
|
||||
if (IsUsingExtras())
|
||||
{
|
||||
strextras = GetExtras();
|
||||
}
|
||||
|
||||
Global.UpdateDS4Extra(device, button.Name, !rBShiftModifer.Checked, strextras);
|
||||
}
|
||||
|
||||
object tagO = Global.GetDS4Action(device, button.Name, rBShiftModifer.Checked);
|
||||
if (rBShiftModifer.Checked)
|
||||
btnDefault.Text = Properties.Resources.FallBack;
|
||||
@ -432,8 +530,11 @@ namespace DS4Windows
|
||||
newaction = false;
|
||||
Highlight_Leave(null, null);
|
||||
foreach (Control control in Controls)
|
||||
{
|
||||
if (control is Button)
|
||||
((Button)control).BackColor = SystemColors.Control;
|
||||
}
|
||||
|
||||
if (tagO != null)
|
||||
{
|
||||
if (tagO is int || tagO is ushort)
|
||||
@ -441,45 +542,58 @@ namespace DS4Windows
|
||||
int tag = int.Parse(tagO.ToString());
|
||||
int i;
|
||||
foreach (Control control in Controls)
|
||||
{
|
||||
if (control is Button)
|
||||
{
|
||||
if (int.TryParse(control.Tag?.ToString(), out i) && i == tag)
|
||||
{
|
||||
((Button)control).BackColor = Color.LightGreen;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (tagO is int[])
|
||||
{
|
||||
int[] tag = (int[])tagO;
|
||||
lBMacroOn.Visible = true;
|
||||
foreach (int i in tag)
|
||||
macrostag.Add(i);
|
||||
if (Global.GetDS4KeyType(device, button.Name, rBShiftModifer.Checked).HasFlag(DS4KeyType.RepeatMacro))
|
||||
lBMacroOn.Visible = true;
|
||||
foreach (int i in tag)
|
||||
macrostag.Add(i);
|
||||
|
||||
if (Global.GetDS4KeyType(device, button.Name, rBShiftModifer.Checked).HasFlag(DS4KeyType.HoldMacro))
|
||||
macrorepeat = true;
|
||||
}
|
||||
else if (tagO is string || tagO is X360Controls)
|
||||
{
|
||||
string tag;
|
||||
if (tagO is X360Controls)
|
||||
{
|
||||
tag = getX360ControlsByName((X360Controls)tagO);
|
||||
}
|
||||
else
|
||||
tag = tagO.ToString();
|
||||
|
||||
foreach (Control control in Controls)
|
||||
{
|
||||
if (control is Button)
|
||||
{
|
||||
if (control.Tag?.ToString() == tag)
|
||||
{
|
||||
((Button)control).BackColor = Color.LightGreen;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach (Control control in pnl360Controls.Controls)
|
||||
{
|
||||
if (control is Button)
|
||||
{
|
||||
if (control.Tag?.ToString().Substring(4) == tag)
|
||||
{
|
||||
Hightlight_Hover(((Button)control), null);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -493,71 +607,96 @@ namespace DS4Windows
|
||||
tag = getX360ControlsByName((X360Controls)tagO);
|
||||
else
|
||||
tag = tagO.ToString();
|
||||
|
||||
foreach (Control control in Controls)
|
||||
{
|
||||
if (control is Button)
|
||||
{
|
||||
if (control.Tag != null && control.Tag.ToString().Contains("X360") ? control.Tag?.ToString().Substring(4) == tag : control.Tag?.ToString() == tag)
|
||||
{
|
||||
((Button)control).BackColor = Color.LightGreen;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach (Control control in pnl360Controls.Controls)
|
||||
{
|
||||
if (control is Button)
|
||||
{
|
||||
if (control.Tag?.ToString().Substring(4) == tag)
|
||||
{
|
||||
Hightlight_Hover(((Button)control), null);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
string[] extras = Global.GetDS4Extra(device, button.Name, rBShiftModifer.Checked).Split(',');
|
||||
int b;
|
||||
try
|
||||
{
|
||||
if (int.TryParse(extras[0], out b)) nUDHeavy.Value = b;
|
||||
if (int.TryParse(extras[1], out b)) nUDLight.Value = b;
|
||||
if (int.TryParse(extras[2], out b))
|
||||
if (b == 1)
|
||||
{
|
||||
cBLightbar.Checked = true;
|
||||
if (int.TryParse(extras[3], out b)) tBRedBar.Value = b;
|
||||
if (int.TryParse(extras[4], out b)) tBGreenBar.Value = b;
|
||||
if (int.TryParse(extras[5], out b)) tBBlueBar.Value = b;
|
||||
if (int.TryParse(extras[6], out b)) nUDLightFlash.Value = b;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
tBRedBar.Value = 255;
|
||||
tBGreenBar.Value = 255;
|
||||
tBBlueBar.Value = 255;
|
||||
nUDLightFlash.Value = 0;
|
||||
cBLightbar.Checked = false;
|
||||
}
|
||||
if (int.TryParse(extras[7], out b))
|
||||
if (b == 1)
|
||||
string dcExtras = Global.GetDS4Extra(device, button.Name, rBShiftModifer.Checked);
|
||||
string[] extras = null;
|
||||
if (!string.IsNullOrEmpty(dcExtras))
|
||||
{
|
||||
extras = dcExtras.Split(',');
|
||||
}
|
||||
|
||||
if (extras != null)
|
||||
{
|
||||
int b;
|
||||
try
|
||||
{
|
||||
if (int.TryParse(extras[0], out b)) nUDHeavy.Value = b;
|
||||
if (int.TryParse(extras[1], out b)) nUDLight.Value = b;
|
||||
if (int.TryParse(extras[2], out b))
|
||||
{
|
||||
cBMouse.Checked = true;
|
||||
if (int.TryParse(extras[8], out b)) nUDMouse.Value = b;
|
||||
}
|
||||
else
|
||||
{
|
||||
nUDMouse.Value = 25;
|
||||
cBMouse.Checked = false;
|
||||
if (b == 1)
|
||||
{
|
||||
cBLightbar.Checked = true;
|
||||
if (int.TryParse(extras[3], out b)) tBRedBar.Value = b;
|
||||
if (int.TryParse(extras[4], out b)) tBGreenBar.Value = b;
|
||||
if (int.TryParse(extras[5], out b)) tBBlueBar.Value = b;
|
||||
if (int.TryParse(extras[6], out b)) nUDLightFlash.Value = b;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
tBRedBar.Value = 255;
|
||||
tBGreenBar.Value = 255;
|
||||
tBBlueBar.Value = 255;
|
||||
nUDLightFlash.Value = 0;
|
||||
cBLightbar.Checked = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (int.TryParse(extras[7], out b))
|
||||
{
|
||||
if (b == 1)
|
||||
{
|
||||
cBMouse.Checked = true;
|
||||
if (int.TryParse(extras[8], out b)) nUDMouse.Value = b;
|
||||
}
|
||||
else
|
||||
{
|
||||
nUDMouse.Value = 25;
|
||||
cBMouse.Checked = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
nUDHeavy.Value = 0;
|
||||
nUDLight.Value = 0;
|
||||
tBRedBar.Value = 255;
|
||||
tBGreenBar.Value = 255;
|
||||
tBBlueBar.Value = 255;
|
||||
nUDLightFlash.Value = 0;
|
||||
cBLightbar.Checked = false;
|
||||
nUDMouse.Value = 25;
|
||||
cBMouse.Checked = false;
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
nUDHeavy.Value = 0;
|
||||
nUDLight.Value = 0;
|
||||
tBRedBar.Value = 255;
|
||||
tBGreenBar.Value = 255;
|
||||
tBBlueBar.Value = 255;
|
||||
nUDLightFlash.Value = 0;
|
||||
cBLightbar.Checked = false;
|
||||
nUDMouse.Value = 25;
|
||||
cBMouse.Checked = false;
|
||||
}
|
||||
|
||||
extraChanged = false;
|
||||
}
|
||||
|
||||
@ -606,34 +745,41 @@ namespace DS4Windows
|
||||
case X360Controls.MouseLeft: return "Mouse Left";
|
||||
case X360Controls.MouseRight: return "Mouse Right";
|
||||
case X360Controls.Unbound: return "Unbound";
|
||||
default: break;
|
||||
}
|
||||
|
||||
return "Unbound";
|
||||
}
|
||||
|
||||
private void bnTest_Click(object sender, EventArgs e)
|
||||
{
|
||||
Button btn = (Button)sender;
|
||||
if (device < 4)
|
||||
if (((Button)sender).Text == Properties.Resources.TestText)
|
||||
{
|
||||
if (btn.Text == Properties.Resources.TestText)
|
||||
{
|
||||
Program.rootHub.setRumble((byte)nUDHeavy.Value, (byte)nUDLight.Value, device);
|
||||
((Button)sender).Text = Properties.Resources.StopText;
|
||||
btn.Text = Properties.Resources.StopText;
|
||||
}
|
||||
else
|
||||
{
|
||||
Program.rootHub.setRumble(0, 0, device);
|
||||
((Button)sender).Text = Properties.Resources.TestText;
|
||||
btn.Text = Properties.Resources.TestText;
|
||||
}
|
||||
}
|
||||
else
|
||||
if (((Button)sender).Text == Properties.Resources.TestText)
|
||||
{
|
||||
if (btn.Text == Properties.Resources.TestText)
|
||||
{
|
||||
Program.rootHub.setRumble((byte)nUDHeavy.Value, (byte)nUDLight.Value, 0);
|
||||
((Button)sender).Text = Properties.Resources.StopText;
|
||||
btn.Text = Properties.Resources.StopText;
|
||||
}
|
||||
else
|
||||
{
|
||||
Program.rootHub.setRumble(0, 0, 0);
|
||||
((Button)sender).Text = Properties.Resources.TestText;
|
||||
btn.Text = Properties.Resources.TestText;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void ExtraChanged(object sender, EventArgs e)
|
||||
@ -641,6 +787,11 @@ namespace DS4Windows
|
||||
extraChanged = true;
|
||||
}
|
||||
|
||||
private void pnl360Controls_Paint(object sender, PaintEventArgs e)
|
||||
{
|
||||
e.Graphics.DrawImage(pnl360BgImage, new Rectangle(0, 13, Convert.ToInt32(pnl360Controls.Width), Convert.ToInt32(pnl360Controls.Height - 26)), new Rectangle(0, 0, Convert.ToInt32(pnl360BgImage.Width), Convert.ToInt32(pnl360BgImage.Height)), GraphicsUnit.Pixel);
|
||||
}
|
||||
|
||||
private void nUD_ValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (bnTest.Text != Properties.Resources.TestText)
|
||||
@ -650,6 +801,7 @@ namespace DS4Windows
|
||||
else
|
||||
Program.rootHub.setRumble((byte)nUDHeavy.Value, (byte)nUDLight.Value, 0);
|
||||
}
|
||||
|
||||
extraChanged = true;
|
||||
}
|
||||
|
||||
|
1241
DS4Windows/DS4Forms/KBM360.en.resx
Normal file
1241
DS4Windows/DS4Forms/KBM360.en.resx
Normal file
File diff suppressed because it is too large
Load Diff
@ -161,7 +161,7 @@
|
||||
<value>105, 17</value>
|
||||
</data>
|
||||
<data name="X360Label.Text" xml:space="preserve">
|
||||
<value>Controles X360</value>
|
||||
<value>Controles Xbox 360</value>
|
||||
</data>
|
||||
<data name="KBMlabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>112, 17</value>
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
70
DS4Windows/DS4Forms/LanguagePackComboBox.Designer.cs
generated
Normal file
70
DS4Windows/DS4Forms/LanguagePackComboBox.Designer.cs
generated
Normal file
@ -0,0 +1,70 @@
|
||||
namespace DS4Windows.DS4Forms
|
||||
{
|
||||
partial class LanguagePackComboBox
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Код, автоматически созданный конструктором компонентов
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(LanguagePackComboBox));
|
||||
this.cbCulture = new System.Windows.Forms.ComboBox();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// cbCulture
|
||||
//
|
||||
resources.ApplyResources(this.cbCulture, "cbCulture");
|
||||
this.cbCulture.DisplayMember = "Value";
|
||||
this.cbCulture.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||
this.cbCulture.FormattingEnabled = true;
|
||||
this.cbCulture.Name = "cbCulture";
|
||||
this.cbCulture.ValueMember = "Key";
|
||||
//
|
||||
// label1
|
||||
//
|
||||
resources.ApplyResources(this.label1, "label1");
|
||||
this.label1.Name = "label1";
|
||||
this.label1.SizeChanged += new System.EventHandler(this.LanguagePackComboBox_SizeChanged);
|
||||
//
|
||||
// LanguagePackComboBox
|
||||
//
|
||||
resources.ApplyResources(this, "$this");
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.cbCulture);
|
||||
this.Controls.Add(this.label1);
|
||||
this.Name = "LanguagePackComboBox";
|
||||
this.SizeChanged += new System.EventHandler(this.LanguagePackComboBox_SizeChanged);
|
||||
this.Resize += new System.EventHandler(this.LanguagePackComboBox_SizeChanged);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.ComboBox cbCulture;
|
||||
private System.Windows.Forms.Label label1;
|
||||
}
|
||||
}
|
145
DS4Windows/DS4Forms/LanguagePackComboBox.cs
Normal file
145
DS4Windows/DS4Forms/LanguagePackComboBox.cs
Normal file
@ -0,0 +1,145 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Globalization;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace DS4Windows.DS4Forms
|
||||
{
|
||||
public partial class LanguagePackComboBox : UserControl
|
||||
{
|
||||
private string InvariantCultureTextValue = "No (English UI)";
|
||||
private TaskCompletionSource<bool> LanguageListInitialized = new TaskCompletionSource<bool>();
|
||||
|
||||
// If probing path has been changed in App.config, add the same string here.
|
||||
private string ProbingPath = "Lang";
|
||||
|
||||
// Filter language assembly file names in order to ont include irrelevant assemblies to the combo box.
|
||||
private string LanguageAssemblyName = "DS4Windows.resources.dll";
|
||||
|
||||
[Category("Action")]
|
||||
[Description("Fires when the combo box selected index is changed.")]
|
||||
public event EventHandler SelectedIndexChanged;
|
||||
|
||||
[Category("Action")]
|
||||
[Description("Fires when the combo box selected value is changed.")]
|
||||
public event EventHandler SelectedValueChanged;
|
||||
|
||||
[Category("Data")]
|
||||
[Description("Text used for invariant culture name in the combo box.")]
|
||||
[Localizable(true)]
|
||||
public string InvariantCultureText
|
||||
{
|
||||
get { return InvariantCultureTextValue; }
|
||||
[System.Diagnostics.CodeAnalysis.SuppressMessage("InvariantCultureText_Changed call will complete when ready, no need for a warning", "CS4014:Await.Warning")]
|
||||
set {
|
||||
InvariantCultureTextValue = value;
|
||||
InvariantCultureText_Changed(value);
|
||||
}
|
||||
}
|
||||
|
||||
[Category("Data")]
|
||||
[Description("Text for label before the combo box.")]
|
||||
[Localizable(true)]
|
||||
public string LabelText {
|
||||
get { return label1.Text; }
|
||||
set { label1.Text = value; }
|
||||
}
|
||||
|
||||
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
|
||||
public int SelectedIndex
|
||||
{
|
||||
get { return cbCulture.SelectedIndex; }
|
||||
set { cbCulture.SelectedIndex = value; }
|
||||
}
|
||||
|
||||
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
|
||||
public string SelectedText
|
||||
{
|
||||
get { return cbCulture.SelectedText; }
|
||||
set { cbCulture.SelectedText = value; }
|
||||
}
|
||||
|
||||
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
|
||||
public object SelectedValue
|
||||
{
|
||||
get { return cbCulture.SelectedValue; }
|
||||
set { cbCulture.SelectedValue = value; }
|
||||
}
|
||||
|
||||
public LanguagePackComboBox()
|
||||
{
|
||||
InitializeComponent();
|
||||
cbCulture.Enabled = false;
|
||||
|
||||
Task.Run(() => {
|
||||
// Find available language assemblies and bind the list to the combo box.
|
||||
cbCulture.DataSource = CreateLanguageAssembliesBindingSource();
|
||||
cbCulture.SelectedValue = Thread.CurrentThread.CurrentUICulture.Name;
|
||||
|
||||
// This must be set here instead of Designer or event would fire at initial selected value setting above.
|
||||
cbCulture.SelectedIndexChanged += new EventHandler(CbCulture_SelectedIndexChanged);
|
||||
cbCulture.SelectedValueChanged += new EventHandler(CbCulture_SelectedValueChanged);
|
||||
|
||||
cbCulture.Enabled = true;
|
||||
LanguageListInitialized.SetResult(true);
|
||||
});
|
||||
}
|
||||
|
||||
private BindingSource CreateLanguageAssembliesBindingSource()
|
||||
{
|
||||
// Find the location where application installed.
|
||||
string exeLocation = Path.GetDirectoryName(Uri.UnescapeDataString(new UriBuilder(Assembly.GetExecutingAssembly().CodeBase).Path));
|
||||
List<string> lookupPaths = ProbingPath.Split(';')
|
||||
.Select(path => Path.Combine(exeLocation, path))
|
||||
.Where(path => path != exeLocation)
|
||||
.ToList();
|
||||
lookupPaths.Insert(0, exeLocation);
|
||||
|
||||
// Get all culture for which satellite folder found with culture code, then insert invariant culture at the beginning.
|
||||
List<KeyValuePair<string, string>> cultures = CultureInfo.GetCultures(CultureTypes.AllCultures)
|
||||
.Where(c => IsLanguageAssemblyAvailable(lookupPaths, c))
|
||||
.Select(c => new KeyValuePair<string, string>(c.Name, c.NativeName))
|
||||
.ToList();
|
||||
cultures.Insert(0, new KeyValuePair<string, string>("", InvariantCultureText));
|
||||
|
||||
return new BindingSource(cultures, null);
|
||||
}
|
||||
|
||||
private bool IsLanguageAssemblyAvailable(List<string> lookupPaths, CultureInfo culture)
|
||||
{
|
||||
return lookupPaths.Select(path => Path.Combine(path, culture.Name, LanguageAssemblyName))
|
||||
.Where(path => File.Exists(path))
|
||||
.Count() > 0;
|
||||
}
|
||||
|
||||
private async Task InvariantCultureText_Changed(string value)
|
||||
{
|
||||
// Normally the completion flag will be long set by the time this method is called.
|
||||
await LanguageListInitialized.Task;
|
||||
BindingSource dataSource = ((BindingSource)cbCulture.DataSource);
|
||||
dataSource[0] = new KeyValuePair<string, string>("", value);
|
||||
}
|
||||
|
||||
private void LanguagePackComboBox_SizeChanged(object sender, EventArgs e)
|
||||
{
|
||||
cbCulture.Left = label1.Margin.Left + label1.Width + label1.Margin.Right;
|
||||
cbCulture.Width = Width - cbCulture.Left - cbCulture.Margin.Right - cbCulture.Margin.Left;
|
||||
}
|
||||
|
||||
private void CbCulture_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
SelectedIndexChanged?.Invoke(this, e);
|
||||
}
|
||||
|
||||
private void CbCulture_SelectedValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
SelectedValueChanged?.Invoke(this, e);
|
||||
}
|
||||
}
|
||||
}
|
@ -117,4 +117,79 @@
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="cbCulture.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Right</value>
|
||||
</data>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="cbCulture.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>112, 3</value>
|
||||
</data>
|
||||
<data name="cbCulture.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>145, 21</value>
|
||||
</data>
|
||||
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="cbCulture.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>61</value>
|
||||
</data>
|
||||
<data name=">>cbCulture.Name" xml:space="preserve">
|
||||
<value>cbCulture</value>
|
||||
</data>
|
||||
<data name=">>cbCulture.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>cbCulture.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>cbCulture.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="label1.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Left</value>
|
||||
</data>
|
||||
<data name="label1.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="label1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 6</value>
|
||||
</data>
|
||||
<data name="label1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>100, 13</value>
|
||||
</data>
|
||||
<data name="label1.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>62</value>
|
||||
</data>
|
||||
<data name="label1.Text" xml:space="preserve">
|
||||
<value>Use language pack</value>
|
||||
</data>
|
||||
<data name="label1.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
|
||||
<value>MiddleLeft</value>
|
||||
</data>
|
||||
<data name=">>label1.Name" xml:space="preserve">
|
||||
<value>label1</value>
|
||||
</data>
|
||||
<data name=">>label1.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>label1.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>label1.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
||||
<value>6, 13</value>
|
||||
</data>
|
||||
<data name="$this.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>260, 27</value>
|
||||
</data>
|
||||
<data name=">>$this.Name" xml:space="preserve">
|
||||
<value>LanguagePackComboBox</value>
|
||||
</data>
|
||||
<data name=">>$this.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.UserControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
</root>
|
1552
DS4Windows/DS4Forms/Options.Designer.cs
generated
1552
DS4Windows/DS4Forms/Options.Designer.cs
generated
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -185,7 +185,7 @@
|
||||
<value>158, 21</value>
|
||||
</data>
|
||||
<data name="cBTouchpadJitterCompensation.Text" xml:space="preserve">
|
||||
<value>Compensación Jitter</value>
|
||||
<value>Compensación de nervios</value>
|
||||
</data>
|
||||
<data name="lbIdleMinutes.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>257, 56</value>
|
||||
@ -386,7 +386,7 @@
|
||||
<value>202, 21</value>
|
||||
</data>
|
||||
<data name="cBLaunchProgram.Text" xml:space="preserve">
|
||||
<value>Lanzar Programa con perfil</value>
|
||||
<value>Abrir Programa con el perfil</value>
|
||||
</data>
|
||||
<data name="btnBrowse.Text" xml:space="preserve">
|
||||
<value>Explorar...</value>
|
||||
@ -395,7 +395,7 @@
|
||||
<value>129, 17</value>
|
||||
</data>
|
||||
<data name="lbUseController.Text" xml:space="preserve">
|
||||
<value>Utilizar Controlador</value>
|
||||
<value>Utilizar Control</value>
|
||||
</data>
|
||||
<data name="cBMouseAccel.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>227, 11</value>
|
||||
@ -413,7 +413,7 @@
|
||||
<value>164, 21</value>
|
||||
</data>
|
||||
<data name="cBControllerInput.Text" xml:space="preserve">
|
||||
<value>para Mapeo y lectura</value>
|
||||
<value>para asignación y lectura</value>
|
||||
</data>
|
||||
<data name="cBIdleDisconnect.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>173, 21</value>
|
||||
@ -461,7 +461,7 @@
|
||||
<value>Barra de luz</value>
|
||||
</data>
|
||||
<data name="btnRumbleLightTest.Text" xml:space="preserve">
|
||||
<value>Prueba Ligera</value>
|
||||
<value>Prueba Rapida</value>
|
||||
</data>
|
||||
<data name="gBRumble.Text" xml:space="preserve">
|
||||
<value>Vibración</value>
|
||||
@ -497,7 +497,7 @@
|
||||
<value>212, 156</value>
|
||||
</data>
|
||||
<data name="tPController.Text" xml:space="preserve">
|
||||
<value>Lecturas del Controlador</value>
|
||||
<value>Lecturas del Control</value>
|
||||
</data>
|
||||
<data name="cBShiftControl.Items" xml:space="preserve">
|
||||
<value>(nada)/Shift desactivado</value>
|
||||
@ -512,7 +512,7 @@
|
||||
<value>164, 17</value>
|
||||
</data>
|
||||
<data name="lbtoUse.Text" xml:space="preserve">
|
||||
<value>para usar estos contoles</value>
|
||||
<value>para usar estos controles</value>
|
||||
</data>
|
||||
<data name="tPShiftMod.Text" xml:space="preserve">
|
||||
<value>Modificador de Shift</value>
|
||||
@ -563,10 +563,10 @@
|
||||
<value>Dpad</value>
|
||||
</data>
|
||||
<data name="fingerOnTouchpadToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Un dedo en el Touchpad</value>
|
||||
<value>Un dedo en el panel táctil</value>
|
||||
</data>
|
||||
<data name="fingersOnTouchpadToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Dos dedos en el Touchpad</value>
|
||||
<value>Dos dedos en el panel táctil</value>
|
||||
</data>
|
||||
<data name="gBSensitivity,Text" xml:space="preserve">
|
||||
<value>Sensibilidad</value>
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -118,8 +118,11 @@
|
||||
<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="lowColorChooserButton.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>80, 9</value>
|
||||
</data>
|
||||
<data name="cBLightbyBattery.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>149, 21</value>
|
||||
<value>115, 17</value>
|
||||
</data>
|
||||
<data name="cBLightbyBattery.Text" xml:space="preserve">
|
||||
<value>Цвет от % заряда</value>
|
||||
@ -128,128 +131,149 @@
|
||||
<value>С</value>
|
||||
</data>
|
||||
<data name="lbGreen.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>17, 17</value>
|
||||
<value>14, 13</value>
|
||||
</data>
|
||||
<data name="lbGreen.Text" xml:space="preserve">
|
||||
<value>З</value>
|
||||
</data>
|
||||
<data name="lbspc.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>65, 17</value>
|
||||
<value>54, 13</value>
|
||||
</data>
|
||||
<data name="lbspc.Text" xml:space="preserve">
|
||||
<value>сек/цикл</value>
|
||||
</data>
|
||||
<data name="lbRed.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>17, 17</value>
|
||||
<value>14, 13</value>
|
||||
</data>
|
||||
<data name="lbRed.Text" xml:space="preserve">
|
||||
<value>К</value>
|
||||
</data>
|
||||
<data name="cBDoubleTap.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>146, 34</value>
|
||||
</data>
|
||||
<data name="cBDoubleTap.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>146, 21</value>
|
||||
<value>116, 17</value>
|
||||
</data>
|
||||
<data name="cBDoubleTap.Text" xml:space="preserve">
|
||||
<value>Двойное касание</value>
|
||||
</data>
|
||||
<data name="cBTap.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>2, 34</value>
|
||||
</data>
|
||||
<data name="cBTap.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>86, 21</value>
|
||||
<value>69, 17</value>
|
||||
</data>
|
||||
<data name="cBTap.Text" xml:space="preserve">
|
||||
<value>Касание</value>
|
||||
</data>
|
||||
<data name="nUDTap.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>98, 31</value>
|
||||
</data>
|
||||
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="cBScroll.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="cBScroll.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>187, 12</value>
|
||||
<value>143, 3</value>
|
||||
</data>
|
||||
<data name="cBScroll.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>100, 21</value>
|
||||
<value>75, 21</value>
|
||||
</data>
|
||||
<data name="cBScroll.Text" xml:space="preserve">
|
||||
<value>Прокрутка</value>
|
||||
</data>
|
||||
<data name="cBSlide.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="cBSlide.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>2, 3</value>
|
||||
</data>
|
||||
<data name="cBSlide.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>110, 21</value>
|
||||
<value>89, 21</value>
|
||||
</data>
|
||||
<data name="cBSlide.Text" xml:space="preserve">
|
||||
<value>Скольжение</value>
|
||||
</data>
|
||||
<data name="nUDScroll.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>290, 11</value>
|
||||
<value>221, 4</value>
|
||||
</data>
|
||||
<data name="nUDTouch.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>121, 10</value>
|
||||
<value>98, 3</value>
|
||||
</data>
|
||||
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="lbButtonMouseSens.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="lbButtonMouseSens.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>106, 40</value>
|
||||
<value>139, 20</value>
|
||||
</data>
|
||||
<data name="lbButtonMouseSens.Text" xml:space="preserve">
|
||||
<value>Чувствительность мыши:</value>
|
||||
</data>
|
||||
<data name="cBlowerRCOn.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="cBlowerRCOn.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>10, 110</value>
|
||||
<value>7, 82</value>
|
||||
</data>
|
||||
<data name="cBlowerRCOn.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>309, 21</value>
|
||||
<value>143, 30</value>
|
||||
</data>
|
||||
<data name="cBlowerRCOn.Text" xml:space="preserve">
|
||||
<value>Нижняя правая часть тачпада как ПКМ</value>
|
||||
</data>
|
||||
<data name="cBTouchpadJitterCompensation.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>10, 83</value>
|
||||
<value>7, 59</value>
|
||||
</data>
|
||||
<data name="cBTouchpadJitterCompensation.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>188, 21</value>
|
||||
<value>148, 17</value>
|
||||
</data>
|
||||
<data name="cBTouchpadJitterCompensation.Text" xml:space="preserve">
|
||||
<value>Компенсация дрожания</value>
|
||||
</data>
|
||||
<data name="lbIdleMinutes.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>249, 64</value>
|
||||
<value>219, 59</value>
|
||||
</data>
|
||||
<data name="lbIdleMinutes.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>47, 17</value>
|
||||
<value>37, 13</value>
|
||||
</data>
|
||||
<data name="lbIdleMinutes.Text" xml:space="preserve">
|
||||
<value>минут</value>
|
||||
</data>
|
||||
<data name="nUDIdleDisconnect.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>180, 62</value>
|
||||
<value>161, 57</value>
|
||||
</data>
|
||||
<data name="cBFlushHIDQueue.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>7, 208</value>
|
||||
<value>14, 209</value>
|
||||
</data>
|
||||
<data name="cBFlushHIDQueue.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>177, 21</value>
|
||||
<value>137, 17</value>
|
||||
</data>
|
||||
<data name="cBFlushHIDQueue.Text" xml:space="preserve">
|
||||
<value>Очищать очереди HID</value>
|
||||
</data>
|
||||
<data name="btnRumbleHeavyTest.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>88, 19</value>
|
||||
<value>75, 12</value>
|
||||
</data>
|
||||
<data name="btnRumbleHeavyTest.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>128, 29</value>
|
||||
<value>84, 29</value>
|
||||
</data>
|
||||
<data name="btnRumbleHeavyTest.Text" xml:space="preserve">
|
||||
<value>Тест сильной</value>
|
||||
</data>
|
||||
<data name="lbFull.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>64, 17</value>
|
||||
<value>61, 13</value>
|
||||
</data>
|
||||
<data name="lbFull.Text" xml:space="preserve">
|
||||
<value>Заряжена:</value>
|
||||
</data>
|
||||
<data name="lbLowRed.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>17, 17</value>
|
||||
<value>14, 13</value>
|
||||
</data>
|
||||
<data name="lbLowRed.Text" xml:space="preserve">
|
||||
<value>К</value>
|
||||
</data>
|
||||
<data name="lbLowGreen.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>17, 17</value>
|
||||
<value>14, 13</value>
|
||||
</data>
|
||||
<data name="lbLowGreen.Text" xml:space="preserve">
|
||||
<value>З</value>
|
||||
@ -257,23 +281,56 @@
|
||||
<data name="lbLowBlue.Text" xml:space="preserve">
|
||||
<value>С</value>
|
||||
</data>
|
||||
<data name="lbEmpty.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>67, 13</value>
|
||||
</data>
|
||||
<data name="lbEmpty.Text" xml:space="preserve">
|
||||
<value>Разряжена:</value>
|
||||
</data>
|
||||
<data name="numUDMouseSens.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>120, 26</value>
|
||||
<value>158, 17</value>
|
||||
</data>
|
||||
<data name="touchpadDisInvertButton.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>160, 130</value>
|
||||
</data>
|
||||
<data name="label25.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>157, 114</value>
|
||||
</data>
|
||||
<data name="label15.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>156, 70</value>
|
||||
</data>
|
||||
<data name="touchpadInvertComboBox.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>159, 88</value>
|
||||
</data>
|
||||
<data name="cbStartTouchpadOff.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="cbStartTouchpadOff.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>7, 112</value>
|
||||
</data>
|
||||
<data name="cbStartTouchpadOff.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>142, 44</value>
|
||||
</data>
|
||||
<data name="cbStartTouchpadOff.Text" xml:space="preserve">
|
||||
<value>Выключить скольжение и прокрутку тачпада</value>
|
||||
</data>
|
||||
<data name="pnlTPMouse.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 43</value>
|
||||
</data>
|
||||
<data name="pnlTPMouse.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>265, 169</value>
|
||||
</data>
|
||||
<data name="rBTPControls.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>7, 46</value>
|
||||
<value>151, 18</value>
|
||||
</data>
|
||||
<data name="controlToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>213, 26</value>
|
||||
<value>178, 22</value>
|
||||
</data>
|
||||
<data name="toolStripSeparator1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>210, 6</value>
|
||||
<value>175, 6</value>
|
||||
</data>
|
||||
<data name="defaultToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>213, 26</value>
|
||||
<value>178, 22</value>
|
||||
</data>
|
||||
<data name="defaultToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>По умолчанию</value>
|
||||
@ -288,7 +345,7 @@
|
||||
<value>Инверт. Y</value>
|
||||
</data>
|
||||
<data name="DpadToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>213, 26</value>
|
||||
<value>178, 22</value>
|
||||
</data>
|
||||
<data name="DpadToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Крестовина</value>
|
||||
@ -303,7 +360,7 @@
|
||||
<value>Инверт. Y</value>
|
||||
</data>
|
||||
<data name="LSToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>213, 26</value>
|
||||
<value>178, 22</value>
|
||||
</data>
|
||||
<data name="LSToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Левый стик</value>
|
||||
@ -318,37 +375,37 @@
|
||||
<value>Инверт. Y</value>
|
||||
</data>
|
||||
<data name="RSToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>213, 26</value>
|
||||
<value>178, 22</value>
|
||||
</data>
|
||||
<data name="RSToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Правый стик</value>
|
||||
</data>
|
||||
<data name="ABXYToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>213, 26</value>
|
||||
<value>178, 22</value>
|
||||
</data>
|
||||
<data name="ABXYToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Лицевые кнопки</value>
|
||||
</data>
|
||||
<data name="wScanCodeWASDToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>168, 26</value>
|
||||
<value>142, 22</value>
|
||||
</data>
|
||||
<data name="wScanCodeWASDToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>w/ Скан-код</value>
|
||||
</data>
|
||||
<data name="WASDToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>213, 26</value>
|
||||
<value>178, 22</value>
|
||||
</data>
|
||||
<data name="WASDToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Управление WASD</value>
|
||||
</data>
|
||||
<data name="wScanCodeArrowKeysToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>168, 26</value>
|
||||
<value>142, 22</value>
|
||||
</data>
|
||||
<data name="wScanCodeArrowKeysToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>w/ Скан-код</value>
|
||||
</data>
|
||||
<data name="ArrowKeysToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>213, 26</value>
|
||||
<value>178, 22</value>
|
||||
</data>
|
||||
<data name="ArrowKeysToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Клавиши со стрелками</value>
|
||||
@ -363,34 +420,40 @@
|
||||
<value>Инверт. Y</value>
|
||||
</data>
|
||||
<data name="MouseToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>213, 26</value>
|
||||
<value>178, 22</value>
|
||||
</data>
|
||||
<data name="MouseToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Мышь</value>
|
||||
</data>
|
||||
<data name="cMSPresets.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>214, 244</value>
|
||||
<value>179, 208</value>
|
||||
</data>
|
||||
<data name="cbStartTouchpadOff.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>9, 137</value>
|
||||
<data name="fLPTouchSwipe.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>260, 170</value>
|
||||
</data>
|
||||
<data name="cbStartTouchpadOff.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>328, 21</value>
|
||||
</data>
|
||||
<data name="cbStartTouchpadOff.Text" xml:space="preserve">
|
||||
<value>Выключить скольжение и прокрутку тачпада</value>
|
||||
<data name="gBTouchpad.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>2, 251</value>
|
||||
</data>
|
||||
<data name="gBTouchpad.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>337, 236</value>
|
||||
<value>270, 201</value>
|
||||
</data>
|
||||
<data name="gBTouchpad.Text" xml:space="preserve">
|
||||
<value>Тачпад</value>
|
||||
</data>
|
||||
<data name="btPollRateLabel.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>11, 233</value>
|
||||
</data>
|
||||
<data name="btPollRateComboBox.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>86, 230</value>
|
||||
</data>
|
||||
<data name="enableTouchToggleCheckbox.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>13, 186</value>
|
||||
</data>
|
||||
<data name="cBDinput.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>8, 181</value>
|
||||
<value>13, 164</value>
|
||||
</data>
|
||||
<data name="cBDinput.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>216, 21</value>
|
||||
<value>172, 17</value>
|
||||
</data>
|
||||
<data name="cBDinput.Text" xml:space="preserve">
|
||||
<value>Использовать только DInput</value>
|
||||
@ -399,53 +462,56 @@
|
||||
<value>287, 144</value>
|
||||
</data>
|
||||
<data name="cBLaunchProgram.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>7, 140</value>
|
||||
<value>8, 131</value>
|
||||
</data>
|
||||
<data name="cBLaunchProgram.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>176, 38</value>
|
||||
<value>141, 30</value>
|
||||
</data>
|
||||
<data name="cBLaunchProgram.Text" xml:space="preserve">
|
||||
<value>Запускать программу
|
||||
с профилем</value>
|
||||
</data>
|
||||
<data name="btnBrowse.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>193, 144</value>
|
||||
<value>158, 134</value>
|
||||
</data>
|
||||
<data name="btnBrowse.Text" xml:space="preserve">
|
||||
<value>Обзор...</value>
|
||||
</data>
|
||||
<data name="lbUseController.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>10, 87</value>
|
||||
</data>
|
||||
<data name="lbUseController.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>182, 17</value>
|
||||
<value>142, 13</value>
|
||||
</data>
|
||||
<data name="lbUseController.Text" xml:space="preserve">
|
||||
<value>Использовать контроллер</value>
|
||||
</data>
|
||||
<data name="cBMouseAccel.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>189, 26</value>
|
||||
<value>13, 39</value>
|
||||
</data>
|
||||
<data name="cBMouseAccel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>143, 21</value>
|
||||
<value>115, 17</value>
|
||||
</data>
|
||||
<data name="cBMouseAccel.Text" xml:space="preserve">
|
||||
<value>Ускорение мыши</value>
|
||||
</data>
|
||||
<data name="nUDSixaxis.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>201, 92</value>
|
||||
<value>164, 85</value>
|
||||
</data>
|
||||
<data name="cBControllerInput.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>13, 115</value>
|
||||
<value>8, 111</value>
|
||||
</data>
|
||||
<data name="cBControllerInput.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>294, 21</value>
|
||||
<value>234, 17</value>
|
||||
</data>
|
||||
<data name="cBControllerInput.Text" xml:space="preserve">
|
||||
<value>для назначения клавиш и вывода текста</value>
|
||||
</data>
|
||||
<data name="cBIdleDisconnect.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>12, 63</value>
|
||||
<value>8, 60</value>
|
||||
</data>
|
||||
<data name="cBIdleDisconnect.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>160, 21</value>
|
||||
<value>140, 17</value>
|
||||
</data>
|
||||
<data name="cBIdleDisconnect.Text" xml:space="preserve">
|
||||
<value>Таймаут бездействия:</value>
|
||||
@ -453,6 +519,9 @@
|
||||
<data name="gBOther.Text" xml:space="preserve">
|
||||
<value>Другое</value>
|
||||
</data>
|
||||
<data name="nUDRainbowB.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>151, 215</value>
|
||||
</data>
|
||||
<data name="cBFlashType.Items" xml:space="preserve">
|
||||
<value>Мигать при</value>
|
||||
</data>
|
||||
@ -472,13 +541,13 @@
|
||||
<value>цвет</value>
|
||||
</data>
|
||||
<data name="cBWhileCharging.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>142, 206</value>
|
||||
<value>122, 166</value>
|
||||
</data>
|
||||
<data name="btnChargingColor.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>300, 209</value>
|
||||
</data>
|
||||
<data name="lbWhileCharging.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>136, 17</value>
|
||||
<value>111, 13</value>
|
||||
</data>
|
||||
<data name="lbWhileCharging.Text" xml:space="preserve">
|
||||
<value>Индикация зарядки:</value>
|
||||
@ -487,10 +556,10 @@
|
||||
<value>Световая панель</value>
|
||||
</data>
|
||||
<data name="btnRumbleLightTest.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>224, 19</value>
|
||||
<value>165, 12</value>
|
||||
</data>
|
||||
<data name="btnRumbleLightTest.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>112, 29</value>
|
||||
<value>91, 30</value>
|
||||
</data>
|
||||
<data name="btnRumbleLightTest.Text" xml:space="preserve">
|
||||
<value>Тест слабой</value>
|
||||
@ -502,7 +571,7 @@
|
||||
<value>Правый стик</value>
|
||||
</data>
|
||||
<data name="lbInputDelay.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>148, 17</value>
|
||||
<value>119, 13</value>
|
||||
</data>
|
||||
<data name="lbInputDelay.Text" xml:space="preserve">
|
||||
<value>Задержка ввода: Н/Д</value>
|
||||
@ -514,19 +583,34 @@
|
||||
<value>Гироскоп: ось X инвертирована для простоты считывания</value>
|
||||
</data>
|
||||
<data name="lb6Accel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>47, 17</value>
|
||||
<value>81, 13</value>
|
||||
</data>
|
||||
<data name="lb6Accel.Text" xml:space="preserve">
|
||||
<value>Акселерометр</value>
|
||||
</data>
|
||||
<data name="lb6Gryo.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>40, 17</value>
|
||||
<value>55, 13</value>
|
||||
</data>
|
||||
<data name="lb6Gryo.Text" xml:space="preserve">
|
||||
<value>Гироскоп</value>
|
||||
</data>
|
||||
<data name="fLPTiltControls.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>4, 103</value>
|
||||
<value>0, 55</value>
|
||||
</data>
|
||||
<data name="fLPTiltControls.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>271, 128</value>
|
||||
</data>
|
||||
<data name="lBControls.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>275, 237</value>
|
||||
</data>
|
||||
<data name="lBControls.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>157, 199</value>
|
||||
</data>
|
||||
<data name="lbControlTip.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>41, 238</value>
|
||||
</data>
|
||||
<data name="lbControlTip.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>182, 14</value>
|
||||
</data>
|
||||
<data name="lbControlTip.Text" xml:space="preserve">
|
||||
<value>Нажмите на кнопку для назначения действия
|
||||
@ -565,133 +649,157 @@
|
||||
<data name="tPCurve.Text" xml:space="preserve">
|
||||
<value>Кривые</value>
|
||||
</data>
|
||||
<data name="rBSAControls.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="rBSAControls.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>14, 48</value>
|
||||
<value>140, 20</value>
|
||||
</data>
|
||||
<data name="rBSAControls.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>231, 21</value>
|
||||
<value>120, 30</value>
|
||||
</data>
|
||||
<data name="rBSAControls.Text" xml:space="preserve">
|
||||
<value>Использовать для управления</value>
|
||||
</data>
|
||||
<data name="rBSAMouse.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="rBSAMouse.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>16, 20</value>
|
||||
</data>
|
||||
<data name="rBSAMouse.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>188, 21</value>
|
||||
<value>120, 30</value>
|
||||
</data>
|
||||
<data name="rBSAMouse.Text" xml:space="preserve">
|
||||
<value>Использовать как мышь</value>
|
||||
</data>
|
||||
<data name="cBGyroMouseXAxis.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>172, 93</value>
|
||||
</data>
|
||||
<data name="lbGyroSmooth.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>8, 141</value>
|
||||
</data>
|
||||
<data name="cBGyroSmooth.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>75, 141</value>
|
||||
</data>
|
||||
<data name="lbSmoothWeight.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>102, 142</value>
|
||||
</data>
|
||||
<data name="nUDGyroSmoothWeight.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>191, 134</value>
|
||||
</data>
|
||||
<data name="cBGyroInvertY.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>191, 95</value>
|
||||
<value>146, 120</value>
|
||||
</data>
|
||||
<data name="cBGyroInvertX.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>137, 95</value>
|
||||
<value>102, 120</value>
|
||||
</data>
|
||||
<data name="lbGyroInvert.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>115, 17</value>
|
||||
<value>88, 13</value>
|
||||
</data>
|
||||
<data name="lbGyroInvert.Text" xml:space="preserve">
|
||||
<value>Инвертировать:</value>
|
||||
</data>
|
||||
<data name="lbGyroTriggers.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>71, 17</value>
|
||||
<value>51, 13</value>
|
||||
</data>
|
||||
<data name="lbGyroTriggers.Text" xml:space="preserve">
|
||||
<value>Триггер:</value>
|
||||
</data>
|
||||
<data name="nUDGyroSensitivity.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>101, 67</value>
|
||||
</data>
|
||||
<data name="lbGyroSens.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="lbGyroSens.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>7, 61</value>
|
||||
</data>
|
||||
<data name="lbGyroSens.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>196, 17</value>
|
||||
<value>88, 30</value>
|
||||
</data>
|
||||
<data name="lbGyroSens.Text" xml:space="preserve">
|
||||
<value>Чувствительность гироскопа:</value>
|
||||
</data>
|
||||
<data name="pnlSAMouse.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 93</value>
|
||||
<value>-2, 51</value>
|
||||
</data>
|
||||
<data name="pnlSAMouse.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>269, 168</value>
|
||||
</data>
|
||||
<data name="gBGyro.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>340, 259</value>
|
||||
<value>272, 208</value>
|
||||
</data>
|
||||
<data name="crossToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>244, 26</value>
|
||||
<value>198, 22</value>
|
||||
</data>
|
||||
<data name="circleToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>244, 26</value>
|
||||
<value>198, 22</value>
|
||||
</data>
|
||||
<data name="squareToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>244, 26</value>
|
||||
<value>198, 22</value>
|
||||
</data>
|
||||
<data name="triangleToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>244, 26</value>
|
||||
<value>198, 22</value>
|
||||
</data>
|
||||
<data name="l1ToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>244, 26</value>
|
||||
<value>198, 22</value>
|
||||
</data>
|
||||
<data name="l2ToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>244, 26</value>
|
||||
<value>198, 22</value>
|
||||
</data>
|
||||
<data name="r1ToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>244, 26</value>
|
||||
<value>198, 22</value>
|
||||
</data>
|
||||
<data name="r2ToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>244, 26</value>
|
||||
<value>198, 22</value>
|
||||
</data>
|
||||
<data name="onTouchpadToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>244, 26</value>
|
||||
<value>198, 22</value>
|
||||
</data>
|
||||
<data name="downToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>244, 26</value>
|
||||
<value>198, 22</value>
|
||||
</data>
|
||||
<data name="leftToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>244, 26</value>
|
||||
<value>198, 22</value>
|
||||
</data>
|
||||
<data name="rightToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>244, 26</value>
|
||||
<value>198, 22</value>
|
||||
</data>
|
||||
<data name="l3ToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>244, 26</value>
|
||||
<value>198, 22</value>
|
||||
</data>
|
||||
<data name="r3ToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>244, 26</value>
|
||||
<value>198, 22</value>
|
||||
</data>
|
||||
<data name="fingerOnTouchpadToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>244, 26</value>
|
||||
<value>198, 22</value>
|
||||
</data>
|
||||
<data name="fingerOnTouchpadToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Палец на тачпаде</value>
|
||||
</data>
|
||||
<data name="fingersOnTouchpadToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>244, 26</value>
|
||||
<value>198, 22</value>
|
||||
</data>
|
||||
<data name="fingersOnTouchpadToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Два пальца на тачпаде</value>
|
||||
</data>
|
||||
<data name="optionsToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>244, 26</value>
|
||||
<value>198, 22</value>
|
||||
</data>
|
||||
<data name="shareToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>244, 26</value>
|
||||
<value>198, 22</value>
|
||||
</data>
|
||||
<data name="pSToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>244, 26</value>
|
||||
<value>198, 22</value>
|
||||
</data>
|
||||
<data name="alwaysOnToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>244, 26</value>
|
||||
<value>198, 22</value>
|
||||
</data>
|
||||
<data name="alwaysOnToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Всегда включен</value>
|
||||
</data>
|
||||
<data name="cMGyroTriggers.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>245, 524</value>
|
||||
</data>
|
||||
<data name="gBSensitivity,Text" xml:space="preserve">
|
||||
<value>Чувствительность</value>
|
||||
</data>
|
||||
<data name="resetToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Сброс</value>
|
||||
</data>
|
||||
<data name="tPController.Text" xml:space="preserve">
|
||||
<value>Считывание контроллера</value>
|
||||
<value>199, 444</value>
|
||||
</data>
|
||||
</root>
|
@ -119,82 +119,106 @@
|
||||
</resheader>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="cBLightbyBattery.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>149, 21</value>
|
||||
<value>146, 17</value>
|
||||
</data>
|
||||
<data name="cBLightbyBattery.Text" xml:space="preserve">
|
||||
<value>颜色随电量百分比变化</value>
|
||||
</data>
|
||||
<data name="lbBlue.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>4, 77</value>
|
||||
</data>
|
||||
<data name="lbBlue.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>22, 17</value>
|
||||
<value>19, 13</value>
|
||||
</data>
|
||||
<data name="lbBlue.Text" xml:space="preserve">
|
||||
<value>蓝</value>
|
||||
</data>
|
||||
<data name="lbGreen.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>4, 55</value>
|
||||
</data>
|
||||
<data name="lbGreen.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>22, 17</value>
|
||||
<value>19, 13</value>
|
||||
</data>
|
||||
<data name="lbGreen.Text" xml:space="preserve">
|
||||
<value>绿</value>
|
||||
</data>
|
||||
<data name="lbspc.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>45, 17</value>
|
||||
<value>48, 13</value>
|
||||
</data>
|
||||
<data name="lbspc.Text" xml:space="preserve">
|
||||
<value>秒/循環</value>
|
||||
</data>
|
||||
<data name="lbRed.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>4, 29</value>
|
||||
</data>
|
||||
<data name="lbRed.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>22, 17</value>
|
||||
<value>19, 13</value>
|
||||
</data>
|
||||
<data name="lbRed.Text" xml:space="preserve">
|
||||
<value>红</value>
|
||||
</data>
|
||||
<data name="cBDoubleTap.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>55, 21</value>
|
||||
<value>50, 17</value>
|
||||
</data>
|
||||
<data name="cBDoubleTap.Text" xml:space="preserve">
|
||||
<value>双击</value>
|
||||
</data>
|
||||
<data name="cBTap.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>50, 17</value>
|
||||
</data>
|
||||
<data name="cBTap.Text" xml:space="preserve">
|
||||
<value>轻触</value>
|
||||
</data>
|
||||
<data name="cBScroll.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>55, 21</value>
|
||||
<value>47, 17</value>
|
||||
</data>
|
||||
<data name="cBScroll.Text" xml:space="preserve">
|
||||
<value>滚动</value>
|
||||
</data>
|
||||
<data name="cBSlide.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>55, 21</value>
|
||||
<value>50, 17</value>
|
||||
</data>
|
||||
<data name="cBSlide.Text" xml:space="preserve">
|
||||
<value>滑动</value>
|
||||
</data>
|
||||
<data name="lbButtonMouseSens.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>10, 17</value>
|
||||
</data>
|
||||
<data name="lbButtonMouseSens.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>66, 17</value>
|
||||
<value>67, 13</value>
|
||||
</data>
|
||||
<data name="lbButtonMouseSens.Text" xml:space="preserve">
|
||||
<value>鼠标灵敏度</value>
|
||||
</data>
|
||||
<data name="cBlowerRCOn.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>107, 21</value>
|
||||
<value>110, 17</value>
|
||||
</data>
|
||||
<data name="cBlowerRCOn.Text" xml:space="preserve">
|
||||
<value>右下角設為右鍵</value>
|
||||
</data>
|
||||
<data name="cBTouchpadJitterCompensation.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>74, 21</value>
|
||||
<value>74, 17</value>
|
||||
</data>
|
||||
<data name="cBTouchpadJitterCompensation.Text" xml:space="preserve">
|
||||
<value>抖動補償</value>
|
||||
</data>
|
||||
<data name="lbIdleMinutes.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>179, 65</value>
|
||||
</data>
|
||||
<data name="lbIdleMinutes.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>19, 17</value>
|
||||
<value>19, 13</value>
|
||||
</data>
|
||||
<data name="lbIdleMinutes.Text" xml:space="preserve">
|
||||
<value>分</value>
|
||||
</data>
|
||||
<data name="nUDIdleDisconnect.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>124, 62</value>
|
||||
</data>
|
||||
<data name="cBFlushHIDQueue.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>10, 172</value>
|
||||
</data>
|
||||
<data name="cBFlushHIDQueue.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>75, 21</value>
|
||||
<value>69, 17</value>
|
||||
</data>
|
||||
<data name="cBFlushHIDQueue.Text" xml:space="preserve">
|
||||
<value>清空HID</value>
|
||||
@ -203,233 +227,269 @@
|
||||
<value>测试震动</value>
|
||||
</data>
|
||||
<data name="lbFull.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>41, 17</value>
|
||||
<value>37, 13</value>
|
||||
</data>
|
||||
<data name="lbFull.Text" xml:space="preserve">
|
||||
<value>滿電:</value>
|
||||
</data>
|
||||
<data name="lbLowRed.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 30</value>
|
||||
</data>
|
||||
<data name="lbLowRed.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>22, 17</value>
|
||||
<value>19, 13</value>
|
||||
</data>
|
||||
<data name="lbLowRed.Text" xml:space="preserve">
|
||||
<value>红</value>
|
||||
</data>
|
||||
<data name="lbLowGreen.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 56</value>
|
||||
</data>
|
||||
<data name="lbLowGreen.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>22, 17</value>
|
||||
<value>19, 13</value>
|
||||
</data>
|
||||
<data name="lbLowGreen.Text" xml:space="preserve">
|
||||
<value>绿</value>
|
||||
</data>
|
||||
<data name="lbLowBlue.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 78</value>
|
||||
</data>
|
||||
<data name="lbLowBlue.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>22, 17</value>
|
||||
<value>19, 13</value>
|
||||
</data>
|
||||
<data name="lbLowBlue.Text" xml:space="preserve">
|
||||
<value>蓝</value>
|
||||
</data>
|
||||
<data name="lbEmpty.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>30, 17</value>
|
||||
<value>25, 13</value>
|
||||
</data>
|
||||
<data name="lbEmpty.Text" xml:space="preserve">
|
||||
<value>空:</value>
|
||||
</data>
|
||||
<data name="numUDMouseSens.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>85, 15</value>
|
||||
</data>
|
||||
<data name="cbStartTouchpadOff.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>136, 21</value>
|
||||
<value>139, 17</value>
|
||||
</data>
|
||||
<data name="cbStartTouchpadOff.Text" xml:space="preserve">
|
||||
<value>開啟時滑動/捲動關閉</value>
|
||||
</data>
|
||||
<data name="controlToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>133, 26</value>
|
||||
<value>114, 22</value>
|
||||
</data>
|
||||
<data name="toolStripSeparator1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>130, 6</value>
|
||||
<value>111, 6</value>
|
||||
</data>
|
||||
<data name="defaultToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>133, 26</value>
|
||||
<value>114, 22</value>
|
||||
</data>
|
||||
<data name="defaultToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>默认</value>
|
||||
</data>
|
||||
<data name="tSMIDPadInverted.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>141, 26</value>
|
||||
<value>120, 22</value>
|
||||
</data>
|
||||
<data name="tSMIDPadInverted.Text" xml:space="preserve">
|
||||
<value>反转</value>
|
||||
</data>
|
||||
<data name="tSMIDPadInvertedX.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>141, 26</value>
|
||||
<value>120, 22</value>
|
||||
</data>
|
||||
<data name="tSMIDPadInvertedX.Text" xml:space="preserve">
|
||||
<value>反转X轴</value>
|
||||
</data>
|
||||
<data name="tSMIDPadInvertedY.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>141, 26</value>
|
||||
<value>120, 22</value>
|
||||
</data>
|
||||
<data name="tSMIDPadInvertedY.Text" xml:space="preserve">
|
||||
<value>反转Y轴</value>
|
||||
</data>
|
||||
<data name="DpadToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>133, 26</value>
|
||||
<value>114, 22</value>
|
||||
</data>
|
||||
<data name="DpadToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>十字键</value>
|
||||
</data>
|
||||
<data name="tSMILSInverted.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>141, 26</value>
|
||||
<value>120, 22</value>
|
||||
</data>
|
||||
<data name="tSMILSInverted.Text" xml:space="preserve">
|
||||
<value>反转</value>
|
||||
</data>
|
||||
<data name="tSMILSInvertedX.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>141, 26</value>
|
||||
<value>120, 22</value>
|
||||
</data>
|
||||
<data name="tSMILSInvertedX.Text" xml:space="preserve">
|
||||
<value>反转X轴</value>
|
||||
</data>
|
||||
<data name="tSMILSInvertedY.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>141, 26</value>
|
||||
<value>120, 22</value>
|
||||
</data>
|
||||
<data name="tSMILSInvertedY.Text" xml:space="preserve">
|
||||
<value>反转Y轴</value>
|
||||
</data>
|
||||
<data name="LSToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>133, 26</value>
|
||||
<value>114, 22</value>
|
||||
</data>
|
||||
<data name="LSToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>左摇杆</value>
|
||||
</data>
|
||||
<data name="tSMIRSInverted.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>141, 26</value>
|
||||
<value>120, 22</value>
|
||||
</data>
|
||||
<data name="tSMIRSInverted.Text" xml:space="preserve">
|
||||
<value>反转</value>
|
||||
</data>
|
||||
<data name="tSMIRSInvertedX.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>141, 26</value>
|
||||
<value>120, 22</value>
|
||||
</data>
|
||||
<data name="tSMIRSInvertedX.Text" xml:space="preserve">
|
||||
<value>反转X轴</value>
|
||||
</data>
|
||||
<data name="tSMIRSInvertedY.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>141, 26</value>
|
||||
<value>120, 22</value>
|
||||
</data>
|
||||
<data name="tSMIRSInvertedY.Text" xml:space="preserve">
|
||||
<value>反转Y轴</value>
|
||||
</data>
|
||||
<data name="RSToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>133, 26</value>
|
||||
<value>114, 22</value>
|
||||
</data>
|
||||
<data name="RSToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>右摇杆</value>
|
||||
</data>
|
||||
<data name="ABXYToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>133, 26</value>
|
||||
<value>114, 22</value>
|
||||
</data>
|
||||
<data name="ABXYToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>右侧动作键</value>
|
||||
</data>
|
||||
<data name="wScanCodeWASDToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>164, 26</value>
|
||||
<value>139, 22</value>
|
||||
</data>
|
||||
<data name="wScanCodeWASDToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>用掃描代碼</value>
|
||||
</data>
|
||||
<data name="WASDToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>133, 26</value>
|
||||
<value>114, 22</value>
|
||||
</data>
|
||||
<data name="wScanCodeArrowKeysToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>164, 26</value>
|
||||
<value>139, 22</value>
|
||||
</data>
|
||||
<data name="wScanCodeArrowKeysToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>用掃描代碼</value>
|
||||
</data>
|
||||
<data name="ArrowKeysToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>133, 26</value>
|
||||
<value>114, 22</value>
|
||||
</data>
|
||||
<data name="ArrowKeysToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>方向键</value>
|
||||
</data>
|
||||
<data name="tSMIMouseInverted.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>141, 26</value>
|
||||
<value>120, 22</value>
|
||||
</data>
|
||||
<data name="tSMIMouseInverted.Text" xml:space="preserve">
|
||||
<value>反转</value>
|
||||
</data>
|
||||
<data name="tSMIMouseInvertedX.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>141, 26</value>
|
||||
<value>120, 22</value>
|
||||
</data>
|
||||
<data name="tSMIMouseInvertedX.Text" xml:space="preserve">
|
||||
<value>反转X轴</value>
|
||||
</data>
|
||||
<data name="tSMIMouseInvertedY.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>141, 26</value>
|
||||
<value>120, 22</value>
|
||||
</data>
|
||||
<data name="tSMIMouseInvertedY.Text" xml:space="preserve">
|
||||
<value>反转Y轴</value>
|
||||
</data>
|
||||
<data name="MouseToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>133, 26</value>
|
||||
<value>114, 22</value>
|
||||
</data>
|
||||
<data name="MouseToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>鼠标</value>
|
||||
</data>
|
||||
<data name="cMSPresets.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>134, 244</value>
|
||||
<value>115, 208</value>
|
||||
</data>
|
||||
<data name="gBTouchpad.Text" xml:space="preserve">
|
||||
<value>触摸板</value>
|
||||
</data>
|
||||
<data name="btPollRateLabel.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>11, 222</value>
|
||||
</data>
|
||||
<data name="btPollRateComboBox.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>84, 219</value>
|
||||
</data>
|
||||
<data name="enableTouchToggleCheckbox.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>10, 196</value>
|
||||
</data>
|
||||
<data name="cBDinput.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>10, 149</value>
|
||||
</data>
|
||||
<data name="cBDinput.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>108, 21</value>
|
||||
<value>96, 17</value>
|
||||
</data>
|
||||
<data name="cBDinput.Text" xml:space="preserve">
|
||||
<value>只使用 Dinput</value>
|
||||
</data>
|
||||
<data name="pBProgram.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>236, 133</value>
|
||||
<value>233, 119</value>
|
||||
</data>
|
||||
<data name="cBLaunchProgram.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>9, 140</value>
|
||||
<value>9, 121</value>
|
||||
</data>
|
||||
<data name="cBLaunchProgram.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>129, 21</value>
|
||||
<value>134, 17</value>
|
||||
</data>
|
||||
<data name="cBLaunchProgram.Text" xml:space="preserve">
|
||||
<value>运行程式与配置文件</value>
|
||||
</data>
|
||||
<data name="btnBrowse.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>146, 135</value>
|
||||
<value>149, 119</value>
|
||||
</data>
|
||||
<data name="btnBrowse.Text" xml:space="preserve">
|
||||
<value>浏览...</value>
|
||||
</data>
|
||||
<data name="lbUseController.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>7, 95</value>
|
||||
</data>
|
||||
<data name="lbUseController.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>63, 17</value>
|
||||
<value>67, 13</value>
|
||||
</data>
|
||||
<data name="lbUseController.Text" xml:space="preserve">
|
||||
<value>使用控制器</value>
|
||||
</data>
|
||||
<data name="cBMouseAccel.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>205, 21</value>
|
||||
<value>9, 40</value>
|
||||
</data>
|
||||
<data name="cBMouseAccel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>77, 21</value>
|
||||
<value>74, 17</value>
|
||||
</data>
|
||||
<data name="cBMouseAccel.Text" xml:space="preserve">
|
||||
<value>鼠标加速</value>
|
||||
</data>
|
||||
<data name="nUDSixaxis.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>77, 94</value>
|
||||
</data>
|
||||
<data name="cBControllerInput.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>115, 96</value>
|
||||
</data>
|
||||
<data name="cBControllerInput.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>107, 21</value>
|
||||
<value>110, 17</value>
|
||||
</data>
|
||||
<data name="cBControllerInput.Text" xml:space="preserve">
|
||||
<value>用於映射和讀出</value>
|
||||
</data>
|
||||
<data name="cBIdleDisconnect.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>116, 21</value>
|
||||
<value>110, 17</value>
|
||||
</data>
|
||||
<data name="cBIdleDisconnect.Text" xml:space="preserve">
|
||||
<value>空闲时断开连接</value>
|
||||
</data>
|
||||
<data name="gBOther.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>267, 250</value>
|
||||
</data>
|
||||
<data name="gBOther.Text" xml:space="preserve">
|
||||
<value>其他</value>
|
||||
</data>
|
||||
@ -452,35 +512,11 @@
|
||||
<value>颜色</value>
|
||||
</data>
|
||||
<data name="lbWhileCharging.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>58, 17</value>
|
||||
<value>49, 13</value>
|
||||
</data>
|
||||
<data name="lbWhileCharging.Text" xml:space="preserve">
|
||||
<value>充电时:</value>
|
||||
</data>
|
||||
<data name="cBShiftLight.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>176, 21</value>
|
||||
</data>
|
||||
<data name="cBShiftLight.Text" xml:space="preserve">
|
||||
<value>shift mode 時用另一種顏色</value>
|
||||
</data>
|
||||
<data name="lbShiftRed.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>22, 17</value>
|
||||
</data>
|
||||
<data name="lbShiftRed.Text" xml:space="preserve">
|
||||
<value>红</value>
|
||||
</data>
|
||||
<data name="lbShiftGreen.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>22, 17</value>
|
||||
</data>
|
||||
<data name="lbShiftGreen.Text" xml:space="preserve">
|
||||
<value>绿</value>
|
||||
</data>
|
||||
<data name="lbShiftBlue.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>22, 17</value>
|
||||
</data>
|
||||
<data name="lbShiftBlue.Text" xml:space="preserve">
|
||||
<value>蓝</value>
|
||||
</data>
|
||||
<data name="gBLightbar.Text" xml:space="preserve">
|
||||
<value>灯条</value>
|
||||
</data>
|
||||
@ -494,7 +530,7 @@
|
||||
<value>右摇杆</value>
|
||||
</data>
|
||||
<data name="lbInputDelay.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>110, 17</value>
|
||||
<value>94, 13</value>
|
||||
</data>
|
||||
<data name="lbInputDelay.Text" xml:space="preserve">
|
||||
<value>输入延迟:N/Ams</value>
|
||||
@ -506,32 +542,17 @@
|
||||
<value>六軸:X軸已反轉來方便閱讀</value>
|
||||
</data>
|
||||
<data name="lb6Accel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>30, 17</value>
|
||||
<value>31, 13</value>
|
||||
</data>
|
||||
<data name="lb6Accel.Text" xml:space="preserve">
|
||||
<value>加速</value>
|
||||
</data>
|
||||
<data name="lb6Gryo.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>44, 17</value>
|
||||
<value>43, 13</value>
|
||||
</data>
|
||||
<data name="lb6Gryo.Text" xml:space="preserve">
|
||||
<value>陀螺仪</value>
|
||||
</data>
|
||||
<data name="lbHold.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>30, 17</value>
|
||||
</data>
|
||||
<data name="lbHold.Text" xml:space="preserve">
|
||||
<value>按住</value>
|
||||
</data>
|
||||
<data name="lbtoUse.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>85, 17</value>
|
||||
</data>
|
||||
<data name="lbtoUse.Text" xml:space="preserve">
|
||||
<value>來使用這些控制</value>
|
||||
</data>
|
||||
<data name="cBShiftControl.Items" xml:space="preserve">
|
||||
<value>(無)/shift 關閉</value>
|
||||
</data>
|
||||
<data name="lbControlTip.Text" xml:space="preserve">
|
||||
<value>點擊光調來開啟顏色選擇器</value>
|
||||
</data>
|
||||
|
@ -119,91 +119,103 @@
|
||||
</resheader>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="cBLightbyBattery.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>119, 21</value>
|
||||
<value>118, 17</value>
|
||||
</data>
|
||||
<data name="cBLightbyBattery.Text" xml:space="preserve">
|
||||
<value>顏色依電量%變化</value>
|
||||
</data>
|
||||
<data name="lbBlue.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>4, 77</value>
|
||||
</data>
|
||||
<data name="lbBlue.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>19, 17</value>
|
||||
<value>19, 13</value>
|
||||
</data>
|
||||
<data name="lbBlue.Text" xml:space="preserve">
|
||||
<value>藍</value>
|
||||
</data>
|
||||
<data name="lbGreen.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>5, 55</value>
|
||||
</data>
|
||||
<data name="lbGreen.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>19, 13</value>
|
||||
</data>
|
||||
<data name="lbGreen.Text" xml:space="preserve">
|
||||
<value>綠</value>
|
||||
</data>
|
||||
<data name="lbspc.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>45, 17</value>
|
||||
<value>48, 13</value>
|
||||
</data>
|
||||
<data name="lbspc.Text" xml:space="preserve">
|
||||
<value>秒/循環</value>
|
||||
</data>
|
||||
<data name="lbRed.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>4, 29</value>
|
||||
</data>
|
||||
<data name="lbRed.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>19, 17</value>
|
||||
<value>19, 13</value>
|
||||
</data>
|
||||
<data name="lbRed.Text" xml:space="preserve">
|
||||
<value>紅</value>
|
||||
</data>
|
||||
<data name="cBDoubleTap.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>52, 21</value>
|
||||
<value>50, 17</value>
|
||||
</data>
|
||||
<data name="cBDoubleTap.Text" xml:space="preserve">
|
||||
<value>雙擊</value>
|
||||
</data>
|
||||
<data name="cBTap.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>52, 21</value>
|
||||
<value>50, 17</value>
|
||||
</data>
|
||||
<data name="cBTap.Text" xml:space="preserve">
|
||||
<value>點擊</value>
|
||||
</data>
|
||||
<data name="cBScroll.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>52, 21</value>
|
||||
<value>50, 17</value>
|
||||
</data>
|
||||
<data name="cBScroll.Text" xml:space="preserve">
|
||||
<value>捲動</value>
|
||||
</data>
|
||||
<data name="cBSlide.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>52, 21</value>
|
||||
<value>50, 17</value>
|
||||
</data>
|
||||
<data name="cBSlide.Text" xml:space="preserve">
|
||||
<value>滑動</value>
|
||||
</data>
|
||||
<data name="lbButtonMouseSens.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>74, 17</value>
|
||||
<value>73, 13</value>
|
||||
</data>
|
||||
<data name="lbButtonMouseSens.Text" xml:space="preserve">
|
||||
<value>滑鼠靈敏度:</value>
|
||||
</data>
|
||||
<data name="cBlowerRCOn.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>107, 21</value>
|
||||
<value>110, 17</value>
|
||||
</data>
|
||||
<data name="cBlowerRCOn.Text" xml:space="preserve">
|
||||
<value>右下角設為右鍵</value>
|
||||
</data>
|
||||
<data name="cBTouchpadJitterCompensation.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>74, 21</value>
|
||||
<value>74, 17</value>
|
||||
</data>
|
||||
<data name="cBTouchpadJitterCompensation.Text" xml:space="preserve">
|
||||
<value>抖動補償</value>
|
||||
</data>
|
||||
<data name="lbIdleMinutes.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>170, 59</value>
|
||||
<value>155, 66</value>
|
||||
</data>
|
||||
<data name="lbIdleMinutes.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>30, 17</value>
|
||||
<value>31, 13</value>
|
||||
</data>
|
||||
<data name="lbIdleMinutes.Text" xml:space="preserve">
|
||||
<value>分鐘</value>
|
||||
</data>
|
||||
<data name="nUDIdleDisconnect.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>102, 55</value>
|
||||
<value>100, 62</value>
|
||||
</data>
|
||||
<data name="cBFlushHIDQueue.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>45, 213</value>
|
||||
<value>10, 201</value>
|
||||
</data>
|
||||
<data name="cBFlushHIDQueue.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>79, 21</value>
|
||||
<value>72, 17</value>
|
||||
</data>
|
||||
<data name="cBFlushHIDQueue.Text" xml:space="preserve">
|
||||
<value>刷新 HID</value>
|
||||
@ -212,233 +224,254 @@
|
||||
<value>測試強震</value>
|
||||
</data>
|
||||
<data name="lbFull.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>41, 17</value>
|
||||
<value>37, 13</value>
|
||||
</data>
|
||||
<data name="lbFull.Text" xml:space="preserve">
|
||||
<value>滿電:</value>
|
||||
</data>
|
||||
<data name="lbLowRed.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 30</value>
|
||||
</data>
|
||||
<data name="lbLowRed.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>19, 17</value>
|
||||
<value>19, 13</value>
|
||||
</data>
|
||||
<data name="lbLowRed.Text" xml:space="preserve">
|
||||
<value>紅</value>
|
||||
</data>
|
||||
<data name="lbLowGreen.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 51</value>
|
||||
</data>
|
||||
<data name="lbLowGreen.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>19, 13</value>
|
||||
</data>
|
||||
<data name="lbLowGreen.Text" xml:space="preserve">
|
||||
<value>綠</value>
|
||||
</data>
|
||||
<data name="lbLowBlue.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 74</value>
|
||||
</data>
|
||||
<data name="lbLowBlue.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>19, 17</value>
|
||||
<value>19, 13</value>
|
||||
</data>
|
||||
<data name="lbLowBlue.Text" xml:space="preserve">
|
||||
<value>藍</value>
|
||||
</data>
|
||||
<data name="lbEmpty.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>41, 17</value>
|
||||
<value>37, 13</value>
|
||||
</data>
|
||||
<data name="lbEmpty.Text" xml:space="preserve">
|
||||
<value>沒電:</value>
|
||||
</data>
|
||||
<data name="numUDMouseSens.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>88, 19</value>
|
||||
<value>84, 17</value>
|
||||
</data>
|
||||
<data name="gBTouchpad.Text" xml:space="preserve">
|
||||
<value>觸控版</value>
|
||||
</data>
|
||||
<data name="pnlTPMouse.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>0, 60</value>
|
||||
<value>3, 36</value>
|
||||
</data>
|
||||
<data name="cbStartTouchpadOff.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>136, 21</value>
|
||||
<value>139, 17</value>
|
||||
</data>
|
||||
<data name="cbStartTouchpadOff.Text" xml:space="preserve">
|
||||
<value>開啟時滑動/捲動關閉</value>
|
||||
</data>
|
||||
<data name="fLPShiftTouchSwipe.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>4, 61</value>
|
||||
<data name="fLPTouchSwipe.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>4, 40</value>
|
||||
</data>
|
||||
<data name="fLPTouchSwipe.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>260, 153</value>
|
||||
</data>
|
||||
<data name="cMSPresets.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>150, 244</value>
|
||||
<value>128, 208</value>
|
||||
</data>
|
||||
<data name="controlToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>149, 26</value>
|
||||
<value>127, 22</value>
|
||||
</data>
|
||||
<data name="toolStripSeparator1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>146, 6</value>
|
||||
<value>124, 6</value>
|
||||
</data>
|
||||
<data name="defaultToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>149, 26</value>
|
||||
<value>127, 22</value>
|
||||
</data>
|
||||
<data name="defaultToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>預設</value>
|
||||
</data>
|
||||
<data name="DpadToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>149, 26</value>
|
||||
<value>127, 22</value>
|
||||
</data>
|
||||
<data name="DpadToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>十字鍵</value>
|
||||
</data>
|
||||
<data name="tSMIDPadInverted.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>129, 26</value>
|
||||
<value>110, 22</value>
|
||||
</data>
|
||||
<data name="tSMIDPadInverted.Text" xml:space="preserve">
|
||||
<value>反轉</value>
|
||||
</data>
|
||||
<data name="tSMIDPadInvertedX.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>129, 26</value>
|
||||
<value>110, 22</value>
|
||||
</data>
|
||||
<data name="tSMIDPadInvertedX.Text" xml:space="preserve">
|
||||
<value>反轉 X</value>
|
||||
</data>
|
||||
<data name="tSMIDPadInvertedY.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>129, 26</value>
|
||||
<value>110, 22</value>
|
||||
</data>
|
||||
<data name="tSMIDPadInvertedY.Text" xml:space="preserve">
|
||||
<value>反轉 Y</value>
|
||||
</data>
|
||||
<data name="LSToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>149, 26</value>
|
||||
<value>127, 22</value>
|
||||
</data>
|
||||
<data name="LSToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>左搖桿</value>
|
||||
</data>
|
||||
<data name="tSMILSInverted.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>129, 26</value>
|
||||
<value>110, 22</value>
|
||||
</data>
|
||||
<data name="tSMILSInverted.Text" xml:space="preserve">
|
||||
<value>反轉</value>
|
||||
</data>
|
||||
<data name="tSMILSInvertedX.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>129, 26</value>
|
||||
<value>110, 22</value>
|
||||
</data>
|
||||
<data name="tSMILSInvertedX.Text" xml:space="preserve">
|
||||
<value>反轉 X</value>
|
||||
</data>
|
||||
<data name="tSMILSInvertedY.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>129, 26</value>
|
||||
<value>110, 22</value>
|
||||
</data>
|
||||
<data name="tSMILSInvertedY.Text" xml:space="preserve">
|
||||
<value>反轉 Y</value>
|
||||
</data>
|
||||
<data name="RSToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>149, 26</value>
|
||||
<value>127, 22</value>
|
||||
</data>
|
||||
<data name="RSToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>右搖桿</value>
|
||||
</data>
|
||||
<data name="tSMIRSInverted.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>129, 26</value>
|
||||
<value>110, 22</value>
|
||||
</data>
|
||||
<data name="tSMIRSInverted.Text" xml:space="preserve">
|
||||
<value>反轉</value>
|
||||
</data>
|
||||
<data name="tSMIRSInvertedX.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>129, 26</value>
|
||||
<value>110, 22</value>
|
||||
</data>
|
||||
<data name="tSMIRSInvertedX.Text" xml:space="preserve">
|
||||
<value>反轉 X</value>
|
||||
</data>
|
||||
<data name="tSMIRSInvertedY.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>129, 26</value>
|
||||
<value>110, 22</value>
|
||||
</data>
|
||||
<data name="tSMIRSInvertedY.Text" xml:space="preserve">
|
||||
<value>反轉 Y</value>
|
||||
</data>
|
||||
<data name="ABXYToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>149, 26</value>
|
||||
<value>127, 22</value>
|
||||
</data>
|
||||
<data name="ABXYToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>右側四個按鈕</value>
|
||||
</data>
|
||||
<data name="WASDToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>149, 26</value>
|
||||
<value>127, 22</value>
|
||||
</data>
|
||||
<data name="wScanCodeWASDToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>164, 26</value>
|
||||
<value>139, 22</value>
|
||||
</data>
|
||||
<data name="wScanCodeWASDToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>用掃描代碼</value>
|
||||
</data>
|
||||
<data name="ArrowKeysToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>149, 26</value>
|
||||
<value>127, 22</value>
|
||||
</data>
|
||||
<data name="ArrowKeysToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>方向鍵</value>
|
||||
</data>
|
||||
<data name="wScanCodeArrowKeysToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>164, 26</value>
|
||||
<value>139, 22</value>
|
||||
</data>
|
||||
<data name="wScanCodeArrowKeysToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>用掃描代碼</value>
|
||||
</data>
|
||||
<data name="MouseToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>149, 26</value>
|
||||
<value>127, 22</value>
|
||||
</data>
|
||||
<data name="MouseToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>滑鼠</value>
|
||||
</data>
|
||||
<data name="tSMIMouseInverted.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>129, 26</value>
|
||||
<value>110, 22</value>
|
||||
</data>
|
||||
<data name="tSMIMouseInverted.Text" xml:space="preserve">
|
||||
<value>反轉</value>
|
||||
</data>
|
||||
<data name="tSMIMouseInvertedX.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>129, 26</value>
|
||||
<value>110, 22</value>
|
||||
</data>
|
||||
<data name="tSMIMouseInvertedX.Text" xml:space="preserve">
|
||||
<value>反轉 X</value>
|
||||
</data>
|
||||
<data name="tSMIMouseInvertedY.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>129, 26</value>
|
||||
<value>110, 22</value>
|
||||
</data>
|
||||
<data name="tSMIMouseInvertedY.Text" xml:space="preserve">
|
||||
<value>反轉 Y</value>
|
||||
</data>
|
||||
<data name="fLPTouchSwipe.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>4, 61</value>
|
||||
<data name="gBOther.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>272, 245</value>
|
||||
</data>
|
||||
<data name="gBOther.Text" xml:space="preserve">
|
||||
<value>其它</value>
|
||||
</data>
|
||||
<data name="btPollRateLabel.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>10, 226</value>
|
||||
</data>
|
||||
<data name="btPollRateComboBox.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>83, 221</value>
|
||||
</data>
|
||||
<data name="enableTouchToggleCheckbox.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>10, 179</value>
|
||||
</data>
|
||||
<data name="cBDinput.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>16, 184</value>
|
||||
<value>8, 158</value>
|
||||
</data>
|
||||
<data name="cBDinput.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>108, 21</value>
|
||||
<value>96, 17</value>
|
||||
</data>
|
||||
<data name="cBDinput.Text" xml:space="preserve">
|
||||
<value>只使用 Dinput</value>
|
||||
</data>
|
||||
<data name="pBProgram.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>197, 133</value>
|
||||
<value>183, 125</value>
|
||||
</data>
|
||||
<data name="cBLaunchProgram.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>8, 131</value>
|
||||
<value>6, 122</value>
|
||||
</data>
|
||||
<data name="cBLaunchProgram.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>85, 38</value>
|
||||
<value>86, 30</value>
|
||||
</data>
|
||||
<data name="cBLaunchProgram.Text" xml:space="preserve">
|
||||
<value>啟用程式
|
||||
使用設定檔</value>
|
||||
</data>
|
||||
<data name="btnBrowse.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>107, 135</value>
|
||||
<value>100, 125</value>
|
||||
</data>
|
||||
<data name="btnBrowse.Text" xml:space="preserve">
|
||||
<value>瀏覽...</value>
|
||||
</data>
|
||||
<data name="lbUseController.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>63, 17</value>
|
||||
<value>67, 13</value>
|
||||
</data>
|
||||
<data name="lbUseController.Text" xml:space="preserve">
|
||||
<value>使用控制器</value>
|
||||
</data>
|
||||
<data name="cBMouseAccel.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>156, 20</value>
|
||||
</data>
|
||||
<data name="cBMouseAccel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>74, 21</value>
|
||||
<value>74, 17</value>
|
||||
</data>
|
||||
<data name="cBMouseAccel.Text" xml:space="preserve">
|
||||
<value>滑鼠加速</value>
|
||||
@ -450,13 +483,13 @@
|
||||
<value>128, 93</value>
|
||||
</data>
|
||||
<data name="cBControllerInput.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>107, 21</value>
|
||||
<value>110, 17</value>
|
||||
</data>
|
||||
<data name="cBControllerInput.Text" xml:space="preserve">
|
||||
<value>用於映射和讀出</value>
|
||||
</data>
|
||||
<data name="cBIdleDisconnect.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>85, 21</value>
|
||||
<value>86, 17</value>
|
||||
</data>
|
||||
<data name="cBIdleDisconnect.Text" xml:space="preserve">
|
||||
<value>閒置時斷開</value>
|
||||
@ -483,32 +516,11 @@
|
||||
<value>顏色</value>
|
||||
</data>
|
||||
<data name="lbWhileCharging.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>63, 17</value>
|
||||
<value>61, 13</value>
|
||||
</data>
|
||||
<data name="lbWhileCharging.Text" xml:space="preserve">
|
||||
<value>當改變時:</value>
|
||||
</data>
|
||||
<data name="cBShiftLight.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>176, 21</value>
|
||||
</data>
|
||||
<data name="cBShiftLight.Text" xml:space="preserve">
|
||||
<value>shift mode 時用另一種顏色</value>
|
||||
</data>
|
||||
<data name="lbShiftRed.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>19, 17</value>
|
||||
</data>
|
||||
<data name="lbShiftRed.Text" xml:space="preserve">
|
||||
<value>紅</value>
|
||||
</data>
|
||||
<data name="lbShiftGreen.Text" xml:space="preserve">
|
||||
<value>綠</value>
|
||||
</data>
|
||||
<data name="lbShiftBlue.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>19, 17</value>
|
||||
</data>
|
||||
<data name="lbShiftBlue.Text" xml:space="preserve">
|
||||
<value>藍</value>
|
||||
</data>
|
||||
<data name="gBRumble.Text" xml:space="preserve">
|
||||
<value>震動</value>
|
||||
</data>
|
||||
@ -519,7 +531,7 @@
|
||||
<value>右搖桿</value>
|
||||
</data>
|
||||
<data name="lbInputDelay.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>101, 17</value>
|
||||
<value>94, 13</value>
|
||||
</data>
|
||||
<data name="lbInputDelay.Text" xml:space="preserve">
|
||||
<value>輸入延遲: N/Ams</value>
|
||||
@ -531,35 +543,17 @@
|
||||
<value>六軸:X軸已反轉來方便閱讀</value>
|
||||
</data>
|
||||
<data name="lb6Accel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>30, 17</value>
|
||||
<value>31, 13</value>
|
||||
</data>
|
||||
<data name="lb6Accel.Text" xml:space="preserve">
|
||||
<value>加速</value>
|
||||
</data>
|
||||
<data name="lb6Gryo.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>41, 17</value>
|
||||
<value>43, 13</value>
|
||||
</data>
|
||||
<data name="lb6Gryo.Text" xml:space="preserve">
|
||||
<value>陀螺儀</value>
|
||||
</data>
|
||||
<data name="lbHold.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>30, 17</value>
|
||||
</data>
|
||||
<data name="lbHold.Text" xml:space="preserve">
|
||||
<value>按住</value>
|
||||
</data>
|
||||
<data name="lbtoUse.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>85, 17</value>
|
||||
</data>
|
||||
<data name="lbtoUse.Text" xml:space="preserve">
|
||||
<value>來使用這些控制</value>
|
||||
</data>
|
||||
<data name="cBShiftControl.Items" xml:space="preserve">
|
||||
<value>(無)/shift 關閉</value>
|
||||
</data>
|
||||
<data name="cBShiftControl.Items26" xml:space="preserve">
|
||||
<value>觸控版 (未點擊)</value>
|
||||
</data>
|
||||
<data name="tPControls.Text" xml:space="preserve">
|
||||
<value>控制器</value>
|
||||
</data>
|
||||
@ -597,119 +591,103 @@
|
||||
<value>死區</value>
|
||||
</data>
|
||||
<data name="rBSAControls.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>84, 21</value>
|
||||
<value>85, 17</value>
|
||||
</data>
|
||||
<data name="rBSAControls.Text" xml:space="preserve">
|
||||
<value>當成控制器</value>
|
||||
</data>
|
||||
<data name="rBSAMouse.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>73, 21</value>
|
||||
<value>73, 17</value>
|
||||
</data>
|
||||
<data name="rBSAMouse.Text" xml:space="preserve">
|
||||
<value>當成滑鼠</value>
|
||||
</data>
|
||||
<data name="lbGyroInvert.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>30, 17</value>
|
||||
<value>31, 13</value>
|
||||
</data>
|
||||
<data name="lbGyroInvert.Text" xml:space="preserve">
|
||||
<value>反轉</value>
|
||||
</data>
|
||||
<data name="lbGyroTriggers.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>55, 17</value>
|
||||
<value>55, 13</value>
|
||||
</data>
|
||||
<data name="lbGyroTriggers.Text" xml:space="preserve">
|
||||
<value>啟動按鍵</value>
|
||||
</data>
|
||||
<data name="lbGyroSens.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>74, 17</value>
|
||||
<value>79, 13</value>
|
||||
</data>
|
||||
<data name="lbGyroSens.Text" xml:space="preserve">
|
||||
<value>陀螺儀靈敏度</value>
|
||||
</data>
|
||||
<data name="cMGyroTriggers.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>205, 524</value>
|
||||
<value>172, 444</value>
|
||||
</data>
|
||||
<data name="crossToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>204, 26</value>
|
||||
<value>171, 22</value>
|
||||
</data>
|
||||
<data name="circleToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>204, 26</value>
|
||||
<value>171, 22</value>
|
||||
</data>
|
||||
<data name="squareToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>204, 26</value>
|
||||
<value>171, 22</value>
|
||||
</data>
|
||||
<data name="triangleToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>204, 26</value>
|
||||
<value>171, 22</value>
|
||||
</data>
|
||||
<data name="l1ToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>204, 26</value>
|
||||
<value>171, 22</value>
|
||||
</data>
|
||||
<data name="l2ToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>204, 26</value>
|
||||
<value>171, 22</value>
|
||||
</data>
|
||||
<data name="r1ToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>204, 26</value>
|
||||
<value>171, 22</value>
|
||||
</data>
|
||||
<data name="r2ToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>204, 26</value>
|
||||
<value>171, 22</value>
|
||||
</data>
|
||||
<data name="onTouchpadToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>204, 26</value>
|
||||
<value>171, 22</value>
|
||||
</data>
|
||||
<data name="downToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>204, 26</value>
|
||||
<value>171, 22</value>
|
||||
</data>
|
||||
<data name="leftToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>204, 26</value>
|
||||
<value>171, 22</value>
|
||||
</data>
|
||||
<data name="rightToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>204, 26</value>
|
||||
<value>171, 22</value>
|
||||
</data>
|
||||
<data name="l3ToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>204, 26</value>
|
||||
<value>171, 22</value>
|
||||
</data>
|
||||
<data name="r3ToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>204, 26</value>
|
||||
<value>171, 22</value>
|
||||
</data>
|
||||
<data name="fingerOnTouchpadToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>204, 26</value>
|
||||
<value>171, 22</value>
|
||||
</data>
|
||||
<data name="fingerOnTouchpadToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>手指放在觸摸板</value>
|
||||
</data>
|
||||
<data name="fingersOnTouchpadToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>204, 26</value>
|
||||
<value>171, 22</value>
|
||||
</data>
|
||||
<data name="fingersOnTouchpadToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>2手指放在觸摸板</value>
|
||||
</data>
|
||||
<data name="optionsToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>204, 26</value>
|
||||
<value>171, 22</value>
|
||||
</data>
|
||||
<data name="shareToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>204, 26</value>
|
||||
<value>171, 22</value>
|
||||
</data>
|
||||
<data name="pSToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>204, 26</value>
|
||||
<value>171, 22</value>
|
||||
</data>
|
||||
<data name="resetToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>204, 26</value>
|
||||
</data>
|
||||
<data name="resetToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>重置</value>
|
||||
</data>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="$this.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>Inherit</value>
|
||||
</data>
|
||||
<data name="gBSensitivity,Text" xml:space="preserve">
|
||||
<value>靈敏度</value>
|
||||
</data>
|
||||
<data name="tPController.Text" xml:space="preserve">
|
||||
<value>控制器讀數</value>
|
||||
</data>
|
||||
<data name="tPShiftMod.Text" xml:space="preserve">
|
||||
<value>Shift Modifier</value>
|
||||
<data name="alwaysOnToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>171, 22</value>
|
||||
</data>
|
||||
<data name="alwaysOnToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>總是啟用</value>
|
||||
|
16
DS4Windows/DS4Forms/RecordBox.Designer.cs
generated
16
DS4Windows/DS4Forms/RecordBox.Designer.cs
generated
@ -69,7 +69,7 @@
|
||||
this.btnRecord.UseVisualStyleBackColor = true;
|
||||
this.btnRecord.Click += new System.EventHandler(this.btnRecord_Click);
|
||||
this.btnRecord.KeyDown += new System.Windows.Forms.KeyEventHandler(this.anyKeyDown);
|
||||
this.btnRecord.KeyUp += new System.Windows.Forms.KeyEventHandler(this.anyKeyUp);
|
||||
this.btnRecord.KeyUp += new System.Windows.Forms.KeyEventHandler(this.AnyKeyUp);
|
||||
//
|
||||
// cBRecordDelays
|
||||
//
|
||||
@ -78,7 +78,7 @@
|
||||
this.cBRecordDelays.TabStop = false;
|
||||
this.cBRecordDelays.UseVisualStyleBackColor = true;
|
||||
this.cBRecordDelays.KeyDown += new System.Windows.Forms.KeyEventHandler(this.anyKeyDown);
|
||||
this.cBRecordDelays.KeyUp += new System.Windows.Forms.KeyEventHandler(this.anyKeyUp);
|
||||
this.cBRecordDelays.KeyUp += new System.Windows.Forms.KeyEventHandler(this.AnyKeyUp);
|
||||
this.cBRecordDelays.MouseDown += new System.Windows.Forms.MouseEventHandler(this.anyMouseDown);
|
||||
this.cBRecordDelays.MouseUp += new System.Windows.Forms.MouseEventHandler(this.anyMouseUp);
|
||||
//
|
||||
@ -97,7 +97,7 @@
|
||||
this.lVMacros.View = System.Windows.Forms.View.Details;
|
||||
this.lVMacros.SelectedIndexChanged += new System.EventHandler(this.lVMacros_SelectedIndexChanged);
|
||||
this.lVMacros.KeyDown += new System.Windows.Forms.KeyEventHandler(this.anyKeyDown);
|
||||
this.lVMacros.KeyUp += new System.Windows.Forms.KeyEventHandler(this.anyKeyUp);
|
||||
this.lVMacros.KeyUp += new System.Windows.Forms.KeyEventHandler(this.AnyKeyUp);
|
||||
this.lVMacros.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.lVMacros_MouseDoubleClick);
|
||||
this.lVMacros.MouseDown += new System.Windows.Forms.MouseEventHandler(this.anyMouseDown);
|
||||
this.lVMacros.MouseHover += new System.EventHandler(this.lVMacros_MouseHover);
|
||||
@ -185,7 +185,7 @@
|
||||
this.btnLightbar.UseVisualStyleBackColor = true;
|
||||
this.btnLightbar.Click += new System.EventHandler(this.btnLightbar_Click);
|
||||
this.btnLightbar.KeyDown += new System.Windows.Forms.KeyEventHandler(this.anyKeyDown);
|
||||
this.btnLightbar.KeyUp += new System.Windows.Forms.KeyEventHandler(this.anyKeyUp);
|
||||
this.btnLightbar.KeyUp += new System.Windows.Forms.KeyEventHandler(this.AnyKeyUp);
|
||||
//
|
||||
// btnRumble
|
||||
//
|
||||
@ -194,7 +194,7 @@
|
||||
this.btnRumble.UseVisualStyleBackColor = true;
|
||||
this.btnRumble.Click += new System.EventHandler(this.btnRumble_Click);
|
||||
this.btnRumble.KeyDown += new System.Windows.Forms.KeyEventHandler(this.anyKeyDown);
|
||||
this.btnRumble.KeyUp += new System.Windows.Forms.KeyEventHandler(this.anyKeyUp);
|
||||
this.btnRumble.KeyUp += new System.Windows.Forms.KeyEventHandler(this.AnyKeyUp);
|
||||
//
|
||||
// btn5th
|
||||
//
|
||||
@ -203,7 +203,7 @@
|
||||
this.btn5th.UseVisualStyleBackColor = true;
|
||||
this.btn5th.Click += new System.EventHandler(this.btn5th_Click);
|
||||
this.btn5th.KeyDown += new System.Windows.Forms.KeyEventHandler(this.anyKeyDown);
|
||||
this.btn5th.KeyUp += new System.Windows.Forms.KeyEventHandler(this.anyKeyUp);
|
||||
this.btn5th.KeyUp += new System.Windows.Forms.KeyEventHandler(this.AnyKeyUp);
|
||||
//
|
||||
// btn4th
|
||||
//
|
||||
@ -212,7 +212,7 @@
|
||||
this.btn4th.UseVisualStyleBackColor = true;
|
||||
this.btn4th.Click += new System.EventHandler(this.btn4th_Click);
|
||||
this.btn4th.KeyDown += new System.Windows.Forms.KeyEventHandler(this.anyKeyDown);
|
||||
this.btn4th.KeyUp += new System.Windows.Forms.KeyEventHandler(this.anyKeyUp);
|
||||
this.btn4th.KeyUp += new System.Windows.Forms.KeyEventHandler(this.AnyKeyUp);
|
||||
//
|
||||
// btnLoadP
|
||||
//
|
||||
@ -286,7 +286,7 @@
|
||||
this.ShowInTaskbar = false;
|
||||
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.RecordBox_FormClosing);
|
||||
this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.anyKeyDown);
|
||||
this.KeyUp += new System.Windows.Forms.KeyEventHandler(this.anyKeyUp);
|
||||
this.KeyUp += new System.Windows.Forms.KeyEventHandler(this.AnyKeyUp);
|
||||
this.MouseDown += new System.Windows.Forms.MouseEventHandler(this.anyMouseDown);
|
||||
this.MouseUp += new System.Windows.Forms.MouseEventHandler(this.anyMouseUp);
|
||||
this.Resize += new System.EventHandler(this.RecordBox_Resize);
|
||||
|
@ -1,15 +1,10 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Diagnostics;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
using NonFormTimer = System.Timers.Timer;
|
||||
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
@ -19,7 +14,8 @@ namespace DS4Windows
|
||||
public partial class RecordBox : Form
|
||||
{
|
||||
Stopwatch sw = new Stopwatch();
|
||||
Timer ds4 = new Timer();
|
||||
//Timer ds4 = new Timer();
|
||||
NonFormTimer ds4 = new NonFormTimer();
|
||||
public List<int> macros = new List<int>(), macrosAfter = new List<int>();
|
||||
public List<string> macronames = new List<string>();
|
||||
SpecActions sA;
|
||||
@ -36,12 +32,16 @@ namespace DS4Windows
|
||||
openPresets.Filter = Properties.Resources.TextDocs + "|*.txt";
|
||||
savePresets.Filter = Properties.Resources.TextDocs + "|*.txt";
|
||||
if (op != null)
|
||||
if (kbm.macrorepeat)
|
||||
cBStyle.SelectedIndex = 1;
|
||||
else
|
||||
cBStyle.SelectedIndex = 0;
|
||||
{
|
||||
if (kbm.macrorepeat)
|
||||
cBStyle.SelectedIndex = 1;
|
||||
else
|
||||
cBStyle.SelectedIndex = 0;
|
||||
}
|
||||
|
||||
AddtoDS4List();
|
||||
ds4.Tick += ds4_Tick;
|
||||
//ds4.Tick += ds4_Tick;
|
||||
ds4.Elapsed += Ds4_Tick;
|
||||
ds4.Interval = 1;
|
||||
if (kbm.macrostag.Count > 0)
|
||||
{
|
||||
@ -59,10 +59,13 @@ namespace DS4Windows
|
||||
cBStyle.SelectedIndex = 1;
|
||||
else
|
||||
cBStyle.SelectedIndex = 0;
|
||||
|
||||
AddtoDS4List();
|
||||
if (button > -1)
|
||||
sAButton = button;
|
||||
ds4.Tick += ds4_Tick;
|
||||
|
||||
//ds4.Tick += ds4_Tick;
|
||||
ds4.Elapsed += Ds4_Tick;
|
||||
ds4.Interval = 1;
|
||||
lbRecordTip.Visible = false;
|
||||
cBStyle.Visible = false;
|
||||
@ -86,7 +89,6 @@ namespace DS4Windows
|
||||
|
||||
void AddtoDS4List()
|
||||
{
|
||||
dcs.Add(DS4Controls.Cross);
|
||||
dcs.Add(DS4Controls.Cross);
|
||||
dcs.Add(DS4Controls.Circle);
|
||||
dcs.Add(DS4Controls.Square);
|
||||
@ -121,81 +123,65 @@ namespace DS4Windows
|
||||
else
|
||||
macros.Add(value);
|
||||
}
|
||||
|
||||
bool[] pTP = new bool[4];
|
||||
void ds4_Tick(object sender, EventArgs e)
|
||||
|
||||
private void Ds4_Tick(object sender, System.Timers.ElapsedEventArgs e)
|
||||
{
|
||||
if (Program.rootHub.DS4Controllers[0] != null)
|
||||
{
|
||||
cState = Program.rootHub.getDS4State(0);
|
||||
if (btnRecord.Text == Properties.Resources.StopText)
|
||||
this.BeginInvoke((Action)(() =>
|
||||
{
|
||||
if (cBRecordDelays.Checked)
|
||||
if (btnRecord.Text == Properties.Resources.StopText)
|
||||
{
|
||||
Mouse tP = Program.rootHub.touchPad[0];
|
||||
if (tP.leftDown && !pTP[0])
|
||||
if (!btnRumble.Text.Contains("Stop"))
|
||||
btnRumble_Click(sender, e);
|
||||
else if (!tP.leftDown && pTP[0])
|
||||
if (btnRumble.Text.Contains("Stop"))
|
||||
btnRumble_Click(sender, e);
|
||||
if (tP.rightDown && !pTP[1])
|
||||
if (!btnLightbar.Text.Contains("Reset"))
|
||||
btnLightbar_Click(sender, e);
|
||||
else if (!tP.rightDown && pTP[1])
|
||||
if (btnLightbar.Text.Contains("Reset"))
|
||||
btnLightbar_Click(sender, e);
|
||||
pTP[0] = tP.leftDown;
|
||||
pTP[1] = tP.rightDown;
|
||||
}
|
||||
foreach (DS4Controls dc in dcs)
|
||||
if (Mapping.getBoolMapping(0, dc, cState, null, null))
|
||||
if (cBRecordDelays.Checked)
|
||||
{
|
||||
int value = DS4ControltoInt(dc);
|
||||
int count = 0;
|
||||
foreach (int i in macros)
|
||||
{
|
||||
if (i == value)
|
||||
count++;
|
||||
}
|
||||
if (macros.Count == 0)
|
||||
{
|
||||
AddMacroValue(value);
|
||||
lVMacros.Items.Add(DS4ControltoX360(dc), 0);
|
||||
if (cBRecordDelays.Checked)
|
||||
{
|
||||
sw.Reset();
|
||||
sw.Start();
|
||||
}
|
||||
}
|
||||
else if (count % 2 == 0)
|
||||
{
|
||||
if (cBRecordDelays.Checked)
|
||||
{
|
||||
AddMacroValue((int)sw.ElapsedMilliseconds + 300);
|
||||
lVMacros.Items.Add(Properties.Resources.WaitMS.Replace("*number*", sw.ElapsedMilliseconds.ToString()).Replace("*ms*", "ms"), 2);
|
||||
sw.Reset();
|
||||
sw.Start();
|
||||
}
|
||||
AddMacroValue(value);
|
||||
lVMacros.Items.Add(DS4ControltoX360(dc), 0);
|
||||
}
|
||||
lVMacros.Items[lVMacros.Items.Count - 1].EnsureVisible();
|
||||
Mouse tP = Program.rootHub.touchPad[0];
|
||||
if (tP.leftDown && !pTP[0])
|
||||
if (!btnRumble.Text.Contains("Stop"))
|
||||
btnRumble_Click(sender, e);
|
||||
else if (!tP.leftDown && pTP[0])
|
||||
if (btnRumble.Text.Contains("Stop"))
|
||||
btnRumble_Click(sender, e);
|
||||
if (tP.rightDown && !pTP[1])
|
||||
if (!btnLightbar.Text.Contains("Reset"))
|
||||
btnLightbar_Click(sender, e);
|
||||
else if (!tP.rightDown && pTP[1])
|
||||
if (btnLightbar.Text.Contains("Reset"))
|
||||
btnLightbar_Click(sender, e);
|
||||
pTP[0] = tP.leftDown;
|
||||
pTP[1] = tP.rightDown;
|
||||
}
|
||||
else if (!Mapping.getBoolMapping(0, dc, cState, null, null))
|
||||
|
||||
//foreach (DS4Controls dc in dcs)
|
||||
for (int controlIndex = 0, dcsLen = dcs.Count; controlIndex < dcsLen; controlIndex++)
|
||||
{
|
||||
if (macros.Count != 0)
|
||||
DS4Controls dc = dcs[controlIndex];
|
||||
if (Mapping.getBoolMapping(0, dc, cState, null, null))
|
||||
{
|
||||
int value = DS4ControltoInt(dc);
|
||||
int count = 0;
|
||||
foreach (int i in macros)
|
||||
int macroLen = macros.Count;
|
||||
//foreach (int i in macros)
|
||||
for (int macroIndex = 0; macroIndex < macroLen; macroIndex++)
|
||||
{
|
||||
int i = macros[macroIndex];
|
||||
if (i == value)
|
||||
count++;
|
||||
}
|
||||
/*for (int i = macros.Count - 1; i >= 0; i--)
|
||||
if (macros.Count == 261)
|
||||
count++;*/
|
||||
if (count % 2 == 1)
|
||||
|
||||
if (macroLen == 0)
|
||||
{
|
||||
AddMacroValue(value);
|
||||
lVMacros.Items.Add(DS4ControltoX360(dc), 0);
|
||||
if (cBRecordDelays.Checked)
|
||||
{
|
||||
sw.Reset();
|
||||
sw.Start();
|
||||
}
|
||||
}
|
||||
else if (count % 2 == 0)
|
||||
{
|
||||
if (cBRecordDelays.Checked)
|
||||
{
|
||||
@ -205,12 +191,49 @@ namespace DS4Windows
|
||||
sw.Start();
|
||||
}
|
||||
AddMacroValue(value);
|
||||
lVMacros.Items.Add(DS4ControltoX360(dc), 1);
|
||||
lVMacros.Items[lVMacros.Items.Count - 1].EnsureVisible();
|
||||
lVMacros.Items.Add(DS4ControltoX360(dc), 0);
|
||||
}
|
||||
|
||||
lVMacros.Items[lVMacros.Items.Count - 1].EnsureVisible();
|
||||
}
|
||||
else if (!Mapping.getBoolMapping(0, dc, cState, null, null))
|
||||
{
|
||||
int macroLen = macros.Count;
|
||||
if (macroLen != 0)
|
||||
{
|
||||
int value = DS4ControltoInt(dc);
|
||||
int count = 0;
|
||||
//foreach (int i in macros)
|
||||
for (int macroIndex = 0; macroIndex < macroLen; macroIndex++)
|
||||
{
|
||||
int i = macros[macroIndex];
|
||||
if (i == value)
|
||||
count++;
|
||||
}
|
||||
|
||||
/*for (int i = macros.Count - 1; i >= 0; i--)
|
||||
if (macros.Count == 261)
|
||||
count++;*/
|
||||
|
||||
if (count % 2 == 1)
|
||||
{
|
||||
if (cBRecordDelays.Checked)
|
||||
{
|
||||
AddMacroValue((int)sw.ElapsedMilliseconds + 300);
|
||||
lVMacros.Items.Add(Properties.Resources.WaitMS.Replace("*number*", sw.ElapsedMilliseconds.ToString()).Replace("*ms*", "ms"), 2);
|
||||
sw.Reset();
|
||||
sw.Start();
|
||||
}
|
||||
|
||||
AddMacroValue(value);
|
||||
lVMacros.Items.Add(DS4ControltoX360(dc), 1);
|
||||
lVMacros.Items[lVMacros.Items.Count - 1].EnsureVisible();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}));
|
||||
}
|
||||
}
|
||||
|
||||
@ -277,16 +300,20 @@ namespace DS4Windows
|
||||
case DS4Controls.RYPos: return "RS Down";
|
||||
case DS4Controls.RYNeg: return "RS Up";
|
||||
}
|
||||
|
||||
return "None";
|
||||
}
|
||||
|
||||
bool recordAfter = false;
|
||||
int recordAfterInt = 0;
|
||||
|
||||
private void btnRecord_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (btnRecord.Text != Properties.Resources.StopText)
|
||||
{
|
||||
if (cBRecordDelays.Checked)
|
||||
sw.Start();
|
||||
|
||||
btnRumble.Visible = cBRecordDelays.Checked;
|
||||
btnLightbar.Visible = cBRecordDelays.Checked;
|
||||
pBLtouch.Visible = cBRecordDelays.Checked;
|
||||
@ -296,6 +323,7 @@ namespace DS4Windows
|
||||
ds4.Start();
|
||||
if (!recordAfter)
|
||||
macros.Clear();
|
||||
|
||||
lVMacros.Items.Clear();
|
||||
btnRecord.Text = Properties.Resources.StopText;
|
||||
EnableControls(false);
|
||||
@ -314,21 +342,28 @@ namespace DS4Windows
|
||||
recordAfter = false;
|
||||
LoadMacro();
|
||||
}
|
||||
|
||||
if (btn4th.Text.Contains(Properties.Resources.UpText))
|
||||
btn4th_Click(sender, e);
|
||||
|
||||
if (btn5th.Text.Contains(Properties.Resources.UpText))
|
||||
btn5th_Click(sender, e);
|
||||
|
||||
if (cBRecordDelays.Checked)
|
||||
{
|
||||
if (btnRumble.Text.Contains("Stop"))
|
||||
btnRumble_Click(sender, e);
|
||||
|
||||
if (btnLightbar.Text.Contains("Reset"))
|
||||
btnLightbar_Click(sender, e);
|
||||
}
|
||||
|
||||
if (cBRecordDelays.Checked)
|
||||
sw.Reset();
|
||||
|
||||
if (cBRecordDelays.Checked)
|
||||
lbDelayTip.Visible = true;
|
||||
|
||||
btnRecord.Text = Properties.Resources.RecordText;
|
||||
EnableControls(true);
|
||||
}
|
||||
@ -352,17 +387,22 @@ namespace DS4Windows
|
||||
int value = WhichKey(e, 0);
|
||||
int count = 0;
|
||||
if (recordAfter)
|
||||
{
|
||||
foreach (int i in macrosAfter)
|
||||
{
|
||||
if (i == value)
|
||||
count++;
|
||||
}
|
||||
else
|
||||
foreach (int i in macros)
|
||||
{
|
||||
if (i == value)
|
||||
count++;
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach (int i in macros)
|
||||
{
|
||||
if (i == value)
|
||||
count++;
|
||||
}
|
||||
}
|
||||
|
||||
if (macros.Count == 0 || (recordAfter && macrosAfter.Count == 0))
|
||||
{
|
||||
AddMacroValue(value);
|
||||
@ -382,19 +422,25 @@ namespace DS4Windows
|
||||
sw.Reset();
|
||||
sw.Start();
|
||||
}
|
||||
|
||||
AddMacroValue(value);
|
||||
lVMacros.Items.Add(((Keys)value).ToString(), 0);
|
||||
}
|
||||
|
||||
lVMacros.Items[lVMacros.Items.Count - 1].EnsureVisible();
|
||||
}
|
||||
else if (e.KeyValue == 27)
|
||||
{
|
||||
Close();
|
||||
}
|
||||
else if (e.KeyCode == Keys.Delete)
|
||||
{
|
||||
if (lVMacros.SelectedIndices.Count > 0 && lVMacros.SelectedIndices[0] > -1)
|
||||
{
|
||||
macros.RemoveAt(lVMacros.SelectedIndices[0]);
|
||||
lVMacros.Items.Remove(lVMacros.SelectedItems[0]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private int WhichKey(KeyEventArgs e, int keystate)
|
||||
@ -406,55 +452,75 @@ namespace DS4Windows
|
||||
if (recordAfter)
|
||||
{
|
||||
for (int i = macrosAfter.Count - 1; i >= 0; i--)
|
||||
{
|
||||
if (macrosAfter[i] == 160)
|
||||
return 160;
|
||||
else if (macrosAfter[i] == 161)
|
||||
return 161;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (int i = macros.Count - 1; i >= 0; i--)
|
||||
{
|
||||
if (macros[i] == 160)
|
||||
return 160;
|
||||
else if (macros[i] == 161)
|
||||
return 161;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (e.KeyCode == Keys.ControlKey)
|
||||
{
|
||||
if (recordAfter)
|
||||
{
|
||||
for (int i = macrosAfter.Count - 1; i >= 0; i--)
|
||||
{
|
||||
if (macrosAfter[i] == 162)
|
||||
return 162;
|
||||
else if (macrosAfter[i] == 163)
|
||||
return 163;
|
||||
}
|
||||
}
|
||||
else
|
||||
for (int i = macros.Count - 1; i >= 0; i--)
|
||||
if (macros[i] == 162)
|
||||
return 162;
|
||||
else if (macros[i] == 163)
|
||||
return 163;
|
||||
{
|
||||
for (int i = macros.Count - 1; i >= 0; i--)
|
||||
{
|
||||
if (macros[i] == 162)
|
||||
return 162;
|
||||
else if (macros[i] == 163)
|
||||
return 163;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (e.KeyCode == Keys.Menu)
|
||||
{
|
||||
if (recordAfter)
|
||||
{
|
||||
for (int i = macrosAfter.Count - 1; i >= 0; i--)
|
||||
{
|
||||
if (macrosAfter[i] == 164)
|
||||
return 164;
|
||||
else if (macrosAfter[i] == 165)
|
||||
return 165;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (int i = macros.Count - 1; i >= 0; i--)
|
||||
{
|
||||
if (macros[i] == 164)
|
||||
return 164;
|
||||
else if (macros[i] == 165)
|
||||
return 165;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return e.KeyValue;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (e.KeyCode == Keys.ShiftKey)
|
||||
{
|
||||
if (Convert.ToBoolean(GetAsyncKeyState(Keys.LShiftKey)))
|
||||
@ -476,15 +542,17 @@ namespace DS4Windows
|
||||
return 164;
|
||||
if (Convert.ToBoolean(GetAsyncKeyState(Keys.RMenu)))
|
||||
return 165;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
return e.KeyValue;
|
||||
}
|
||||
|
||||
private void anyKeyUp(object sender, KeyEventArgs e)
|
||||
private void AnyKeyUp(object sender, KeyEventArgs e)
|
||||
{
|
||||
if (btnRecord.Text == Properties.Resources.StopText && (macros.Count != 0 || (recordAfter && macrosAfter.Count != 0)))
|
||||
{
|
||||
lVMacros.BeginUpdate();
|
||||
int value = WhichKey(e, 1);
|
||||
if (cBRecordDelays.Checked)
|
||||
{
|
||||
@ -493,9 +561,19 @@ namespace DS4Windows
|
||||
sw.Reset();
|
||||
sw.Start();
|
||||
}
|
||||
|
||||
if (e.KeyCode == Keys.PrintScreen)
|
||||
{
|
||||
int tempvalue = WhichKey(e, 0);
|
||||
AddMacroValue(tempvalue);
|
||||
lVMacros.Items.Add(((Keys)value).ToString(), 0);
|
||||
lVMacros.Items[lVMacros.Items.Count - 1].EnsureVisible();
|
||||
}
|
||||
|
||||
AddMacroValue(value);
|
||||
lVMacros.Items.Add(((Keys)value).ToString(), 1);
|
||||
lVMacros.Items[lVMacros.Items.Count - 1].EnsureVisible();
|
||||
lVMacros.EndUpdate();
|
||||
}
|
||||
}
|
||||
private void anyMouseDown(object sender, MouseEventArgs e)
|
||||
@ -505,13 +583,14 @@ namespace DS4Windows
|
||||
int value;
|
||||
switch (e.Button)
|
||||
{
|
||||
case System.Windows.Forms.MouseButtons.Left: value = 256; break;
|
||||
case System.Windows.Forms.MouseButtons.Right: value = 257; break;
|
||||
case System.Windows.Forms.MouseButtons.Middle: value = 258; break;
|
||||
case System.Windows.Forms.MouseButtons.XButton1: value = 259; break;
|
||||
case System.Windows.Forms.MouseButtons.XButton2: value = 260; break;
|
||||
case MouseButtons.Left: value = 256; break;
|
||||
case MouseButtons.Right: value = 257; break;
|
||||
case MouseButtons.Middle: value = 258; break;
|
||||
case MouseButtons.XButton1: value = 259; break;
|
||||
case MouseButtons.XButton2: value = 260; break;
|
||||
default: value = 0; break;
|
||||
}
|
||||
|
||||
if (macros.Count == 0 || (recordAfter && macrosAfter.Count == 0))
|
||||
{
|
||||
AddMacroValue(value);
|
||||
@ -531,13 +610,17 @@ namespace DS4Windows
|
||||
sw.Reset();
|
||||
sw.Start();
|
||||
}
|
||||
|
||||
AddMacroValue(value);
|
||||
lVMacros.Items.Add(e.Button.ToString() + " Mouse Button", 0);
|
||||
}
|
||||
if (e.Button == System.Windows.Forms.MouseButtons.XButton1)
|
||||
|
||||
if (e.Button == MouseButtons.XButton1)
|
||||
lVMacros.Items[lVMacros.Items.Count - 1].Text = "4th Mouse Button";
|
||||
if (e.Button == System.Windows.Forms.MouseButtons.XButton2)
|
||||
|
||||
if (e.Button == MouseButtons.XButton2)
|
||||
lVMacros.Items[lVMacros.Items.Count - 1].Text = "5th Mouse Button";
|
||||
|
||||
lVMacros.Items[lVMacros.Items.Count - 1].EnsureVisible();
|
||||
}
|
||||
}
|
||||
@ -549,11 +632,11 @@ namespace DS4Windows
|
||||
int value;
|
||||
switch (e.Button)
|
||||
{
|
||||
case System.Windows.Forms.MouseButtons.Left: value = 256; break;
|
||||
case System.Windows.Forms.MouseButtons.Right: value = 257; break;
|
||||
case System.Windows.Forms.MouseButtons.Middle: value = 258; break;
|
||||
case System.Windows.Forms.MouseButtons.XButton1: value = 259; break;
|
||||
case System.Windows.Forms.MouseButtons.XButton2: value = 260; break;
|
||||
case MouseButtons.Left: value = 256; break;
|
||||
case MouseButtons.Right: value = 257; break;
|
||||
case MouseButtons.Middle: value = 258; break;
|
||||
case MouseButtons.XButton1: value = 259; break;
|
||||
case MouseButtons.XButton2: value = 260; break;
|
||||
default: value = 0; break;
|
||||
}
|
||||
|
||||
@ -564,12 +647,16 @@ namespace DS4Windows
|
||||
sw.Reset();
|
||||
sw.Start();
|
||||
}
|
||||
|
||||
AddMacroValue(value);
|
||||
lVMacros.Items.Add(e.Button.ToString() + " Mouse Button", 1);
|
||||
if (e.Button == System.Windows.Forms.MouseButtons.XButton1)
|
||||
|
||||
if (e.Button == MouseButtons.XButton1)
|
||||
lVMacros.Items[lVMacros.Items.Count - 1].Text = "4th Mouse Button";
|
||||
if (e.Button == System.Windows.Forms.MouseButtons.XButton2)
|
||||
|
||||
if (e.Button == MouseButtons.XButton2)
|
||||
lVMacros.Items[lVMacros.Items.Count - 1].Text = "5th Mouse Button";
|
||||
|
||||
lVMacros.Items[lVMacros.Items.Count - 1].EnsureVisible();
|
||||
}
|
||||
}
|
||||
@ -598,9 +685,11 @@ namespace DS4Windows
|
||||
sw.Reset();
|
||||
sw.Start();
|
||||
}
|
||||
|
||||
AddMacroValue(value);
|
||||
lVMacros.Items.Add("4th Mouse Button", 0);
|
||||
}
|
||||
|
||||
btn4th.Text = Properties.Resources.FourthMouseUp;
|
||||
}
|
||||
else
|
||||
@ -612,10 +701,12 @@ namespace DS4Windows
|
||||
sw.Reset();
|
||||
sw.Start();
|
||||
}
|
||||
|
||||
AddMacroValue(value);
|
||||
lVMacros.Items.Add("4th Mouse Button", 1);
|
||||
btn4th.Text = Properties.Resources.FourthMouseDown;
|
||||
}
|
||||
|
||||
lVMacros.Items[lVMacros.Items.Count - 1].EnsureVisible();
|
||||
}
|
||||
|
||||
@ -643,9 +734,11 @@ namespace DS4Windows
|
||||
sw.Reset();
|
||||
sw.Start();
|
||||
}
|
||||
|
||||
AddMacroValue(value);
|
||||
lVMacros.Items.Add("5th Mouse Button", 0);
|
||||
}
|
||||
|
||||
btn5th.Text = Properties.Resources.FifthMouseUp;
|
||||
}
|
||||
else
|
||||
@ -657,10 +750,12 @@ namespace DS4Windows
|
||||
sw.Reset();
|
||||
sw.Start();
|
||||
}
|
||||
|
||||
AddMacroValue(value);
|
||||
lVMacros.Items.Add("5th Mouse Button", 1);
|
||||
btn5th.Text = Properties.Resources.FifthMouseDown;
|
||||
}
|
||||
|
||||
lVMacros.Items[lVMacros.Items.Count - 1].EnsureVisible();
|
||||
}
|
||||
|
||||
@ -689,9 +784,11 @@ namespace DS4Windows
|
||||
sw.Reset();
|
||||
sw.Start();
|
||||
}
|
||||
|
||||
AddMacroValue(value);
|
||||
lVMacros.Items.Add("Rumble 255,255 (100%)", 0);
|
||||
}
|
||||
|
||||
btnRumble.Text = "Stop Rumble";
|
||||
}
|
||||
else
|
||||
@ -704,10 +801,12 @@ namespace DS4Windows
|
||||
sw.Reset();
|
||||
sw.Start();
|
||||
}
|
||||
|
||||
AddMacroValue(value);
|
||||
lVMacros.Items.Add("Stop Rumble", 1);
|
||||
btnRumble.Text = "Add Rumble";
|
||||
}
|
||||
|
||||
lVMacros.Items[lVMacros.Items.Count - 1].EnsureVisible();
|
||||
}
|
||||
|
||||
@ -735,9 +834,11 @@ namespace DS4Windows
|
||||
sw.Reset();
|
||||
sw.Start();
|
||||
}
|
||||
|
||||
AddMacroValue(value);
|
||||
lVMacros.Items.Add("Lightbar Color: 255,255,255", 0);
|
||||
}
|
||||
|
||||
btnLightbar.Text = "Reset Lightbar Color";
|
||||
}
|
||||
else
|
||||
@ -750,10 +851,12 @@ namespace DS4Windows
|
||||
sw.Reset();
|
||||
sw.Start();
|
||||
}
|
||||
|
||||
AddMacroValue(value);
|
||||
lVMacros.Items.Add("Reset Lightbar", 1);
|
||||
btnLightbar.Text = "Change Lightbar Color";
|
||||
}
|
||||
|
||||
lVMacros.Items[lVMacros.Items.Count - 1].EnsureVisible();
|
||||
}
|
||||
|
||||
@ -768,6 +871,7 @@ namespace DS4Windows
|
||||
case 1: sA.btnHoldT.Text = macros.Count > 0 ? Properties.Resources.MacroRecorded : Properties.Resources.SelectMacro; break;
|
||||
case 2: sA.btnDTapT.Text = macros.Count > 0 ? Properties.Resources.MacroRecorded : Properties.Resources.SelectMacro; break;
|
||||
}
|
||||
|
||||
saved = true;
|
||||
Close();
|
||||
}
|
||||
@ -778,14 +882,14 @@ namespace DS4Windows
|
||||
{
|
||||
macronames.Add(lvi.Text);
|
||||
}
|
||||
|
||||
string macro = string.Join(", ", macronames.ToArray());
|
||||
if (kbm != null)
|
||||
{
|
||||
kbm.macrostag = macros;
|
||||
kbm.macros = macronames;
|
||||
kbm.lBMacroOn.Visible = true;
|
||||
if (cBStyle.SelectedIndex == 1)
|
||||
kbm.macrorepeat = true;
|
||||
kbm.macrorepeat = cBStyle.SelectedIndex == 1;
|
||||
saved = true;
|
||||
if (sender != kbm)
|
||||
kbm.Close();
|
||||
@ -796,8 +900,7 @@ namespace DS4Windows
|
||||
sA.macros = macronames;
|
||||
sA.lbMacroRecorded.Text = string.Join(", ", macronames);
|
||||
//kbm.lBMacroOn.Visible = true;
|
||||
if (cBStyle.SelectedIndex == 1)
|
||||
sA.macrorepeat = true;
|
||||
sA.macrorepeat = cBStyle.SelectedIndex == 1;
|
||||
saved = true;
|
||||
//if (sender != sA)
|
||||
// sA.Close();
|
||||
@ -806,10 +909,12 @@ namespace DS4Windows
|
||||
else
|
||||
Close();
|
||||
}
|
||||
else MessageBox.Show(Properties.Resources.NoMacroRecorded, "DS4Windows", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
else
|
||||
{
|
||||
MessageBox.Show(Properties.Resources.NoMacroRecorded, "DS4Windows", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void btnSaveP_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (macros.Count > 0)
|
||||
@ -822,13 +927,16 @@ namespace DS4Windows
|
||||
savePresets.InitialDirectory = Directory.GetParent(Assembly.GetExecutingAssembly().Location).FullName + @"\Macros\";
|
||||
else
|
||||
savePresets.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\DS4Tool" + @"\Macros\";
|
||||
|
||||
if (!Directory.Exists(savePresets.InitialDirectory))
|
||||
{
|
||||
Directory.CreateDirectory(savePresets.InitialDirectory);
|
||||
//savePresets.InitialDirectory = path;
|
||||
}
|
||||
|
||||
Console.WriteLine(savePresets.InitialDirectory);
|
||||
if (savePresets.ShowDialog() == System.Windows.Forms.DialogResult.OK)
|
||||
if (savePresets.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
if ((stream = savePresets.OpenFile()) != null)
|
||||
{
|
||||
string macro = string.Join("/", macros.ToArray());
|
||||
@ -836,8 +944,12 @@ namespace DS4Windows
|
||||
sw.Write(macro);
|
||||
sw.Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
MessageBox.Show(Properties.Resources.NoMacroRecorded, "DS4Windows", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
}
|
||||
else MessageBox.Show(Properties.Resources.NoMacroRecorded, "DS4Windows", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
||||
}
|
||||
|
||||
private void btnLoadP_Click(object sender, EventArgs e)
|
||||
@ -863,7 +975,8 @@ namespace DS4Windows
|
||||
openPresets.InitialDirectory = Directory.GetParent(Assembly.GetExecutingAssembly().Location).FullName + @"\Macros\";
|
||||
else
|
||||
openPresets.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\DS4Tool" + @"\Macros\";
|
||||
if (openPresets.ShowDialog() == System.Windows.Forms.DialogResult.OK)
|
||||
|
||||
if (openPresets.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
string file = openPresets.FileName;
|
||||
macros.Clear();
|
||||
@ -876,6 +989,7 @@ namespace DS4Windows
|
||||
if (int.TryParse(s, out temp))
|
||||
macros.Add(temp);
|
||||
}
|
||||
|
||||
LoadMacro();
|
||||
sr.Close();
|
||||
}
|
||||
@ -894,7 +1008,6 @@ namespace DS4Windows
|
||||
|
||||
void LoadMacro()
|
||||
{
|
||||
|
||||
if (macros.Count > 0)
|
||||
{
|
||||
bool[] keydown = new bool[286];
|
||||
@ -928,7 +1041,9 @@ namespace DS4Windows
|
||||
lVMacros.Items.Add("Stop Rumble", 1);
|
||||
}
|
||||
else if (i >= 300) //ints over 300 used to delay
|
||||
{
|
||||
lVMacros.Items.Add(Properties.Resources.WaitMS.Replace("*number*", (i - 300).ToString()).Replace("*ms*", "ms"), 2);
|
||||
}
|
||||
else if (!keydown[i])
|
||||
{
|
||||
//anything above 255 is not a keyvalue
|
||||
@ -1001,6 +1116,7 @@ namespace DS4Windows
|
||||
keydown[i] = false;
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < keydown.Length; i++)
|
||||
{
|
||||
if (keydown[i])
|
||||
@ -1042,13 +1158,15 @@ namespace DS4Windows
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void RecordBox_FormClosing(object sender, FormClosingEventArgs e)
|
||||
{
|
||||
if (!saved && macros.Count > 0)
|
||||
if (MessageBox.Show(Properties.Resources.SaveRecordedMacro, "DS4Windows", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
|
||||
{
|
||||
if (MessageBox.Show(Properties.Resources.SaveRecordedMacro, "DS4Windows", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
|
||||
btnSave_Click(null, null);
|
||||
}
|
||||
|
||||
Program.rootHub.recordingMacro = false;
|
||||
}
|
||||
|
||||
protected override bool IsInputKey(Keys keyData)
|
||||
@ -1074,8 +1192,10 @@ namespace DS4Windows
|
||||
case Keys.Shift | Keys.MediaNextTrack:
|
||||
return true;
|
||||
}
|
||||
|
||||
return base.IsInputKey(keyData);
|
||||
}
|
||||
|
||||
protected override void OnKeyDown(KeyEventArgs e)
|
||||
{
|
||||
base.OnKeyDown(e);
|
||||
@ -1099,11 +1219,14 @@ namespace DS4Windows
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private int selection;
|
||||
private bool changingDelay = false;
|
||||
|
||||
private void lVMacros_MouseDoubleClick(object sender, MouseEventArgs e)
|
||||
{
|
||||
if (lVMacros.SelectedIndices[0] >= 0)
|
||||
{
|
||||
if (lVMacros.SelectedItems[0].ImageIndex == 2)
|
||||
{
|
||||
TextBox tb = new TextBox();
|
||||
@ -1137,7 +1260,7 @@ namespace DS4Windows
|
||||
}
|
||||
else if (macros[lVMacros.SelectedIndices[0]] > 1000000 && macros[lVMacros.SelectedIndices[0]] != 1000000000)
|
||||
{
|
||||
|
||||
|
||||
lVMacros.MouseHover -= lVMacros_MouseHover;
|
||||
string r = macros[lVMacros.SelectedIndices[0]].ToString().Substring(1);
|
||||
byte heavy = (byte)(int.Parse(r[0].ToString()) * 100 + int.Parse(r[1].ToString()) * 10 + int.Parse(r[2].ToString()));
|
||||
@ -1166,6 +1289,7 @@ namespace DS4Windows
|
||||
tb2.TextChanged += tb_TextChanged;
|
||||
tb1.Focus();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void tb_TextChanged(object sender, EventArgs e)
|
||||
@ -1174,8 +1298,10 @@ namespace DS4Windows
|
||||
//if (changingDelay)
|
||||
{
|
||||
for (int i = tb.Text.Length - 1; i >= 0; i--)
|
||||
{
|
||||
if (!char.IsDigit(tb.Text[i]))
|
||||
tb.Text = tb.Text.Remove(i, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1189,6 +1315,7 @@ namespace DS4Windows
|
||||
if (e.KeyCode == Keys.Enter)
|
||||
SaveMacroChange((TextBox)sender);
|
||||
}
|
||||
|
||||
private void SaveMacroChange(TextBox tb)
|
||||
{
|
||||
int i, j;
|
||||
@ -1220,6 +1347,7 @@ namespace DS4Windows
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
lVMacros.MouseHover += lVMacros_MouseHover;
|
||||
}
|
||||
|
||||
@ -1243,6 +1371,7 @@ namespace DS4Windows
|
||||
private void lVMacros_SelectedIndexChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (btnRecord.Text != Properties.Resources.StopText)
|
||||
{
|
||||
if (lVMacros.SelectedIndices.Count > 0 && lVMacros.SelectedIndices[0] > -1)
|
||||
{
|
||||
recordAfter = true;
|
||||
@ -1254,7 +1383,7 @@ namespace DS4Windows
|
||||
recordAfter = false;
|
||||
btnRecord.Text = "Record";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -117,10 +117,188 @@
|
||||
<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="btnRecord.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>536, 29</value>
|
||||
</data>
|
||||
<data name="btnRecord.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>213, 46</value>
|
||||
</data>
|
||||
<data name="cBRecordDelays.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>591, 121</value>
|
||||
</data>
|
||||
<data name="cBRecordDelays.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>96, 17</value>
|
||||
</data>
|
||||
<data name="iLKeys.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAQ
|
||||
CgAAAk1TRnQBSQFMAgEBAwEAAcwBAQHMAQEBEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo
|
||||
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
|
||||
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
|
||||
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
|
||||
AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm
|
||||
AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM
|
||||
AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA
|
||||
ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz
|
||||
AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ
|
||||
AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM
|
||||
AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA
|
||||
AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA
|
||||
AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ
|
||||
AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/
|
||||
AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA
|
||||
AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm
|
||||
ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ
|
||||
Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz
|
||||
AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA
|
||||
AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM
|
||||
AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM
|
||||
ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM
|
||||
Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA
|
||||
AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM
|
||||
AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ
|
||||
AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz
|
||||
AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm
|
||||
AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw
|
||||
AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/yIAAf8B7wH3AfQGAAH/
|
||||
Au8B/xgAAf8BBw4AAuwB/wcAAf8BBwHxAQcBvAGRAosBkQG8AQcB8QHvAf8XAAH/AuwBBw0AAuwB/wgA
|
||||
AfQB8AEHBosCBwH0FwAB/wTsAQcMAALsAf8IAAHxAZEBiwe0AZEB8RYAAf8G7AEHCwAC7AH/BwAB9AG0
|
||||
Aa0BtAG1AfEC/wHxAbUBtAGtAbQB9BUAAuwBBwLsAf8C7AH/CgAC7AH/BwABvAGzAbQBtQb/ArQBswG8
|
||||
FQAB7AEHAQAC7AL/AewB/woAAuwB/wcAAbUBtAG1ARkC9AEHAfMB/wEZAQkCtAG1FQABBwIAAuwB/wEA
|
||||
Av8HAAH/AgAC7AH/AgAB/wQAArQBtQP0AuwBvAH/ARkDtBgAAuwB/woAAewB/wEAAuwB/wEAAQcB/wQA
|
||||
ArQBtQH0Av8B7AHvAewBBwEZA7QYAALsAf8KAALsAf8C7AH/AQcB7AH/BAABuwG0AbsBGQH/AfQBkgH0
|
||||
Af8B7wEZAbUBtAG7GAAC7AH/CgABBwTsAQcC7AH/BAAB8AG0AbsBCQH/AfQB8gP/ArsBtAHwGAAC7AH/
|
||||
CwABBwXsAf8EAAH0AVgBUgG7AgkB8wL0AfMBCQG7ARwBUgF5Af8XAALsAf8MAAEHA+wB/wUAARoBmgF6
|
||||
AVIDCQK1AgkBuwFYARoBegH/FwAC7AH/DQABBwHsAf8GAAEaAXoBwwF6AVgB3AQJAbsBUgKaAXoB/xcA
|
||||
A/8OAAH/BwAB/wEaAXoBwwF6AZkBCQLcAQkBmQF6AZoBegH2MgAB/wEaAVkBegH/BAAB/wFZAXoB9hIA
|
||||
AUIBTQE+BwABPgMAASgDAAFAAwABEAMAAQEBAAEBBQABgBcAA/8BAAT/AYcB4QIAAf4BfwH+AT8BgAEB
|
||||
AgAB/AE/Af4BPwHAAQMCAAH4AR8B/gE/AcABAwIAAfABDwH+AT8BgAEBAgAB8AEHAf4BPwGAAQECAAHy
|
||||
AQcB/gE/AYABAQIAAfYBJwH2ATcBgAEBAgAB/gE/AfIBJwGAAQECAAH+AT8B8AEHAYABAQIAAf4BPwHw
|
||||
AQcBgAEBAgAB/gE/AfgBDwQAAf4BPwH8AR8EAAH+AT8B/gE/BAAB/gE/Af8BfwEAAQECAAT/AYMBwwIA
|
||||
Cw==
|
||||
</value>
|
||||
</data>
|
||||
<data name="lVMacros.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 29</value>
|
||||
</data>
|
||||
<data name="lVMacros.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>527, 342</value>
|
||||
</data>
|
||||
<data name="cBStyle.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>578, 179</value>
|
||||
</data>
|
||||
<data name="cBStyle.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>121, 21</value>
|
||||
</data>
|
||||
<data name="btnSave.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>536, 2</value>
|
||||
</data>
|
||||
<data name="btnSave.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>104, 23</value>
|
||||
</data>
|
||||
<data name="btnSave.Text" xml:space="preserve">
|
||||
<value>保存</value>
|
||||
</data>
|
||||
<data name="btnCancel.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>646, 2</value>
|
||||
</data>
|
||||
<data name="btnCancel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>103, 23</value>
|
||||
</data>
|
||||
<data name="btnSaveP.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>646, 81</value>
|
||||
</data>
|
||||
<data name="btnSaveP.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>103, 23</value>
|
||||
</data>
|
||||
<data name="btnSaveP.Text" xml:space="preserve">
|
||||
<value>プリセットを保存</value>
|
||||
</data>
|
||||
<data name="lbRecordTip.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>309, 7</value>
|
||||
</data>
|
||||
<data name="lbRecordTip.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>221, 13</value>
|
||||
</data>
|
||||
<data name="pBRtouch.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>152, 106</value>
|
||||
</data>
|
||||
<data name="pBRtouch.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>43, 23</value>
|
||||
</data>
|
||||
<data name="pBLtouch.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>152, 77</value>
|
||||
</data>
|
||||
<data name="pBLtouch.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>43, 23</value>
|
||||
</data>
|
||||
<data name="btnLightbar.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>17, 106</value>
|
||||
</data>
|
||||
<data name="btnLightbar.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>131, 23</value>
|
||||
</data>
|
||||
<data name="btnRumble.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>17, 77</value>
|
||||
</data>
|
||||
<data name="btnRumble.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>131, 23</value>
|
||||
</data>
|
||||
<data name="btn5th.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>39, 39</value>
|
||||
</data>
|
||||
<data name="btn5th.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>131, 23</value>
|
||||
</data>
|
||||
<data name="btn4th.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>39, 10</value>
|
||||
</data>
|
||||
<data name="btn4th.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>131, 23</value>
|
||||
</data>
|
||||
<data name="pnlMouseButtons.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>539, 225</value>
|
||||
</data>
|
||||
<data name="pnlMouseButtons.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>210, 138</value>
|
||||
</data>
|
||||
<data name="btnLoadP.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>536, 81</value>
|
||||
</data>
|
||||
<data name="btnLoadP.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>104, 23</value>
|
||||
</data>
|
||||
<data name="lbMacroOrder.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>3, 8</value>
|
||||
</data>
|
||||
<data name="lbMacroOrder.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>66, 13</value>
|
||||
</data>
|
||||
<data name="lbDelayTip.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>536, 142</value>
|
||||
</data>
|
||||
<data name="lbDelayTip.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>212, 33</value>
|
||||
</data>
|
||||
<data name="altTabToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>132, 22</value>
|
||||
</data>
|
||||
<data name="fromFileToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>132, 22</value>
|
||||
</data>
|
||||
<data name="cMSLoadPresets.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>133, 48</value>
|
||||
</data>
|
||||
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
||||
<value>6, 13</value>
|
||||
</data>
|
||||
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||
<value>750, 375</value>
|
||||
</data>
|
||||
<data name="$this.MinimumSize" type="System.Drawing.Size, System.Drawing">
|
||||
<value>260, 205</value>
|
||||
</data>
|
||||
</root>
|
@ -140,8 +140,8 @@
|
||||
<data name="btn4th.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 4, 4, 4</value>
|
||||
</data>
|
||||
<data name="lbRecordTip.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 0, 4, 0</value>
|
||||
<data name="cHMacro.Text" xml:space="preserve">
|
||||
<value>Macro Order</value>
|
||||
</data>
|
||||
<data name=">>btnRumble.ZOrder" xml:space="preserve">
|
||||
<value>3</value>
|
||||
@ -171,8 +171,8 @@
|
||||
<data name=">>btnSave.Name" xml:space="preserve">
|
||||
<value>btnSave</value>
|
||||
</data>
|
||||
<data name="cMSLoadPresets.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>156, 56</value>
|
||||
<data name=">>lbMacroOrder.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="btnSaveP.Text" xml:space="preserve">
|
||||
<value>Save Preset</value>
|
||||
@ -195,11 +195,8 @@
|
||||
<data name=">>cBStyle.ZOrder" xml:space="preserve">
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name="cBStyle.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>327</value>
|
||||
</data>
|
||||
<data name="lbRecordTip.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>294, 17</value>
|
||||
<data name="btnLightbar.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>23, 130</value>
|
||||
</data>
|
||||
<data name="pBRtouch.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 4, 4, 4</value>
|
||||
@ -207,12 +204,24 @@
|
||||
<data name=">>btnLightbar.Parent" xml:space="preserve">
|
||||
<value>pnlMouseButtons</value>
|
||||
</data>
|
||||
<data name="lbDelayTip.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 0, 4, 0</value>
|
||||
</data>
|
||||
<data name=">>btnLightbar.Name" xml:space="preserve">
|
||||
<value>btnLightbar</value>
|
||||
</data>
|
||||
<data name=">>iLKeys.Name" xml:space="preserve">
|
||||
<value>iLKeys</value>
|
||||
</data>
|
||||
<data name=">>btnRecord.ZOrder" xml:space="preserve">
|
||||
<value>8</value>
|
||||
</data>
|
||||
<data name="lbDelayTip.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>283, 41</value>
|
||||
</data>
|
||||
<data name="btnSaveP.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>861, 100</value>
|
||||
</data>
|
||||
<data name="$this.Text" xml:space="preserve">
|
||||
<value>Record a Macro</value>
|
||||
</data>
|
||||
@ -243,11 +252,14 @@
|
||||
<data name="btnLoadP.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>715, 100</value>
|
||||
</data>
|
||||
<data name=">>pBLtouch.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name=">>fromFileToolStripMenuItem.Name" xml:space="preserve">
|
||||
<value>fromFileToolStripMenuItem</value>
|
||||
</data>
|
||||
<data name="btnSave.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>715, 2</value>
|
||||
<data name=">>btnLightbar.ZOrder" xml:space="preserve">
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
||||
<value>8, 16</value>
|
||||
@ -288,6 +300,12 @@
|
||||
<data name="btnRumble.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 4, 4, 4</value>
|
||||
</data>
|
||||
<data name=">>cHMacro.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="lbMacroOrder.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name=">>btnLoadP.ZOrder" xml:space="preserve">
|
||||
<value>5</value>
|
||||
</data>
|
||||
@ -324,12 +342,6 @@
|
||||
<data name="pBRtouch.SizeMode" type="System.Windows.Forms.PictureBoxSizeMode, System.Windows.Forms">
|
||||
<value>Zoom</value>
|
||||
</data>
|
||||
<data name="btnRumble.Text" xml:space="preserve">
|
||||
<value>Add Rumble</value>
|
||||
</data>
|
||||
<data name="btnRecord.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>715, 36</value>
|
||||
</data>
|
||||
<data name="btnLightbar.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
@ -345,9 +357,6 @@
|
||||
<data name="pBLtouch.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 4, 4, 4</value>
|
||||
</data>
|
||||
<data name="btn5th.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="cBStyle.Items1" xml:space="preserve">
|
||||
<value>Repeat while held</value>
|
||||
</data>
|
||||
@ -366,9 +375,6 @@
|
||||
<data name="pnlMouseButtons.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 4, 4, 4</value>
|
||||
</data>
|
||||
<data name=">>lbMacroOrder.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="btnRecord.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>284, 57</value>
|
||||
</data>
|
||||
@ -378,8 +384,8 @@
|
||||
<data name=">>lbDelayTip.Name" xml:space="preserve">
|
||||
<value>lbDelayTip</value>
|
||||
</data>
|
||||
<data name="lbMacroOrder.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
<data name="lbRecordTip.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 0, 4, 0</value>
|
||||
</data>
|
||||
<data name="btn4th.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
@ -387,14 +393,14 @@
|
||||
<data name="$this.MinimumSize" type="System.Drawing.Size, System.Drawing">
|
||||
<value>347, 252</value>
|
||||
</data>
|
||||
<data name="cBStyle.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>771, 220</value>
|
||||
<data name="btnSave.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>328</value>
|
||||
</data>
|
||||
<data name=">>pBLtouch.Parent" xml:space="preserve">
|
||||
<value>pnlMouseButtons</value>
|
||||
</data>
|
||||
<data name="lbMacroOrder.Text" xml:space="preserve">
|
||||
<value>Macro Order</value>
|
||||
<data name="cBStyle.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>771, 220</value>
|
||||
</data>
|
||||
<data name="lVMacros.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>701, 420</value>
|
||||
@ -423,6 +429,9 @@
|
||||
<data name="lbRecordTip.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Right</value>
|
||||
</data>
|
||||
<data name=">>cBStyle.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="cHMacro.Width" type="System.Int32, mscorlib">
|
||||
<value>200</value>
|
||||
</data>
|
||||
@ -441,9 +450,6 @@
|
||||
<data name=">>btn4th.Parent" xml:space="preserve">
|
||||
<value>pnlMouseButtons</value>
|
||||
</data>
|
||||
<data name="lbRecordTip.Text" xml:space="preserve">
|
||||
<value>Use Keyboard/Mouse + Controller 1 to record</value>
|
||||
</data>
|
||||
<data name="btnRecord.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>322</value>
|
||||
</data>
|
||||
@ -459,9 +465,6 @@
|
||||
<data name=">>cMSLoadPresets.Name" xml:space="preserve">
|
||||
<value>cMSLoadPresets</value>
|
||||
</data>
|
||||
<data name="btnSave.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>328</value>
|
||||
</data>
|
||||
<data name="altTabToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Cycle Programs</value>
|
||||
</data>
|
||||
@ -486,15 +489,15 @@
|
||||
<data name="btnLoadP.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>332</value>
|
||||
</data>
|
||||
<data name="cMSLoadPresets.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>156, 56</value>
|
||||
</data>
|
||||
<data name="lVMacros.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Bottom, Left, Right</value>
|
||||
</data>
|
||||
<data name=">>cBRecordDelays.ZOrder" xml:space="preserve">
|
||||
<value>4</value>
|
||||
</data>
|
||||
<data name="cBRecordDelays.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>324</value>
|
||||
</data>
|
||||
<data name="lbMacroOrder.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>333</value>
|
||||
</data>
|
||||
@ -504,9 +507,6 @@
|
||||
<data name=">>iLKeys.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ImageList, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>btnLightbar.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>btn4th.ZOrder" xml:space="preserve">
|
||||
<value>5</value>
|
||||
</data>
|
||||
@ -522,6 +522,9 @@
|
||||
<data name=">>cBRecordDelays.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>btnCancel.Name" xml:space="preserve">
|
||||
<value>btnCancel</value>
|
||||
</data>
|
||||
<data name="lbRecordTip.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
@ -531,18 +534,12 @@
|
||||
<data name="lbDelayTip.Visible" type="System.Boolean, mscorlib">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="btnSave.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>139, 28</value>
|
||||
</data>
|
||||
<data name="lVMacros.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>4, 36</value>
|
||||
</data>
|
||||
<data name=">>pBLtouch.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="btnLightbar.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>23, 130</value>
|
||||
</data>
|
||||
<data name="cBStyle.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 4, 4, 4</value>
|
||||
</data>
|
||||
@ -588,9 +585,6 @@
|
||||
<data name="btnCancel.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>137, 28</value>
|
||||
</data>
|
||||
<data name="lbRecordTip.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>412, 9</value>
|
||||
</data>
|
||||
<data name="btnLightbar.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top</value>
|
||||
</data>
|
||||
@ -612,7 +606,10 @@
|
||||
<data name=">>btn5th.Parent" xml:space="preserve">
|
||||
<value>pnlMouseButtons</value>
|
||||
</data>
|
||||
<data name=">>btnCancel.Parent" xml:space="preserve">
|
||||
<data name=">>btnLoadP.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>cBStyle.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>altTabToolStripMenuItem.Type" xml:space="preserve">
|
||||
@ -621,8 +618,8 @@
|
||||
<data name="btnRecord.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name=">>btnLoadP.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<data name="btnRecord.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>715, 36</value>
|
||||
</data>
|
||||
<data name=">>pBRtouch.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
@ -633,14 +630,14 @@
|
||||
<data name=">>btn5th.ZOrder" xml:space="preserve">
|
||||
<value>4</value>
|
||||
</data>
|
||||
<data name=">>iLKeys.Name" xml:space="preserve">
|
||||
<value>iLKeys</value>
|
||||
<data name="lbRecordTip.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>412, 9</value>
|
||||
</data>
|
||||
<data name="btn5th.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>52, 48</value>
|
||||
</data>
|
||||
<data name=">>cHMacro.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<data name="btnSave.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>715, 2</value>
|
||||
</data>
|
||||
<data name="btnRecord.Text" xml:space="preserve">
|
||||
<value>Record</value>
|
||||
@ -648,8 +645,8 @@
|
||||
<data name=">>btnRecord.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name="pBRtouch.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>203, 130</value>
|
||||
<data name=">>btnLightbar.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="lbRecordTip.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
|
||||
<value>MiddleCenter</value>
|
||||
@ -660,17 +657,17 @@
|
||||
<data name="btn5th.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 4, 4, 4</value>
|
||||
</data>
|
||||
<data name=">>btnLightbar.ZOrder" xml:space="preserve">
|
||||
<value>2</value>
|
||||
<data name="pBRtouch.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>203, 130</value>
|
||||
</data>
|
||||
<data name=">>lbDelayTip.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name="lbDelayTip.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 0, 4, 0</value>
|
||||
<data name="btnRumble.Text" xml:space="preserve">
|
||||
<value>Add Rumble</value>
|
||||
</data>
|
||||
<data name=">>pBLtouch.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
<data name="cBRecordDelays.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>324</value>
|
||||
</data>
|
||||
<data name=">>lVMacros.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
@ -690,6 +687,9 @@
|
||||
<data name=">>altTabToolStripMenuItem.Name" xml:space="preserve">
|
||||
<value>altTabToolStripMenuItem</value>
|
||||
</data>
|
||||
<data name="lbMacroOrder.Text" xml:space="preserve">
|
||||
<value>Macro Order</value>
|
||||
</data>
|
||||
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||
<value>1000, 462</value>
|
||||
</data>
|
||||
@ -702,26 +702,23 @@
|
||||
<data name=">>pnlMouseButtons.Name" xml:space="preserve">
|
||||
<value>pnlMouseButtons</value>
|
||||
</data>
|
||||
<data name=">>btnCancel.Name" xml:space="preserve">
|
||||
<value>btnCancel</value>
|
||||
<data name=">>btnCancel.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name="btnRumble.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name="cHMacro.Text" xml:space="preserve">
|
||||
<value>Macro Order</value>
|
||||
</data>
|
||||
<data name=">>lbDelayTip.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>cBRecordDelays.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
<data name="cBStyle.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>327</value>
|
||||
</data>
|
||||
<data name="cBRecordDelays.Text" xml:space="preserve">
|
||||
<value>Record Delays</value>
|
||||
</data>
|
||||
<data name=">>cBStyle.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<data name="btn5th.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="btnLightbar.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 4, 4, 4</value>
|
||||
@ -735,15 +732,15 @@
|
||||
<data name=">>lVMacros.ZOrder" xml:space="preserve">
|
||||
<value>9</value>
|
||||
</data>
|
||||
<data name="btnSaveP.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>861, 100</value>
|
||||
<data name="lbRecordTip.Text" xml:space="preserve">
|
||||
<value>Use Keyboard/Mouse + Controller 1 to record</value>
|
||||
</data>
|
||||
<data name="iLKeys.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>
|
||||
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w
|
||||
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
|
||||
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAQ
|
||||
CgAAAk1TRnQBSQFMAgEBAwEAAZwBAQHEAQEBEAEAARABAAT/AQkBEAj/AUIBTQE2AQQGAAE2AQQCAAEo
|
||||
CgAAAk1TRnQBSQFMAgEBAwEAAZwBAQHIAQEBEAEAARABAAT/AQkBEAj/AUIBTQE2AQQGAAE2AQQCAAEo
|
||||
AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA
|
||||
AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5
|
||||
AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA
|
||||
@ -789,6 +786,9 @@
|
||||
Cw==
|
||||
</value>
|
||||
</data>
|
||||
<data name=">>cBRecordDelays.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name="pBRtouch.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
@ -807,8 +807,8 @@
|
||||
<data name="lbDelayTip.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name="lbDelayTip.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>283, 41</value>
|
||||
<data name="btnSave.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>139, 28</value>
|
||||
</data>
|
||||
<data name="altTabToolStripMenuItem.ToolTipText" xml:space="preserve">
|
||||
<value>Edit the Wait to change the cycle rate</value>
|
||||
@ -831,8 +831,8 @@
|
||||
<data name=">>btnSave.ZOrder" xml:space="preserve">
|
||||
<value>11</value>
|
||||
</data>
|
||||
<data name=">>cBStyle.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
<data name="lbRecordTip.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>294, 17</value>
|
||||
</data>
|
||||
<metadata name="openPresets.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>238, 17</value>
|
||||
@ -849,7 +849,4 @@
|
||||
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="$this.Language" type="System.Globalization.CultureInfo, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>ja</value>
|
||||
</metadata>
|
||||
</root>
|
4
DS4Windows/DS4Forms/SaveWhere.Designer.cs
generated
4
DS4Windows/DS4Forms/SaveWhere.Designer.cs
generated
@ -40,14 +40,14 @@
|
||||
//
|
||||
// label4
|
||||
//
|
||||
resources.ApplyResources(this.label4, "label4");
|
||||
this.label4.ForeColor = System.Drawing.SystemColors.GrayText;
|
||||
resources.ApplyResources(this.label4, "label4");
|
||||
this.label4.Name = "label4";
|
||||
//
|
||||
// label3
|
||||
//
|
||||
resources.ApplyResources(this.label3, "label3");
|
||||
this.label3.ForeColor = System.Drawing.SystemColors.GrayText;
|
||||
resources.ApplyResources(this.label3, "label3");
|
||||
this.label3.Name = "label3";
|
||||
//
|
||||
// bnAppdataFolder
|
||||
|
@ -127,7 +127,7 @@
|
||||
<value>No elimines los otros ajustes aún</value>
|
||||
</data>
|
||||
<data name="label3.Text" xml:space="preserve">
|
||||
<value>Para aquellos que prefieren un programa portable Nota: esta opción no funciona si esta en una carpeta admin son o sin UAC</value>
|
||||
<value>Para aquellos que prefieren un programa portable. Nota: esta opción no funciona si esta en una carpeta admin con o sin UAC</value>
|
||||
</data>
|
||||
<data name="label4.Text" xml:space="preserve">
|
||||
<value>Para aquellos que prefieren una instalación de ajustes regular se guarda en %appdata%/ds4tool</value>
|
||||
|
@ -118,250 +118,226 @@
|
||||
<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="lbMultiSaves.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>12, 10</value>
|
||||
<data name="label4.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>206, 89</value>
|
||||
</data>
|
||||
<data name=">>bnPrgmFolder.Name" xml:space="preserve">
|
||||
<value>bnPrgmFolder</value>
|
||||
</data>
|
||||
<data name=">>cBDeleteOther.Name" xml:space="preserve">
|
||||
<value>cBDeleteOther</value>
|
||||
</data>
|
||||
<data name="lbPickWhere.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>515, 33</value>
|
||||
<data name="label4.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>177, 69</value>
|
||||
</data>
|
||||
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="cBDeleteOther.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>11</value>
|
||||
</data>
|
||||
<data name=">>cBDeleteOther.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="lbMultiSaves.Text" xml:space="preserve">
|
||||
<value>Multiple save locations detected</value>
|
||||
</data>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="$this.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>5, 5, 5, 5</value>
|
||||
</data>
|
||||
<data name="lbMultiSaves.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 0, 4, 0</value>
|
||||
</data>
|
||||
<data name="bnAppdataFolder.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>187, 28</value>
|
||||
</data>
|
||||
<data name=">>bnAppdataFolder.ZOrder" xml:space="preserve">
|
||||
<value>5</value>
|
||||
</data>
|
||||
<data name=">>label3.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name="label4.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>9</value>
|
||||
</data>
|
||||
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>260, 85</value>
|
||||
<data name="label4.Text" xml:space="preserve">
|
||||
<value>For those who prefer a regular install Settings saved at %appdata%/DS4Windows</value>
|
||||
</data>
|
||||
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
||||
<value>8, 16</value>
|
||||
<data name="label4.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
|
||||
<value>TopCenter</value>
|
||||
</data>
|
||||
<data name="cBDeleteOther.Text" xml:space="preserve">
|
||||
<value>Don't Delete the
|
||||
other settings yet</value>
|
||||
<data name=">>label4.Name" xml:space="preserve">
|
||||
<value>label4</value>
|
||||
</data>
|
||||
<data name=">>lbMultiSaves.Parent" xml:space="preserve">
|
||||
<data name=">>label4.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>label4.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms">
|
||||
<value>CenterScreen</value>
|
||||
</data>
|
||||
<data name="label4.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 0, 4, 0</value>
|
||||
<data name=">>label4.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="label3.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>7, 110</value>
|
||||
<value>5, 89</value>
|
||||
</data>
|
||||
<data name="bnPrgmFolder.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>43, 78</value>
|
||||
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>195, 69</value>
|
||||
</data>
|
||||
<data name=">>bnPrgmFolder.ZOrder" xml:space="preserve">
|
||||
<value>6</value>
|
||||
<data name="label3.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>10</value>
|
||||
</data>
|
||||
<data name=">>lbMultiSaves.ZOrder" xml:space="preserve">
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name=">>bnPrgmFolder.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="cBDeleteOther.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 4, 4, 4</value>
|
||||
</data>
|
||||
<data name="lbMultiSaves.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>209, 17</value>
|
||||
</data>
|
||||
<data name="cBDeleteOther.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="lbPickWhere.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Left, Right</value>
|
||||
<data name="label3.Text" xml:space="preserve">
|
||||
<value>For those who prefer a portable program Note: this option does not work if in an admin folder w/o UAC</value>
|
||||
</data>
|
||||
<data name="label3.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
|
||||
<value>TopCenter</value>
|
||||
</data>
|
||||
<data name=">>label3.Name" xml:space="preserve">
|
||||
<value>label3</value>
|
||||
</data>
|
||||
<data name=">>label3.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>label3.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>label3.ZOrder" xml:space="preserve">
|
||||
<value>4</value>
|
||||
</data>
|
||||
<data name="bnAppdataFolder.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>222, 63</value>
|
||||
</data>
|
||||
<data name="bnAppdataFolder.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>140, 23</value>
|
||||
</data>
|
||||
<data name="bnAppdataFolder.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>7</value>
|
||||
</data>
|
||||
<data name="bnAppdataFolder.Text" xml:space="preserve">
|
||||
<value>Appdata</value>
|
||||
</data>
|
||||
<data name=">>bnAppdataFolder.Name" xml:space="preserve">
|
||||
<value>bnAppdataFolder</value>
|
||||
</data>
|
||||
<data name=">>bnAppdataFolder.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>bnAppdataFolder.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>bnAppdataFolder.ZOrder" xml:space="preserve">
|
||||
<value>5</value>
|
||||
</data>
|
||||
<data name="bnPrgmFolder.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>32, 63</value>
|
||||
</data>
|
||||
<data name="bnPrgmFolder.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>140, 23</value>
|
||||
</data>
|
||||
<data name="bnPrgmFolder.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>8</value>
|
||||
</data>
|
||||
<data name="bnPrgmFolder.Text" xml:space="preserve">
|
||||
<value>Program Folder</value>
|
||||
</data>
|
||||
<data name=">>bnPrgmFolder.Name" xml:space="preserve">
|
||||
<value>bnPrgmFolder</value>
|
||||
</data>
|
||||
<data name=">>bnPrgmFolder.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>bnPrgmFolder.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>bnPrgmFolder.ZOrder" xml:space="preserve">
|
||||
<value>6</value>
|
||||
</data>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="lbPickWhere.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Left, Right</value>
|
||||
</data>
|
||||
<data name="lbPickWhere.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1, 33</value>
|
||||
</data>
|
||||
<data name="lbPickWhere.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>386, 27</value>
|
||||
</data>
|
||||
<data name="lbPickWhere.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>10</value>
|
||||
</data>
|
||||
<data name="lbPickWhere.Text" xml:space="preserve">
|
||||
<value>Pick where you want settings and profiles to be saved</value>
|
||||
</data>
|
||||
<data name="lbPickWhere.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
|
||||
<value>TopCenter</value>
|
||||
</data>
|
||||
<data name=">>lbPickWhere.Name" xml:space="preserve">
|
||||
<value>lbPickWhere</value>
|
||||
</data>
|
||||
<data name=">>lbPickWhere.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>lbPickWhere.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>lbPickWhere.ZOrder" xml:space="preserve">
|
||||
<value>3</value>
|
||||
</data>
|
||||
<data name=">>label4.Name" xml:space="preserve">
|
||||
<value>label4</value>
|
||||
<data name="lbMultiSaves.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="label4.Text" xml:space="preserve">
|
||||
<value>For those who prefer a regular install Settings saved at %appdata%/ds4tool</value>
|
||||
<data name="lbMultiSaves.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>9, 8</value>
|
||||
</data>
|
||||
<data name=">>bnPrgmFolder.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name="lbPickWhere.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
|
||||
<value>TopCenter</value>
|
||||
</data>
|
||||
<data name="lbMultiSaves.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
|
||||
<value>TopCenter</value>
|
||||
</data>
|
||||
<data name="lbPickWhere.Text" xml:space="preserve">
|
||||
<value>Pick where you want settings and profiles to be saved</value>
|
||||
</data>
|
||||
<data name=">>cBDeleteOther.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="label3.Text" xml:space="preserve">
|
||||
<value>For those who prefer a portable program Note: this option does not work if in an admin folder w/o UAC</value>
|
||||
</data>
|
||||
<data name="label3.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 0, 4, 0</value>
|
||||
</data>
|
||||
<data name=">>label4.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="label4.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
|
||||
<value>TopCenter</value>
|
||||
</data>
|
||||
<data name=">>label4.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name="bnPrgmFolder.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>8</value>
|
||||
</data>
|
||||
<data name="cBDeleteOther.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>375, 0</value>
|
||||
</data>
|
||||
<data name=">>label4.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="lbPickWhere.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>10</value>
|
||||
</data>
|
||||
<data name="bnPrgmFolder.Text" xml:space="preserve">
|
||||
<value>Program Folder</value>
|
||||
</data>
|
||||
<data name=">>bnAppdataFolder.Name" xml:space="preserve">
|
||||
<value>bnAppdataFolder</value>
|
||||
</data>
|
||||
<data name="cBDeleteOther.Visible" type="System.Boolean, mscorlib">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="lbPickWhere.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 0, 4, 0</value>
|
||||
</data>
|
||||
<data name=">>label3.Name" xml:space="preserve">
|
||||
<value>label3</value>
|
||||
</data>
|
||||
<data name="bnAppdataFolder.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>296, 78</value>
|
||||
<data name="lbMultiSaves.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>159, 13</value>
|
||||
</data>
|
||||
<data name="lbMultiSaves.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>10</value>
|
||||
</data>
|
||||
<data name=">>$this.Name" xml:space="preserve">
|
||||
<value>SaveWhere</value>
|
||||
<data name="lbMultiSaves.Text" xml:space="preserve">
|
||||
<value>Multiple save locations detected</value>
|
||||
</data>
|
||||
<data name="$this.Text" xml:space="preserve">
|
||||
<value>DS4Windows</value>
|
||||
<comment>@Invariant</comment></data>
|
||||
<data name="bnAppdataFolder.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>7</value>
|
||||
</data>
|
||||
<data name=">>lbPickWhere.Name" xml:space="preserve">
|
||||
<value>lbPickWhere</value>
|
||||
</data>
|
||||
<data name="label3.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>10</value>
|
||||
</data>
|
||||
<data name="label4.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>275, 110</value>
|
||||
</data>
|
||||
<data name=">>lbPickWhere.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name="label4.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>236, 85</value>
|
||||
</data>
|
||||
<data name=">>cBDeleteOther.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name="bnAppdataFolder.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 4, 4, 4</value>
|
||||
</data>
|
||||
<data name="lbMultiSaves.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name=">>lbPickWhere.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="bnPrgmFolder.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 4, 4, 4</value>
|
||||
</data>
|
||||
<data name=">>lbMultiSaves.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>bnAppdataFolder.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>lbMultiSaves.Name" xml:space="preserve">
|
||||
<value>lbMultiSaves</value>
|
||||
</data>
|
||||
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||
<value>519, 167</value>
|
||||
<data name="lbMultiSaves.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
|
||||
<value>TopCenter</value>
|
||||
</data>
|
||||
<data name="lbMultiSaves.Visible" type="System.Boolean, mscorlib">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name=">>$this.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<data name=">>lbMultiSaves.Name" xml:space="preserve">
|
||||
<value>lbMultiSaves</value>
|
||||
</data>
|
||||
<data name="lbPickWhere.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1, 41</value>
|
||||
</data>
|
||||
<data name="bnPrgmFolder.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>187, 28</value>
|
||||
</data>
|
||||
<data name=">>label3.ZOrder" xml:space="preserve">
|
||||
<value>4</value>
|
||||
</data>
|
||||
<data name="cBDeleteOther.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>139, 38</value>
|
||||
</data>
|
||||
<data name=">>label3.Type" xml:space="preserve">
|
||||
<data name=">>lbMultiSaves.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="bnAppdataFolder.Text" xml:space="preserve">
|
||||
<value>Appdata</value>
|
||||
<data name=">>lbMultiSaves.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>lbMultiSaves.ZOrder" xml:space="preserve">
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name="cBDeleteOther.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="cBDeleteOther.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>281, 0</value>
|
||||
</data>
|
||||
<data name="cBDeleteOther.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>106, 30</value>
|
||||
</data>
|
||||
<data name="cBDeleteOther.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>11</value>
|
||||
</data>
|
||||
<data name="cBDeleteOther.Text" xml:space="preserve">
|
||||
<value>Don't Delete the
|
||||
other settings yet</value>
|
||||
</data>
|
||||
<data name="cBDeleteOther.Visible" type="System.Boolean, mscorlib">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name=">>cBDeleteOther.Name" xml:space="preserve">
|
||||
<value>cBDeleteOther</value>
|
||||
</data>
|
||||
<data name=">>cBDeleteOther.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>cBDeleteOther.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>cBDeleteOther.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="$this.Language" type="System.Globalization.CultureInfo, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>zh-Hans</value>
|
||||
</metadata>
|
||||
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
||||
<value>6, 13</value>
|
||||
</data>
|
||||
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||
<value>389, 136</value>
|
||||
</data>
|
||||
<data name="$this.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 4, 4, 4</value>
|
||||
</data>
|
||||
<data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms">
|
||||
<value>CenterScreen</value>
|
||||
</data>
|
||||
<data name="$this.Text" xml:space="preserve">
|
||||
<value>DS4Windows</value>
|
||||
</data>
|
||||
<data name=">>$this.Name" xml:space="preserve">
|
||||
<value>SaveWhere</value>
|
||||
</data>
|
||||
<data name=">>$this.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
</root>
|
@ -117,35 +117,78 @@
|
||||
<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="label4.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>206, 89</value>
|
||||
</data>
|
||||
<data name="label4.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>177, 69</value>
|
||||
</data>
|
||||
<data name="label4.Text" xml:space="preserve">
|
||||
<value>如果使用安装包安装,配置文件将保存至 %appdata%/ds4tool</value>
|
||||
</data>
|
||||
<data name="label3.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>5, 89</value>
|
||||
</data>
|
||||
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>195, 69</value>
|
||||
</data>
|
||||
<data name="label3.Text" xml:space="preserve">
|
||||
<value>请注意:如果在UAC保护的文件夹内运行本程序,这个选项不会生效。</value>
|
||||
</data>
|
||||
<data name="bnAppdataFolder.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>222, 63</value>
|
||||
</data>
|
||||
<data name="bnAppdataFolder.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>140, 23</value>
|
||||
</data>
|
||||
<data name="bnAppdataFolder.Text" xml:space="preserve">
|
||||
<value>系统文件夹</value>
|
||||
</data>
|
||||
<data name="bnPrgmFolder.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>32, 63</value>
|
||||
</data>
|
||||
<data name="bnPrgmFolder.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>140, 23</value>
|
||||
</data>
|
||||
<data name="bnPrgmFolder.Text" xml:space="preserve">
|
||||
<value>程序所在文件夹</value>
|
||||
</data>
|
||||
<data name="lbPickWhere.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1, 33</value>
|
||||
</data>
|
||||
<data name="lbPickWhere.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>386, 27</value>
|
||||
</data>
|
||||
<data name="lbPickWhere.Text" xml:space="preserve">
|
||||
<value>选择将要保存配置文件的位置。</value>
|
||||
</data>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="lbMultiSaves.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>9, 8</value>
|
||||
</data>
|
||||
<data name="lbMultiSaves.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>145, 17</value>
|
||||
<value>147, 13</value>
|
||||
</data>
|
||||
<data name="lbMultiSaves.Text" xml:space="preserve">
|
||||
<value>检测到多个配置文件目录。</value>
|
||||
</data>
|
||||
<data name="cBDeleteOther.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>349, 6</value>
|
||||
<value>262, 5</value>
|
||||
</data>
|
||||
<data name="cBDeleteOther.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>167, 21</value>
|
||||
<value>166, 17</value>
|
||||
</data>
|
||||
<data name="cBDeleteOther.Text" xml:space="preserve">
|
||||
<value>目前请不要删除其它设置。</value>
|
||||
</data>
|
||||
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
||||
<value>6, 13</value>
|
||||
</data>
|
||||
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||
<value>389, 136</value>
|
||||
</data>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="$this.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 4, 4, 4</value>
|
||||
</data>
|
||||
</root>
|
@ -139,7 +139,7 @@
|
||||
<value>Grabar una macro</value>
|
||||
</data>
|
||||
<data name="cBActions.Items2" xml:space="preserve">
|
||||
<value>Lanzar un programa</value>
|
||||
<value>Abrir un programa</value>
|
||||
</data>
|
||||
<data name="cBActions.Items3" xml:space="preserve">
|
||||
<value>Cargar un perfil</value>
|
||||
@ -151,37 +151,37 @@
|
||||
<value>Comprobar batería</value>
|
||||
</data>
|
||||
<data name="cbLightbarBatt.Text" xml:space="preserve">
|
||||
<value>a través del barra de luz</value>
|
||||
<value>Por medio de la barra de luz</value>
|
||||
</data>
|
||||
<data name="cBMacroScanCode.Text" xml:space="preserve">
|
||||
<value>Escanear del código</value>
|
||||
</data>
|
||||
<data name="cBNotificationBatt.Text" xml:space="preserve">
|
||||
<value>via notificación</value>
|
||||
<value>Por medio de notificación</value>
|
||||
</data>
|
||||
<data name="cBPressRelease.Items" xml:space="preserve">
|
||||
<value>Oprimiendo trigger unload</value>
|
||||
<value>Presionar gatillo de descarga</value>
|
||||
</data>
|
||||
<data name="cBPressRelease.Items1" xml:space="preserve">
|
||||
<value>Soltando el trigger unload</value>
|
||||
<value>Soltar gatillo de descarga</value>
|
||||
</data>
|
||||
<data name="cHTrigger.Text" xml:space="preserve">
|
||||
<value>Gatillo</value>
|
||||
</data>
|
||||
<data name="cHUnloadTrigger.Text" xml:space="preserve">
|
||||
<value>Liberar Gatillo</value>
|
||||
<value>Soltar Gatillo</value>
|
||||
</data>
|
||||
<data name="lbArg.Text" xml:space="preserve">
|
||||
<value>Argumentos</value>
|
||||
</data>
|
||||
<data name="lbDTapDVR.Text" xml:space="preserve">
|
||||
<value>Oprimir el gatillo doblemente</value>
|
||||
<value>Presionar el gatillo doblemente</value>
|
||||
</data>
|
||||
<data name="lbHoldDVR.Text" xml:space="preserve">
|
||||
<value>Dejar oprimido el gatillo</value>
|
||||
<value>Dejar presionado el gatillo</value>
|
||||
</data>
|
||||
<data name="lbHoldFor.Text" xml:space="preserve">
|
||||
<value>Dejar oprimido por</value>
|
||||
<value>Dejar presionado por</value>
|
||||
</data>
|
||||
<data name="lbName.Text" xml:space="preserve">
|
||||
<value>Nombre</value>
|
||||
@ -190,9 +190,9 @@
|
||||
<value>segundos</value>
|
||||
</data>
|
||||
<data name="lbTapDVR.Text" xml:space="preserve">
|
||||
<value>Oprimir el gatillo</value>
|
||||
<value>Presionar el gatillo</value>
|
||||
</data>
|
||||
<data name="lbUnloadTipKey.Text" xml:space="preserve">
|
||||
<value>Desligar tecla por</value>
|
||||
<value>Desactivar tecla por</value>
|
||||
</data>
|
||||
</root>
|
@ -1,30 +1,31 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using System.Net;
|
||||
|
||||
using System.IO;
|
||||
using System.IO.Compression;
|
||||
using System.Diagnostics;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Security.Principal;
|
||||
using System.Security.Permissions;
|
||||
using System.Reflection;
|
||||
//using NonFormTimer = System.Threading.Timer;
|
||||
using NonFormTimer = System.Timers.Timer;
|
||||
using System.Threading.Tasks;
|
||||
using static DS4Windows.Global;
|
||||
|
||||
namespace DS4Windows
|
||||
{
|
||||
public partial class WelcomeDialog : Form
|
||||
{
|
||||
public WelcomeDialog()
|
||||
public WelcomeDialog(bool loadConfig=false)
|
||||
{
|
||||
if (loadConfig)
|
||||
{
|
||||
Global.FindConfigLocation();
|
||||
Global.Load();
|
||||
Global.SetCulture(Global.UseLang);
|
||||
}
|
||||
|
||||
InitializeComponent();
|
||||
Icon = Properties.Resources.DS4;
|
||||
|
||||
}
|
||||
|
||||
private void bnFinish_Click(object sender, EventArgs e)
|
||||
@ -42,7 +43,7 @@ namespace DS4Windows
|
||||
WebClient wb = new WebClient();
|
||||
if (!driverinstalling)
|
||||
{
|
||||
wb.DownloadFileAsync(new Uri("http://ds4windows.com/Files/Virtual Bus Driver.zip"), exepath + "\\VBus.zip");
|
||||
wb.DownloadFileAsync(new Uri("http://23.239.26.40/ds4windows/files/Virtual Bus Driver.zip"), exepath + "\\VBus.zip");
|
||||
wb.DownloadProgressChanged += wb_DownloadProgressChanged;
|
||||
wb.DownloadFileCompleted += wb_DownloadFileCompleted;
|
||||
driverinstalling = true;
|
||||
@ -54,7 +55,6 @@ namespace DS4Windows
|
||||
bnStep1.Text = Properties.Resources.Downloading.Replace("*number*", e.ProgressPercentage.ToString());
|
||||
}
|
||||
|
||||
string exepath = Directory.GetParent(Assembly.GetExecutingAssembly().Location).FullName;
|
||||
private void wb_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e)
|
||||
{
|
||||
bnStep1.Text = Properties.Resources.OpeningInstaller;
|
||||
@ -80,10 +80,15 @@ namespace DS4Windows
|
||||
}
|
||||
catch { Process.Start(exepath + "\\Virtual Bus Driver"); }
|
||||
|
||||
Timer timer = new Timer();
|
||||
/*Timer timer = new Timer();
|
||||
timer.Start();
|
||||
timer.Tick += timer_Tick;
|
||||
*/
|
||||
NonFormTimer timer = new NonFormTimer();
|
||||
timer.Elapsed += timer_Tick;
|
||||
timer.Start();
|
||||
}
|
||||
|
||||
bool waitForFile;
|
||||
DateTime waitFileCheck;
|
||||
private void timer_Tick(object sender, EventArgs e)
|
||||
@ -97,24 +102,27 @@ namespace DS4Windows
|
||||
waitFileCheck = DateTime.UtcNow;
|
||||
return;
|
||||
}
|
||||
|
||||
if (waitForFile && waitFileCheck + TimeSpan.FromMinutes(2) < DateTime.UtcNow)
|
||||
{
|
||||
bnStep1.Text = Properties.Resources.InstallFailed;
|
||||
Process.Start(exepath + "\\Virtual Bus Driver");
|
||||
File.Delete(exepath + "\\VBus.zip");
|
||||
((Timer)sender).Stop();
|
||||
((NonFormTimer)sender).Stop();
|
||||
this.BeginInvoke((Action)(() => { bnStep1.Text = Properties.Resources.InstallFailed; }), null);
|
||||
return;
|
||||
}
|
||||
else if (waitForFile)
|
||||
return;
|
||||
|
||||
string log = File.ReadAllText(exepath + "\\ScpDriver.log");
|
||||
if (log.Contains("Install Succeeded"))
|
||||
bnStep1.Text = Properties.Resources.InstallComplete;
|
||||
this.BeginInvoke((Action)(() => { bnStep1.Text = Properties.Resources.InstallComplete; }));
|
||||
else
|
||||
{
|
||||
bnStep1.Text = Properties.Resources.InstallFailed;
|
||||
this.BeginInvoke((Action)(() => { bnStep1.Text = Properties.Resources.InstallFailed; }));
|
||||
Process.Start(exepath + "\\Virtual Bus Driver");
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
File.Delete(exepath + "\\ScpDriver.exe");
|
||||
@ -123,15 +131,15 @@ namespace DS4Windows
|
||||
Directory.Delete(exepath + "\\DIFxAPI", true);
|
||||
}
|
||||
catch { }
|
||||
|
||||
File.Delete(exepath + "\\VBus.zip");
|
||||
((Timer)sender).Stop();
|
||||
((NonFormTimer)sender).Stop();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void button2_Click(object sender, EventArgs e)
|
||||
{
|
||||
Process.Start("http://www.microsoft.com/hardware/en-us/d/xbox-360-controller-for-windows");
|
||||
Process.Start("http://www.microsoft.com/accessories/en-gb/d/xbox-360-controller-for-windows");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -121,20 +121,20 @@
|
||||
<value>Paso 1: Instalar el Driver DS4</value>
|
||||
</data>
|
||||
<data name="button2.Text" xml:space="preserve">
|
||||
<value>Paso 2: Si usas Windows 7 o inferior, instala el Driver 360</value>
|
||||
<value>Paso 2: Si usas Windows 7 o inferior, instala el Driver de Xbox 360</value>
|
||||
</data>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="linkBluetoothSettings.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>135, 13</value>
|
||||
</data>
|
||||
<data name="linkBluetoothSettings.Text" xml:space="preserve">
|
||||
<value>Configuracion de Bluetooth</value>
|
||||
<value>Configuración del Bluetooth</value>
|
||||
</data>
|
||||
<data name="label1.Text" xml:space="preserve">
|
||||
<value>Si esta ventana reaparece despues de instalar, necesitas reiniciar tu PC o esperar 10-15 minutos a que Windows reconozca el driver</value>
|
||||
</data>
|
||||
<data name="label2.Text" xml:space="preserve">
|
||||
<value>Si usas un Controlador X360 en esta PC, puedes omitir esto</value>
|
||||
<value>Si usas un Controlador de Xbox 360 en esta PC, puedes omitir esto</value>
|
||||
</data>
|
||||
<data name="bnFinish.Text" xml:space="preserve">
|
||||
<value>Finalizado</value>
|
||||
@ -143,12 +143,12 @@
|
||||
<value>Bienvenido a DS4Windows</value>
|
||||
</data>
|
||||
<data name="labelBluetooth.Text" xml:space="preserve">
|
||||
<value>Para configurar el bluetooth (opcional): Mantenga presionado el botón PS y Share durante 3 segundos. La luz del controlador comenzará a parpadear.</value>
|
||||
<value>Para configurar el bluetooth (opcional): Mantenga presionado el botón PS y Share durante 3 segundos. La luz del control comenzará a parpadear.</value>
|
||||
</data>
|
||||
<data name="labelUSB.Text" xml:space="preserve">
|
||||
<value>Paso 3: Para conectar el control DS4 por medio de cable usb sólo debe conectar el cable microusb en el DS4 y el usb común en la PC.</value>
|
||||
<value>Paso 3: Para conectar el control DS4 por medio de un cable USB sólo debe conectar el cable micro USB en el DS4 y el USB común en la PC.</value>
|
||||
</data>
|
||||
<data name="labelBluetooth2.Text" xml:space="preserve">
|
||||
<value>Una vez que esté parpadeando, vaya a Configuración de Bluetooth y conéctese al "Wireless Controller". Si le pide un código de emparejamiento, utilice el "0000". Una vez emparejado, el controlador estará listo. ¡A divertirse!</value>
|
||||
<value>Una vez que esté parpadeando, vaya a Configuración del Bluetooth y conéctese al "Wireless Controller". Si le pide un código de emparejamiento, utilice el "0000". Una vez emparejado, el control estará listo. ¡A divertirse!</value>
|
||||
</data>
|
||||
</root>
|
@ -127,56 +127,59 @@
|
||||
<data name=">>linkBluetoothSettings.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="labelBluetooth.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 0, 4, 0</value>
|
||||
<data name=">>labelBluetooth2.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="bnFinish.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>146, 544</value>
|
||||
</data>
|
||||
<data name="labelUSB.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
|
||||
<value>TopCenter</value>
|
||||
</data>
|
||||
<data name="labelBluetooth2.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>390, 80</value>
|
||||
</data>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="linkBluetoothSettings.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom</value>
|
||||
</data>
|
||||
<data name="label1.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Left, Right</value>
|
||||
</data>
|
||||
<data name=">>button2.ZOrder" xml:space="preserve">
|
||||
<value>3</value>
|
||||
</data>
|
||||
<data name="bnFinish.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 4, 4, 4</value>
|
||||
</data>
|
||||
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||
<value>394, 579</value>
|
||||
<data name=">>label1.Name" xml:space="preserve">
|
||||
<value>label1</value>
|
||||
</data>
|
||||
<data name=">>labelUSB.ZOrder" xml:space="preserve">
|
||||
<value>8</value>
|
||||
</data>
|
||||
<data name=">>labelBluetooth.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="$this.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>5, 5, 5, 5</value>
|
||||
</data>
|
||||
<data name=">>label1.Name" xml:space="preserve">
|
||||
<value>label1</value>
|
||||
<data name="labelBluetooth2.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Left, Right</value>
|
||||
</data>
|
||||
<data name="bnFinish.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom</value>
|
||||
</data>
|
||||
<data name="pictureBox1.InitialImage" type="System.Resources.ResXNullRef, System.Windows.Forms">
|
||||
<value />
|
||||
</data>
|
||||
<data name="button2.Text" xml:space="preserve">
|
||||
<value>Step 2: If on Windows 7 or below, Install 360 Driver</value>
|
||||
</data>
|
||||
<data name=">>bnFinish.ZOrder" xml:space="preserve">
|
||||
<value>5</value>
|
||||
</data>
|
||||
<data name="bnStep1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>324, 29</value>
|
||||
<data name=">>linkBluetoothSettings.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="bnStep1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 4, 4, 4</value>
|
||||
</data>
|
||||
<data name=">>label1.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name=">>labelBluetooth2.Name" xml:space="preserve">
|
||||
<value>labelBluetooth2</value>
|
||||
</data>
|
||||
@ -186,13 +189,8 @@
|
||||
<data name=">>button2.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name="labelBluetooth.Text" xml:space="preserve">
|
||||
<value>To set up bluetooth (optional):
|
||||
Hold the PS Button and Share for 3 seconds
|
||||
The lightbar will begin to double flash</value>
|
||||
</data>
|
||||
<data name="labelBluetooth.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
|
||||
<value>TopCenter</value>
|
||||
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
||||
<value>120, 120</value>
|
||||
</data>
|
||||
<data name=">>pictureBox1.Name" xml:space="preserve">
|
||||
<value>pictureBox1</value>
|
||||
@ -200,23 +198,23 @@ The lightbar will begin to double flash</value>
|
||||
<data name="labelUSB.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Left, Right</value>
|
||||
</data>
|
||||
<data name=">>labelBluetooth2.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<data name=">>bnStep1.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="labelUSB.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
|
||||
<value>TopCenter</value>
|
||||
<data name="pictureBox1.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name="labelUSB.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>391, 49</value>
|
||||
</data>
|
||||
<data name="labelBluetooth.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>390, 49</value>
|
||||
<data name=">>label1.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name="label1.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
|
||||
<value>TopCenter</value>
|
||||
<data name=">>bnFinish.Name" xml:space="preserve">
|
||||
<value>bnFinish</value>
|
||||
</data>
|
||||
<data name="labelBluetooth.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1, 223</value>
|
||||
<data name="linkBluetoothSettings.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>4</value>
|
||||
</data>
|
||||
<data name=">>pictureBox1.ZOrder" xml:space="preserve">
|
||||
<value>2</value>
|
||||
@ -224,8 +222,8 @@ The lightbar will begin to double flash</value>
|
||||
<data name=">>bnFinish.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name="bnFinish.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom</value>
|
||||
<data name=">>linkBluetoothSettings.Name" xml:space="preserve">
|
||||
<value>linkBluetoothSettings</value>
|
||||
</data>
|
||||
<data name="label1.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>3</value>
|
||||
@ -239,8 +237,8 @@ The lightbar will begin to double flash</value>
|
||||
<data name="pictureBox1.SizeMode" type="System.Windows.Forms.PictureBoxSizeMode, System.Windows.Forms">
|
||||
<value>StretchImage</value>
|
||||
</data>
|
||||
<data name=">>bnFinish.Name" xml:space="preserve">
|
||||
<value>bnFinish</value>
|
||||
<data name=">>bnStep1.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name="bnFinish.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>0</value>
|
||||
@ -248,18 +246,15 @@ The lightbar will begin to double flash</value>
|
||||
<data name="button2.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="labelBluetooth.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>3</value>
|
||||
<data name="label1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1, 40</value>
|
||||
</data>
|
||||
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
||||
<value>120, 120</value>
|
||||
<data name=">>labelUSB.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>label2.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="pictureBox1.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name="pictureBox1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>45, 298</value>
|
||||
</data>
|
||||
@ -275,36 +270,33 @@ The lightbar will begin to double flash</value>
|
||||
<data name=">>pictureBox1.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>linkBluetoothSettings.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="pictureBox1.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom</value>
|
||||
<data name=">>bnFinish.ZOrder" xml:space="preserve">
|
||||
<value>5</value>
|
||||
</data>
|
||||
<data name=">>bnFinish.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="bnStep1.Text" xml:space="preserve">
|
||||
<value>Step 1: Install the DS4 Driver</value>
|
||||
</data>
|
||||
<data name="bnFinish.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>94, 29</value>
|
||||
</data>
|
||||
<data name="label2.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>0, 132</value>
|
||||
<data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms">
|
||||
<value>CenterScreen</value>
|
||||
</data>
|
||||
<data name="labelUSB.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>3</value>
|
||||
<data name=">>bnStep1.Name" xml:space="preserve">
|
||||
<value>bnStep1</value>
|
||||
</data>
|
||||
<data name="label1.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
|
||||
<value>TopCenter</value>
|
||||
</data>
|
||||
<data name="pictureBox1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 4, 4, 4</value>
|
||||
</data>
|
||||
<data name="linkBluetoothSettings.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>211, 466</value>
|
||||
</data>
|
||||
<data name="labelBluetooth2.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1, 466</value>
|
||||
</data>
|
||||
<data name=">>$this.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>bnStep1.ZOrder" xml:space="preserve">
|
||||
<value>4</value>
|
||||
</data>
|
||||
@ -314,17 +306,14 @@ The lightbar will begin to double flash</value>
|
||||
<data name="linkBluetoothSettings.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 0, 4, 0</value>
|
||||
</data>
|
||||
<data name=">>$this.Name" xml:space="preserve">
|
||||
<value>WelcomeDialog</value>
|
||||
</data>
|
||||
<data name=">>labelBluetooth.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<data name="labelBluetooth.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 0, 4, 0</value>
|
||||
</data>
|
||||
<data name="pictureBox1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>306, 165</value>
|
||||
</data>
|
||||
<data name=">>labelUSB.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<data name="pictureBox1.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom</value>
|
||||
</data>
|
||||
<data name=">>button2.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
@ -338,35 +327,32 @@ The lightbar will begin to double flash</value>
|
||||
<data name=">>label2.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
</data>
|
||||
<data name="label1.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Left, Right</value>
|
||||
<data name="bnStep1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>324, 29</value>
|
||||
</data>
|
||||
<data name="label2.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
|
||||
<value>TopCenter</value>
|
||||
<data name="label1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 0, 4, 0</value>
|
||||
</data>
|
||||
<data name=">>labelUSB.Name" xml:space="preserve">
|
||||
<value>labelUSB</value>
|
||||
</data>
|
||||
<data name="button2.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>36, 101</value>
|
||||
</data>
|
||||
<data name=">>linkBluetoothSettings.Name" xml:space="preserve">
|
||||
<value>linkBluetoothSettings</value>
|
||||
</data>
|
||||
<data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms">
|
||||
<value>CenterScreen</value>
|
||||
</data>
|
||||
<data name="labelBluetooth2.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 0, 4, 0</value>
|
||||
</data>
|
||||
<data name="linkBluetoothSettings.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>4</value>
|
||||
</data>
|
||||
<data name=">>labelBluetooth.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
<data name="label2.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
|
||||
<value>TopCenter</value>
|
||||
</data>
|
||||
<data name=">>label2.Name" xml:space="preserve">
|
||||
<value>label2</value>
|
||||
</data>
|
||||
<data name=">>bnStep1.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<data name="labelBluetooth.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>390, 49</value>
|
||||
</data>
|
||||
<data name="labelBluetooth2.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
|
||||
<value>TopCenter</value>
|
||||
</data>
|
||||
<data name="label1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>392, 57</value>
|
||||
@ -374,15 +360,15 @@ The lightbar will begin to double flash</value>
|
||||
<data name="linkBluetoothSettings.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>123, 17</value>
|
||||
</data>
|
||||
<data name=">>$this.Name" xml:space="preserve">
|
||||
<value>WelcomeDialog</value>
|
||||
</data>
|
||||
<data name="labelBluetooth.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1, 223</value>
|
||||
</data>
|
||||
<data name=">>label2.ZOrder" xml:space="preserve">
|
||||
<value>6</value>
|
||||
</data>
|
||||
<data name="bnStep1.Text" xml:space="preserve">
|
||||
<value>Step 1: Install the DS4 Driver</value>
|
||||
</data>
|
||||
<data name="label1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1, 40</value>
|
||||
</data>
|
||||
<data name="$this.Text" xml:space="preserve">
|
||||
<value>Welcome to DS4Windows</value>
|
||||
</data>
|
||||
@ -398,31 +384,33 @@ Once paired, you're ready. Have fun!</value>
|
||||
<data name="label2.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>394, 28</value>
|
||||
</data>
|
||||
<data name=">>bnStep1.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
<data name="labelBluetooth.Text" xml:space="preserve">
|
||||
<value>To set up bluetooth (optional):
|
||||
Hold the PS Button and Share for 3 seconds
|
||||
The lightbar will begin to double flash</value>
|
||||
</data>
|
||||
<data name="linkBluetoothSettings.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="label2.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Left, Right</value>
|
||||
<data name="label2.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>0, 132</value>
|
||||
</data>
|
||||
<data name=">>button2.Name" xml:space="preserve">
|
||||
<value>button2</value>
|
||||
</data>
|
||||
<data name="labelBluetooth2.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Bottom, Left, Right</value>
|
||||
<data name="labelBluetooth.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>3</value>
|
||||
</data>
|
||||
<data name=">>bnStep1.Name" xml:space="preserve">
|
||||
<value>bnStep1</value>
|
||||
<data name="linkBluetoothSettings.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>211, 466</value>
|
||||
</data>
|
||||
<data name="labelUSB.Text" xml:space="preserve">
|
||||
<value>Step 3: Connecting the DualShock 4 controller
|
||||
To set up wired/usb:
|
||||
Simply plug a micro usb into your PC and DualShock 4</value>
|
||||
</data>
|
||||
<data name="labelUSB.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 0, 4, 0</value>
|
||||
<data name="button2.Text" xml:space="preserve">
|
||||
<value>Step 2: If on Windows 7 or below, Install 360 Driver</value>
|
||||
</data>
|
||||
<data name=">>linkBluetoothSettings.Parent" xml:space="preserve">
|
||||
<value>$this</value>
|
||||
@ -436,26 +424,38 @@ Simply plug a micro usb into your PC and DualShock 4</value>
|
||||
<data name="labelUSB.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>0, 162</value>
|
||||
</data>
|
||||
<data name="labelUSB.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>3</value>
|
||||
</data>
|
||||
<data name="button2.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 4, 4, 4</value>
|
||||
</data>
|
||||
<data name=">>labelUSB.Name" xml:space="preserve">
|
||||
<value>labelUSB</value>
|
||||
<data name=">>labelBluetooth.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||
<value>394, 579</value>
|
||||
</data>
|
||||
<data name="button2.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>324, 29</value>
|
||||
</data>
|
||||
<data name="label1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 0, 4, 0</value>
|
||||
<data name=">>$this.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="labelBluetooth.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Left, Right</value>
|
||||
</data>
|
||||
<data name="labelBluetooth.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
|
||||
<value>TopCenter</value>
|
||||
</data>
|
||||
<data name=">>label1.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name="labelBluetooth2.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
|
||||
<value>TopCenter</value>
|
||||
<data name="label2.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||
<value>Top, Left, Right</value>
|
||||
</data>
|
||||
<data name="labelUSB.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 0, 4, 0</value>
|
||||
</data>
|
||||
<data name="linkBluetoothSettings.Text" xml:space="preserve">
|
||||
<value>Bluetooth Settings</value>
|
||||
@ -466,7 +466,4 @@ Simply plug a micro usb into your PC and DualShock 4</value>
|
||||
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>True</value>
|
||||
</metadata>
|
||||
<metadata name="$this.Language" type="System.Globalization.CultureInfo, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>uk</value>
|
||||
</metadata>
|
||||
</root>
|
@ -117,18 +117,36 @@
|
||||
<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="bnStep1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>29, 8</value>
|
||||
</data>
|
||||
<data name="bnStep1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>259, 23</value>
|
||||
</data>
|
||||
<data name="bnStep1.Text" xml:space="preserve">
|
||||
<value>Крок 1: Встановити драйвер DS4</value>
|
||||
</data>
|
||||
<data name="button2.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>29, 81</value>
|
||||
</data>
|
||||
<data name="button2.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>259, 23</value>
|
||||
</data>
|
||||
<data name="button2.Text" xml:space="preserve">
|
||||
<value>Крок 2: Для Windows 7 та попередніх - встановіть драйвер 360</value>
|
||||
</data>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="pictureBox1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>45, 307</value>
|
||||
<value>36, 246</value>
|
||||
</data>
|
||||
<data name="pictureBox1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>245, 132</value>
|
||||
</data>
|
||||
<data name="labelBluetooth.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1, 242</value>
|
||||
<value>1, 194</value>
|
||||
</data>
|
||||
<data name="labelBluetooth.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>312, 39</value>
|
||||
</data>
|
||||
<data name="labelBluetooth.Text" xml:space="preserve">
|
||||
<value>Для налаштування Bluetooth (за бажанням):
|
||||
@ -136,7 +154,10 @@
|
||||
Світлопанель мерехтітиме подвійним спалахом</value>
|
||||
</data>
|
||||
<data name="labelUSB.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>0, 181</value>
|
||||
<value>0, 145</value>
|
||||
</data>
|
||||
<data name="labelUSB.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>313, 39</value>
|
||||
</data>
|
||||
<data name="labelUSB.Text" xml:space="preserve">
|
||||
<value>Крок 3: Підключення контролеру DualShock 4
|
||||
@ -144,10 +165,10 @@
|
||||
Просто підключіть micro usb до вашого ПК та DualShock 4</value>
|
||||
</data>
|
||||
<data name="labelBluetooth2.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1, 479</value>
|
||||
<value>1, 383</value>
|
||||
</data>
|
||||
<data name="labelBluetooth2.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>390, 89</value>
|
||||
<value>312, 71</value>
|
||||
</data>
|
||||
<data name="labelBluetooth2.Text" xml:space="preserve">
|
||||
<value>Як тільки замерехтить, йдіть до налаштувань вашого Bluetooth
|
||||
@ -155,32 +176,51 @@
|
||||
Якщо спитає, введіть код пари "0000"
|
||||
При створенні пари, ви готові. Розважайтеся!</value>
|
||||
</data>
|
||||
<data name="label1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>1, 32</value>
|
||||
</data>
|
||||
<data name="label1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>314, 46</value>
|
||||
</data>
|
||||
<data name="label1.Text" xml:space="preserve">
|
||||
<value>Якщо це вікно з'явилося знову після встановлення, тоді вам потрібно перезавантажити ПК, або почекати 10-15 хв поки Windows помітить драйвер</value>
|
||||
</data>
|
||||
<data name="label2.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>0, 106</value>
|
||||
</data>
|
||||
<data name="label2.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>394, 38</value>
|
||||
<value>315, 30</value>
|
||||
</data>
|
||||
<data name="label2.Text" xml:space="preserve">
|
||||
<value>Якщи ви користуєтесь 360 контролером на цьому ПК, можете пропустити</value>
|
||||
</data>
|
||||
<data name="bnFinish.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>146, 573</value>
|
||||
<value>117, 458</value>
|
||||
</data>
|
||||
<data name="bnFinish.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>75, 23</value>
|
||||
</data>
|
||||
<data name="bnFinish.Text" xml:space="preserve">
|
||||
<value>Завершити</value>
|
||||
</data>
|
||||
<data name="linkBluetoothSettings.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>211, 495</value>
|
||||
<value>169, 396</value>
|
||||
</data>
|
||||
<data name="linkBluetoothSettings.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>170, 17</value>
|
||||
<value>129, 13</value>
|
||||
</data>
|
||||
<data name="linkBluetoothSettings.Text" xml:space="preserve">
|
||||
<value>Налаштування Bluetooth</value>
|
||||
</data>
|
||||
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
||||
<value>96, 96</value>
|
||||
</data>
|
||||
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||
<value>394, 608</value>
|
||||
<value>315, 486</value>
|
||||
</data>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="$this.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 4, 4, 4</value>
|
||||
</data>
|
||||
<data name="$this.Text" xml:space="preserve">
|
||||
<value>Ласкаво просимо до DS4Windows</value>
|
||||
|
14
DS4Windows/DS4Forms/WinProgs.Designer.cs
generated
14
DS4Windows/DS4Forms/WinProgs.Designer.cs
generated
@ -191,7 +191,6 @@
|
||||
//
|
||||
// cMSPrograms
|
||||
//
|
||||
resources.ApplyResources(this.cMSPrograms, "cMSPrograms");
|
||||
this.cMSPrograms.ImageScalingSize = new System.Drawing.Size(20, 20);
|
||||
this.cMSPrograms.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.addProgramsFromStartMenuToolStripMenuItem,
|
||||
@ -201,35 +200,36 @@
|
||||
this.browseForOtherProgramsToolStripMenuItem});
|
||||
this.cMSPrograms.Name = "contextMenuStrip1";
|
||||
this.cMSPrograms.ShowImageMargin = false;
|
||||
resources.ApplyResources(this.cMSPrograms, "cMSPrograms");
|
||||
//
|
||||
// addProgramsFromStartMenuToolStripMenuItem
|
||||
//
|
||||
resources.ApplyResources(this.addProgramsFromStartMenuToolStripMenuItem, "addProgramsFromStartMenuToolStripMenuItem");
|
||||
this.addProgramsFromStartMenuToolStripMenuItem.Name = "addProgramsFromStartMenuToolStripMenuItem";
|
||||
resources.ApplyResources(this.addProgramsFromStartMenuToolStripMenuItem, "addProgramsFromStartMenuToolStripMenuItem");
|
||||
this.addProgramsFromStartMenuToolStripMenuItem.Click += new System.EventHandler(this.addProgramsFromStartMenuToolStripMenuItem_Click);
|
||||
//
|
||||
// addSteamGamesToolStripMenuItem
|
||||
//
|
||||
resources.ApplyResources(this.addSteamGamesToolStripMenuItem, "addSteamGamesToolStripMenuItem");
|
||||
this.addSteamGamesToolStripMenuItem.Name = "addSteamGamesToolStripMenuItem";
|
||||
resources.ApplyResources(this.addSteamGamesToolStripMenuItem, "addSteamGamesToolStripMenuItem");
|
||||
this.addSteamGamesToolStripMenuItem.Click += new System.EventHandler(this.addSteamGamesToolStripMenuItem_Click);
|
||||
//
|
||||
// addOriginGamesToolStripMenuItem
|
||||
//
|
||||
resources.ApplyResources(this.addOriginGamesToolStripMenuItem, "addOriginGamesToolStripMenuItem");
|
||||
this.addOriginGamesToolStripMenuItem.Name = "addOriginGamesToolStripMenuItem";
|
||||
resources.ApplyResources(this.addOriginGamesToolStripMenuItem, "addOriginGamesToolStripMenuItem");
|
||||
this.addOriginGamesToolStripMenuItem.Click += new System.EventHandler(this.addOriginGamesToolStripMenuItem_Click);
|
||||
//
|
||||
// addDirectoryToolStripMenuItem
|
||||
//
|
||||
resources.ApplyResources(this.addDirectoryToolStripMenuItem, "addDirectoryToolStripMenuItem");
|
||||
this.addDirectoryToolStripMenuItem.Name = "addDirectoryToolStripMenuItem";
|
||||
resources.ApplyResources(this.addDirectoryToolStripMenuItem, "addDirectoryToolStripMenuItem");
|
||||
this.addDirectoryToolStripMenuItem.Click += new System.EventHandler(this.addDirectoryToolStripMenuItem_Click);
|
||||
//
|
||||
// browseForOtherProgramsToolStripMenuItem
|
||||
//
|
||||
resources.ApplyResources(this.browseForOtherProgramsToolStripMenuItem, "browseForOtherProgramsToolStripMenuItem");
|
||||
this.browseForOtherProgramsToolStripMenuItem.Name = "browseForOtherProgramsToolStripMenuItem";
|
||||
resources.ApplyResources(this.browseForOtherProgramsToolStripMenuItem, "browseForOtherProgramsToolStripMenuItem");
|
||||
this.browseForOtherProgramsToolStripMenuItem.Click += new System.EventHandler(this.browseForOtherProgramsToolStripMenuItem_Click);
|
||||
//
|
||||
// cBTurnOffDS4W
|
||||
@ -243,7 +243,7 @@
|
||||
//
|
||||
resources.ApplyResources(this, "$this");
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.BackColor = System.Drawing.Color.White;
|
||||
this.BackColor = System.Drawing.SystemColors.Control;
|
||||
this.Controls.Add(this.cBTurnOffDS4W);
|
||||
this.Controls.Add(this.pBProfilesTip);
|
||||
this.Controls.Add(this.bnHideUnchecked);
|
||||
|
@ -1,20 +1,15 @@
|
||||
using Microsoft.Win32;
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using System.IO;
|
||||
using System.Net;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
using System.Xml;
|
||||
using System.Runtime.InteropServices;
|
||||
//using Ookii.Dialogs;
|
||||
using System.Threading;
|
||||
using System.Diagnostics;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DS4Windows
|
||||
{
|
||||
@ -30,6 +25,10 @@ namespace DS4Windows
|
||||
List<string> programpaths = new List<string>();
|
||||
List<string> lodsf = new List<string>();
|
||||
bool appsloaded = false;
|
||||
const string steamCommx86Loc = @"C:\Program Files (x86)\Steam\steamapps\common";
|
||||
const string steamCommLoc = @"C:\Program Files\Steam\steamapps\common";
|
||||
const string originx86Loc = @"C:\Program Files (x86)\Origin Games";
|
||||
const string originLoc = @"C:\Program Files\Origin Games";
|
||||
|
||||
public WinProgs(string[] oc, DS4Form main)
|
||||
{
|
||||
@ -43,28 +42,30 @@ namespace DS4Windows
|
||||
cbs[i].Items.Add(Properties.Resources.noneProfile);
|
||||
cbs[i].SelectedIndex = cbs[i].Items.Count - 1;
|
||||
}
|
||||
|
||||
if (!File.Exists(Global.appdatapath + @"\Auto Profiles.xml"))
|
||||
Create();
|
||||
|
||||
LoadP();
|
||||
|
||||
if (Directory.Exists(@"C:\Program Files (x86)\Steam\steamapps\common"))
|
||||
steamgamesdir = @"C:\Program Files (x86)\Steam\steamapps\common";
|
||||
else if (Directory.Exists(@"C:\Program Files\Steam\steamapps\common"))
|
||||
steamgamesdir = @"C:\Program Files\Steam\steamapps\common";
|
||||
if (Directory.Exists(steamCommx86Loc))
|
||||
steamgamesdir = steamCommx86Loc;
|
||||
else if (Directory.Exists(steamCommLoc))
|
||||
steamgamesdir = steamCommLoc;
|
||||
else
|
||||
cMSPrograms.Items.Remove(addSteamGamesToolStripMenuItem);
|
||||
|
||||
if (Directory.Exists(@"C:\Program Files (x86)\Origin Games"))
|
||||
origingamesdir = @"C:\Program Files (x86)\Origin Games";
|
||||
else if (Directory.Exists(@"C:\Program Files\Origin Games"))
|
||||
origingamesdir = @"C:\Program Files\Origin Games";
|
||||
if (Directory.Exists(originx86Loc))
|
||||
origingamesdir = originx86Loc;
|
||||
else if (Directory.Exists(originLoc))
|
||||
origingamesdir = originLoc;
|
||||
else
|
||||
cMSPrograms.Items.Remove(addOriginGamesToolStripMenuItem);
|
||||
}
|
||||
|
||||
public bool Create()
|
||||
{
|
||||
Boolean Saved = true;
|
||||
bool Saved = true;
|
||||
|
||||
try
|
||||
{
|
||||
@ -101,39 +102,36 @@ namespace DS4Windows
|
||||
programpaths.Clear();
|
||||
if (!File.Exists(Global.appdatapath + "\\Auto Profiles.xml"))
|
||||
return;
|
||||
|
||||
doc.Load(Global.appdatapath + "\\Auto Profiles.xml");
|
||||
XmlNodeList programslist = doc.SelectNodes("Programs/Program");
|
||||
foreach (XmlNode x in programslist)
|
||||
programpaths.Add(x.Attributes["path"].Value);
|
||||
|
||||
lVPrograms.BeginUpdate();
|
||||
int index = 0;
|
||||
foreach (string st in programpaths)
|
||||
{
|
||||
if (File.Exists(st))
|
||||
if (!string.IsNullOrEmpty(st))
|
||||
{
|
||||
int index = programpaths.IndexOf(st);
|
||||
if (string.Empty != st)
|
||||
if (File.Exists(st))
|
||||
{
|
||||
iLIcons.Images.Add(Icon.ExtractAssociatedIcon(st));
|
||||
ListViewItem lvi = new ListViewItem(Path.GetFileNameWithoutExtension(st), index);
|
||||
lvi.SubItems.Add(st);
|
||||
lvi.Checked = true;
|
||||
lvi.ToolTipText = st;
|
||||
lVPrograms.Items.Add(lvi);
|
||||
}
|
||||
|
||||
ListViewItem lvi = new ListViewItem(Path.GetFileNameWithoutExtension(st), index);
|
||||
lvi.Checked = true;
|
||||
lvi.ToolTipText = st;
|
||||
lvi.SubItems.Add(st);
|
||||
lVPrograms.Items.Add(lvi);
|
||||
}
|
||||
else
|
||||
{
|
||||
RemoveP(st, false, false);
|
||||
}
|
||||
|
||||
index++;
|
||||
}
|
||||
|
||||
lVPrograms.EndUpdate();
|
||||
}
|
||||
|
||||
|
||||
private void bnLoadSteam_Click(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
private void GetApps(string path)
|
||||
{
|
||||
lodsf.Clear();
|
||||
@ -147,6 +145,7 @@ namespace DS4Windows
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
|
||||
appsloaded = true;
|
||||
}
|
||||
|
||||
@ -162,31 +161,43 @@ namespace DS4Windows
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
|
||||
return lods;
|
||||
}
|
||||
|
||||
private void GetShortcuts(string path)
|
||||
{
|
||||
lodsf.Clear();
|
||||
lodsf.AddRange(Directory.GetFiles(path, "*.lnk", SearchOption.AllDirectories));
|
||||
lodsf.AddRange(Directory.GetFiles(@"C:\ProgramData\Microsoft\Windows\Start Menu\Programs", "*.lnk", SearchOption.AllDirectories));
|
||||
lodsf.AddRange(Directory.GetFiles(Environment.GetFolderPath(Environment.SpecialFolder.CommonStartMenu) + "\\Programs", "*.lnk", SearchOption.AllDirectories));
|
||||
for (int i = 0; i < lodsf.Count; i++)
|
||||
lodsf[i] = GetTargetPath(lodsf[i]);
|
||||
|
||||
appsloaded = true;
|
||||
}
|
||||
|
||||
void appstimer_Tick(object sender, EventArgs e)
|
||||
void AddLoadedApps()
|
||||
{
|
||||
if (appsloaded)
|
||||
{
|
||||
bnAddPrograms.Text = Properties.Resources.AddingToList;
|
||||
for (int i = lodsf.Count - 1; i >= 0; i--)
|
||||
{
|
||||
if (lodsf[i].Contains("etup") || lodsf[i].Contains("dotnet") || lodsf[i].Contains("SETUP")
|
||||
|| lodsf[i].Contains("edist") || lodsf[i].Contains("nstall") || String.IsNullOrEmpty(lodsf[i]))
|
||||
lodsf.RemoveAt(i);
|
||||
}
|
||||
|
||||
for (int i = lodsf.Count - 1; i >= 0; i--)
|
||||
{
|
||||
for (int j = programpaths.Count - 1; j >= 0; j--)
|
||||
{
|
||||
if (lodsf[i].ToLower().Replace('/', '\\') == programpaths[j].ToLower().Replace('/', '\\'))
|
||||
lodsf.RemoveAt(i);
|
||||
}
|
||||
}
|
||||
|
||||
lVPrograms.BeginUpdate();
|
||||
foreach (string st in lodsf)
|
||||
{
|
||||
if (File.Exists(st))
|
||||
@ -199,14 +210,14 @@ namespace DS4Windows
|
||||
lVPrograms.Items.Add(lvi);
|
||||
}
|
||||
}
|
||||
lVPrograms.EndUpdate();
|
||||
|
||||
bnAddPrograms.Text = Properties.Resources.AddPrograms;
|
||||
bnAddPrograms.Enabled = true;
|
||||
appsloaded = false;
|
||||
((Timer)sender).Stop();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void Save(string name)
|
||||
{
|
||||
m_Xdoc.Load(m_Profile);
|
||||
@ -226,16 +237,20 @@ namespace DS4Windows
|
||||
el.AppendChild(m_Xdoc.CreateElement("Controller3")).InnerText = cBProfile3.Text;
|
||||
el.AppendChild(m_Xdoc.CreateElement("Controller4")).InnerText = cBProfile4.Text;
|
||||
el.AppendChild(m_Xdoc.CreateElement("TurnOff")).InnerText = cBTurnOffDS4W.Checked.ToString();
|
||||
|
||||
try
|
||||
{
|
||||
XmlNode oldxmlprocess = m_Xdoc.SelectSingleNode("/Programs/Program[@path=\"" + lBProgramPath.Text + "\"]");
|
||||
Node.ReplaceChild(el, oldxmlprocess);
|
||||
}
|
||||
catch { Node.AppendChild(el); }
|
||||
|
||||
m_Xdoc.AppendChild(Node);
|
||||
m_Xdoc.Save(m_Profile);
|
||||
|
||||
if (lVPrograms.SelectedItems.Count > 0)
|
||||
lVPrograms.SelectedItems[0].Checked = true;
|
||||
|
||||
form.LoadP();
|
||||
}
|
||||
|
||||
@ -251,7 +266,9 @@ namespace DS4Windows
|
||||
{
|
||||
Item = doc.SelectSingleNode("/Programs/Program[@path=\"" + name + "\"]" + "/Controller" + (i + 1));
|
||||
if (Item != null)
|
||||
{
|
||||
for (int j = 0; j < cbs[i].Items.Count; j++)
|
||||
{
|
||||
if (cbs[i].Items[j].ToString() == Item.InnerText)
|
||||
{
|
||||
cbs[i].SelectedIndex = j;
|
||||
@ -260,9 +277,12 @@ namespace DS4Windows
|
||||
}
|
||||
else
|
||||
cbs[i].SelectedIndex = cbs[i].Items.Count - 1;
|
||||
}
|
||||
}
|
||||
else
|
||||
cbs[i].SelectedIndex = cbs[i].Items.Count - 1;
|
||||
}
|
||||
|
||||
Item = doc.SelectSingleNode("/Programs/Program[@path=\"" + name + "\"]" + "/TurnOff");
|
||||
bool turnOff;
|
||||
if (Item != null && bool.TryParse(Item.InnerText, out turnOff))
|
||||
@ -276,29 +296,30 @@ namespace DS4Windows
|
||||
{
|
||||
for (int i = 0; i < 4; i++)
|
||||
cbs[i].SelectedIndex = cbs[i].Items.Count - 1;
|
||||
|
||||
cBTurnOffDS4W.Checked = false;
|
||||
bnSave.Enabled = false;
|
||||
}
|
||||
}
|
||||
|
||||
public void RemoveP(string name, bool uncheck, bool reload = true)
|
||||
public void RemoveP(string name, bool uncheck)
|
||||
{
|
||||
|
||||
XmlDocument doc = new XmlDocument();
|
||||
doc.Load(m_Profile);
|
||||
XmlNode Node = doc.SelectSingleNode("Programs");
|
||||
XmlNode Item = doc.SelectSingleNode("/Programs/Program[@path=\"" + name + "\"]");
|
||||
if (Item != null)
|
||||
Node.RemoveChild(Item);
|
||||
|
||||
doc.AppendChild(Node);
|
||||
doc.Save(m_Profile);
|
||||
if (lVPrograms.SelectedItems.Count > 0 && uncheck)
|
||||
lVPrograms.SelectedItems[0].Checked = false;
|
||||
|
||||
for (int i = 0; i < 4; i++)
|
||||
cbs[i].SelectedIndex = cbs[i].Items.Count - 1;
|
||||
|
||||
bnSave.Enabled = false;
|
||||
if (reload)
|
||||
form.LoadP();
|
||||
}
|
||||
|
||||
private void CBProfile_IndexChanged(object sender, EventArgs e)
|
||||
@ -306,6 +327,7 @@ namespace DS4Windows
|
||||
int last = cbs[0].Items.Count - 1;
|
||||
if (lBProgramPath.Text != string.Empty)
|
||||
bnSave.Enabled = true;
|
||||
|
||||
if (cbs[0].SelectedIndex == last && cbs[1].SelectedIndex == last &&
|
||||
cbs[2].SelectedIndex == last && cbs[3].SelectedIndex == last && !cBTurnOffDS4W.Checked)
|
||||
bnSave.Enabled = false;
|
||||
@ -315,6 +337,7 @@ namespace DS4Windows
|
||||
{
|
||||
if (lBProgramPath.Text != "")
|
||||
Save(lBProgramPath.Text);
|
||||
|
||||
bnSave.Enabled = false;
|
||||
}
|
||||
|
||||
@ -328,8 +351,10 @@ namespace DS4Windows
|
||||
if (lBProgramPath.Text != "")
|
||||
LoadP(lBProgramPath.Text);
|
||||
else
|
||||
{
|
||||
for (int i = 0; i < 4; i++)
|
||||
cbs[i].SelectedIndex = cbs[i].Items.Count - 1;
|
||||
}
|
||||
}
|
||||
|
||||
private void bnDelete_Click(object sender, EventArgs e)
|
||||
@ -359,41 +384,24 @@ namespace DS4Windows
|
||||
form.RefreshAutoProfilesPage();
|
||||
}
|
||||
|
||||
|
||||
private void addSteamGamesToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
private async void addSteamGamesToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
var AppCollectionThread = new System.Threading.Thread(() => GetApps(steamgamesdir));
|
||||
AppCollectionThread.IsBackground = true;
|
||||
AppCollectionThread.Start();
|
||||
}
|
||||
catch { }
|
||||
bnAddPrograms.Text = Properties.Resources.Loading;
|
||||
bnAddPrograms.Enabled = false;
|
||||
cMSPrograms.Items.Remove(addSteamGamesToolStripMenuItem);
|
||||
Timer appstimer = new Timer();
|
||||
appstimer.Start();
|
||||
appstimer.Tick += appstimer_Tick;
|
||||
await Task.Run(() => GetApps(steamgamesdir));
|
||||
AddLoadedApps();
|
||||
}
|
||||
|
||||
private void addDirectoryToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
private async void addDirectoryToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
FolderBrowserDialog fbd = new FolderBrowserDialog();
|
||||
if (fbd.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
try
|
||||
{
|
||||
var AppCollectionThread = new System.Threading.Thread(() => GetApps(fbd.SelectedPath));
|
||||
AppCollectionThread.IsBackground = true;
|
||||
AppCollectionThread.Start();
|
||||
}
|
||||
catch { }
|
||||
bnAddPrograms.Text = Properties.Resources.Loading;
|
||||
bnAddPrograms.Enabled = false;
|
||||
Timer appstimer = new Timer();
|
||||
appstimer.Start();
|
||||
appstimer.Tick += appstimer_Tick;
|
||||
await Task.Run(() => GetApps(fbd.SelectedPath));
|
||||
AddLoadedApps();
|
||||
}
|
||||
}
|
||||
|
||||
@ -406,6 +414,7 @@ namespace DS4Windows
|
||||
{
|
||||
file = GetTargetPath(file);
|
||||
}
|
||||
|
||||
lBProgramPath.Text = file;
|
||||
iLIcons.Images.Add(Icon.ExtractAssociatedIcon(file));
|
||||
ListViewItem lvi = new ListViewItem(Path.GetFileNameWithoutExtension(file), lVPrograms.Items.Count);
|
||||
@ -414,39 +423,22 @@ namespace DS4Windows
|
||||
}
|
||||
}
|
||||
|
||||
private void addOriginGamesToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
private async void addOriginGamesToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
var AppCollectionThread = new System.Threading.Thread(() => GetApps(origingamesdir));
|
||||
AppCollectionThread.IsBackground = true;
|
||||
AppCollectionThread.Start();
|
||||
}
|
||||
catch { }
|
||||
bnAddPrograms.Text = Properties.Resources.Loading;
|
||||
bnAddPrograms.Enabled = false;
|
||||
cMSPrograms.Items.Remove(addOriginGamesToolStripMenuItem);
|
||||
Timer appstimer = new Timer();
|
||||
appstimer.Start();
|
||||
appstimer.Tick += appstimer_Tick;
|
||||
await Task.Run(() => GetApps(origingamesdir));
|
||||
AddLoadedApps();
|
||||
}
|
||||
|
||||
private void addProgramsFromStartMenuToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
private async void addProgramsFromStartMenuToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
//MessageBox.Show(Environment.GetFolderPath(Environment.SpecialFolder.StartMenu) + "\\Programs");
|
||||
try
|
||||
{
|
||||
var AppCollectionThread = new System.Threading.Thread(() => GetShortcuts(Environment.GetFolderPath(Environment.SpecialFolder.StartMenu) + "\\Programs"));
|
||||
AppCollectionThread.IsBackground = true;
|
||||
AppCollectionThread.Start();
|
||||
}
|
||||
catch { }
|
||||
bnAddPrograms.Text = Properties.Resources.Loading;
|
||||
bnAddPrograms.Enabled = false;
|
||||
cMSPrograms.Items.Remove(addProgramsFromStartMenuToolStripMenuItem);
|
||||
Timer appstimer = new Timer();
|
||||
appstimer.Start();
|
||||
appstimer.Tick += appstimer_Tick;
|
||||
await Task.Run(() => GetShortcuts(Environment.GetFolderPath(Environment.SpecialFolder.StartMenu) + "\\Programs"));
|
||||
AddLoadedApps();
|
||||
}
|
||||
|
||||
public static string GetTargetPath(string filePath)
|
||||
@ -486,36 +478,52 @@ namespace DS4Windows
|
||||
|
||||
public static string ResolveShortcut(string filePath)
|
||||
{
|
||||
// IWshRuntimeLibrary is in the COM library "Windows Script Host Object Model"
|
||||
IWshRuntimeLibrary.WshShell shell = new IWshRuntimeLibrary.WshShell();
|
||||
Type t = Type.GetTypeFromCLSID(new Guid("72C24DD5-D70A-438B-8A42-98424B88AFB8")); // Windows Script Host Shell Object
|
||||
dynamic shell = Activator.CreateInstance(t);
|
||||
string result;
|
||||
|
||||
try
|
||||
{
|
||||
IWshRuntimeLibrary.IWshShortcut shortcut = (IWshRuntimeLibrary.IWshShortcut)shell.CreateShortcut(filePath);
|
||||
return shortcut.TargetPath;
|
||||
var shortcut = shell.CreateShortcut(filePath);
|
||||
result = shortcut.TargetPath;
|
||||
Marshal.FinalReleaseComObject(shortcut);
|
||||
}
|
||||
catch (COMException)
|
||||
{
|
||||
// A COMException is thrown if the file is not a valid shortcut (.lnk) file
|
||||
return null;
|
||||
result = null;
|
||||
}
|
||||
finally
|
||||
{
|
||||
Marshal.FinalReleaseComObject(shell);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public static string ResolveShortcutAndArgument(string filePath)
|
||||
{
|
||||
// IWshRuntimeLibrary is in the COM library "Windows Script Host Object Model"
|
||||
IWshRuntimeLibrary.WshShell shell = new IWshRuntimeLibrary.WshShell();
|
||||
Type t = Type.GetTypeFromCLSID(new Guid("72C24DD5-D70A-438B-8A42-98424B88AFB8")); // Windows Script Host Shell Object
|
||||
dynamic shell = Activator.CreateInstance(t);
|
||||
string result;
|
||||
|
||||
try
|
||||
{
|
||||
IWshRuntimeLibrary.IWshShortcut shortcut = (IWshRuntimeLibrary.IWshShortcut)shell.CreateShortcut(filePath);
|
||||
return shortcut.TargetPath + " " + shortcut.Arguments;
|
||||
var shortcut = shell.CreateShortcut(filePath);
|
||||
result = shortcut.TargetPath + " " + shortcut.Arguments;
|
||||
Marshal.FinalReleaseComObject(shortcut);
|
||||
}
|
||||
catch (COMException)
|
||||
{
|
||||
// A COMException is thrown if the file is not a valid shortcut (.lnk) file
|
||||
return null;
|
||||
result = null;
|
||||
}
|
||||
finally
|
||||
{
|
||||
Marshal.FinalReleaseComObject(shell);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
private void cBTurnOffDS4W_CheckedChanged(object sender, EventArgs e)
|
||||
@ -545,6 +553,7 @@ namespace DS4Windows
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class NativeMethods2
|
||||
{
|
||||
[DllImport("msi.dll", CharSet = CharSet.Auto)]
|
||||
|
@ -118,26 +118,101 @@
|
||||
<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="bnAddPrograms.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>5, 2</value>
|
||||
</data>
|
||||
<data name="bnAddPrograms.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>130, 23</value>
|
||||
<value>98, 19</value>
|
||||
</data>
|
||||
<data name="bnAddPrograms.Text" xml:space="preserve">
|
||||
<value>Programme hinzufügen</value>
|
||||
</data>
|
||||
<data name="lBProgramPath.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>519, 195</value>
|
||||
</data>
|
||||
<data name="lBProgramPath.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>205, 18</value>
|
||||
</data>
|
||||
<data name="cBProfile1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>609, 28</value>
|
||||
</data>
|
||||
<data name="cBProfile1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>121, 21</value>
|
||||
</data>
|
||||
<data name="cBProfile2.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>609, 55</value>
|
||||
</data>
|
||||
<data name="cBProfile2.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>121, 21</value>
|
||||
</data>
|
||||
<data name="cBProfile3.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>609, 82</value>
|
||||
</data>
|
||||
<data name="cBProfile3.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>121, 21</value>
|
||||
</data>
|
||||
<data name="cBProfile4.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>609, 109</value>
|
||||
</data>
|
||||
<data name="cBProfile4.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>121, 21</value>
|
||||
</data>
|
||||
<data name="bnSave.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>663, 2</value>
|
||||
</data>
|
||||
<data name="bnSave.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>67, 23</value>
|
||||
</data>
|
||||
<data name="bnSave.Text" xml:space="preserve">
|
||||
<value>Speichern</value>
|
||||
</data>
|
||||
<data name="lBController1.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>516, 31</value>
|
||||
</data>
|
||||
<data name="lBController1.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>60, 13</value>
|
||||
</data>
|
||||
<data name="lBController2.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>516, 58</value>
|
||||
</data>
|
||||
<data name="lBController2.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>60, 13</value>
|
||||
</data>
|
||||
<data name="lBController3.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>516, 85</value>
|
||||
</data>
|
||||
<data name="lBController3.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>60, 13</value>
|
||||
</data>
|
||||
<data name="lBController4.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>516, 112</value>
|
||||
</data>
|
||||
<data name="lBController4.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>60, 13</value>
|
||||
</data>
|
||||
<data name="bnDelete.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>590, 2</value>
|
||||
</data>
|
||||
<data name="bnDelete.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>67, 23</value>
|
||||
</data>
|
||||
<data name="bnDelete.Text" xml:space="preserve">
|
||||
<value>Entfernen</value>
|
||||
</data>
|
||||
<data name="PathHeader.Text" xml:space="preserve">
|
||||
<value>Verzeichnis</value>
|
||||
</data>
|
||||
<data name="lVPrograms.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>5, 28</value>
|
||||
</data>
|
||||
<data name="lVPrograms.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>505, 190</value>
|
||||
</data>
|
||||
<data name="pBProfilesTip.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>818, 167</value>
|
||||
<value>614, 136</value>
|
||||
</data>
|
||||
<data name="pBProfilesTip.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>147, 17</value>
|
||||
<value>110, 13</value>
|
||||
</data>
|
||||
<data name="pBProfilesTip.Text" xml:space="preserve">
|
||||
<value>Profile hier auswählen</value>
|
||||
@ -147,63 +222,66 @@
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name="bnHideUnchecked.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>141, 2</value>
|
||||
<value>106, 2</value>
|
||||
</data>
|
||||
<data name="bnHideUnchecked.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>172, 23</value>
|
||||
<value>129, 19</value>
|
||||
</data>
|
||||
<data name="bnHideUnchecked.Text" xml:space="preserve">
|
||||
<value>Abgewählte verstecken</value>
|
||||
</data>
|
||||
<data name="addProgramsFromStartMenuToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>275, 26</value>
|
||||
<value>229, 22</value>
|
||||
</data>
|
||||
<data name="addProgramsFromStartMenuToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Startmenü Programm hinzufügen</value>
|
||||
</data>
|
||||
<data name="addSteamGamesToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>275, 26</value>
|
||||
<value>229, 22</value>
|
||||
</data>
|
||||
<data name="addSteamGamesToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Steam Spiel hinzufügen</value>
|
||||
</data>
|
||||
<data name="addOriginGamesToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>275, 26</value>
|
||||
<value>229, 22</value>
|
||||
</data>
|
||||
<data name="addOriginGamesToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Origin Spiel hinzufügen</value>
|
||||
</data>
|
||||
<data name="addDirectoryToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>275, 26</value>
|
||||
<value>229, 22</value>
|
||||
</data>
|
||||
<data name="addDirectoryToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Verzeichnis Hinzufügen</value>
|
||||
</data>
|
||||
<data name="browseForOtherProgramsToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>275, 26</value>
|
||||
<value>229, 22</value>
|
||||
</data>
|
||||
<data name="browseForOtherProgramsToolStripMenuItem.Text" xml:space="preserve">
|
||||
<value>Suche nach anderen Programmen</value>
|
||||
</data>
|
||||
<data name="cMSPrograms.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>276, 134</value>
|
||||
<value>230, 114</value>
|
||||
</data>
|
||||
<data name="cBTurnOffDS4W.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>514, 152</value>
|
||||
</data>
|
||||
<data name="cBTurnOffDS4W.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>2, 2, 2, 2</value>
|
||||
</data>
|
||||
<data name="cBTurnOffDS4W.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>215, 41</value>
|
||||
</data>
|
||||
<data name="cBTurnOffDS4W.Text" xml:space="preserve">
|
||||
<value>DS4Windows temporär ausschalten</value>
|
||||
</data>
|
||||
<data name="lBController1.Text" xml:space="preserve">
|
||||
<value>Controller 1</value>
|
||||
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
||||
<value>6, 13</value>
|
||||
</data>
|
||||
<data name="lBController2.Text" xml:space="preserve">
|
||||
<value>Controller 2</value>
|
||||
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||
<value>736, 222</value>
|
||||
</data>
|
||||
<data name="lBController3.Text" xml:space="preserve">
|
||||
<value>Controller 3</value>
|
||||
</data>
|
||||
<data name="lBController4.Text" xml:space="preserve">
|
||||
<value>Controller 4</value>
|
||||
</data>
|
||||
<data name="nameHeader.Text" xml:space="preserve">
|
||||
<value>Name</value>
|
||||
<data name="$this.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 4, 4, 4</value>
|
||||
</data>
|
||||
</root>
|
@ -128,25 +128,25 @@
|
||||
<value>70, 13</value>
|
||||
</data>
|
||||
<data name="lBController1.Text" xml:space="preserve">
|
||||
<value>Controlador 1</value>
|
||||
<value>Control 1</value>
|
||||
</data>
|
||||
<data name="lBController2.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>70, 13</value>
|
||||
</data>
|
||||
<data name="lBController2.Text" xml:space="preserve">
|
||||
<value>Controlador 2</value>
|
||||
<value>Control 2</value>
|
||||
</data>
|
||||
<data name="lBController3.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>70, 13</value>
|
||||
</data>
|
||||
<data name="lBController3.Text" xml:space="preserve">
|
||||
<value>Controlador 3</value>
|
||||
<value>Control 3</value>
|
||||
</data>
|
||||
<data name="lBController4.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>70, 13</value>
|
||||
</data>
|
||||
<data name="lBController4.Text" xml:space="preserve">
|
||||
<value>Controlador 4</value>
|
||||
<value>Control 4</value>
|
||||
</data>
|
||||
<data name="bnDelete.Text" xml:space="preserve">
|
||||
<value>Quitar</value>
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,3 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
<configuration>
|
||||
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/></startup></configuration>
|
391
DS4Windows/DS4Library/Crc32.cs
Normal file
391
DS4Windows/DS4Library/Crc32.cs
Normal file
@ -0,0 +1,391 @@
|
||||
/*
|
||||
Modified version of http://damieng.com/blog/2006/08/08/calculating_crc32_in_c_and_net
|
||||
Using a default table improves drastically the performance of the algorithm.
|
||||
Credit for the implementation should be awarded to Damien Guard.
|
||||
Modified under the intention of creating a Nuget package
|
||||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
|
||||
Originally published at http://damieng.com/blog/2006/08/08/calculating_crc32_in_c_and_net
|
||||
|
||||
*/
|
||||
using System;
|
||||
using System.Security.Cryptography;
|
||||
|
||||
namespace DS4Windows
|
||||
{
|
||||
/// <summary>
|
||||
/// Implements a 32-bit CRC hash algorithm compatible with Zip etc.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Crc32 should only be used for backward compatibility with older file formats
|
||||
/// and algorithms. It is not secure enough for new applications.
|
||||
/// If you need to call multiple times for the same data either use the HashAlgorithm
|
||||
/// interface or remember that the result of one Compute call needs to be ~ (XOR) before
|
||||
/// being passed in as the seed for the next Compute call.
|
||||
/// </remarks>
|
||||
public sealed class Crc32Algorithm : HashAlgorithm
|
||||
{
|
||||
public const uint DefaultPolynomial = 0xedb88320u;
|
||||
public const uint DefaultSeed = 0xffffffffu;
|
||||
|
||||
private static readonly uint[] defaultTable =
|
||||
{
|
||||
0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA,
|
||||
0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3,
|
||||
0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988,
|
||||
0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91,
|
||||
0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE,
|
||||
0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7,
|
||||
0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC,
|
||||
0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5,
|
||||
0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172,
|
||||
0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B,
|
||||
0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940,
|
||||
0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59,
|
||||
0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116,
|
||||
0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F,
|
||||
0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924,
|
||||
0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D,
|
||||
0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A,
|
||||
0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433,
|
||||
0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818,
|
||||
0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01,
|
||||
0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E,
|
||||
0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457,
|
||||
0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C,
|
||||
0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65,
|
||||
0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2,
|
||||
0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB,
|
||||
0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0,
|
||||
0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9,
|
||||
0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086,
|
||||
0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F,
|
||||
0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4,
|
||||
0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD,
|
||||
0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A,
|
||||
0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683,
|
||||
0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8,
|
||||
0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1,
|
||||
0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE,
|
||||
0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7,
|
||||
0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC,
|
||||
0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5,
|
||||
0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252,
|
||||
0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B,
|
||||
0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60,
|
||||
0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79,
|
||||
0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236,
|
||||
0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F,
|
||||
0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04,
|
||||
0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D,
|
||||
0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A,
|
||||
0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713,
|
||||
0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38,
|
||||
0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21,
|
||||
0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E,
|
||||
0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777,
|
||||
0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C,
|
||||
0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45,
|
||||
0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2,
|
||||
0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB,
|
||||
0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0,
|
||||
0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9,
|
||||
0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6,
|
||||
0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF,
|
||||
0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94,
|
||||
0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D
|
||||
};
|
||||
|
||||
private static uint[] testLook = new uint[16 * 256];
|
||||
private static bool secondTablePop = false;
|
||||
|
||||
private readonly uint _seed;
|
||||
private readonly uint[] _table;
|
||||
private uint _hash;
|
||||
|
||||
public Crc32Algorithm()
|
||||
: this(DefaultPolynomial, DefaultSeed)
|
||||
{
|
||||
}
|
||||
|
||||
public Crc32Algorithm(uint polynomial, uint seed)
|
||||
{
|
||||
_table = InitializeTable(polynomial);
|
||||
_seed = _hash = seed;
|
||||
}
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
_hash = _seed;
|
||||
}
|
||||
|
||||
protected override void HashCore(byte[] buffer, int start, int length)
|
||||
{
|
||||
_hash = CalculateHash(_table, _hash, buffer, start, length);
|
||||
}
|
||||
|
||||
protected override byte[] HashFinal()
|
||||
{
|
||||
var hashBuffer = UintToBigEndianBytes(~_hash);
|
||||
HashValue = hashBuffer;
|
||||
return hashBuffer;
|
||||
}
|
||||
|
||||
public override int HashSize { get { return 32; } }
|
||||
|
||||
public static uint Compute(byte[] buffer)
|
||||
{
|
||||
return ~CalculateHash(defaultTable, DefaultSeed, buffer, 0, buffer.Length);
|
||||
}
|
||||
|
||||
public static uint Compute(uint seed, byte[] buffer)
|
||||
{
|
||||
return ~CalculateHash(defaultTable, seed, buffer, 0, buffer.Length);
|
||||
}
|
||||
|
||||
public static uint Compute(uint polynomial, uint seed, byte[] buffer)
|
||||
{
|
||||
return ~CalculateHash(InitializeTable(polynomial), seed, buffer, 0, buffer.Length);
|
||||
}
|
||||
|
||||
public static uint[] InitializeTable(uint polynomial)
|
||||
{
|
||||
if (polynomial == DefaultPolynomial)
|
||||
{
|
||||
if (!secondTablePop)
|
||||
{
|
||||
for (int i = 0; i <= 0xFF; i++)
|
||||
{
|
||||
testLook[0 + i] = defaultTable[i];
|
||||
testLook[256+i] = (defaultTable[i] >> 8) ^ defaultTable[defaultTable[i] & 0xFF];
|
||||
testLook[512 + i] = (testLook[256 + i] >> 8) ^ defaultTable[testLook[256 + i] & 0xFF];
|
||||
testLook[768 + i] = (testLook[512 + i] >> 8) ^ defaultTable[testLook[512 + i] & 0xFF];
|
||||
|
||||
testLook[1024 + i] = (testLook[768 + i] >> 8) ^ defaultTable[testLook[768 + i] & 0xFF];
|
||||
testLook[1280 + i] = (testLook[1024 + i] >> 8) ^ defaultTable[testLook[1024 + i] & 0xFF];
|
||||
testLook[1536 + i] = (testLook[1280 + i] >> 8) ^ defaultTable[testLook[1280 + i] & 0xFF];
|
||||
testLook[1792 + i] = (testLook[1536 + i] >> 8) ^ defaultTable[testLook[1536 + i] & 0xFF];
|
||||
|
||||
testLook[2048 + i] = (testLook[1792 + i] >> 8) ^ defaultTable[testLook[1792 + i] & 0xFF];
|
||||
testLook[2304 + i] = (testLook[2048 + i] >> 8) ^ defaultTable[testLook[2048 + i] & 0xFF];
|
||||
testLook[2560 + i] = (testLook[2304 + i] >> 8) ^ defaultTable[testLook[2304 + i] & 0xFF];
|
||||
testLook[2816 + i] = (testLook[2560 + i] >> 8) ^ defaultTable[testLook[2560 + i] & 0xFF];
|
||||
|
||||
testLook[3072 + i] = (testLook[2816 + i] >> 8) ^ defaultTable[testLook[2816 + i] & 0xFF];
|
||||
testLook[3328 + i] = (testLook[3072 + i] >> 8) ^ defaultTable[testLook[3072 + i] & 0xFF];
|
||||
testLook[3584 + i] = (testLook[3328 + i] >> 8) ^ defaultTable[testLook[3328 + i] & 0xFF];
|
||||
testLook[3840 + i] = (testLook[3584 + i] >> 8) ^ defaultTable[testLook[3584 + i] & 0xFF];
|
||||
}
|
||||
|
||||
secondTablePop = true;
|
||||
}
|
||||
|
||||
return defaultTable;
|
||||
}
|
||||
|
||||
|
||||
var createTable = new uint[256];
|
||||
for (uint i = 0; i < 256; i++)
|
||||
{
|
||||
var entry = i;
|
||||
for (var j = 0; j < 8; j++)
|
||||
entry = ((entry & 1) == 1) ? (entry >> 1) ^ polynomial : (entry >> 1);
|
||||
createTable[i] = entry;
|
||||
}
|
||||
|
||||
return createTable;
|
||||
}
|
||||
|
||||
private static uint CalculateHash(uint[] table, uint seed, byte[] buffer, int start, int size)
|
||||
{
|
||||
var crc = seed;
|
||||
for (var i = start; i < size - start; i++)
|
||||
crc = (crc >> 8) ^ table[buffer[i] ^ crc & 0xff];
|
||||
return crc;
|
||||
}
|
||||
|
||||
public static unsafe uint CalculateBasicHash(ref uint seed, ref byte[] buffer, int offset, int size)
|
||||
{
|
||||
uint crc = seed;
|
||||
int i = offset;
|
||||
|
||||
fixed (byte* byteP = buffer)
|
||||
fixed (uint* byteT = testLook)
|
||||
{
|
||||
while (size >= 16)
|
||||
{
|
||||
uint one = (byteP[i++] |
|
||||
(uint)(byteP[i++] << 8) |
|
||||
(uint)(byteP[i++] << 16) |
|
||||
(uint)(byteP[i++] << 24)) ^ crc;
|
||||
uint two = byteP[i++] |
|
||||
(uint)(byteP[i++] << 8) |
|
||||
(uint)(byteP[i++] << 16) |
|
||||
(uint)(byteP[i++] << 24);
|
||||
uint three = (byteP[i++] |
|
||||
(uint)(byteP[i++] << 8) |
|
||||
(uint)(byteP[i++] << 16) |
|
||||
(uint)(byteP[i++] << 24));
|
||||
uint four = byteP[i++] |
|
||||
(uint)(byteP[i++] << 8) |
|
||||
(uint)(byteP[i++] << 16) |
|
||||
(uint)(byteP[i++] << 24);
|
||||
|
||||
crc = byteT[3840 + (one & 0xFF)] ^
|
||||
byteT[3584 + ((one >> 8) & 0xFF)] ^
|
||||
byteT[3328 + ((one >> 16) & 0xFF)] ^
|
||||
byteT[3072 + ((one >> 24) & 0xFF)] ^
|
||||
byteT[2816 + (two & 0xFF)] ^
|
||||
byteT[2560 + ((two >> 8) & 0xFF)] ^
|
||||
byteT[2304 + ((two >> 16) & 0xFF)] ^
|
||||
byteT[2048 + ((two >> 24) & 0xFF)] ^
|
||||
byteT[1792 + (three & 0xFF)] ^
|
||||
byteT[1536 + ((three >> 8) & 0xFF)] ^
|
||||
byteT[1280 + ((three >> 16) & 0xFF)] ^
|
||||
byteT[1024 + ((three >> 24) & 0xFF)] ^
|
||||
byteT[768 + (four & 0xFF)] ^
|
||||
byteT[512 + ((four >> 8) & 0xFF)] ^
|
||||
byteT[256 + ((four >> 16) & 0xFF)] ^
|
||||
byteT[(four >> 24) & 0xFF];
|
||||
|
||||
size -= 16;
|
||||
}
|
||||
|
||||
while (size >= 8)
|
||||
{
|
||||
uint one8 = (byteP[i++] |
|
||||
(uint)(byteP[i++] << 8) |
|
||||
(uint)(byteP[i++] << 16) |
|
||||
(uint)(byteP[i++] << 24)) ^ crc;
|
||||
uint two8 = byteP[i++] |
|
||||
(uint)(byteP[i++] << 8) |
|
||||
(uint)(byteP[i++] << 16) |
|
||||
(uint)(byteP[i++] << 24);
|
||||
crc = byteT[1792 + (one8 & 0xFF)] ^
|
||||
byteT[1536 + ((one8 >> 8) & 0xFF)] ^
|
||||
byteT[1280 + ((one8 >> 16) & 0xFF)] ^
|
||||
byteT[1024 + (one8 >> 24)] ^
|
||||
byteT[768 + (two8 & 0xFF)] ^
|
||||
byteT[512 + ((two8 >> 8) & 0xFF)] ^
|
||||
byteT[256 + ((two8 >> 16) & 0xFF)] ^
|
||||
byteT[two8 >> 24];
|
||||
|
||||
size -= 8;
|
||||
}
|
||||
|
||||
while (--size >= 0)
|
||||
{
|
||||
crc = (crc >> 8) ^ byteT[(crc & 0xFF) ^ byteP[i++]];// i++;
|
||||
}
|
||||
}
|
||||
|
||||
return crc;
|
||||
}
|
||||
|
||||
public static unsafe uint CalculateFasterBTHash(ref uint seed, ref byte[] buffer, ref int start, ref int size)
|
||||
{
|
||||
/*uint crc = seed;
|
||||
for (int i = start; i < size + start; i++)
|
||||
crc = (crc >> 8) ^ defaultTable[buffer[i] ^ crc & 0xff];
|
||||
return crc;
|
||||
*/
|
||||
|
||||
uint crc = seed;
|
||||
int i = start;
|
||||
int bufsize = size;
|
||||
//while (bufsize >= 16)
|
||||
fixed (byte* byteP = buffer)
|
||||
fixed (uint* byteT = testLook)
|
||||
{
|
||||
for (int j = 0; j < 4; j++)
|
||||
{
|
||||
uint one = (byteP[i++] |
|
||||
(uint)(byteP[i++] << 8) |
|
||||
(uint)(byteP[i++] << 16) |
|
||||
(uint)(byteP[i++] << 24)) ^ crc;
|
||||
uint two = byteP[i++] |
|
||||
(uint)(byteP[i++] << 8) |
|
||||
(uint)(byteP[i++] << 16) |
|
||||
(uint)(byteP[i++] << 24);
|
||||
uint three = (byteP[i++] |
|
||||
(uint)(byteP[i++] << 8) |
|
||||
(uint)(byteP[i++] << 16) |
|
||||
(uint)(byteP[i++] << 24));
|
||||
uint four = byteP[i++] |
|
||||
(uint)(byteP[i++] << 8) |
|
||||
(uint)(byteP[i++] << 16) |
|
||||
(uint)(byteP[i++] << 24);
|
||||
|
||||
crc = byteT[3840+(one & 0xFF)] ^
|
||||
byteT[3584+((one >> 8) & 0xFF)] ^
|
||||
byteT[3328+((one >> 16) & 0xFF)] ^
|
||||
byteT[3072+((one >> 24) & 0xFF)] ^
|
||||
byteT[2816+(two & 0xFF)] ^
|
||||
byteT[2560+((two >> 8) & 0xFF)] ^
|
||||
byteT[2304+((two >> 16) & 0xFF)] ^
|
||||
byteT[2048+((two >> 24) & 0xFF)] ^
|
||||
byteT[1792+(three & 0xFF)] ^
|
||||
byteT[1536+((three >> 8) & 0xFF)] ^
|
||||
byteT[1280+((three >> 16) & 0xFF)] ^
|
||||
byteT[1024+((three >> 24) & 0xFF)] ^
|
||||
byteT[768+(four & 0xFF)] ^
|
||||
byteT[512+((four >> 8) & 0xFF)] ^
|
||||
byteT[256+((four >> 16) & 0xFF)] ^
|
||||
byteT[(four >> 24) & 0xFF];
|
||||
|
||||
bufsize -= 16;
|
||||
}
|
||||
|
||||
//while (bufsize >= 8)
|
||||
//if (bufsize >= 8)
|
||||
|
||||
uint one8 = (byteP[i++] |
|
||||
(uint)(byteP[i++] << 8) |
|
||||
(uint)(byteP[i++] << 16) |
|
||||
(uint)(byteP[i++] << 24)) ^ crc;
|
||||
uint two8 = byteP[i++] |
|
||||
(uint)(byteP[i++] << 8) |
|
||||
(uint)(byteP[i++] << 16) |
|
||||
(uint)(byteP[i++] << 24);
|
||||
crc = byteT[1792+(one8 & 0xFF)] ^
|
||||
byteT[1536+((one8 >> 8) & 0xFF)] ^
|
||||
byteT[1280+((one8 >> 16) & 0xFF)] ^
|
||||
byteT[1024+(one8 >> 24)] ^
|
||||
byteT[768+(two8 & 0xFF)] ^
|
||||
byteT[512+((two8 >> 8) & 0xFF)] ^
|
||||
byteT[256+((two8 >> 16) & 0xFF)] ^
|
||||
byteT[two8 >> 24];
|
||||
|
||||
bufsize -= 8;
|
||||
/*crc ^= buffer[i++] |
|
||||
(uint)(buffer[i++] << 8) |
|
||||
(uint)(buffer[i++] << 16) |
|
||||
(uint)(buffer[i++] << 24);// i = i + 4;
|
||||
//crc ^= buffer[i];
|
||||
crc = secondLook[3, (crc & 0xFF)] ^
|
||||
secondLook[2, ((crc >> 8) & 0xFF)] ^
|
||||
secondLook[1, ((crc >> 16) & 0xFF)] ^
|
||||
defaultTable[crc >> 24];
|
||||
bufsize -= 4;
|
||||
*/
|
||||
|
||||
|
||||
//while (--bufsize >= 0)
|
||||
//{
|
||||
crc = (crc >> 8) ^ byteT[(crc & 0xFF) ^ byteP[i++]];// i++;
|
||||
crc = (crc >> 8) ^ byteT[(crc & 0xFF) ^ byteP[i++]];// i++;
|
||||
//}
|
||||
}
|
||||
|
||||
return crc;
|
||||
}
|
||||
|
||||
private static byte[] UintToBigEndianBytes(uint uint32)
|
||||
{
|
||||
var result = BitConverter.GetBytes(uint32);
|
||||
if (BitConverter.IsLittleEndian)
|
||||
Array.Reverse(result);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
266
DS4Windows/DS4Library/DS4Audio.cs
Normal file
266
DS4Windows/DS4Library/DS4Audio.cs
Normal file
@ -0,0 +1,266 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using DS4Windows.DS4Library.CoreAudio;
|
||||
|
||||
namespace DS4Windows.DS4Library
|
||||
{
|
||||
public class DS4Audio : IAudioEndpointVolumeCallback
|
||||
{
|
||||
private IAudioEndpointVolume endpointVolume;
|
||||
|
||||
private static Guid IID_IAudioEndpointVolume = new Guid("5CDF2C82-841E-4546-9722-0CF74078229A");
|
||||
private static readonly PropertyKey PKEY_Device_FriendlyName =
|
||||
new PropertyKey(new Guid(unchecked((int)0xa45c254e), unchecked((short)0xdf1c), 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0), 14);
|
||||
|
||||
public uint vol;
|
||||
public uint Volume
|
||||
{
|
||||
get
|
||||
{
|
||||
return vol;
|
||||
}
|
||||
}
|
||||
|
||||
public uint getVolume()
|
||||
{
|
||||
return vol;
|
||||
}
|
||||
|
||||
public void RefreshVolume()
|
||||
{
|
||||
float pfLevel = 0;
|
||||
|
||||
if (endpointVolume != null)
|
||||
endpointVolume.GetMasterVolumeLevelScalar(out pfLevel);
|
||||
vol = Convert.ToUInt32((75 - 20) * (--pfLevel * pfLevel * pfLevel + 1) + 20);
|
||||
}
|
||||
|
||||
public void OnNotify(IntPtr pNotify)
|
||||
{
|
||||
RefreshVolume();
|
||||
}
|
||||
|
||||
public DS4Audio(DataFlow audioFlags = DataFlow.Render)
|
||||
{
|
||||
var audioEnumerator = new MMDeviceEnumeratorComObject() as IMMDeviceEnumerator;
|
||||
IMMDeviceCollection audioDevices;
|
||||
audioEnumerator.EnumAudioEndpoints(audioFlags, DeviceState.Active, out audioDevices);
|
||||
|
||||
int numAudioDevices;
|
||||
Marshal.ThrowExceptionForHR(audioDevices.GetCount(out numAudioDevices));
|
||||
|
||||
for (int deviceNumber = 0; deviceNumber < numAudioDevices; ++deviceNumber)
|
||||
{
|
||||
IMMDevice audioDevice;
|
||||
Marshal.ThrowExceptionForHR(audioDevices.Item(deviceNumber, out audioDevice));
|
||||
string deviceName = GetAudioDeviceName(ref audioDevice);
|
||||
|
||||
if (deviceName.Contains("DUALSHOCK®4 USB Wireless Adaptor"))
|
||||
{
|
||||
object interfacePointer;
|
||||
Marshal.ThrowExceptionForHR(audioDevice.Activate(ref IID_IAudioEndpointVolume, ClsCtx.ALL, IntPtr.Zero, out interfacePointer));
|
||||
endpointVolume = interfacePointer as IAudioEndpointVolume;
|
||||
endpointVolume.RegisterControlChangeNotify(this);
|
||||
}
|
||||
else if (deviceName.Contains("Wireless Controller"))
|
||||
{
|
||||
object interfacePointer;
|
||||
Marshal.ThrowExceptionForHR(audioDevice.Activate(ref IID_IAudioEndpointVolume, ClsCtx.ALL, IntPtr.Zero, out interfacePointer));
|
||||
endpointVolume = interfacePointer as IAudioEndpointVolume;
|
||||
endpointVolume.RegisterControlChangeNotify(this);
|
||||
}
|
||||
|
||||
RefreshVolume();
|
||||
Marshal.ReleaseComObject(audioDevice);
|
||||
}
|
||||
|
||||
Marshal.ReleaseComObject(audioDevices);
|
||||
Marshal.ReleaseComObject(audioEnumerator);
|
||||
}
|
||||
|
||||
~DS4Audio()
|
||||
{
|
||||
if (endpointVolume != null)
|
||||
{
|
||||
endpointVolume.UnregisterControlChangeNotify(this);
|
||||
Marshal.ReleaseComObject(endpointVolume);
|
||||
endpointVolume = null;
|
||||
}
|
||||
}
|
||||
|
||||
private string GetAudioDeviceName(ref IMMDevice audioDevice)
|
||||
{
|
||||
IPropertyStore propertyStore;
|
||||
Marshal.ThrowExceptionForHR(audioDevice.OpenPropertyStore(StorageAccessMode.Read, out propertyStore));
|
||||
|
||||
int numProperties;
|
||||
Marshal.ThrowExceptionForHR(propertyStore.GetCount(out numProperties));
|
||||
|
||||
string deviceName = String.Empty;
|
||||
|
||||
for (int propertyNum = 0; propertyNum < numProperties; ++propertyNum)
|
||||
{
|
||||
PropertyKey propertyKey;
|
||||
Marshal.ThrowExceptionForHR(propertyStore.GetAt(propertyNum, out propertyKey));
|
||||
|
||||
if ((propertyKey.formatId == PKEY_Device_FriendlyName.formatId) && (propertyKey.propertyId == PKEY_Device_FriendlyName.propertyId))
|
||||
{
|
||||
PropVariant propertyValue;
|
||||
Marshal.ThrowExceptionForHR(propertyStore.GetValue(ref propertyKey, out propertyValue));
|
||||
deviceName = Marshal.PtrToStringUni(propertyValue.pointerValue);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Marshal.ReleaseComObject(propertyStore);
|
||||
return deviceName;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
namespace DS4Windows.DS4Library.CoreAudio
|
||||
{
|
||||
public enum DataFlow
|
||||
{
|
||||
Render,
|
||||
Capture,
|
||||
All
|
||||
};
|
||||
|
||||
[Flags]
|
||||
public enum DeviceState
|
||||
{
|
||||
Active = 0x00000001,
|
||||
Disabled = 0x00000002,
|
||||
NotPresent = 0x00000004,
|
||||
Unplugged = 0x00000008,
|
||||
All = 0x0000000F
|
||||
}
|
||||
|
||||
enum StorageAccessMode
|
||||
{
|
||||
Read,
|
||||
Write,
|
||||
ReadWrite
|
||||
}
|
||||
|
||||
[Flags]
|
||||
public enum ClsCtx
|
||||
{
|
||||
INPROC_SERVER = 0x1,
|
||||
INPROC_HANDLER = 0x2,
|
||||
LOCAL_SERVER = 0x4,
|
||||
INPROC_SERVER16 = 0x8,
|
||||
REMOTE_SERVER = 0x10,
|
||||
INPROC_HANDLER16 = 0x20,
|
||||
NO_CODE_DOWNLOAD = 0x400,
|
||||
NO_CUSTOM_MARSHAL = 0x1000,
|
||||
ENABLE_CODE_DOWNLOAD = 0x2000,
|
||||
NO_FAILURE_LOG = 0x4000,
|
||||
DISABLE_AAA = 0x8000,
|
||||
ENABLE_AAA = 0x10000,
|
||||
FROM_DEFAULT_CONTEXT = 0x20000,
|
||||
ACTIVATE_32_BIT_SERVER = 0x40000,
|
||||
ACTIVATE_64_BIT_SERVER = 0x80000,
|
||||
ENABLE_CLOAKING = 0x100000,
|
||||
PS_DLL = unchecked((int)0x80000000),
|
||||
INPROC = INPROC_SERVER | INPROC_HANDLER,
|
||||
SERVER = INPROC_SERVER | LOCAL_SERVER | REMOTE_SERVER,
|
||||
ALL = SERVER | INPROC_HANDLER
|
||||
}
|
||||
|
||||
public struct PropertyKey
|
||||
{
|
||||
public Guid formatId;
|
||||
public int propertyId;
|
||||
public PropertyKey(Guid formatId, int propertyId)
|
||||
{
|
||||
this.formatId = formatId;
|
||||
this.propertyId = propertyId;
|
||||
}
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Explicit)]
|
||||
public struct PropVariant
|
||||
{
|
||||
[FieldOffset(0)] private short vt;
|
||||
[FieldOffset(2)] private short wReserved1;
|
||||
[FieldOffset(4)] private short wReserved2;
|
||||
[FieldOffset(6)] private short wReserved3;
|
||||
[FieldOffset(8)] public IntPtr pointerValue;
|
||||
}
|
||||
|
||||
[Guid("886d8eeb-8cf2-4446-8d02-cdba1dbdcf99"),
|
||||
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
|
||||
interface IPropertyStore
|
||||
{
|
||||
int GetCount(out int propCount);
|
||||
int GetAt(int property, out PropertyKey key);
|
||||
int GetValue(ref PropertyKey key, out PropVariant value);
|
||||
int SetValue(ref PropertyKey key, ref PropVariant value);
|
||||
int Commit();
|
||||
}
|
||||
|
||||
[Guid("D666063F-1587-4E43-81F1-B948E807363F"),
|
||||
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
|
||||
interface IMMDevice
|
||||
{
|
||||
int Activate(ref Guid id, ClsCtx clsCtx, IntPtr activationParams,
|
||||
[MarshalAs(UnmanagedType.IUnknown)] out object interfacePointer);
|
||||
|
||||
int OpenPropertyStore(StorageAccessMode stgmAccess, out IPropertyStore properties);
|
||||
|
||||
int GetId([MarshalAs(UnmanagedType.LPWStr)] out string id);
|
||||
}
|
||||
|
||||
[Guid("0BD7A1BE-7A1A-44DB-8397-CC5392387B5E"),
|
||||
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
|
||||
interface IMMDeviceCollection
|
||||
{
|
||||
int GetCount(out int numDevices);
|
||||
int Item(int deviceNumber, out IMMDevice device);
|
||||
}
|
||||
|
||||
[Guid("A95664D2-9614-4F35-A746-DE8DB63617E6"),
|
||||
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
|
||||
interface IMMDeviceEnumerator
|
||||
{
|
||||
int EnumAudioEndpoints(DataFlow dataFlow, DeviceState stateMask, out IMMDeviceCollection devices);
|
||||
}
|
||||
|
||||
[ComImport, Guid("BCDE0395-E52F-467C-8E3D-C4579291692E")]
|
||||
class MMDeviceEnumeratorComObject
|
||||
{
|
||||
}
|
||||
|
||||
[Guid("657804FA-D6AD-4496-8A60-352752AF4F89"),
|
||||
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
|
||||
internal interface IAudioEndpointVolumeCallback
|
||||
{
|
||||
void OnNotify(IntPtr notifyData);
|
||||
};
|
||||
|
||||
[Guid("5CDF2C82-841E-4546-9722-0CF74078229A"),
|
||||
InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
|
||||
internal interface IAudioEndpointVolume
|
||||
{
|
||||
int RegisterControlChangeNotify(IAudioEndpointVolumeCallback pNotify);
|
||||
int UnregisterControlChangeNotify(IAudioEndpointVolumeCallback pNotify);
|
||||
int GetChannelCount(out int pnChannelCount);
|
||||
int SetMasterVolumeLevel(float fLevelDB, ref Guid pguidEventContext);
|
||||
int SetMasterVolumeLevelScalar(float fLevel, ref Guid pguidEventContext);
|
||||
int GetMasterVolumeLevel(out float pfLevelDB);
|
||||
int GetMasterVolumeLevelScalar(out float pfLevel);
|
||||
int SetChannelVolumeLevel(uint nChannel, float fLevelDB, ref Guid pguidEventContext);
|
||||
int SetChannelVolumeLevelScalar(uint nChannel, float fLevel, ref Guid pguidEventContext);
|
||||
int GetChannelVolumeLevel(uint nChannel, out float pfLevelDB);
|
||||
int GetChannelVolumeLevelScalar(uint nChannel, out float pfLevel);
|
||||
int SetMute([MarshalAs(UnmanagedType.Bool)] Boolean bMute, ref Guid pguidEventContext);
|
||||
int GetMute(out bool pbMute);
|
||||
int GetVolumeStepInfo(out uint pnStep, out uint pnStepCount);
|
||||
int VolumeStepUp(ref Guid pguidEventContext);
|
||||
int VolumeStepDown(ref Guid pguidEventContext);
|
||||
int QueryHardwareSupport(out uint pdwHardwareSupportMask);
|
||||
int GetVolumeRange(out float pflVolumeMindB, out float pflVolumeMaxdB, out float pflVolumeIncrementdB);
|
||||
}
|
||||
}
|
File diff suppressed because it is too large
Load Diff
@ -7,11 +7,42 @@ using System.Security.Principal;
|
||||
|
||||
namespace DS4Windows
|
||||
{
|
||||
public class VidPidInfo
|
||||
{
|
||||
public readonly int vid;
|
||||
public readonly int pid;
|
||||
internal VidPidInfo(int vid, int pid)
|
||||
{
|
||||
this.vid = vid;
|
||||
this.pid = pid;
|
||||
}
|
||||
}
|
||||
|
||||
public class DS4Devices
|
||||
{
|
||||
// (HID device path, DS4Device)
|
||||
private static Dictionary<string, DS4Device> Devices = new Dictionary<string, DS4Device>();
|
||||
private static HashSet<String> DevicePaths = new HashSet<String>();
|
||||
private static HashSet<string> deviceSerials = new HashSet<string>();
|
||||
private static HashSet<string> DevicePaths = new HashSet<string>();
|
||||
// Keep instance of opened exclusive mode devices not in use (Charging while using BT connection)
|
||||
private static List<HidDevice> DisabledDevices = new List<HidDevice>();
|
||||
private static Stopwatch sw = new Stopwatch();
|
||||
public static bool isExclusiveMode = false;
|
||||
internal const int SONY_VID = 0x054C;
|
||||
internal const int RAZER_VID = 0x1532;
|
||||
internal const int NACON_VID = 0x146B;
|
||||
internal const int HORI_VID = 0x0F0D;
|
||||
|
||||
private static VidPidInfo[] knownDevices =
|
||||
{
|
||||
new VidPidInfo(SONY_VID, 0xBA0),
|
||||
new VidPidInfo(SONY_VID, 0x5C4),
|
||||
new VidPidInfo(SONY_VID, 0x09CC),
|
||||
new VidPidInfo(RAZER_VID, 0x1000),
|
||||
new VidPidInfo(NACON_VID, 0x0D01),
|
||||
new VidPidInfo(HORI_VID, 0x00EE), // Hori PS4 Mini Wired Gamepad
|
||||
new VidPidInfo(0x7545, 0x0104)
|
||||
};
|
||||
|
||||
private static string devicePathToInstanceId(string devicePath)
|
||||
{
|
||||
@ -23,23 +54,35 @@ namespace DS4Windows
|
||||
{
|
||||
deviceInstanceId = deviceInstanceId.Remove(deviceInstanceId.Length - 1);
|
||||
}
|
||||
|
||||
return deviceInstanceId;
|
||||
}
|
||||
|
||||
//enumerates ds4 controllers in the system
|
||||
// Enumerates ds4 controllers in the system
|
||||
public static void findControllers()
|
||||
{
|
||||
lock (Devices)
|
||||
{
|
||||
int[] pid = { 0xBA0, 0x5C4, 0x09CC };
|
||||
IEnumerable<HidDevice> hDevices = HidDevices.Enumerate(0x054C, pid);
|
||||
IEnumerable<HidDevice> hDevices = HidDevices.EnumerateDS4(knownDevices);
|
||||
// Sort Bluetooth first in case USB is also connected on the same controller.
|
||||
hDevices = hDevices.OrderBy<HidDevice, ConnectionType>((HidDevice d) => { return DS4Device.HidConnectionType(d); });
|
||||
|
||||
foreach (HidDevice hDevice in hDevices)
|
||||
List<HidDevice> tempList = hDevices.ToList();
|
||||
purgeHiddenExclusiveDevices();
|
||||
tempList.AddRange(DisabledDevices);
|
||||
int devCount = tempList.Count();
|
||||
string devicePlural = "device" + (devCount == 0 || devCount > 1 ? "s" : "");
|
||||
//Log.LogToGui("Found " + devCount + " possible " + devicePlural + ". Examining " + devicePlural + ".", false);
|
||||
|
||||
for (int i = 0; i < devCount; i++)
|
||||
//foreach (HidDevice hDevice in hDevices)
|
||||
{
|
||||
if (DevicePaths.Contains(hDevice.DevicePath))
|
||||
HidDevice hDevice = tempList[i];
|
||||
if (hDevice.Description == "HID-compliant vendor-defined device")
|
||||
continue; // ignore the Nacon Revolution Pro programming interface
|
||||
else if (DevicePaths.Contains(hDevice.DevicePath))
|
||||
continue; // BT/USB endpoint already open once
|
||||
|
||||
if (!hDevice.IsOpen)
|
||||
{
|
||||
hDevice.OpenDevice(isExclusiveMode);
|
||||
@ -59,6 +102,7 @@ namespace DS4Windows
|
||||
startInfo.Verb = "runas";
|
||||
startInfo.Arguments = "re-enabledevice " + devicePathToInstanceId(hDevice.DevicePath);
|
||||
Process child = Process.Start(startInfo);
|
||||
|
||||
if (!child.WaitForExit(5000))
|
||||
{
|
||||
child.Kill();
|
||||
@ -81,41 +125,42 @@ namespace DS4Windows
|
||||
if (isExclusiveMode && !hDevice.IsOpen)
|
||||
hDevice.OpenDevice(false);
|
||||
}
|
||||
|
||||
if (hDevice.IsOpen)
|
||||
{
|
||||
if (Devices.ContainsKey(hDevice.readSerial()))
|
||||
continue; // happens when the BT endpoint already is open and the USB is plugged into the same host
|
||||
string serial = hDevice.readSerial();
|
||||
bool validSerial = !serial.Equals(DS4Device.blankSerial);
|
||||
if (validSerial && deviceSerials.Contains(serial))
|
||||
{
|
||||
// happens when the BT endpoint already is open and the USB is plugged into the same host
|
||||
if (isExclusiveMode && hDevice.IsExclusive &&
|
||||
!DisabledDevices.Contains(hDevice))
|
||||
{
|
||||
// Grab reference to exclusively opened HidDevice so device
|
||||
// stays hidden to other processes
|
||||
DisabledDevices.Add(hDevice);
|
||||
//DevicePaths.Add(hDevice.DevicePath);
|
||||
}
|
||||
|
||||
continue;
|
||||
}
|
||||
else
|
||||
{
|
||||
DS4Device ds4Device = new DS4Device(hDevice);
|
||||
ds4Device.Removal += On_Removal;
|
||||
Devices.Add(ds4Device.MacAddress, ds4Device);
|
||||
DevicePaths.Add(hDevice.DevicePath);
|
||||
ds4Device.StartUpdate();
|
||||
//ds4Device.Removal += On_Removal;
|
||||
if (!ds4Device.ExitOutputThread)
|
||||
{
|
||||
Devices.Add(hDevice.DevicePath, ds4Device);
|
||||
DevicePaths.Add(hDevice.DevicePath);
|
||||
deviceSerials.Add(serial);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//allows to get DS4Device by specifying unique MAC address
|
||||
//format for MAC address is XX:XX:XX:XX:XX:XX
|
||||
public static DS4Device getDS4Controller(string mac)
|
||||
{
|
||||
lock (Devices)
|
||||
{
|
||||
DS4Device device = null;
|
||||
try
|
||||
{
|
||||
Devices.TryGetValue(mac, out device);
|
||||
}
|
||||
catch (ArgumentNullException) { }
|
||||
return device;
|
||||
}
|
||||
}
|
||||
|
||||
//returns DS4 controllers that were found and are running
|
||||
// Returns DS4 controllers that were found and are running
|
||||
public static IEnumerable<DS4Device> getDS4Controllers()
|
||||
{
|
||||
lock (Devices)
|
||||
@ -131,25 +176,105 @@ namespace DS4Windows
|
||||
lock (Devices)
|
||||
{
|
||||
IEnumerable<DS4Device> devices = getDS4Controllers();
|
||||
foreach (DS4Device device in devices)
|
||||
//foreach (DS4Device device in devices)
|
||||
for (int i = 0, devCount = devices.Count(); i < devCount; i++)
|
||||
{
|
||||
DS4Device device = devices.ElementAt(i);
|
||||
device.StopUpdate();
|
||||
//device.runRemoval();
|
||||
device.HidDevice.CloseDevice();
|
||||
}
|
||||
|
||||
Devices.Clear();
|
||||
DevicePaths.Clear();
|
||||
deviceSerials.Clear();
|
||||
DisabledDevices.Clear();
|
||||
}
|
||||
}
|
||||
|
||||
//called when devices is diconnected, timed out or has input reading failure
|
||||
// Called when devices is diconnected, timed out or has input reading failure
|
||||
public static void On_Removal(object sender, EventArgs e)
|
||||
{
|
||||
DS4Device device = (DS4Device)sender;
|
||||
RemoveDevice(device);
|
||||
}
|
||||
|
||||
public static void RemoveDevice(DS4Device device)
|
||||
{
|
||||
lock (Devices)
|
||||
{
|
||||
if (device != null)
|
||||
{
|
||||
device.HidDevice.CloseDevice();
|
||||
Devices.Remove(device.HidDevice.DevicePath);
|
||||
DevicePaths.Remove(device.HidDevice.DevicePath);
|
||||
deviceSerials.Remove(device.MacAddress);
|
||||
//purgeHiddenExclusiveDevices();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void UpdateSerial(object sender, EventArgs e)
|
||||
{
|
||||
lock (Devices)
|
||||
{
|
||||
DS4Device device = (DS4Device)sender;
|
||||
device.HidDevice.CloseDevice();
|
||||
Devices.Remove(device.MacAddress);
|
||||
DevicePaths.Remove(device.HidDevice.DevicePath);
|
||||
if (device != null)
|
||||
{
|
||||
string devPath = device.HidDevice.DevicePath;
|
||||
string serial = device.getMacAddress();
|
||||
if (Devices.ContainsKey(devPath))
|
||||
{
|
||||
deviceSerials.Remove(serial);
|
||||
device.updateSerial();
|
||||
serial = device.getMacAddress();
|
||||
if (DS4Device.isValidSerial(serial))
|
||||
{
|
||||
deviceSerials.Add(serial);
|
||||
}
|
||||
|
||||
device.refreshCalibration();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void purgeHiddenExclusiveDevices()
|
||||
{
|
||||
int disabledDevCount = DisabledDevices.Count;
|
||||
if (disabledDevCount > 0)
|
||||
{
|
||||
List<HidDevice> disabledDevList = new List<HidDevice>();
|
||||
for (int i = 0, arlen = disabledDevCount; i < arlen; i++)
|
||||
{
|
||||
HidDevice tempDev = DisabledDevices.ElementAt(i);
|
||||
if (tempDev != null)
|
||||
{
|
||||
if (tempDev.IsOpen && tempDev.IsConnected)
|
||||
{
|
||||
disabledDevList.Add(tempDev);
|
||||
}
|
||||
else if (tempDev.IsOpen)
|
||||
{
|
||||
if (!tempDev.IsConnected)
|
||||
{
|
||||
try
|
||||
{
|
||||
tempDev.CloseDevice();
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
|
||||
if (DevicePaths.Contains(tempDev.DevicePath))
|
||||
{
|
||||
DevicePaths.Remove(tempDev.DevicePath);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
DisabledDevices.Clear();
|
||||
DisabledDevices.AddRange(disabledDevList);
|
||||
}
|
||||
}
|
||||
|
||||
@ -184,10 +309,24 @@ namespace DS4Windows
|
||||
throw new Exception("Error setting class install params, error code = " + Marshal.GetLastWin32Error());
|
||||
}
|
||||
success = NativeMethods.SetupDiCallClassInstaller(NativeMethods.DIF_PROPERTYCHANGE, deviceInfoSet, ref deviceInfoData);
|
||||
if (!success)
|
||||
// TEST: If previous SetupDiCallClassInstaller fails, just continue
|
||||
// otherwise device will likely get permanently disabled.
|
||||
/*if (!success)
|
||||
{
|
||||
throw new Exception("Error disabling device, error code = " + Marshal.GetLastWin32Error());
|
||||
}
|
||||
*/
|
||||
|
||||
//System.Threading.Thread.Sleep(50);
|
||||
sw.Restart();
|
||||
while (sw.ElapsedMilliseconds < 50)
|
||||
{
|
||||
// Use SpinWait to keep control of current thread. Using Sleep could potentially
|
||||
// cause other events to get run out of order
|
||||
System.Threading.Thread.SpinWait(100);
|
||||
}
|
||||
sw.Stop();
|
||||
|
||||
propChangeParams.stateChange = NativeMethods.DICS_ENABLE;
|
||||
success = NativeMethods.SetupDiSetClassInstallParams(deviceInfoSet, ref deviceInfoData, ref propChangeParams, Marshal.SizeOf(propChangeParams));
|
||||
if (!success)
|
||||
@ -200,6 +339,16 @@ namespace DS4Windows
|
||||
throw new Exception("Error enabling device, error code = " + Marshal.GetLastWin32Error());
|
||||
}
|
||||
|
||||
//System.Threading.Thread.Sleep(50);
|
||||
sw.Restart();
|
||||
while (sw.ElapsedMilliseconds < 50)
|
||||
{
|
||||
// Use SpinWait to keep control of current thread. Using Sleep could potentially
|
||||
// cause other events to get run out of order
|
||||
System.Threading.Thread.SpinWait(100);
|
||||
}
|
||||
sw.Stop();
|
||||
|
||||
NativeMethods.SetupDiDestroyDeviceInfoList(deviceInfoSet);
|
||||
}
|
||||
}
|
||||
|
@ -1,107 +1,247 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace DS4Windows
|
||||
{
|
||||
public class SixAxisEventArgs : EventArgs
|
||||
{
|
||||
public readonly SixAxis sixAxis;
|
||||
public readonly System.DateTime timeStamp;
|
||||
public SixAxisEventArgs(System.DateTime utcTimestamp, SixAxis sa)
|
||||
public readonly DateTime timeStamp;
|
||||
public SixAxisEventArgs(DateTime utcTimestamp, SixAxis sa)
|
||||
{
|
||||
sixAxis = sa;
|
||||
this.timeStamp = utcTimestamp;
|
||||
timeStamp = utcTimestamp;
|
||||
}
|
||||
}
|
||||
|
||||
public class SixAxis
|
||||
{
|
||||
public readonly int gyroX, gyroY, gyroZ, deltaX, deltaY, deltaZ, accelX, accelY, accelZ;
|
||||
public readonly byte touchID;
|
||||
public readonly SixAxis previousAxis;
|
||||
public SixAxis(int X, int Y, int Z, int aX, int aY, int aZ, SixAxis prevAxis = null)
|
||||
public const int ACC_RES_PER_G = 8192;
|
||||
private const float F_ACC_RES_PER_G = ACC_RES_PER_G;
|
||||
public const int GYRO_RES_IN_DEG_SEC = 16;
|
||||
private const float F_GYRO_RES_IN_DEG_SEC = GYRO_RES_IN_DEG_SEC;
|
||||
|
||||
public int gyroYaw, gyroPitch, gyroRoll, accelX, accelY, accelZ;
|
||||
public int outputAccelX, outputAccelY, outputAccelZ;
|
||||
public double accelXG, accelYG, accelZG;
|
||||
public double angVelYaw, angVelPitch, angVelRoll;
|
||||
public int gyroYawFull, gyroPitchFull, gyroRollFull;
|
||||
public int accelXFull, accelYFull, accelZFull;
|
||||
public double elapsed;
|
||||
public SixAxis previousAxis = null;
|
||||
|
||||
private double tempDouble = 0d;
|
||||
|
||||
public SixAxis(int X, int Y, int Z,
|
||||
int aX, int aY, int aZ,
|
||||
double elapsedDelta, SixAxis prevAxis = null)
|
||||
{
|
||||
gyroX = X;
|
||||
gyroY = Y;
|
||||
gyroZ = Z;
|
||||
accelX = aX;
|
||||
accelY = aY;
|
||||
accelZ = aZ;
|
||||
previousAxis = prevAxis;
|
||||
if (previousAxis != null)
|
||||
{
|
||||
deltaX = X - previousAxis.gyroX;
|
||||
deltaY = Y - previousAxis.gyroY;
|
||||
deltaZ = Z - previousAxis.gyroZ;
|
||||
}
|
||||
populate(X, Y, Z, aX, aY, aZ, elapsedDelta, prevAxis);
|
||||
}
|
||||
|
||||
public void copy(SixAxis src)
|
||||
{
|
||||
gyroYaw = src.gyroYaw;
|
||||
gyroPitch = src.gyroPitch;
|
||||
gyroRoll = src.gyroRoll;
|
||||
|
||||
gyroYawFull = src.gyroYawFull;
|
||||
accelXFull = src.accelXFull; accelYFull = src.accelYFull; accelZFull = src.accelZFull;
|
||||
|
||||
angVelYaw = src.angVelYaw;
|
||||
angVelPitch = src.angVelPitch;
|
||||
angVelRoll = src.angVelRoll;
|
||||
|
||||
accelXG = src.accelXG;
|
||||
accelYG = src.accelYG;
|
||||
accelZG = src.accelZG;
|
||||
|
||||
// Put accel ranges between 0 - 128 abs
|
||||
accelX = src.accelX;
|
||||
accelY = src.accelY;
|
||||
accelZ = src.accelZ;
|
||||
outputAccelX = accelX;
|
||||
outputAccelY = accelY;
|
||||
outputAccelZ = accelZ;
|
||||
|
||||
elapsed = src.elapsed;
|
||||
previousAxis = src.previousAxis;
|
||||
}
|
||||
|
||||
public void populate(int X, int Y, int Z,
|
||||
int aX, int aY, int aZ,
|
||||
double elapsedDelta, SixAxis prevAxis = null)
|
||||
{
|
||||
gyroYaw = -X / 256;
|
||||
gyroPitch = Y / 256;
|
||||
gyroRoll = -Z / 256;
|
||||
|
||||
gyroYawFull = -X; gyroPitchFull = Y; gyroRollFull = -Z;
|
||||
accelXFull = -aX; accelYFull = -aY; accelZFull = aZ;
|
||||
|
||||
angVelYaw = gyroYawFull / F_GYRO_RES_IN_DEG_SEC;
|
||||
angVelPitch = gyroPitchFull / F_GYRO_RES_IN_DEG_SEC;
|
||||
angVelRoll = gyroRollFull / F_GYRO_RES_IN_DEG_SEC;
|
||||
|
||||
accelXG = tempDouble = accelXFull / F_ACC_RES_PER_G;
|
||||
accelYG = tempDouble = accelYFull / F_ACC_RES_PER_G;
|
||||
accelZG = tempDouble = accelZFull / F_ACC_RES_PER_G;
|
||||
|
||||
// Put accel ranges between 0 - 128 abs
|
||||
accelX = -aX / 64;
|
||||
accelY = -aY / 64;
|
||||
accelZ = aZ / 64;
|
||||
outputAccelX = accelX;
|
||||
outputAccelY = accelY;
|
||||
outputAccelZ = accelZ;
|
||||
|
||||
elapsed = elapsedDelta;
|
||||
previousAxis = prevAxis;
|
||||
}
|
||||
}
|
||||
|
||||
internal class CalibData
|
||||
{
|
||||
public int bias;
|
||||
public int sensNumer;
|
||||
public int sensDenom;
|
||||
public const int GyroPitchIdx = 0, GyroYawIdx = 1, GyroRollIdx = 2,
|
||||
AccelXIdx = 3, AccelYIdx = 4, AccelZIdx = 5;
|
||||
}
|
||||
|
||||
public class DS4SixAxis
|
||||
{
|
||||
public event EventHandler<SixAxisEventArgs> SixAxisMoved = null; // deltaX/deltaY are set because one or both fingers were already down on a prior sensor reading
|
||||
public event EventHandler<SixAxisEventArgs> SixAccelMoved = null; // no status change for the touchpad itself... but other sensors may have changed, or you may just want to do some processing
|
||||
public event EventHandler<SixAxisEventArgs> SixAccelMoved = null;
|
||||
private SixAxis sPrev = null, now = null;
|
||||
private CalibData[] calibrationData = new CalibData[6] { new CalibData(), new CalibData(),
|
||||
new CalibData(), new CalibData(), new CalibData(), new CalibData()
|
||||
};
|
||||
|
||||
internal int lastGyroX, lastGyroY, lastGyroZ, lastAX, lastAY, lastAZ; // tracks 0, 1 or 2 touches; we maintain touch 1 and 2 separately
|
||||
internal byte[] previousPacket = new byte[8];
|
||||
|
||||
|
||||
public void handleSixaxis(byte[] gyro, byte[] accel, DS4State state)
|
||||
public DS4SixAxis()
|
||||
{
|
||||
//bool touchPadIsDown = sensors.TouchButton;
|
||||
/*if (!PacketChanged(data, touchPacketOffset) && touchPadIsDown == lastTouchPadIsDown)
|
||||
{
|
||||
if (SixAxisUnchanged != null)
|
||||
SixAxisUnchanged(this, EventArgs.Empty);
|
||||
return;
|
||||
}*/
|
||||
/* byte touchID1 = (byte)(data[0 + TOUCHPAD_DATA_OFFSET + touchPacketOffset] & 0x7F);
|
||||
byte touchID2 = (byte)(data[4 + TOUCHPAD_DATA_OFFSET + touchPacketOffset] & 0x7F);*/
|
||||
int currentX = (short)((ushort)(gyro[0] << 8) | gyro[1]) / 64;
|
||||
int currentY = (short)((ushort)(gyro[2] << 8) | gyro[3]) / 64;
|
||||
int currentZ = (short)((ushort)(gyro[4] << 8) | gyro[5]) / 64;
|
||||
int AccelX = (short)((ushort)(accel[2] << 8) | accel[3]) / 256;
|
||||
int AccelY = (short)((ushort)(accel[0] << 8) | accel[1]) / 256;
|
||||
int AccelZ = (short)((ushort)(accel[4] << 8) | accel[5]) / 256;
|
||||
SixAxisEventArgs args;
|
||||
//if (sensors.Touch1 || sensors.Touch2)
|
||||
{
|
||||
/* if (SixAxisMoved != null)
|
||||
{
|
||||
SixAxis sPrev, now;
|
||||
sPrev = new SixAxis(lastGyroX, lastGyroY, lastGyroZ, lastAX,lastAY,lastAZ);
|
||||
now = new SixAxis(currentX, currentY, currentZ, AccelX, AccelY, AccelZ, sPrev);
|
||||
args = new SixAxisEventArgs(state.ReportTimeStamp, now);
|
||||
SixAxisMoved(this, args);
|
||||
}
|
||||
sPrev = new SixAxis(0, 0, 0, 0, 0, 0, 0.0);
|
||||
now = new SixAxis(0, 0, 0, 0, 0, 0, 0.0);
|
||||
}
|
||||
|
||||
lastGyroX = currentX;
|
||||
lastGyroY = currentY;
|
||||
lastGyroZ = currentZ;
|
||||
lastAX = AccelX;
|
||||
lastAY = AccelY;
|
||||
lastAZ = AccelZ;*/
|
||||
int temInt = 0;
|
||||
public void setCalibrationData(ref byte[] calibData, bool fromUSB)
|
||||
{
|
||||
int pitchPlus, pitchMinus, yawPlus, yawMinus, rollPlus, rollMinus,
|
||||
accelXPlus, accelXMinus, accelYPlus, accelYMinus, accelZPlus, accelZMinus,
|
||||
gyroSpeedPlus, gyroSpeedMinus;
|
||||
|
||||
calibrationData[0].bias = (short)((ushort)(calibData[2] << 8) | calibData[1]);
|
||||
calibrationData[1].bias = (short)((ushort)(calibData[4] << 8) | calibData[3]);
|
||||
calibrationData[2].bias = (short)((ushort)(calibData[6] << 8) | calibData[5]);
|
||||
|
||||
if (!fromUSB)
|
||||
{
|
||||
pitchPlus = temInt = (short)((ushort)(calibData[8] << 8) | calibData[7]);
|
||||
yawPlus = temInt = (short)((ushort)(calibData[10] << 8) | calibData[9]);
|
||||
rollPlus = temInt = (short)((ushort)(calibData[12] << 8) | calibData[11]);
|
||||
pitchMinus = temInt = (short)((ushort)(calibData[14] << 8) | calibData[13]);
|
||||
yawMinus = temInt = (short)((ushort)(calibData[16] << 8) | calibData[15]);
|
||||
rollMinus = temInt = (short)((ushort)(calibData[18] << 8) | calibData[17]);
|
||||
}
|
||||
else
|
||||
{
|
||||
pitchPlus = temInt = (short)((ushort)(calibData[8] << 8) | calibData[7]);
|
||||
pitchMinus = temInt = (short)((ushort)(calibData[10] << 8) | calibData[9]);
|
||||
yawPlus = temInt = (short)((ushort)(calibData[12] << 8) | calibData[11]);
|
||||
yawMinus = temInt = (short)((ushort)(calibData[14] << 8) | calibData[13]);
|
||||
rollPlus = temInt = (short)((ushort)(calibData[16] << 8) | calibData[15]);
|
||||
rollMinus = temInt = (short)((ushort)(calibData[18] << 8) | calibData[17]);
|
||||
}
|
||||
|
||||
gyroSpeedPlus = temInt = (short)((ushort)(calibData[20] << 8) | calibData[19]);
|
||||
gyroSpeedMinus = temInt = (short)((ushort)(calibData[22] << 8) | calibData[21]);
|
||||
accelXPlus = temInt = (short)((ushort)(calibData[24] << 8) | calibData[23]);
|
||||
accelXMinus = temInt = (short)((ushort)(calibData[26] << 8) | calibData[25]);
|
||||
|
||||
accelYPlus = temInt = (short)((ushort)(calibData[28] << 8) | calibData[27]);
|
||||
accelYMinus = temInt = (short)((ushort)(calibData[30] << 8) | calibData[29]);
|
||||
|
||||
accelZPlus = temInt = (short)((ushort)(calibData[32] << 8) | calibData[31]);
|
||||
accelZMinus = temInt = (short)((ushort)(calibData[34] << 8) | calibData[33]);
|
||||
|
||||
int gyroSpeed2x = temInt = (gyroSpeedPlus + gyroSpeedMinus);
|
||||
calibrationData[0].sensNumer = gyroSpeed2x* SixAxis.GYRO_RES_IN_DEG_SEC;
|
||||
calibrationData[0].sensDenom = pitchPlus - pitchMinus;
|
||||
|
||||
calibrationData[1].sensNumer = gyroSpeed2x* SixAxis.GYRO_RES_IN_DEG_SEC;
|
||||
calibrationData[1].sensDenom = yawPlus - yawMinus;
|
||||
|
||||
calibrationData[2].sensNumer = gyroSpeed2x* SixAxis.GYRO_RES_IN_DEG_SEC;
|
||||
calibrationData[2].sensDenom = rollPlus - rollMinus;
|
||||
|
||||
int accelRange = temInt = accelXPlus - accelXMinus;
|
||||
calibrationData[3].bias = accelXPlus - accelRange / 2;
|
||||
calibrationData[3].sensNumer = 2 * SixAxis.ACC_RES_PER_G;
|
||||
calibrationData[3].sensDenom = accelRange;
|
||||
|
||||
accelRange = temInt = accelYPlus - accelYMinus;
|
||||
calibrationData[4].bias = accelYPlus - accelRange / 2;
|
||||
calibrationData[4].sensNumer = 2 * SixAxis.ACC_RES_PER_G;
|
||||
calibrationData[4].sensDenom = accelRange;
|
||||
|
||||
accelRange = temInt = accelZPlus - accelZMinus;
|
||||
calibrationData[5].bias = accelZPlus - accelRange / 2;
|
||||
calibrationData[5].sensNumer = 2 * SixAxis.ACC_RES_PER_G;
|
||||
calibrationData[5].sensDenom = accelRange;
|
||||
}
|
||||
|
||||
private void applyCalibs(ref int yaw, ref int pitch, ref int roll,
|
||||
ref int accelX, ref int accelY, ref int accelZ)
|
||||
{
|
||||
CalibData current = calibrationData[0];
|
||||
temInt = pitch - current.bias;
|
||||
pitch = temInt = (int)(temInt * (current.sensNumer / (float)current.sensDenom));
|
||||
|
||||
current = calibrationData[1];
|
||||
temInt = yaw - current.bias;
|
||||
yaw = temInt = (int)(temInt * (current.sensNumer / (float)current.sensDenom));
|
||||
|
||||
current = calibrationData[2];
|
||||
temInt = roll - current.bias;
|
||||
roll = temInt = (int)(temInt * (current.sensNumer / (float)current.sensDenom));
|
||||
|
||||
current = calibrationData[3];
|
||||
temInt = accelX - current.bias;
|
||||
accelX = temInt = (int)(temInt * (current.sensNumer / (float)current.sensDenom));
|
||||
|
||||
current = calibrationData[4];
|
||||
temInt = accelY - current.bias;
|
||||
accelY = temInt = (int)(temInt * (current.sensNumer / (float)current.sensDenom));
|
||||
|
||||
current = calibrationData[5];
|
||||
temInt = accelZ - current.bias;
|
||||
accelZ = temInt = (int)(temInt * (current.sensNumer / (float)current.sensDenom));
|
||||
}
|
||||
|
||||
public void handleSixaxis(byte[] gyro, byte[] accel, DS4State state,
|
||||
double elapsedDelta)
|
||||
{
|
||||
int currentYaw = (short)((ushort)(gyro[3] << 8) | gyro[2]);
|
||||
int currentPitch = (short)((ushort)(gyro[1] << 8) | gyro[0]);
|
||||
int currentRoll = (short)((ushort)(gyro[5] << 8) | gyro[4]);
|
||||
int AccelX = (short)((ushort)(accel[1] << 8) | accel[0]);
|
||||
int AccelY = (short)((ushort)(accel[3] << 8) | accel[2]);
|
||||
int AccelZ = (short)((ushort)(accel[5] << 8) | accel[4]);
|
||||
|
||||
applyCalibs(ref currentYaw, ref currentPitch, ref currentRoll, ref AccelX, ref AccelY, ref AccelZ);
|
||||
|
||||
SixAxisEventArgs args = null;
|
||||
if (AccelX != 0 || AccelY != 0 || AccelZ != 0)
|
||||
{
|
||||
if (SixAccelMoved != null)
|
||||
{
|
||||
SixAxis sPrev, now;
|
||||
sPrev = new SixAxis(lastGyroX, lastGyroY, lastGyroZ, lastAX, lastAY, lastAZ);
|
||||
now = new SixAxis(currentX, currentY, currentZ, AccelX, AccelY, AccelZ, sPrev);
|
||||
sPrev.copy(now);
|
||||
now.populate(currentYaw, currentPitch, currentRoll,
|
||||
AccelX, AccelY, AccelZ, elapsedDelta, sPrev);
|
||||
|
||||
args = new SixAxisEventArgs(state.ReportTimeStamp, now);
|
||||
state.Motion = now;
|
||||
SixAccelMoved(this, args);
|
||||
}
|
||||
|
||||
lastGyroX = currentX;
|
||||
lastGyroY = currentY;
|
||||
lastGyroZ = currentZ;
|
||||
lastAX = AccelX;
|
||||
lastAY = AccelY;
|
||||
lastAZ = AccelZ;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,7 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace DS4Windows
|
||||
{
|
||||
@ -11,24 +8,47 @@ namespace DS4Windows
|
||||
public bool Square, Triangle, Circle, Cross;
|
||||
public bool DpadUp, DpadDown, DpadLeft, DpadRight;
|
||||
public bool L1, L3, R1, R3;
|
||||
public bool Share, Options, PS, Touch1, Touch2, TouchButton, TouchRight, TouchLeft;
|
||||
public bool Share, Options, PS, Touch1, Touch2, TouchButton, TouchRight,
|
||||
TouchLeft, Touch1Finger, Touch2Fingers;
|
||||
public byte Touch1Identifier, Touch2Identifier;
|
||||
public byte LX, RX, LY, RY, L2, R2;
|
||||
public byte FrameCounter; // 0, 1, 2...62, 63, 0....
|
||||
public byte TouchPacketCounter; // we break these out automatically
|
||||
public byte Battery; // 0 for charging, 10/20/30/40/50/60/70/80/90/100 for percentage of full
|
||||
public double LSAngle; // Calculated bearing of the LS X,Y coordinates
|
||||
public double RSAngle; // Calculated bearing of the RS X,Y coordinates
|
||||
public double LSAngleRad; // Calculated bearing of the LS X,Y coordinates (in radians)
|
||||
public double RSAngleRad; // Calculated bearing of the RS X,Y coordinates (in radians)
|
||||
public double LXUnit;
|
||||
public double LYUnit;
|
||||
public double RXUnit;
|
||||
public double RYUnit;
|
||||
public double elapsedTime = 0.0;
|
||||
public SixAxis Motion = null;
|
||||
public static readonly int DEFAULT_AXISDIR_VALUE = 127;
|
||||
|
||||
public DS4State()
|
||||
{
|
||||
Square = Triangle = Circle = Cross = false;
|
||||
DpadUp = DpadDown = DpadLeft = DpadRight = false;
|
||||
L1 = L3 = R1 = R3 = false;
|
||||
Share = Options = PS = Touch1 = Touch2 = TouchButton = TouchRight = TouchLeft = false;
|
||||
Share = Options = PS = Touch1 = Touch2 = TouchButton = TouchRight = TouchLeft = false;
|
||||
Touch1Finger = Touch2Fingers = false;
|
||||
LX = RX = LY = RY = 127;
|
||||
L2 = R2 = 0;
|
||||
FrameCounter = 255; // only actually has 6 bits, so this is a null indicator
|
||||
TouchPacketCounter = 255; // 8 bits, no great junk value
|
||||
Battery = 0;
|
||||
LSAngle = 0.0;
|
||||
LSAngleRad = 0.0;
|
||||
RSAngle = 0.0;
|
||||
RSAngleRad = 0.0;
|
||||
LXUnit = 0.0;
|
||||
LYUnit = 0.0;
|
||||
RXUnit = 0.0;
|
||||
RYUnit = 0.0;
|
||||
elapsedTime = 0.0;
|
||||
Motion = new SixAxis(0, 0, 0, 0, 0, 0, 0.0);
|
||||
}
|
||||
|
||||
public DS4State(DS4State state)
|
||||
@ -59,12 +79,24 @@ namespace DS4Windows
|
||||
Touch2Identifier = state.Touch2Identifier;
|
||||
TouchButton = state.TouchButton;
|
||||
TouchPacketCounter = state.TouchPacketCounter;
|
||||
Touch1Finger = state.Touch1Finger;
|
||||
Touch2Fingers = state.Touch2Fingers;
|
||||
LX = state.LX;
|
||||
RX = state.RX;
|
||||
LY = state.LY;
|
||||
RY = state.RY;
|
||||
FrameCounter = state.FrameCounter;
|
||||
Battery = state.Battery;
|
||||
LSAngle = state.LSAngle;
|
||||
LSAngleRad = state.LSAngleRad;
|
||||
RSAngle = state.RSAngle;
|
||||
RSAngleRad = state.RSAngleRad;
|
||||
LXUnit = state.LXUnit;
|
||||
LYUnit = state.LYUnit;
|
||||
RXUnit = state.RXUnit;
|
||||
RYUnit = state.RYUnit;
|
||||
elapsedTime = state.elapsedTime;
|
||||
Motion = state.Motion;
|
||||
}
|
||||
|
||||
public DS4State Clone()
|
||||
@ -100,13 +132,57 @@ namespace DS4Windows
|
||||
state.TouchRight = TouchRight;
|
||||
state.TouchButton = TouchButton;
|
||||
state.TouchPacketCounter = TouchPacketCounter;
|
||||
state.Touch1Finger = Touch1Finger;
|
||||
state.Touch2Fingers = Touch2Fingers;
|
||||
state.LX = LX;
|
||||
state.RX = RX;
|
||||
state.LY = LY;
|
||||
state.RY = RY;
|
||||
state.FrameCounter = FrameCounter;
|
||||
state.Battery = Battery;
|
||||
state.LSAngle = LSAngle;
|
||||
state.LSAngleRad = LSAngleRad;
|
||||
state.RSAngle = RSAngle;
|
||||
state.RSAngleRad = RSAngleRad;
|
||||
state.LXUnit = LXUnit;
|
||||
state.LYUnit = LYUnit;
|
||||
state.RXUnit = RXUnit;
|
||||
state.RYUnit = RYUnit;
|
||||
state.elapsedTime = elapsedTime;
|
||||
state.Motion = Motion;
|
||||
}
|
||||
|
||||
public void calculateStickAngles()
|
||||
{
|
||||
double lsangle = Math.Atan2(-(LY - 127), (LX - 127));
|
||||
LSAngleRad = lsangle;
|
||||
lsangle = (lsangle >= 0 ? lsangle : (2 * Math.PI + lsangle)) * 180 / Math.PI;
|
||||
LSAngle = lsangle;
|
||||
LXUnit = Math.Abs(Math.Cos(LSAngleRad));
|
||||
LYUnit = Math.Abs(Math.Sin(LSAngleRad));
|
||||
|
||||
double rsangle = Math.Atan2(-(RY - 127), (RX - 127));
|
||||
RSAngleRad = rsangle;
|
||||
rsangle = (rsangle >= 0 ? rsangle : (2 * Math.PI + rsangle)) * 180 / Math.PI;
|
||||
RSAngle = rsangle;
|
||||
RXUnit = Math.Abs(Math.Cos(RSAngleRad));
|
||||
RYUnit = Math.Abs(Math.Sin(RSAngleRad));
|
||||
}
|
||||
|
||||
public void rotateLSCoordinates(double rotation)
|
||||
{
|
||||
double sinAngle = Math.Sin(rotation), cosAngle = Math.Cos(rotation);
|
||||
double tempLX = LX - 127.5, tempLY = LY - 127.5;
|
||||
LX = (Byte)(Global.Clamp(-127.5, (tempLX * cosAngle - tempLY * sinAngle), 127.5) + 127.5);
|
||||
LY = (Byte)(Global.Clamp(-127.5, (tempLX * sinAngle + tempLY * cosAngle), 127.5) + 127.5);
|
||||
}
|
||||
|
||||
public void rotateRSCoordinates(double rotation)
|
||||
{
|
||||
double sinAngle = Math.Sin(rotation), cosAngle = Math.Cos(rotation);
|
||||
double tempRX = RX - 127.5, tempRY = RY - 127.5;
|
||||
RX = (Byte)(Global.Clamp(-127.5, (tempRX * cosAngle - tempRY * sinAngle), 127.5) + 127.5);
|
||||
RY = (Byte)(Global.Clamp(-127.5, (tempRX * sinAngle + tempRY * cosAngle), 127.5) + 127.5);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,73 +1,100 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
|
||||
namespace DS4Windows
|
||||
{
|
||||
public class DS4StateExposed
|
||||
{
|
||||
private DS4State _state;
|
||||
private byte[] accel = new byte[] { 0, 0, 0, 0, 0, 0 },
|
||||
gyro = new byte[] { 0, 0, 0, 0, 0, 0 };
|
||||
|
||||
public DS4StateExposed()
|
||||
{
|
||||
_state = new DS4State();
|
||||
}
|
||||
|
||||
public DS4StateExposed(DS4State state)
|
||||
{
|
||||
_state = state;
|
||||
}
|
||||
|
||||
bool Square { get { return _state.Square; } }
|
||||
bool Triangle { get { return _state.Triangle; } }
|
||||
bool Circle { get { return _state.Circle; } }
|
||||
bool Cross { get { return _state.Cross; } }
|
||||
bool DpadUp { get { return _state.DpadUp; } }
|
||||
bool DpadDown { get { return _state.DpadDown; } }
|
||||
bool DpadLeft { get { return _state.DpadLeft; } }
|
||||
bool DpadRight { get { return _state.DpadRight; } }
|
||||
bool L1 { get { return _state.L1; } }
|
||||
bool L3 { get { return _state.L3; } }
|
||||
bool R1 { get { return _state.R1; } }
|
||||
bool R3 { get { return _state.R3; } }
|
||||
bool Share { get { return _state.Share; } }
|
||||
bool Options { get { return _state.Options; } }
|
||||
bool PS { get { return _state.PS; } }
|
||||
bool Touch1 { get { return _state.Touch1; } }
|
||||
bool Touch2 { get { return _state.Touch2; } }
|
||||
bool TouchButton { get { return _state.TouchButton; } }
|
||||
byte LX { get { return _state.LX; } }
|
||||
byte RX { get { return _state.RX; } }
|
||||
byte LY { get { return _state.LY; } }
|
||||
byte RY { get { return _state.RY; } }
|
||||
byte L2 { get { return _state.L2; } }
|
||||
byte R2 { get { return _state.R2; } }
|
||||
bool Square { get { return _state.Square; } }
|
||||
bool Triangle { get { return _state.Triangle; } }
|
||||
bool Circle { get { return _state.Circle; } }
|
||||
bool Cross { get { return _state.Cross; } }
|
||||
bool DpadUp { get { return _state.DpadUp; } }
|
||||
bool DpadDown { get { return _state.DpadDown; } }
|
||||
bool DpadLeft { get { return _state.DpadLeft; } }
|
||||
bool DpadRight { get { return _state.DpadRight; } }
|
||||
bool L1 { get { return _state.L1; } }
|
||||
bool L3 { get { return _state.L3; } }
|
||||
bool R1 { get { return _state.R1; } }
|
||||
bool R3 { get { return _state.R3; } }
|
||||
bool Share { get { return _state.Share; } }
|
||||
bool Options { get { return _state.Options; } }
|
||||
bool PS { get { return _state.PS; } }
|
||||
bool Touch1 { get { return _state.Touch1; } }
|
||||
bool Touch2 { get { return _state.Touch2; } }
|
||||
bool TouchButton { get { return _state.TouchButton; } }
|
||||
bool Touch1Finger { get { return _state.Touch1Finger; } }
|
||||
bool Touch2Fingers { get { return _state.Touch2Fingers; } }
|
||||
byte LX { get { return _state.LX; } }
|
||||
byte RX { get { return _state.RX; } }
|
||||
byte LY { get { return _state.LY; } }
|
||||
byte RY { get { return _state.RY; } }
|
||||
byte L2 { get { return _state.L2; } }
|
||||
byte R2 { get { return _state.R2; } }
|
||||
int Battery { get { return _state.Battery; } }
|
||||
|
||||
/// <summary> Holds raw DS4 input data from 14 to 19 </summary>
|
||||
public byte[] Accel { set { accel = value; } }
|
||||
/// <summary> Holds raw DS4 input data from 20 to 25 </summary>
|
||||
public byte[] Gyro { set { gyro = value; } }
|
||||
public int GyroYaw { get { return _state.Motion.gyroYaw; } }
|
||||
public int getGyroYaw()
|
||||
{
|
||||
return _state.Motion.gyroYaw;
|
||||
}
|
||||
|
||||
/// <summary> Yaw leftward/counter-clockwise/turn to port or larboard side </summary>
|
||||
/// <remarks> Add double the previous result to this delta and divide by three.</remarks>
|
||||
public int AccelX { get { return (short)((ushort)(accel[2] << 8) | accel[3]) / 256; } }
|
||||
/// <summary> Pitch upward/backward </summary>
|
||||
/// <remarks> Add double the previous result to this delta and divide by three.</remarks>
|
||||
public int AccelY { get { return (short)((ushort)(accel[0] << 8) | accel[1] ) / 256; } }
|
||||
/// <summary> roll left/L side of controller down/starboard raising up </summary>
|
||||
/// <remarks> Add double the previous result to this delta and divide by three.</remarks>
|
||||
public int AccelZ { get { return (short)((ushort)(accel[4] << 8) | accel[5]) / 256; } }
|
||||
/// <summary> R side of controller upward </summary>
|
||||
/// <remarks> Add double the previous result to this delta and divide by three.</remarks>
|
||||
public int GyroX { get { return (short)((ushort)(gyro[0] << 8) | gyro[1]) / 64; } }
|
||||
/// <summary> touchpad and button face side of controller upward </summary>
|
||||
/// <remarks> Add double the previous result to this delta and divide by three.</remarks>
|
||||
public int GyroY { get { return (short)((ushort)(gyro[2] << 8) | gyro[3]) / 64; } }
|
||||
/// <summary> Audio/expansion ports upward and light bar/shoulders/bumpers/USB port downward </summary>
|
||||
/// <remarks> Add double the previous result to this delta and divide by three.</remarks>
|
||||
public int GyroZ { get { return (short)((ushort)(gyro[4] << 8) | gyro[5]) / 64; } }
|
||||
public int GyroPitch { get { return _state.Motion.gyroPitch; } }
|
||||
public int getGyroPitch()
|
||||
{
|
||||
return _state.Motion.gyroPitch;
|
||||
}
|
||||
|
||||
public int GyroRoll { get { return _state.Motion.gyroRoll; } }
|
||||
public int getGyroRoll()
|
||||
{
|
||||
return _state.Motion.gyroRoll;
|
||||
}
|
||||
|
||||
public int AccelX { get { return _state.Motion.accelX; } }
|
||||
public int getAccelX()
|
||||
{
|
||||
return _state.Motion.accelX;
|
||||
}
|
||||
|
||||
public int AccelY { get { return _state.Motion.accelY; } }
|
||||
public int getAccelY()
|
||||
{
|
||||
return _state.Motion.accelY;
|
||||
}
|
||||
|
||||
public int AccelZ { get { return _state.Motion.accelZ; } }
|
||||
public int getAccelZ()
|
||||
{
|
||||
return _state.Motion.accelZ;
|
||||
}
|
||||
|
||||
public int OutputAccelX { get { return _state.Motion.outputAccelX; } }
|
||||
public int getOutputAccelX()
|
||||
{
|
||||
return _state.Motion.outputAccelX;
|
||||
}
|
||||
|
||||
public int OutputAccelY { get { return _state.Motion.outputAccelY; } }
|
||||
public int getOutputAccelY()
|
||||
{
|
||||
return _state.Motion.outputAccelY;
|
||||
}
|
||||
|
||||
public int OutputAccelZ { get { return _state.Motion.outputAccelZ; } }
|
||||
public int getOutputAccelZ()
|
||||
{
|
||||
return _state.Motion.outputAccelZ;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,16 +1,13 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace DS4Windows
|
||||
{
|
||||
public class TouchpadEventArgs : EventArgs
|
||||
{
|
||||
public readonly Touch[] touches = null;
|
||||
public readonly System.DateTime timeStamp;
|
||||
public readonly DateTime timeStamp;
|
||||
public readonly bool touchButtonPressed;
|
||||
public TouchpadEventArgs(System.DateTime utcTimestamp, bool tButtonDown, Touch t0, Touch t1 = null)
|
||||
public TouchpadEventArgs(DateTime utcTimestamp, bool tButtonDown, Touch t0, Touch t1 = null)
|
||||
{
|
||||
if (t1 != null)
|
||||
{
|
||||
@ -23,17 +20,23 @@ namespace DS4Windows
|
||||
touches = new Touch[1];
|
||||
touches[0] = t0;
|
||||
}
|
||||
|
||||
touchButtonPressed = tButtonDown;
|
||||
this.timeStamp = utcTimestamp;
|
||||
timeStamp = utcTimestamp;
|
||||
}
|
||||
}
|
||||
|
||||
public class Touch
|
||||
{
|
||||
public readonly int hwX, hwY, deltaX, deltaY;
|
||||
public readonly byte touchID;
|
||||
public readonly Touch previousTouch;
|
||||
public Touch(int X, int Y, byte tID, Touch prevTouch = null)
|
||||
public int hwX, hwY, deltaX, deltaY;
|
||||
public byte touchID;
|
||||
public Touch previousTouch;
|
||||
internal Touch(int X, int Y, byte tID, Touch prevTouch = null)
|
||||
{
|
||||
populate(X, Y, tID, prevTouch);
|
||||
}
|
||||
|
||||
internal void populate(int X, int Y, byte tID, Touch prevTouch = null)
|
||||
{
|
||||
hwX = X;
|
||||
hwY = Y;
|
||||
@ -55,6 +58,7 @@ namespace DS4Windows
|
||||
public event EventHandler<TouchpadEventArgs> TouchButtonDown = null; // touchpad pushed down until the button clicks
|
||||
public event EventHandler<TouchpadEventArgs> TouchButtonUp = null; // touchpad button released
|
||||
public event EventHandler<EventArgs> TouchUnchanged = null; // no status change for the touchpad itself... but other sensors may have changed, or you may just want to do some processing
|
||||
public event EventHandler<EventArgs> PreTouchProcess = null; // used to publish that a touch packet is about to be processed
|
||||
|
||||
public readonly static int TOUCHPAD_DATA_OFFSET = 35;
|
||||
internal int lastTouchPadX1, lastTouchPadY1,
|
||||
@ -63,23 +67,35 @@ namespace DS4Windows
|
||||
internal bool lastIsActive1, lastIsActive2;
|
||||
internal byte lastTouchID1, lastTouchID2;
|
||||
internal byte[] previousPacket = new byte[8];
|
||||
private Touch tPrev0, tPrev1, t0, t1;
|
||||
|
||||
public DS4Touchpad()
|
||||
{
|
||||
tPrev0 = new Touch(0, 0, 0);
|
||||
tPrev1 = new Touch(0, 0, 0);
|
||||
t0 = new Touch(0, 0, 0);
|
||||
t1 = new Touch(0, 0, 0);
|
||||
}
|
||||
|
||||
// We check everything other than the not bothering with not-very-useful TouchPacketCounter.
|
||||
private bool PacketChanged(byte[] data, int touchPacketOffset)
|
||||
{
|
||||
bool changed = false;
|
||||
for (int i = 0; i < previousPacket.Length; i++)
|
||||
for (int i = 0, arLen = previousPacket.Length; !changed && i < arLen; i++)
|
||||
{
|
||||
byte oldValue = previousPacket[i];
|
||||
previousPacket[i] = data[i + TOUCHPAD_DATA_OFFSET + touchPacketOffset];
|
||||
if (previousPacket[i] != oldValue)
|
||||
//byte oldValue = previousPacket[i];
|
||||
//previousPacket[i] = data[i + TOUCHPAD_DATA_OFFSET + touchPacketOffset];
|
||||
if (previousPacket[i] != data[i + TOUCHPAD_DATA_OFFSET + touchPacketOffset])
|
||||
changed = true;
|
||||
}
|
||||
|
||||
return changed;
|
||||
}
|
||||
|
||||
public void handleTouchpad(byte[] data, DS4State sensors, int touchPacketOffset = 0)
|
||||
{
|
||||
PreTouchProcess?.Invoke(this, EventArgs.Empty);
|
||||
|
||||
bool touchPadIsDown = sensors.TouchButton;
|
||||
if (!PacketChanged(data, touchPacketOffset) && touchPadIsDown == lastTouchPadIsDown)
|
||||
{
|
||||
@ -87,12 +103,14 @@ namespace DS4Windows
|
||||
TouchUnchanged(this, EventArgs.Empty);
|
||||
return;
|
||||
}
|
||||
|
||||
Array.Copy(data, TOUCHPAD_DATA_OFFSET + touchPacketOffset, previousPacket, 0, 8);
|
||||
byte touchID1 = (byte)(data[0 + TOUCHPAD_DATA_OFFSET + touchPacketOffset] & 0x7F);
|
||||
byte touchID2 = (byte)(data[4 + TOUCHPAD_DATA_OFFSET + touchPacketOffset] & 0x7F);
|
||||
int currentX1 = data[1 + TOUCHPAD_DATA_OFFSET + touchPacketOffset] + ((data[2 + TOUCHPAD_DATA_OFFSET + touchPacketOffset] & 0xF) * 255);
|
||||
int currentY1 = ((data[2 + TOUCHPAD_DATA_OFFSET + touchPacketOffset] & 0xF0) >> 4) + (data[3 + TOUCHPAD_DATA_OFFSET + touchPacketOffset] * 16);
|
||||
int currentX2 = data[5 + TOUCHPAD_DATA_OFFSET + touchPacketOffset] + ((data[6 + TOUCHPAD_DATA_OFFSET + touchPacketOffset] & 0xF) * 255);
|
||||
int currentY2 = ((data[6 + TOUCHPAD_DATA_OFFSET + touchPacketOffset] & 0xF0) >> 4) + (data[7 + TOUCHPAD_DATA_OFFSET + touchPacketOffset] * 16);
|
||||
int currentX1 = ((data[2 + TOUCHPAD_DATA_OFFSET + touchPacketOffset] & 0x0F) << 8) | data[1 + TOUCHPAD_DATA_OFFSET + touchPacketOffset];
|
||||
int currentY1 = (data[3 + TOUCHPAD_DATA_OFFSET + touchPacketOffset] << 4) | ((data[2 + TOUCHPAD_DATA_OFFSET + touchPacketOffset] & 0xF0) >> 4);
|
||||
int currentX2 = ((data[6 + TOUCHPAD_DATA_OFFSET + touchPacketOffset] & 0x0F) << 8) | data[5 + TOUCHPAD_DATA_OFFSET + touchPacketOffset];
|
||||
int currentY2 = (data[7 + TOUCHPAD_DATA_OFFSET + touchPacketOffset] << 4) | ((data[6 + TOUCHPAD_DATA_OFFSET + touchPacketOffset] & 0xF0) >> 4);
|
||||
|
||||
TouchpadEventArgs args;
|
||||
if (sensors.Touch1 || sensors.Touch2)
|
||||
@ -102,39 +120,54 @@ namespace DS4Windows
|
||||
if (TouchesBegan != null)
|
||||
{
|
||||
if (sensors.Touch1 && sensors.Touch2)
|
||||
args = new TouchpadEventArgs(sensors.ReportTimeStamp, sensors.TouchButton, new Touch(currentX1, currentY1, touchID1), new Touch(currentX2, currentY2, touchID2));
|
||||
{
|
||||
t0.populate(currentX1, currentY1, touchID1); t1.populate(currentX2, currentY2, touchID2);
|
||||
args = new TouchpadEventArgs(sensors.ReportTimeStamp, sensors.TouchButton, t0, t1);
|
||||
}
|
||||
else if (sensors.Touch1)
|
||||
args = new TouchpadEventArgs(sensors.ReportTimeStamp, sensors.TouchButton, new Touch(currentX1, currentY1, touchID1));
|
||||
{
|
||||
t0.populate(currentX1, currentY1, touchID1);
|
||||
args = new TouchpadEventArgs(sensors.ReportTimeStamp, sensors.TouchButton, t0);
|
||||
}
|
||||
else
|
||||
args = new TouchpadEventArgs(sensors.ReportTimeStamp, sensors.TouchButton, new Touch(currentX2, currentY2, touchID2));
|
||||
{
|
||||
t0.populate(currentX2, currentY2, touchID2);
|
||||
args = new TouchpadEventArgs(sensors.ReportTimeStamp, sensors.TouchButton, t0);
|
||||
}
|
||||
|
||||
TouchesBegan(this, args);
|
||||
}
|
||||
}
|
||||
else if (sensors.Touch1 == lastIsActive1 && sensors.Touch2 == lastIsActive2 && TouchesMoved != null)
|
||||
{
|
||||
Touch tPrev, t0, t1;
|
||||
Touch currentT0, currentT1;
|
||||
|
||||
if (sensors.Touch1 && sensors.Touch2)
|
||||
{
|
||||
tPrev = new Touch(lastTouchPadX1, lastTouchPadY1, lastTouchID1);
|
||||
t0 = new Touch(currentX1, currentY1, touchID1, tPrev);
|
||||
tPrev = new Touch(lastTouchPadX2, lastTouchPadY2, lastTouchID2);
|
||||
t1 = new Touch(currentX2, currentY2, touchID2, tPrev);
|
||||
tPrev0.populate(lastTouchPadX1, lastTouchPadY1, lastTouchID1);
|
||||
t0.populate(currentX1, currentY1, touchID1, tPrev0);
|
||||
currentT0 = t0;
|
||||
|
||||
tPrev1.populate(lastTouchPadX2, lastTouchPadY2, lastTouchID2);
|
||||
t1.populate(currentX2, currentY2, touchID2, tPrev1);
|
||||
currentT1 = t1;
|
||||
}
|
||||
else if (sensors.Touch1)
|
||||
{
|
||||
tPrev = new Touch(lastTouchPadX1, lastTouchPadY1, lastTouchID1);
|
||||
t0 = new Touch(currentX1, currentY1, touchID1, tPrev);
|
||||
t1 = null;
|
||||
tPrev0.populate(lastTouchPadX1, lastTouchPadY1, lastTouchID1);
|
||||
t0.populate(currentX1, currentY1, touchID1, tPrev0);
|
||||
currentT0 = t0;
|
||||
currentT1 = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
tPrev = new Touch(lastTouchPadX2, lastTouchPadY2, lastTouchID2);
|
||||
t0 = new Touch(currentX2, currentY2, touchID2, tPrev);
|
||||
t1 = null;
|
||||
tPrev0.populate(lastTouchPadX2, lastTouchPadY2, lastTouchID2);
|
||||
t0.populate(currentX2, currentY2, touchID2, tPrev0);
|
||||
currentT0 = t0;
|
||||
currentT1 = null;
|
||||
}
|
||||
args = new TouchpadEventArgs(sensors.ReportTimeStamp, sensors.TouchButton, t0, t1);
|
||||
|
||||
args = new TouchpadEventArgs(sensors.ReportTimeStamp, sensors.TouchButton, currentT0, currentT1);
|
||||
|
||||
TouchesMoved(this, args);
|
||||
}
|
||||
@ -142,22 +175,42 @@ namespace DS4Windows
|
||||
if (!lastTouchPadIsDown && touchPadIsDown && TouchButtonDown != null)
|
||||
{
|
||||
if (sensors.Touch1 && sensors.Touch2)
|
||||
args = new TouchpadEventArgs(sensors.ReportTimeStamp, sensors.TouchButton, new Touch(currentX1, currentY1, touchID1), new Touch(currentX2, currentY2, touchID2));
|
||||
{
|
||||
t0.populate(currentX1, currentY1, touchID1);
|
||||
t1.populate(currentX2, currentY2, touchID2);
|
||||
args = new TouchpadEventArgs(sensors.ReportTimeStamp, sensors.TouchButton, t0, t1);
|
||||
}
|
||||
else if (sensors.Touch1)
|
||||
args = new TouchpadEventArgs(sensors.ReportTimeStamp, sensors.TouchButton, new Touch(currentX1, currentY1, touchID1));
|
||||
{
|
||||
t0.populate(currentX1, currentY1, touchID1);
|
||||
args = new TouchpadEventArgs(sensors.ReportTimeStamp, sensors.TouchButton, t0);
|
||||
}
|
||||
else
|
||||
args = new TouchpadEventArgs(sensors.ReportTimeStamp, sensors.TouchButton, new Touch(currentX2, currentY2, touchID2));
|
||||
{
|
||||
t0.populate(currentX2, currentY2, touchID2);
|
||||
args = new TouchpadEventArgs(sensors.ReportTimeStamp, sensors.TouchButton, t0);
|
||||
}
|
||||
|
||||
TouchButtonDown(this, args);
|
||||
}
|
||||
else if (lastTouchPadIsDown && !touchPadIsDown && TouchButtonUp != null)
|
||||
{
|
||||
if (sensors.Touch1 && sensors.Touch2)
|
||||
args = new TouchpadEventArgs(sensors.ReportTimeStamp, sensors.TouchButton, new Touch(currentX1, currentY1, touchID1), new Touch(currentX2, currentY2, touchID2));
|
||||
{
|
||||
t0.populate(currentX1, currentY1, touchID1);
|
||||
t1.populate(currentX2, currentY2, touchID2);
|
||||
args = new TouchpadEventArgs(sensors.ReportTimeStamp, sensors.TouchButton, t0, t1);
|
||||
}
|
||||
else if (sensors.Touch1)
|
||||
args = new TouchpadEventArgs(sensors.ReportTimeStamp, sensors.TouchButton, new Touch(currentX1, currentY1, touchID1));
|
||||
{
|
||||
t0.populate(currentX1, currentY1, touchID1);
|
||||
args = new TouchpadEventArgs(sensors.ReportTimeStamp, sensors.TouchButton, t0);
|
||||
}
|
||||
else
|
||||
args = new TouchpadEventArgs(sensors.ReportTimeStamp, sensors.TouchButton, new Touch(currentX2, currentY2, touchID2));
|
||||
{
|
||||
t0.populate(currentX2, currentY2, touchID2);
|
||||
args = new TouchpadEventArgs(sensors.ReportTimeStamp, sensors.TouchButton, t0);
|
||||
}
|
||||
|
||||
TouchButtonUp(this, args);
|
||||
}
|
||||
@ -172,6 +225,7 @@ namespace DS4Windows
|
||||
lastTouchPadX2 = currentX2;
|
||||
lastTouchPadY2 = currentY2;
|
||||
}
|
||||
|
||||
lastTouchPadIsDown = touchPadIsDown;
|
||||
}
|
||||
else
|
||||
@ -190,11 +244,21 @@ namespace DS4Windows
|
||||
if ((lastIsActive1 || lastIsActive2) && TouchesEnded != null)
|
||||
{
|
||||
if (lastIsActive1 && lastIsActive2)
|
||||
args = new TouchpadEventArgs(sensors.ReportTimeStamp, sensors.TouchButton, new Touch(lastTouchPadX1, lastTouchPadY1, touchID1), new Touch(lastTouchPadX2, lastTouchPadY2, touchID2));
|
||||
{
|
||||
t0.populate(lastTouchPadX1, lastTouchPadY1, touchID1);
|
||||
t1.populate(lastTouchPadX2, lastTouchPadY2, touchID2);
|
||||
args = new TouchpadEventArgs(sensors.ReportTimeStamp, sensors.TouchButton, t0, t1);
|
||||
}
|
||||
else if (lastIsActive1)
|
||||
args = new TouchpadEventArgs(sensors.ReportTimeStamp, sensors.TouchButton, new Touch(lastTouchPadX1, lastTouchPadY1, touchID1));
|
||||
{
|
||||
t0.populate(lastTouchPadX1, lastTouchPadY1, touchID1);
|
||||
args = new TouchpadEventArgs(sensors.ReportTimeStamp, sensors.TouchButton, t0);
|
||||
}
|
||||
else
|
||||
args = new TouchpadEventArgs(sensors.ReportTimeStamp, sensors.TouchButton, new Touch(lastTouchPadX2, lastTouchPadY2, touchID2));
|
||||
{
|
||||
t0.populate(lastTouchPadX2, lastTouchPadY2, touchID2);
|
||||
args = new TouchpadEventArgs(sensors.ReportTimeStamp, sensors.TouchButton, t0);
|
||||
}
|
||||
|
||||
TouchesEnded(this, args);
|
||||
}
|
||||
|
176
DS4Windows/DS4Library/LICENSE-Crc32.txt
Normal file
176
DS4Windows/DS4Library/LICENSE-Crc32.txt
Normal file
@ -0,0 +1,176 @@
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
@ -9,10 +9,25 @@
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>DS4Windows</RootNamespace>
|
||||
<AssemblyName>DS4Windows</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
|
||||
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||
<TargetFrameworkProfile />
|
||||
<PublishUrl>publish\</PublishUrl>
|
||||
<Install>true</Install>
|
||||
<InstallFrom>Disk</InstallFrom>
|
||||
<UpdateEnabled>false</UpdateEnabled>
|
||||
<UpdateMode>Foreground</UpdateMode>
|
||||
<UpdateInterval>7</UpdateInterval>
|
||||
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
|
||||
<UpdatePeriodically>false</UpdatePeriodically>
|
||||
<UpdateRequired>false</UpdateRequired>
|
||||
<MapFileExtensions>true</MapFileExtensions>
|
||||
<ApplicationRevision>0</ApplicationRevision>
|
||||
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
|
||||
<IsWebBootstrapper>false</IsWebBootstrapper>
|
||||
<UseApplicationTrust>false</UseApplicationTrust>
|
||||
<BootstrapperEnabled>true</BootstrapperEnabled>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
@ -27,12 +42,16 @@
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<DebugType>none</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<DefineConstants>
|
||||
</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<Prefer32Bit>false</Prefer32Bit>
|
||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||
<LangVersion>6</LangVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<StartupObject>DS4Windows.Program</StartupObject>
|
||||
@ -52,26 +71,73 @@
|
||||
<PropertyGroup>
|
||||
<ApplicationManifest>app.manifest</ApplicationManifest>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\x64\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
|
||||
<OutputPath>bin\x64\Release\</OutputPath>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>none</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
<DefineConstants>WIN64</DefineConstants>
|
||||
<GenerateSerializationAssemblies>On</GenerateSerializationAssemblies>
|
||||
<LangVersion>6</LangVersion>
|
||||
<DebugSymbols>false</DebugSymbols>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\x86\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
<Prefer32Bit>true</Prefer32Bit>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
|
||||
<OutputPath>bin\x86\Release\</OutputPath>
|
||||
<Optimize>true</Optimize>
|
||||
<DebugType>none</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
|
||||
<Prefer32Bit>true</Prefer32Bit>
|
||||
<LangVersion>6</LangVersion>
|
||||
<GenerateSerializationAssemblies>On</GenerateSerializationAssemblies>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Microsoft.Win32.TaskScheduler, Version=2.8.0.0, Culture=neutral, PublicKeyToken=c416bc1b32d97233, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\TaskScheduler.2.8.0\lib\net452\Microsoft.Win32.TaskScheduler.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.IO.Compression" />
|
||||
<Reference Include="System.IO.Compression.FileSystem" />
|
||||
<Reference Include="System.Management" />
|
||||
<Reference Include="System.ServiceProcess" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Deployment" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="DS4Control\ControlSerivce.cs" />
|
||||
<Compile Include="DS4Control\ControlService.cs" />
|
||||
<Compile Include="DS4Control\DS4LightBar.cs" />
|
||||
<Compile Include="DS4Control\DS4StateFieldMapping.cs" />
|
||||
<Compile Include="DS4Control\InputMethods.cs" />
|
||||
<Compile Include="DS4Control\ITouchpadBehaviour.cs" />
|
||||
<Compile Include="DS4Control\Log.cs" />
|
||||
@ -98,6 +164,14 @@
|
||||
<Compile Include="DS4Control\X360Device.designer.cs">
|
||||
<DependentUpon>X360Device.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="DS4Forms\LanguagePackComboBox.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="DS4Forms\LanguagePackComboBox.Designer.cs">
|
||||
<DependentUpon>LanguagePackComboBox.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="DS4Library\Crc32.cs" />
|
||||
<Compile Include="DS4Library\DS4Audio.cs" />
|
||||
<Compile Include="DS4Library\DS4Device.cs" />
|
||||
<Compile Include="DS4Library\DS4Devices.cs" />
|
||||
<Compile Include="DS4Library\DS4Sixaxis.cs" />
|
||||
@ -106,12 +180,6 @@
|
||||
<Compile Include="DS4Library\DS4Touchpad.cs" />
|
||||
<Compile Include="DS4Forms\AdvancedColorDialog.cs" />
|
||||
<Compile Include="DS4Forms\AdvancedComboBox.cs" />
|
||||
<Compile Include="DS4Forms\Alreadyrunning.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="DS4Forms\Alreadyrunning.Designer.cs">
|
||||
<DependentUpon>Alreadyrunning.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="DS4Forms\DS4Form.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
@ -187,56 +255,68 @@
|
||||
<Compile Include="HidLibrary\HidDevices.cs" />
|
||||
<Compile Include="HidLibrary\NativeMethods.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<EmbeddedResource Include="DS4Forms\Alreadyrunning.resx">
|
||||
<DependentUpon>Alreadyrunning.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="DS4Forms\DS4Form.ar.resx">
|
||||
<DependentUpon>DS4Form.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="DS4Forms\DS4Form.cs.resx">
|
||||
<DependentUpon>DS4Form.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="DS4Forms\DS4Form.de-DE.resx">
|
||||
<DependentUpon>DS4Form.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="DS4Forms\DS4Form.el.resx">
|
||||
<DependentUpon>DS4Form.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="DS4Forms\DS4Form.es.resx">
|
||||
<DependentUpon>DS4Form.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="DS4Forms\DS4Form.fi.resx">
|
||||
<DependentUpon>DS4Form.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="DS4Forms\DS4Form.fr-FR.resx">
|
||||
<DependentUpon>DS4Form.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="DS4Forms\DS4Form.he.resx">
|
||||
<DependentUpon>DS4Form.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="DS4Forms\DS4Form.hu.resx">
|
||||
<DependentUpon>DS4Form.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="DS4Forms\DS4Form.id.resx">
|
||||
<DependentUpon>DS4Form.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="DS4Forms\DS4Form.it-IT.resx">
|
||||
<DependentUpon>DS4Form.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="DS4Forms\DS4Form.ja.resx">
|
||||
<DependentUpon>DS4Form.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="DS4Forms\DS4Form.ko.resx">
|
||||
<DependentUpon>DS4Form.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="DS4Forms\DS4Form.nl.resx">
|
||||
<DependentUpon>DS4Form.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="DS4Forms\DS4Form.pl.resx">
|
||||
<DependentUpon>DS4Form.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="DS4Forms\DS4Form.pt-BR.resx">
|
||||
<DependentUpon>DS4Form.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="DS4Forms\DS4Form.resx">
|
||||
<DependentUpon>DS4Form.cs</DependentUpon>
|
||||
@ -246,27 +326,34 @@
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="DS4Forms\DS4Form.ru-RU.resx">
|
||||
<DependentUpon>DS4Form.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="DS4Forms\DS4Form.sl.resx">
|
||||
<DependentUpon>DS4Form.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="DS4Forms\DS4Form.sv.resx">
|
||||
<DependentUpon>DS4Form.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="DS4Forms\DS4Form.tr.resx">
|
||||
<DependentUpon>DS4Form.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="DS4Forms\DS4Form.uk.resx">
|
||||
<DependentUpon>DS4Form.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="DS4Forms\DS4Form.vi.resx">
|
||||
<DependentUpon>DS4Form.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="DS4Forms\DS4Form.zh-Hans.resx">
|
||||
<DependentUpon>DS4Form.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="DS4Forms\DS4Form.zh-Hant.resx">
|
||||
<DependentUpon>DS4Form.cs</DependentUpon>
|
||||
<SubType>Designer</SubType>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="DS4Forms\DS4Keyboard.resx">
|
||||
<DependentUpon>DS4Keyboard.cs</DependentUpon>
|
||||
@ -505,6 +592,9 @@
|
||||
<EmbeddedResource Include="DS4Forms\KBM360.zh-Hant.resx">
|
||||
<DependentUpon>KBM360.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="DS4Forms\LanguagePackComboBox.resx">
|
||||
<DependentUpon>LanguagePackComboBox.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="DS4Forms\Options.ar.resx">
|
||||
<DependentUpon>Options.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
@ -1004,6 +1094,7 @@
|
||||
<EmbeddedResource Include="Properties\Resources.zh-hans.resx" />
|
||||
<EmbeddedResource Include="Properties\Resources.zh-Hant.resx" />
|
||||
<None Include="app.manifest" />
|
||||
<None Include="packages.config" />
|
||||
<None Include="Properties\Settings.settings">
|
||||
<Generator>SettingsSingleFileGenerator</Generator>
|
||||
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||
@ -1023,18 +1114,7 @@
|
||||
<None Include="App.config" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<COMReference Include="IWshRuntimeLibrary">
|
||||
<Guid>{F935DC20-1CF0-11D0-ADB9-00C04FD58A0B}</Guid>
|
||||
<VersionMajor>1</VersionMajor>
|
||||
<VersionMinor>0</VersionMinor>
|
||||
<Lcid>0</Lcid>
|
||||
<WrapperTool>tlbimp</WrapperTool>
|
||||
<Isolated>False</Isolated>
|
||||
<EmbedInteropTypes>True</EmbedInteropTypes>
|
||||
</COMReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="HidLibrary\LICENSE.htm" />
|
||||
<Content Include="HidLibrary\LICENSE" />
|
||||
<Content Include="Resources\360 fades.png" />
|
||||
<None Include="Resources\360 map.png" />
|
||||
<None Include="Resources\360 highlight.png" />
|
||||
@ -1117,7 +1197,28 @@
|
||||
<Content Include="Resources\xbox_360_controller.png" />
|
||||
<Content Include="Resources\Y.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<BootstrapperPackage Include=".NETFramework,Version=v4.5.2">
|
||||
<Visible>False</Visible>
|
||||
<ProductName>Microsoft .NET Framework 4.5.2 %28x86 and x64%29</ProductName>
|
||||
<Install>true</Install>
|
||||
</BootstrapperPackage>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<PropertyGroup>
|
||||
<PostBuildEvent>rem Copy compiled l18n assemblies to alt folder
|
||||
GOTO END
|
||||
if not exist $(TargetDir)Lang mkdir $(TargetDir)Lang
|
||||
set langs=ar cs de de-DE el es fi fr fr-FR he hu id it it-IT ja ko nl pl ^
|
||||
|
||||
pt-BR ro-RO ru-RU sl sv tr uk vi zh-CN zh-Hans zh-Hant
|
||||
|
||||
for %25%25l in (%25langs%25) do (
|
||||
xcopy $(TargetDir)%25%25l $(TargetDir)Lang\%25%25l\ /s /y
|
||||
)
|
||||
|
||||
:END</PostBuildEvent>
|
||||
</PropertyGroup>
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
|
@ -83,6 +83,25 @@ namespace DS4Windows
|
||||
IsExclusive = isExclusive;
|
||||
}
|
||||
|
||||
public void OpenFileStream(int reportSize)
|
||||
{
|
||||
if (fileStream == null && !safeReadHandle.IsInvalid)
|
||||
{
|
||||
fileStream = new FileStream(safeReadHandle, FileAccess.ReadWrite, reportSize, true);
|
||||
}
|
||||
}
|
||||
|
||||
public bool IsFileStreamOpen()
|
||||
{
|
||||
bool result = false;
|
||||
if (fileStream != null)
|
||||
{
|
||||
result = !fileStream.SafeFileHandle.IsInvalid && !fileStream.SafeFileHandle.IsClosed;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public void CloseDevice()
|
||||
{
|
||||
if (!IsOpen) return;
|
||||
@ -110,6 +129,17 @@ namespace DS4Windows
|
||||
return NativeMethods.HidD_GetInputReport(safeReadHandle, data, data.Length);
|
||||
}
|
||||
|
||||
public bool WriteFeatureReport(byte[] data)
|
||||
{
|
||||
bool result = false;
|
||||
if (IsOpen && safeReadHandle != null)
|
||||
{
|
||||
result = NativeMethods.HidD_SetFeature(safeReadHandle, data, data.Length);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
private static HidDeviceAttributes GetDeviceAttributes(SafeFileHandle hidHandle)
|
||||
{
|
||||
@ -129,21 +159,37 @@ namespace DS4Windows
|
||||
NativeMethods.HidP_GetCaps(preparsedDataPointer, ref capabilities);
|
||||
NativeMethods.HidD_FreePreparsedData(preparsedDataPointer);
|
||||
}
|
||||
|
||||
return new HidDeviceCapabilities(capabilities);
|
||||
}
|
||||
|
||||
private void closeFileStreamIO()
|
||||
{
|
||||
if (fileStream != null)
|
||||
fileStream.Close();
|
||||
{
|
||||
try
|
||||
{
|
||||
fileStream.Close();
|
||||
}
|
||||
catch (IOException) { }
|
||||
catch (OperationCanceledException) { }
|
||||
}
|
||||
|
||||
fileStream = null;
|
||||
Console.WriteLine("Close fs");
|
||||
if (safeReadHandle != null && !safeReadHandle.IsInvalid)
|
||||
{
|
||||
safeReadHandle.Close();
|
||||
Console.WriteLine("Close sh");
|
||||
|
||||
try
|
||||
{
|
||||
if (!safeReadHandle.IsClosed)
|
||||
{
|
||||
safeReadHandle.Close();
|
||||
Console.WriteLine("Close sh");
|
||||
}
|
||||
}
|
||||
catch (IOException) { }
|
||||
}
|
||||
|
||||
safeReadHandle = null;
|
||||
}
|
||||
|
||||
@ -173,6 +219,7 @@ namespace DS4Windows
|
||||
return ReadStatus.ReadError;
|
||||
}
|
||||
}
|
||||
|
||||
public ReadStatus ReadFile(byte[] inputBuffer)
|
||||
{
|
||||
if (safeReadHandle == null)
|
||||
@ -195,6 +242,25 @@ namespace DS4Windows
|
||||
}
|
||||
}
|
||||
|
||||
public ReadStatus ReadWithFileStream(byte[] inputBuffer)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (fileStream.Read(inputBuffer, 0, inputBuffer.Length) > 0)
|
||||
{
|
||||
return ReadStatus.Success;
|
||||
}
|
||||
else
|
||||
{
|
||||
return ReadStatus.NoDataRead;
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
return ReadStatus.ReadError;
|
||||
}
|
||||
}
|
||||
|
||||
public ReadStatus ReadWithFileStream(byte[] inputBuffer, int timeout)
|
||||
{
|
||||
try
|
||||
@ -202,10 +268,10 @@ namespace DS4Windows
|
||||
if (safeReadHandle == null)
|
||||
safeReadHandle = OpenHandle(_devicePath, true);
|
||||
if (fileStream == null && !safeReadHandle.IsInvalid)
|
||||
fileStream = new FileStream(safeReadHandle, FileAccess.ReadWrite, inputBuffer.Length, false);
|
||||
fileStream = new FileStream(safeReadHandle, FileAccess.ReadWrite, inputBuffer.Length, true);
|
||||
|
||||
if (!safeReadHandle.IsInvalid && fileStream.CanRead)
|
||||
{
|
||||
|
||||
Task<ReadStatus> readFileTask = new Task<ReadStatus>(() => ReadWithFileStreamTask(inputBuffer));
|
||||
readFileTask.Start();
|
||||
bool success = readFileTask.Wait(timeout);
|
||||
@ -242,8 +308,52 @@ namespace DS4Windows
|
||||
}
|
||||
}
|
||||
|
||||
return ReadStatus.ReadError;
|
||||
}
|
||||
|
||||
public ReadStatus ReadAsyncWithFileStream(byte[] inputBuffer, int timeout)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (safeReadHandle == null)
|
||||
safeReadHandle = OpenHandle(_devicePath, true);
|
||||
if (fileStream == null && !safeReadHandle.IsInvalid)
|
||||
fileStream = new FileStream(safeReadHandle, FileAccess.ReadWrite, inputBuffer.Length, true);
|
||||
|
||||
if (!safeReadHandle.IsInvalid && fileStream.CanRead)
|
||||
{
|
||||
Task<int> readTask = fileStream.ReadAsync(inputBuffer, 0, inputBuffer.Length);
|
||||
bool success = readTask.Wait(timeout);
|
||||
if (success)
|
||||
{
|
||||
if (readTask.Result > 0)
|
||||
{
|
||||
return ReadStatus.Success;
|
||||
}
|
||||
else
|
||||
{
|
||||
return ReadStatus.NoDataRead;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return ReadStatus.WaitTimedOut;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
if (e is AggregateException)
|
||||
{
|
||||
Console.WriteLine(e.Message);
|
||||
return ReadStatus.WaitFail;
|
||||
}
|
||||
else
|
||||
{
|
||||
return ReadStatus.ReadError;
|
||||
}
|
||||
}
|
||||
|
||||
return ReadStatus.ReadError;
|
||||
}
|
||||
@ -285,7 +395,7 @@ namespace DS4Windows
|
||||
}
|
||||
if (fileStream == null && !safeReadHandle.IsInvalid)
|
||||
{
|
||||
fileStream = new FileStream(safeReadHandle, FileAccess.ReadWrite, outputBuffer.Length, false);
|
||||
fileStream = new FileStream(safeReadHandle, FileAccess.ReadWrite, outputBuffer.Length, true);
|
||||
}
|
||||
if (fileStream != null && fileStream.CanWrite && !safeReadHandle.IsInvalid)
|
||||
{
|
||||
@ -304,25 +414,49 @@ namespace DS4Windows
|
||||
|
||||
}
|
||||
|
||||
private SafeFileHandle OpenHandle(String devicePathName, Boolean isExclusive)
|
||||
public bool WriteAsyncOutputReportViaInterrupt(byte[] outputBuffer)
|
||||
{
|
||||
SafeFileHandle hidHandle;
|
||||
|
||||
try
|
||||
{
|
||||
if (isExclusive)
|
||||
if (safeReadHandle == null)
|
||||
{
|
||||
hidHandle = NativeMethods.CreateFile(devicePathName, NativeMethods.GENERIC_READ | NativeMethods.GENERIC_WRITE, 0, IntPtr.Zero, NativeMethods.OpenExisting, 0, 0);
|
||||
safeReadHandle = OpenHandle(_devicePath, true);
|
||||
}
|
||||
if (fileStream == null && !safeReadHandle.IsInvalid)
|
||||
{
|
||||
fileStream = new FileStream(safeReadHandle, FileAccess.ReadWrite, outputBuffer.Length, true);
|
||||
}
|
||||
if (fileStream != null && fileStream.CanWrite && !safeReadHandle.IsInvalid)
|
||||
{
|
||||
Task writeTask = fileStream.WriteAsync(outputBuffer, 0, outputBuffer.Length);
|
||||
//fileStream.Write(outputBuffer, 0, outputBuffer.Length);
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
hidHandle = NativeMethods.CreateFile(devicePathName, NativeMethods.GENERIC_READ | NativeMethods.GENERIC_WRITE, NativeMethods.FILE_SHARE_READ | NativeMethods.FILE_SHARE_WRITE, IntPtr.Zero, NativeMethods.OpenExisting, 0, 0);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
throw;
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private SafeFileHandle OpenHandle(String devicePathName, Boolean isExclusive)
|
||||
{
|
||||
SafeFileHandle hidHandle;
|
||||
|
||||
if (isExclusive)
|
||||
{
|
||||
hidHandle = NativeMethods.CreateFile(devicePathName, NativeMethods.GENERIC_READ | NativeMethods.GENERIC_WRITE, 0, IntPtr.Zero, NativeMethods.OpenExisting, 0x20000000 | 0x80000000 | NativeMethods.FILE_FLAG_OVERLAPPED, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
hidHandle = NativeMethods.CreateFile(devicePathName, NativeMethods.GENERIC_READ | NativeMethods.GENERIC_WRITE, NativeMethods.FILE_SHARE_READ | NativeMethods.FILE_SHARE_WRITE, IntPtr.Zero, NativeMethods.OpenExisting, 0x20000000 | 0x80000000 | NativeMethods.FILE_FLAG_OVERLAPPED, 0);
|
||||
}
|
||||
|
||||
return hidHandle;
|
||||
}
|
||||
|
||||
@ -331,6 +465,11 @@ namespace DS4Windows
|
||||
return NativeMethods.HidD_GetFeature(safeReadHandle.DangerousGetHandle(), inputBuffer, inputBuffer.Length);
|
||||
}
|
||||
|
||||
public void resetSerial()
|
||||
{
|
||||
serial = null;
|
||||
}
|
||||
|
||||
public string readSerial()
|
||||
{
|
||||
if (serial != null)
|
||||
@ -347,7 +486,12 @@ namespace DS4Windows
|
||||
else
|
||||
{
|
||||
byte[] buffer = new byte[126];
|
||||
NativeMethods.HidD_GetSerialNumberString(safeReadHandle.DangerousGetHandle(), buffer, (ulong)buffer.Length);
|
||||
#if WIN64
|
||||
ulong bufferLen = 126;
|
||||
#else
|
||||
uint bufferLen = 126;
|
||||
#endif
|
||||
NativeMethods.HidD_GetSerialNumberString(safeReadHandle.DangerousGetHandle(), buffer, bufferLen);
|
||||
string MACAddr = System.Text.Encoding.Unicode.GetString(buffer).Replace("\0", string.Empty).ToUpper();
|
||||
MACAddr = $"{MACAddr[0]}{MACAddr[1]}:{MACAddr[2]}{MACAddr[3]}:{MACAddr[4]}{MACAddr[5]}:{MACAddr[6]}{MACAddr[7]}:{MACAddr[8]}{MACAddr[9]}:{MACAddr[10]}{MACAddr[11]}";
|
||||
serial = MACAddr;
|
||||
|
@ -36,6 +36,37 @@ namespace DS4Windows
|
||||
productIds.Contains(x.Attributes.ProductId));
|
||||
}
|
||||
|
||||
public static IEnumerable<HidDevice> Enumerate(int[] vendorIds, params int[] productIds)
|
||||
{
|
||||
return EnumerateDevices().Select(x => new HidDevice(x.Path, x.Description)).Where(x => vendorIds.Contains(x.Attributes.VendorId) &&
|
||||
productIds.Contains(x.Attributes.ProductId));
|
||||
}
|
||||
|
||||
public static IEnumerable<HidDevice> EnumerateDS4(VidPidInfo[] devInfo)
|
||||
{
|
||||
List<HidDevice> foundDevs = new List<HidDevice>();
|
||||
int devInfoLen = devInfo.Length;
|
||||
IEnumerable<DeviceInfo> temp = EnumerateDevices();
|
||||
for (int i = 0, len = temp.Count(); i < len; i++)
|
||||
{
|
||||
DeviceInfo x = temp.ElementAt(i);
|
||||
HidDevice tempDev = new HidDevice(x.Path, x.Description);
|
||||
bool found = false;
|
||||
for (int j = 0; !found && j < devInfoLen; j++)
|
||||
{
|
||||
VidPidInfo tempInfo = devInfo[j];
|
||||
if (tempDev.Attributes.VendorId == tempInfo.vid &&
|
||||
tempDev.Attributes.ProductId == tempInfo.pid)
|
||||
{
|
||||
found = true;
|
||||
foundDevs.Add(tempDev);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return foundDevs;
|
||||
}
|
||||
|
||||
public static IEnumerable<HidDevice> Enumerate(int vendorId)
|
||||
{
|
||||
return EnumerateDevices().Select(x => new HidDevice(x.Path, x.Description)).Where(x => x.Attributes.VendorId == vendorId);
|
||||
|
18
DS4Windows/HidLibrary/LICENSE
Normal file
18
DS4Windows/HidLibrary/LICENSE
Normal file
@ -0,0 +1,18 @@
|
||||
Copyright (c) 2010 Ultraviolet Catastrophe
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is furnished
|
||||
to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
||||
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user