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 = devices.ElementAt(i);
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.Start();
@ -666,7 +667,9 @@ namespace DS4Windows
{
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.Start();
DS4Controllers[Index] = device;

View File

@ -399,14 +399,17 @@ namespace DS4Windows
private bool timeoutEvent = false;
private bool runCalib;
private bool hasInputEvts = false;
private string displayName;
public string DisplayName => displayName;
public bool ShouldRunCalib()
{
return runCalib;
}
public DS4Device(HidDevice hidDevice)
public DS4Device(HidDevice hidDevice, string disName)
{
hDevice = hidDevice;
displayName = disName;
conType = HidConnectionType(hDevice);
Mac = hDevice.readSerial();
runCalib = true;

View File

@ -11,10 +11,12 @@ namespace DS4Windows
{
public readonly int vid;
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.pid = pid;
this.name = name;
}
}
@ -35,21 +37,21 @@ namespace DS4Windows
private static VidPidInfo[] knownDevices =
{
new VidPidInfo(SONY_VID, 0xBA0),
new VidPidInfo(SONY_VID, 0x5C4),
new VidPidInfo(SONY_VID, 0x09CC),
new VidPidInfo(SONY_VID, 0xBA0, "Sony WA"),
new VidPidInfo(SONY_VID, 0x5C4, "DS4 v.1"),
new VidPidInfo(SONY_VID, 0x09CC, "DS4 v.2"),
new VidPidInfo(RAZER_VID, 0x1000),
new VidPidInfo(NACON_VID, 0x0D01),
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(0x2E95, 0x7725), // Scuf Vantage gamepad
new VidPidInfo(0x11C0, 0x4001), // PS4 Fun Controller
new VidPidInfo(RAZER_VID, 0x1007), // Razer Raiju Tournament Edition
new VidPidInfo(RAZER_VID, 0x1004), // 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(SONY_VID, 0x05C5), // 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(0x2E95, 0x7725, "Scuf Vantage"), // Scuf Vantage gamepad
new VidPidInfo(0x11C0, 0x4001, "PS4 Fun"), // PS4 Fun Controller
new VidPidInfo(RAZER_VID, 0x1007, "Razer Raiju TE"), // Razer Raiju Tournament Edition
new VidPidInfo(RAZER_VID, 0x1004, "Razer Raiju UE USB"), // Razer Raiju Ultimate Edition (wired)
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 Mode)"), // CronusMax (PS4 Output Mode)
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)
@ -101,6 +103,8 @@ namespace DS4Windows
else if (DevicePaths.Contains(hDevice.DevicePath))
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)
{
hDevice.OpenDevice(isExclusiveMode);
@ -164,7 +168,7 @@ namespace DS4Windows
}
else
{
DS4Device ds4Device = new DS4Device(hDevice);
DS4Device ds4Device = new DS4Device(hDevice, metainfo.name);
//ds4Device.Removal += On_Removal;
if (!ds4Device.ExitOutputThread)
{