Added identifier name to meta info

Related to issue #816
This commit is contained in:
Travis Nickles 2019-09-07 08:29:25 -05:00
parent 459c6e71f0
commit e89c8b6c3a
3 changed files with 26 additions and 16 deletions

View File

@ -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;

View File

@ -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;

View File

@ -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)
{ {