diff --git a/RGB.NET.Devices.Logitech/HID/Extensions.cs b/RGB.NET.Devices.Logitech/HID/Extensions.cs index 30cc874..4a0bf68 100644 --- a/RGB.NET.Devices.Logitech/HID/Extensions.cs +++ b/RGB.NET.Devices.Logitech/HID/Extensions.cs @@ -3,6 +3,7 @@ using HidSharp.Reports.Encodings; using System; using System.Linq; using System.Runtime.InteropServices; +using System.Collections.Generic; namespace RGB.NET.Devices.Logitech.HID { @@ -18,10 +19,10 @@ namespace RGB.NET.Devices.Logitech.HID { try { - var descriptor = device.GetRawReportDescriptor(); - var decodedItems = EncodedItem.DecodeItems(descriptor, 0, descriptor.Length); - var usefulItems = decodedItems.Where(de => de.TagForLocal == LocalItemTag.Usage && de.TagForGlobal == GlobalItemTag.UsagePage); - var usagePage = usefulItems.FirstOrDefault(de => de.ItemType == ItemType.Global); + byte[]? descriptor = device.GetRawReportDescriptor(); + IEnumerable? decodedItems = EncodedItem.DecodeItems(descriptor, 0, descriptor.Length); + IEnumerable? usefulItems = decodedItems.Where(de => de.TagForLocal == LocalItemTag.Usage && de.TagForGlobal == GlobalItemTag.UsagePage); + EncodedItem? usagePage = usefulItems.FirstOrDefault(de => de.ItemType == ItemType.Global); return usagePage.DataValue; } catch @@ -34,10 +35,10 @@ namespace RGB.NET.Devices.Logitech.HID { try { - var descriptor = device.GetRawReportDescriptor(); - var decodedItems = EncodedItem.DecodeItems(descriptor, 0, descriptor.Length); - var usefulItems = decodedItems.Where(de => de.TagForLocal == LocalItemTag.Usage && de.TagForGlobal == GlobalItemTag.UsagePage); - var usage = usefulItems.FirstOrDefault(de => de.ItemType == ItemType.Local); + byte[]? descriptor = device.GetRawReportDescriptor(); + IEnumerable? decodedItems = EncodedItem.DecodeItems(descriptor, 0, descriptor.Length); + IEnumerable? usefulItems = decodedItems.Where(de => de.TagForLocal == LocalItemTag.Usage && de.TagForGlobal == GlobalItemTag.UsagePage); + EncodedItem? usage = usefulItems.FirstOrDefault(de => de.ItemType == ItemType.Local); return usage.DataValue; } catch diff --git a/RGB.NET.Devices.Logitech/HID/LightspeedHidLoader.cs b/RGB.NET.Devices.Logitech/HID/LightspeedHidLoader.cs index eb2bcc9..2edff17 100644 --- a/RGB.NET.Devices.Logitech/HID/LightspeedHidLoader.cs +++ b/RGB.NET.Devices.Logitech/HID/LightspeedHidLoader.cs @@ -56,7 +56,7 @@ namespace RGB.NET.Devices.Logitech.HID /// The enumerable containing the connected devices. public IEnumerable> GetConnectedDevices() { - foreach (var device in Detect()) + foreach (int device in Detect()) { if (_deviceDefinitions.TryGetValue(device, out HIDDeviceDefinition? definition)) if (LoadFilter.HasFlag(definition.DeviceType)) @@ -86,9 +86,9 @@ namespace RGB.NET.Devices.Logitech.HID private IEnumerable Detect() { - foreach (var receiverPid in ReceiverPids) + foreach (int receiverPid in ReceiverPids) { - foreach (var wirelessPid in Detect(receiverPid)) + foreach (int wirelessPid in Detect(receiverPid)) { yield return wirelessPid; } @@ -97,17 +97,17 @@ namespace RGB.NET.Devices.Logitech.HID private IEnumerable Detect(int pid) { - var receiverDevices = DeviceList.Local.GetHidDevices(VendorId, pid); - var interfaceTwo = receiverDevices.Where(d => d.DevicePath.Contains("mi_02")); + IEnumerable? receiverDevices = DeviceList.Local.GetHidDevices(VendorId, pid); + IEnumerable? interfaceTwo = receiverDevices.Where(d => d.DevicePath.Contains("mi_02")); //this is terrible but i don't know how else to filter interfaces Dictionary deviceUsages = new(); - foreach (var item in interfaceTwo) + foreach (HidDevice? item in interfaceTwo) { deviceUsages.Add((byte)item.GetUsage(), item); } - foreach ((var wirelessPid, var deviceIndex) in GetWirelessDevices(deviceUsages)) + foreach ((int wirelessPid, byte deviceIndex) in GetWirelessDevices(deviceUsages)) { yield return wirelessPid; } @@ -121,13 +121,13 @@ namespace RGB.NET.Devices.Logitech.HID Dictionary map = new(); - if (device_usages.TryGetValue(1, out var device)) + if (device_usages.TryGetValue(1, out HidDevice? device)) { - var stream = device.Open(); + HidStream? stream = device.Open(); - var response = new FapResponse(); + FapResponse response = new FapResponse(); - var getConnectedDevices = new FapShortRequest(); + FapShortRequest getConnectedDevices = new FapShortRequest(); getConnectedDevices.Init(LOGITECH_RECEIVER_ADDRESS, LOGITECH_GET_REGISTER_REQUEST); stream.Write(getConnectedDevices.AsSpan()); @@ -172,7 +172,7 @@ namespace RGB.NET.Devices.Logitech.HID for (int i = 0; i < deviceCount; i++) { - var devices = new FapResponse(); + FapResponse devices = new FapResponse(); stream.Read(devices.AsSpan()); int wirelessPid = (devices.Data02 << 8) | devices.Data01; if (devices.DeviceIndex != 0xff) diff --git a/RGB.NET.Devices.Logitech/LogitechDeviceProvider.cs b/RGB.NET.Devices.Logitech/LogitechDeviceProvider.cs index a83b732..1dc0cc4 100644 --- a/RGB.NET.Devices.Logitech/LogitechDeviceProvider.cs +++ b/RGB.NET.Devices.Logitech/LogitechDeviceProvider.cs @@ -207,7 +207,7 @@ namespace RGB.NET.Devices.Logitech IEnumerable> wiredPerZoneDevices = PerZoneDeviceDefinitions.GetConnectedDevices().Select(x => x.definition); IEnumerable> wirelessPerZoneDevices = PerZoneWirelessDeviceDefinitions.GetConnectedDevices(); - var wiredAndWirelessPerZoneDevices = wiredPerZoneDevices.Concat(wirelessPerZoneDevices); + IEnumerable>? wiredAndWirelessPerZoneDevices = wiredPerZoneDevices.Concat(wirelessPerZoneDevices); foreach (HIDDeviceDefinition definition in wiredAndWirelessPerZoneDevices.GroupBy(x => x.CustomData.deviceType).Select(group => group.First())) { LogitechZoneUpdateQueue updateQueue = new(GetUpdateTrigger(), definition.CustomData.deviceType);