Corsair device changed event#339
Open
Aytackydln wants to merge 8 commits into
Open
Conversation
…to corsair-device-updated # Conflicts: # RGB.NET.Devices.Corsair/CorsairDeviceProvider.cs
…to corsair-device-updated # Conflicts: # RGB.NET.Core/Ids/IdGenerator.cs # RGB.NET.Devices.Corsair/CorsairDeviceProvider.cs
logicallysynced
added a commit
to logicallysynced/RGB.NET
that referenced
this pull request
May 18, 2026
Brings in Aytackydln's Corsair device-changed event implementation (DarthAffe#339) with conflicts resolved and a few regressions repaired. Conflict resolutions: - _CUESDK.cs: kept the stored SESSION_STATE_CHANGED_CALLBACK delegate field (required to prevent GC of the marshaled callback) while adopting the PR's typo fix (SesionState -> SessionState) and its early-return guard for Connecting/Timeout states. - CorsairDeviceProvider.cs: took the PR's refactored structure (CreateSingleChannelDevice / CreateCorsairDeviceChannel methods) and restored three regressions: * "iCUE LINK System Hub" 8-Led-Series rename to "RX Fan" * "LX Fan" workaround for invalid ChannelDeviceType when device.model == "iCUE LINK System Hub" && ledCount == 18 * Typo "8-Led-Series Fan Fan" -> "8-Led-Series Fan" Co-Authored-By: Aytaç Kayadelen <kayadelena@gmail.com> Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
logicallysynced
added a commit
to logicallysynced/RGB.NET
that referenced
this pull request
May 22, 2026
…per again Reverts the Corsair half of the Aytackydln merge (PR DarthAffe#339) back to origin/Development. Drops the connection-state event refactor, the CreateSingleChannelDevice / CreateCorsairDeviceChannel helpers, and the direct IdGenerator.MakeUnique(typeof(...), ...) call sites — the provider now goes through DeviceHelper.CreateDeviceName the way every other provider does. Reason: PR DarthAffe#339's CorsairRGBDeviceInfo.cs calls IdGenerator.MakeUnique(object, string) directly, a signature that only exists in our patched RGB.NET.Core. Downstream consumers (Chromatics in particular) that load our RGB.NET.Devices.Corsair.dll alongside an upstream RGB.NET.Core.dll throw MissingMethodException on first device init — Sentry report traced to exactly this. Routing the call through DeviceHelper keeps the MakeUnique resolution internal to whichever Core assembly is loaded at runtime, so the Corsair DLL no longer needs the patched Core to function. The Core-level changes from PR DarthAffe#339 (RGBDeviceException catch in Initialize, [MethodImpl(Synchronized)] on GetUpdateTrigger, DeviceUpdateTrigger UpdateTask disposal reordering, and the IdGenerator Assembly->object change shared with PR DarthAffe#338) are intentionally kept — the OpenRGB provider still depends on the IdGenerator change. If a similar Sentry report ever lands for OpenRGB, the same revert recipe applies to RGB.NET.Devices.OpenRGB. Files reverted to origin/Development: - RGB.NET.Devices.Corsair/CorsairDeviceProvider.cs - RGB.NET.Devices.Corsair/Generic/CorsairRGBDevice.cs - RGB.NET.Devices.Corsair/Generic/CorsairRGBDeviceInfo.cs - RGB.NET.Devices.Corsair/Generic/ICorsairRGBDevice.cs - RGB.NET.Devices.Corsair/Native/_CUESDK.cs - RGB.NET.Devices.Corsair/Native/_CorsairDeviceInfo.cs Files deleted (added by PR DarthAffe#339): - RGB.NET.Devices.Corsair/Enum/CorsairEventId.cs - RGB.NET.Devices.Corsair/Native/_CorsairDeviceConnectionStatusChangedEvent.cs - RGB.NET.Devices.Corsair/Native/_CorsairEvent.cs Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Same idea with: #338