Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix/corsair callback #382

Merged
merged 4 commits into from
Apr 10, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
uses: PaulHatch/semantic-version@v4.0.3
with:
short_tags: false
format: "${major}.${minor}.${patch}-prerelease.${increment}"
format: "${major}.${minor}.${patch}"
- name: Restore dependencies
run: dotnet restore
- name: Build
Expand Down
14 changes: 13 additions & 1 deletion RGB.NET.Devices.Corsair/Native/_CUESDK.cs
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,9 @@ internal static unsafe class _CUESDK

#region Properties & Fields

// ReSharper disable once NotAccessedField.Local - This is important, the delegate can be collected if it's not stored!
private static readonly CorsairSessionStateChangedHandler SESSION_STATE_CHANGED_CALLBACK;

internal static bool IsConnected => SesionState == CorsairSessionState.Connected;
internal static CorsairSessionState SesionState { get; private set; }

Expand All @@ -58,6 +61,15 @@ internal static unsafe class _CUESDK

#endregion

#region Constructors

static _CUESDK()
{
SESSION_STATE_CHANGED_CALLBACK = CorsairSessionStateChangedCallback;
}

#endregion

#region Methods

private static void CorsairSessionStateChangedCallback(nint context, _CorsairSessionStateChanged eventdata)
Expand Down Expand Up @@ -174,7 +186,7 @@ internal static CorsairError CorsairConnect()
{
if (_corsairConnectPtr == null) throw new RGBDeviceException("The Corsair-SDK is not initialized.");
if (IsConnected) throw new RGBDeviceException("The Corsair-SDK is already connected.");
return _corsairConnectPtr(CorsairSessionStateChangedCallback, 0);
return _corsairConnectPtr(SESSION_STATE_CHANGED_CALLBACK, 0);
}

internal static CorsairError CorsairGetSessionDetails(out _CorsairSessionDetails? details)
Expand Down
Loading