mirror of
https://github.com/cemu-project/DS4Windows.git
synced 2024-12-25 08:01:49 +01:00
parent
459c6e71f0
commit
e89c8b6c3a
@ -403,7 +403,8 @@ namespace DS4Windows
|
|||||||
DS4Device device = devEnum.Current;
|
DS4Device device = devEnum.Current;
|
||||||
//DS4Device device = devices.ElementAt(i);
|
//DS4Device device = devices.ElementAt(i);
|
||||||
if (showlog)
|
if (showlog)
|
||||||
LogDebug(Properties.Resources.FoundController + device.getMacAddress() + " (" + device.getConnectionType() + ")");
|
LogDebug(Properties.Resources.FoundController + " " + device.getMacAddress() + " (" + device.getConnectionType() + ") (" +
|
||||||
|
device.DisplayName + ")");
|
||||||
|
|
||||||
Task task = new Task(() => { Thread.Sleep(5); WarnExclusiveModeFailure(device); });
|
Task task = new Task(() => { Thread.Sleep(5); WarnExclusiveModeFailure(device); });
|
||||||
task.Start();
|
task.Start();
|
||||||
@ -666,7 +667,9 @@ namespace DS4Windows
|
|||||||
{
|
{
|
||||||
if (DS4Controllers[Index] == null)
|
if (DS4Controllers[Index] == null)
|
||||||
{
|
{
|
||||||
LogDebug(Properties.Resources.FoundController + device.getMacAddress() + " (" + device.getConnectionType() + ")");
|
//LogDebug(Properties.Resources.FoundController + device.getMacAddress() + " (" + device.getConnectionType() + ")");
|
||||||
|
LogDebug(Properties.Resources.FoundController + " " + device.getMacAddress() + " (" + device.getConnectionType() + ") (" +
|
||||||
|
device.DisplayName + ")");
|
||||||
Task task = new Task(() => { Thread.Sleep(5); WarnExclusiveModeFailure(device); });
|
Task task = new Task(() => { Thread.Sleep(5); WarnExclusiveModeFailure(device); });
|
||||||
task.Start();
|
task.Start();
|
||||||
DS4Controllers[Index] = device;
|
DS4Controllers[Index] = device;
|
||||||
|
@ -399,14 +399,17 @@ namespace DS4Windows
|
|||||||
private bool timeoutEvent = false;
|
private bool timeoutEvent = false;
|
||||||
private bool runCalib;
|
private bool runCalib;
|
||||||
private bool hasInputEvts = false;
|
private bool hasInputEvts = false;
|
||||||
|
private string displayName;
|
||||||
|
public string DisplayName => displayName;
|
||||||
public bool ShouldRunCalib()
|
public bool ShouldRunCalib()
|
||||||
{
|
{
|
||||||
return runCalib;
|
return runCalib;
|
||||||
}
|
}
|
||||||
|
|
||||||
public DS4Device(HidDevice hidDevice)
|
public DS4Device(HidDevice hidDevice, string disName)
|
||||||
{
|
{
|
||||||
hDevice = hidDevice;
|
hDevice = hidDevice;
|
||||||
|
displayName = disName;
|
||||||
conType = HidConnectionType(hDevice);
|
conType = HidConnectionType(hDevice);
|
||||||
Mac = hDevice.readSerial();
|
Mac = hDevice.readSerial();
|
||||||
runCalib = true;
|
runCalib = true;
|
||||||
|
@ -11,10 +11,12 @@ namespace DS4Windows
|
|||||||
{
|
{
|
||||||
public readonly int vid;
|
public readonly int vid;
|
||||||
public readonly int pid;
|
public readonly int pid;
|
||||||
internal VidPidInfo(int vid, int pid)
|
public readonly string name;
|
||||||
|
internal VidPidInfo(int vid, int pid, string name = "Generic DS4")
|
||||||
{
|
{
|
||||||
this.vid = vid;
|
this.vid = vid;
|
||||||
this.pid = pid;
|
this.pid = pid;
|
||||||
|
this.name = name;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -35,21 +37,21 @@ namespace DS4Windows
|
|||||||
|
|
||||||
private static VidPidInfo[] knownDevices =
|
private static VidPidInfo[] knownDevices =
|
||||||
{
|
{
|
||||||
new VidPidInfo(SONY_VID, 0xBA0),
|
new VidPidInfo(SONY_VID, 0xBA0, "Sony WA"),
|
||||||
new VidPidInfo(SONY_VID, 0x5C4),
|
new VidPidInfo(SONY_VID, 0x5C4, "DS4 v.1"),
|
||||||
new VidPidInfo(SONY_VID, 0x09CC),
|
new VidPidInfo(SONY_VID, 0x09CC, "DS4 v.2"),
|
||||||
new VidPidInfo(RAZER_VID, 0x1000),
|
new VidPidInfo(RAZER_VID, 0x1000),
|
||||||
new VidPidInfo(NACON_VID, 0x0D01),
|
new VidPidInfo(NACON_VID, 0x0D01),
|
||||||
new VidPidInfo(NACON_VID, 0x0D02),
|
new VidPidInfo(NACON_VID, 0x0D02),
|
||||||
new VidPidInfo(HORI_VID, 0x00EE), // Hori PS4 Mini Wired Gamepad
|
new VidPidInfo(HORI_VID, 0x00EE, "Hori PS4 Mini"), // Hori PS4 Mini Wired Gamepad
|
||||||
new VidPidInfo(0x7545, 0x0104),
|
new VidPidInfo(0x7545, 0x0104),
|
||||||
new VidPidInfo(0x2E95, 0x7725), // Scuf Vantage gamepad
|
new VidPidInfo(0x2E95, 0x7725, "Scuf Vantage"), // Scuf Vantage gamepad
|
||||||
new VidPidInfo(0x11C0, 0x4001), // PS4 Fun Controller
|
new VidPidInfo(0x11C0, 0x4001, "PS4 Fun"), // PS4 Fun Controller
|
||||||
new VidPidInfo(RAZER_VID, 0x1007), // Razer Raiju Tournament Edition
|
new VidPidInfo(RAZER_VID, 0x1007, "Razer Raiju TE"), // Razer Raiju Tournament Edition
|
||||||
new VidPidInfo(RAZER_VID, 0x1004), // Razer Raiju Ultimate Edition (wired)
|
new VidPidInfo(RAZER_VID, 0x1004, "Razer Raiju UE USB"), // Razer Raiju Ultimate Edition (wired)
|
||||||
new VidPidInfo(RAZER_VID, 0x1009), // Razer Raiju Ultimate Edition (BT). Doesn't work yet for some reason even when non-steam Razer driver lists the BT Razer Ultimate with this ID.
|
new VidPidInfo(RAZER_VID, 0x1009, "Razer Raiju UE BT"), // Razer Raiju Ultimate Edition (BT). Doesn't work yet for some reason even when non-steam Razer driver lists the BT Razer Ultimate with this ID.
|
||||||
new VidPidInfo(SONY_VID, 0x05C5), // CronusMax (PS4 Output Mode)
|
new VidPidInfo(SONY_VID, 0x05C5, "CronusMax (PS4 Mode)"), // CronusMax (PS4 Output Mode)
|
||||||
new VidPidInfo(0x0C12, 0x57AB), // Warrior Joypad JS083 (wired). Custom lightbar color doesn't work, but everything else works OK (except touchpad and gyro because the gamepad doesnt have those).
|
new VidPidInfo(0x0C12, 0x57AB, "Warrior Joypad JS083"), // Warrior Joypad JS083 (wired). Custom lightbar color doesn't work, but everything else works OK (except touchpad and gyro because the gamepad doesnt have those).
|
||||||
};
|
};
|
||||||
|
|
||||||
private static string devicePathToInstanceId(string devicePath)
|
private static string devicePathToInstanceId(string devicePath)
|
||||||
@ -101,6 +103,8 @@ namespace DS4Windows
|
|||||||
else if (DevicePaths.Contains(hDevice.DevicePath))
|
else if (DevicePaths.Contains(hDevice.DevicePath))
|
||||||
continue; // BT/USB endpoint already open once
|
continue; // BT/USB endpoint already open once
|
||||||
|
|
||||||
|
VidPidInfo metainfo = knownDevices.Single(x => x.vid == hDevice.Attributes.VendorId &&
|
||||||
|
x.pid == hDevice.Attributes.ProductId);
|
||||||
if (!hDevice.IsOpen)
|
if (!hDevice.IsOpen)
|
||||||
{
|
{
|
||||||
hDevice.OpenDevice(isExclusiveMode);
|
hDevice.OpenDevice(isExclusiveMode);
|
||||||
@ -164,7 +168,7 @@ namespace DS4Windows
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
DS4Device ds4Device = new DS4Device(hDevice);
|
DS4Device ds4Device = new DS4Device(hDevice, metainfo.name);
|
||||||
//ds4Device.Removal += On_Removal;
|
//ds4Device.Removal += On_Removal;
|
||||||
if (!ds4Device.ExitOutputThread)
|
if (!ds4Device.ExitOutputThread)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user