diff --git a/Native/_CUESDK.cs b/Native/_CUESDK.cs
index 7271717..28d7760 100644
--- a/Native/_CUESDK.cs
+++ b/Native/_CUESDK.cs
@@ -44,6 +44,7 @@ namespace CUE.NET.Native
_corsairGetLedPositionsPointer = (CorsairGetLedPositionsPointer)Marshal.GetDelegateForFunctionPointer(GetProcAddress(_dllHandle, "CorsairGetLedPositions"), typeof(CorsairGetLedPositionsPointer));
_corsairGetLedIdForKeyNamePointer = (CorsairGetLedIdForKeyNamePointer)Marshal.GetDelegateForFunctionPointer(GetProcAddress(_dllHandle, "CorsairGetLedIdForKeyName"), typeof(CorsairGetLedIdForKeyNamePointer));
_corsairRequestControlPointer = (CorsairRequestControlPointer)Marshal.GetDelegateForFunctionPointer(GetProcAddress(_dllHandle, "CorsairRequestControl"), typeof(CorsairRequestControlPointer));
+ _corsairReleaseControlPointer = (CorsairReleaseControlPointer)Marshal.GetDelegateForFunctionPointer(GetProcAddress(_dllHandle, "CorsairReleaseControl"), typeof(CorsairReleaseControlPointer));
_corsairPerformProtocolHandshakePointer = (CorsairPerformProtocolHandshakePointer)Marshal.GetDelegateForFunctionPointer(GetProcAddress(_dllHandle, "CorsairPerformProtocolHandshake"), typeof(CorsairPerformProtocolHandshakePointer));
_corsairGetLastErrorPointer = (CorsairGetLastErrorPointer)Marshal.GetDelegateForFunctionPointer(GetProcAddress(_dllHandle, "CorsairGetLastError"), typeof(CorsairGetLastErrorPointer));
}
@@ -78,6 +79,7 @@ namespace CUE.NET.Native
private static CorsairGetLedPositionsPointer _corsairGetLedPositionsPointer;
private static CorsairGetLedIdForKeyNamePointer _corsairGetLedIdForKeyNamePointer;
private static CorsairRequestControlPointer _corsairRequestControlPointer;
+ private static CorsairReleaseControlPointer _corsairReleaseControlPointer;
private static CorsairPerformProtocolHandshakePointer _corsairPerformProtocolHandshakePointer;
private static CorsairGetLastErrorPointer _corsairGetLastErrorPointer;
@@ -103,6 +105,9 @@ namespace CUE.NET.Native
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
private delegate bool CorsairRequestControlPointer(CorsairAccessMode accessMode);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ private delegate bool CorsairReleaseControlPointer(CorsairAccessMode accessMode);
+
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
private delegate _CorsairProtocolDetails CorsairPerformProtocolHandshakePointer();
@@ -162,6 +167,14 @@ namespace CUE.NET.Native
return _corsairRequestControlPointer(accessMode);
}
+ ///
+ /// CUE-SDK: releases previously requested control for specified access mode.
+ ///
+ internal static bool CorsairReleaseControl(CorsairAccessMode accessMode)
+ {
+ return _corsairReleaseControlPointer(accessMode);
+ }
+
///
/// CUE-SDK: checks file and protocol version of CUE to understand which of SDK functions can be used with this version of CUE
///
diff --git a/libs/x64/CUESDK_2013.dll b/libs/x64/CUESDK_2013.dll
index 64fbe92..bb68ccc 100644
Binary files a/libs/x64/CUESDK_2013.dll and b/libs/x64/CUESDK_2013.dll differ
diff --git a/libs/x86/CUESDK_2013.dll b/libs/x86/CUESDK_2013.dll
index c2dbf62..efa2cdf 100644
Binary files a/libs/x86/CUESDK_2013.dll and b/libs/x86/CUESDK_2013.dll differ