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

Added corsair session details

This commit is contained in:
Darth Affe 2023-02-12 16:19:00 +01:00
parent 2ff7a65519
commit cc652a08a6
2 changed files with 48 additions and 1 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
{

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
}