Skip to content

Openrgb device updated implementation#338

Open
Aytackydln wants to merge 6 commits into
DarthAffe:Developmentfrom
Aytackydln:openrgb-device-updated
Open

Openrgb device updated implementation#338
Aytackydln wants to merge 6 commits into
DarthAffe:Developmentfrom
Aytackydln:openrgb-device-updated

Conversation

@Aytackydln
Copy link
Copy Markdown
Contributor

@Aytackydln Aytackydln commented Jun 18, 2023

This PR adds DevicesChanged implementation for OpenRgb library.

Breaking Changes

  • Device names

Previously device names were created different each time, adding number in a paranthesis in their names. This caused problems when devices were reconnected or while checking if the device is new or not.

My proposal is adding a hash to the Device Names based on serial or device location (for internal devices). For zones and segments, their zone or segment name is also appended and not using incremental numbers in Device Names

@Aytackydln Aytackydln marked this pull request as ready for review June 20, 2023 21:36
@Aytackydln
Copy link
Copy Markdown
Contributor Author

I added naming changes when DeviceId doesn't exist, for example with fans. Same change with common commit is also in OpenRGB PR

…to openrgb-device-updated

# Conflicts:
#	RGB.NET.Devices.OpenRGB/OpenRGBDeviceProvider.cs
…to openrgb-device-updated

# Conflicts:
#	RGB.NET.Core/Ids/IdGenerator.cs
#	RGB.NET.Devices.OpenRGB/OpenRGBDeviceProvider.cs
logicallysynced added a commit to logicallysynced/RGB.NET that referenced this pull request May 18, 2026
Brings in Aytackydln's OpenRGB device-changed event implementation
(DarthAffe#338) with the using-statements
conflict in OpenRGBDeviceProvider.cs resolved.

Includes:
- IdGenerator key type changed from Assembly to object (non-breaking)
- OpenRGBClientWrapper added to track devices per client
- DeviceListUpdated event wired into RefreshClient
- Device name generation made consistent via HashAndShorten

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