Skip to content

Corsair device changed event#339

Open
Aytackydln wants to merge 8 commits into
DarthAffe:Developmentfrom
Aytackydln:corsair-device-updated
Open

Corsair device changed event#339
Aytackydln wants to merge 8 commits into
DarthAffe:Developmentfrom
Aytackydln:corsair-device-updated

Conversation

@Aytackydln
Copy link
Copy Markdown
Contributor

Same idea with: #338

@Aytackydln Aytackydln changed the base branch from master to Development June 18, 2023 21:29
@Aytackydln Aytackydln marked this pull request as ready for review June 20, 2023 21:36
…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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant