1
0
mirror of https://github.com/DarthAffe/RGB.NET.git synced 2025-12-12 17:48:31 +00:00

Merge pull request #301 from DarthAffe/SDK/Corsair

Added corsair session details
This commit is contained in:
DarthAffe 2023-02-12 16:28:15 +01:00 committed by GitHub
commit 6e313ea6a1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 49 additions and 3 deletions

View File

@ -45,6 +45,11 @@ public class CorsairDeviceProvider : AbstractRGBDeviceProvider
/// </summary>
public static bool ExclusiveAccess { get; set; } = false;
/// <summary>
/// Gets the details for the current SDK-session.
/// </summary>
public CorsairSessionDetails SessionDetails { get; private set; } = new();
#endregion
#region Constructors
@ -81,12 +86,17 @@ public class CorsairDeviceProvider : AbstractRGBDeviceProvider
_CUESDK.SessionStateChanged += OnSessionStateChanged;
CorsairError errorCode = _CUESDK.CorsairConnect();
if (errorCode != CorsairError.Success)
Throw(new RGBDeviceException($"Failed to initialized Corsair-SDK. (ErrorCode: {errorCode})"));
if (!waitEvent.Wait(ConnectionTimeout))
Throw(new RGBDeviceException($"Failed to initialized Corsair-SDK. (Timeout - Current connection state: {_CUESDK.SesionState})"));
_CUESDK.CorsairGetSessionDetails(out _CorsairSessionDetails? details);
if (errorCode != CorsairError.Success)
Throw(new RGBDeviceException($"Failed to get session details. (ErrorCode: {errorCode})"));
SessionDetails = new CorsairSessionDetails(details!);
}
finally
{
@ -119,8 +129,7 @@ public class CorsairDeviceProvider : AbstractRGBDeviceProvider
Throw(new RGBDeviceException($"Failed to take control of device '{device.id}'. (ErrorCode: {error})"));
CorsairDeviceUpdateQueue updateQueue = new(GetUpdateTrigger(), device);
Console.WriteLine("Loading " + device.model);
int channelLedCount = 0;
for (int i = 0; i < device.channelCount; i++)
{

View File

@ -0,0 +1,37 @@
// ReSharper disable MemberCanBePrivate.Global
using RGB.NET.Devices.Corsair.Native;
namespace RGB.NET.Devices.Corsair;
/// <summary>
/// Represents version information for the Corsair-SDK
/// </summary>
public class CorsairSessionDetails
{
#region Properties & Fields
public string ClientVersion { get; }
public string ServerVersion { get; }
public string ServerHostVersion { get; }
#endregion
#region Constructors
internal CorsairSessionDetails()
{
ClientVersion = string.Empty;
ServerVersion = string.Empty;
ServerHostVersion = string.Empty;
}
internal CorsairSessionDetails(_CorsairSessionDetails nativeDetails)
{
this.ClientVersion = nativeDetails.clientVersion.ToString();
this.ServerVersion = nativeDetails.serverVersion.ToString();
this.ServerHostVersion = nativeDetails.serverHostVersion.ToString();
}
#endregion
}