1
0
mirror of https://github.com/DarthAffe/RGB.NET.git synced 2025-12-12 17:48:31 +00:00

Use explicit types instad of var

This commit is contained in:
Diogo Trindade 2021-09-23 22:04:54 +01:00
parent e06857e236
commit a04018fef1
3 changed files with 22 additions and 21 deletions

View File

@ -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<EncodedItem>? decodedItems = EncodedItem.DecodeItems(descriptor, 0, descriptor.Length);
IEnumerable<EncodedItem>? 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<EncodedItem>? decodedItems = EncodedItem.DecodeItems(descriptor, 0, descriptor.Length);
IEnumerable<EncodedItem>? 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

View File

@ -56,7 +56,7 @@ namespace RGB.NET.Devices.Logitech.HID
/// <returns>The enumerable containing the connected devices.</returns>
public IEnumerable<HIDDeviceDefinition<TLed, TData>> GetConnectedDevices()
{
foreach (var device in Detect())
foreach (int device in Detect())
{
if (_deviceDefinitions.TryGetValue(device, out HIDDeviceDefinition<TLed, TData>? definition))
if (LoadFilter.HasFlag(definition.DeviceType))
@ -86,9 +86,9 @@ namespace RGB.NET.Devices.Logitech.HID
private IEnumerable<int> 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<int> Detect(int pid)
{
var receiverDevices = DeviceList.Local.GetHidDevices(VendorId, pid);
var interfaceTwo = receiverDevices.Where(d => d.DevicePath.Contains("mi_02"));
IEnumerable<HidDevice>? receiverDevices = DeviceList.Local.GetHidDevices(VendorId, pid);
IEnumerable<HidDevice>? interfaceTwo = receiverDevices.Where(d => d.DevicePath.Contains("mi_02"));
//this is terrible but i don't know how else to filter interfaces
Dictionary<byte, HidDevice> 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<int, byte> 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)

View File

@ -207,7 +207,7 @@ namespace RGB.NET.Devices.Logitech
IEnumerable<HIDDeviceDefinition<int, (LogitechDeviceType deviceType, int zones)>> wiredPerZoneDevices = PerZoneDeviceDefinitions.GetConnectedDevices().Select(x => x.definition);
IEnumerable<HIDDeviceDefinition<int, (LogitechDeviceType deviceType, int zones)>> wirelessPerZoneDevices = PerZoneWirelessDeviceDefinitions.GetConnectedDevices();
var wiredAndWirelessPerZoneDevices = wiredPerZoneDevices.Concat(wirelessPerZoneDevices);
IEnumerable<HIDDeviceDefinition<int, (LogitechDeviceType deviceType, int zones)>>? wiredAndWirelessPerZoneDevices = wiredPerZoneDevices.Concat(wirelessPerZoneDevices);
foreach (HIDDeviceDefinition<int, (LogitechDeviceType deviceType, int zones)> definition in wiredAndWirelessPerZoneDevices.GroupBy(x => x.CustomData.deviceType).Select(group => group.First()))
{
LogitechZoneUpdateQueue updateQueue = new(GetUpdateTrigger(), definition.CustomData.deviceType);