From 66843a21e562033a929ff4e11204216be2d96052 Mon Sep 17 00:00:00 2001 From: jonilala796 <17726681+jonilala796@users.noreply.github.com.> Date: Sat, 8 Feb 2025 21:23:33 +0100 Subject: [PATCH 1/3] Add workaround for LX Fans with invalid ChannelDeviceType --- RGB.NET.Devices.Corsair/CorsairDeviceProvider.cs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/RGB.NET.Devices.Corsair/CorsairDeviceProvider.cs b/RGB.NET.Devices.Corsair/CorsairDeviceProvider.cs index 1d0e7d6..3f7496b 100644 --- a/RGB.NET.Devices.Corsair/CorsairDeviceProvider.cs +++ b/RGB.NET.Devices.Corsair/CorsairDeviceProvider.cs @@ -310,6 +310,14 @@ public sealed class CorsairDeviceProvider : AbstractRGBDeviceProvider break; default: + + //Workaround to support LX Fans because they have an invalid ChannelDeviceType + if ((device.model == "iCUE LINK System Hub") && (ledCount == 18)) + { + yield return new CorsairFanRGBDevice(new CorsairFanRGBDeviceInfo(device, ledCount, offset, "LX Fan"), updateQueue); + break; + } + Throw(new RGBDeviceException("Unknown Device-Type")); break; } From 1deb1b9f2f0503113a5ad3a935660a43b50eaf8c Mon Sep 17 00:00:00 2001 From: jonilala796 <17726681+jonilala796@users.noreply.github.com.> Date: Sat, 8 Feb 2025 21:37:24 +0100 Subject: [PATCH 2/3] Add support for RX Fan naming --- .../CorsairDeviceProvider.cs | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/RGB.NET.Devices.Corsair/CorsairDeviceProvider.cs b/RGB.NET.Devices.Corsair/CorsairDeviceProvider.cs index 3f7496b..9cca458 100644 --- a/RGB.NET.Devices.Corsair/CorsairDeviceProvider.cs +++ b/RGB.NET.Devices.Corsair/CorsairDeviceProvider.cs @@ -273,7 +273,12 @@ public sealed class CorsairDeviceProvider : AbstractRGBDeviceProvider break; case CorsairChannelDeviceType.EightLedSeriesFan: - yield return new CorsairFanRGBDevice(new CorsairFanRGBDeviceInfo(device, ledCount, offset, "8-Led-Series Fan Fan"), updateQueue); + string fanModelName = "8-Led-Series Fan"; + + if (device.model == "iCUE LINK System Hub") + fanModelName = "RX Fan"; + + yield return new CorsairFanRGBDevice(new CorsairFanRGBDeviceInfo(device, ledCount, offset, fanModelName), updateQueue); break; case CorsairChannelDeviceType.DAP: @@ -289,20 +294,20 @@ public sealed class CorsairDeviceProvider : AbstractRGBDeviceProvider break; case CorsairChannelDeviceType.Strip: - string modelName = "LED Strip"; + string stripModelName = "LED Strip"; // LS100 Led Strips are reported as one big strip if configured in monitor mode in iCUE, 138 LEDs for dual monitor, 84 for single if ((device.model == "LS100 Starter Kit") && (ledCount == 138)) - modelName = "LS100 LED Strip (dual monitor)"; + stripModelName = "LS100 LED Strip (dual monitor)"; else if ((device.model == "LS100 Starter Kit") && (ledCount == 84)) - modelName = "LS100 LED Strip (single monitor)"; + stripModelName = "LS100 LED Strip (single monitor)"; // Any other value means an "External LED Strip" in iCUE, these are reported per-strip, 15 for short strips, 27 for long else if ((device.model == "LS100 Starter Kit") && (ledCount == 15)) - modelName = "LS100 LED Strip (short)"; + stripModelName = "LS100 LED Strip (short)"; else if ((device.model == "LS100 Starter Kit") && (ledCount == 27)) - modelName = "LS100 LED Strip (long)"; + stripModelName = "LS100 LED Strip (long)"; - yield return new CorsairLedStripRGBDevice(new CorsairLedStripRGBDeviceInfo(device, ledCount, offset, modelName), updateQueue); + yield return new CorsairLedStripRGBDevice(new CorsairLedStripRGBDeviceInfo(device, ledCount, offset, stripModelName), updateQueue); break; case CorsairChannelDeviceType.DRAM: From 01bad00d8a5837f31385182b10ddd635968d3e9d Mon Sep 17 00:00:00 2001 From: jonilala796 <17726681+jonilala796@users.noreply.github.com.> Date: Sat, 8 Feb 2025 21:52:28 +0100 Subject: [PATCH 3/3] simplify LX Fan logic in CorsairDeviceProvider --- RGB.NET.Devices.Corsair/CorsairDeviceProvider.cs | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/RGB.NET.Devices.Corsair/CorsairDeviceProvider.cs b/RGB.NET.Devices.Corsair/CorsairDeviceProvider.cs index 9cca458..810a825 100644 --- a/RGB.NET.Devices.Corsair/CorsairDeviceProvider.cs +++ b/RGB.NET.Devices.Corsair/CorsairDeviceProvider.cs @@ -318,12 +318,9 @@ public sealed class CorsairDeviceProvider : AbstractRGBDeviceProvider //Workaround to support LX Fans because they have an invalid ChannelDeviceType if ((device.model == "iCUE LINK System Hub") && (ledCount == 18)) - { yield return new CorsairFanRGBDevice(new CorsairFanRGBDeviceInfo(device, ledCount, offset, "LX Fan"), updateQueue); - break; - } - - Throw(new RGBDeviceException("Unknown Device-Type")); + else + Throw(new RGBDeviceException("Unknown Device-Type")); break; }