From f07595b50cc743baf0e462143734d76a5c155173 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 18 Sep 2015 21:05:08 +0200 Subject: [PATCH] Initial commit (simple but working version) --- .gitattributes | 63 ++++++++++++ CUE.NET.csproj | 106 +++++++++++++++++++ CUE.NET.csproj.DotSettings | 2 + CUE.NET.sln | 28 +++++ Enums/CorsairAccessMode.cs | 13 +++ Enums/CorsairDeviceCaps.cs | 21 ++++ Enums/CorsairDeviceType.cs | 16 +++ Enums/CorsairError.cs | 42 ++++++++ Enums/CorsairLedId.cs | 166 ++++++++++++++++++++++++++++++ Enums/CorsairLogicalLayout.cs | 35 +++++++ Enums/CorsairPhysicalLayout.cs | 61 +++++++++++ Exceptions/CUEException.cs | 26 +++++ Exceptions/WrapperException.cs | 15 +++ Native/CUESDK.cs | 45 ++++++++ Native/_CorsairDeviceInfo.cs | 21 ++++ Native/_CorsairLedColor.cs | 20 ++++ Native/_CorsairLedPosition.cs | 20 ++++ Native/_CorsairLedPositions.cs | 17 +++ Native/_CorsairProtocolDetails.cs | 20 ++++ Properties/AssemblyInfo.cs | 35 +++++++ Wrapper/AbstractCueDevice.cs | 24 +++++ Wrapper/CorsairDeviceInfo.cs | 57 ++++++++++ Wrapper/CorsairProtocolDetails.cs | 66 ++++++++++++ Wrapper/CueHeadset.cs | 22 ++++ Wrapper/CueKeyboard.cs | 38 +++++++ Wrapper/CueMouse.cs | 22 ++++ Wrapper/CueSDK.cs | 90 ++++++++++++++++ Wrapper/ICueDevice.cs | 7 ++ libs/CUESDK.x64_2013.dll | Bin 0 -> 118080 bytes libs/CUESDK_2013.dll | Bin 0 -> 95552 bytes 30 files changed, 1098 insertions(+) create mode 100644 .gitattributes create mode 100644 CUE.NET.csproj create mode 100644 CUE.NET.csproj.DotSettings create mode 100644 CUE.NET.sln create mode 100644 Enums/CorsairAccessMode.cs create mode 100644 Enums/CorsairDeviceCaps.cs create mode 100644 Enums/CorsairDeviceType.cs create mode 100644 Enums/CorsairError.cs create mode 100644 Enums/CorsairLedId.cs create mode 100644 Enums/CorsairLogicalLayout.cs create mode 100644 Enums/CorsairPhysicalLayout.cs create mode 100644 Exceptions/CUEException.cs create mode 100644 Exceptions/WrapperException.cs create mode 100644 Native/CUESDK.cs create mode 100644 Native/_CorsairDeviceInfo.cs create mode 100644 Native/_CorsairLedColor.cs create mode 100644 Native/_CorsairLedPosition.cs create mode 100644 Native/_CorsairLedPositions.cs create mode 100644 Native/_CorsairProtocolDetails.cs create mode 100644 Properties/AssemblyInfo.cs create mode 100644 Wrapper/AbstractCueDevice.cs create mode 100644 Wrapper/CorsairDeviceInfo.cs create mode 100644 Wrapper/CorsairProtocolDetails.cs create mode 100644 Wrapper/CueHeadset.cs create mode 100644 Wrapper/CueKeyboard.cs create mode 100644 Wrapper/CueMouse.cs create mode 100644 Wrapper/CueSDK.cs create mode 100644 Wrapper/ICueDevice.cs create mode 100644 libs/CUESDK.x64_2013.dll create mode 100644 libs/CUESDK_2013.dll diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..1ff0c42 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,63 @@ +############################################################################### +# Set default behavior to automatically normalize line endings. +############################################################################### +* text=auto + +############################################################################### +# Set default behavior for command prompt diff. +# +# This is need for earlier builds of msysgit that does not have it on by +# default for csharp files. +# Note: This is only used by command line +############################################################################### +#*.cs diff=csharp + +############################################################################### +# Set the merge driver for project and solution files +# +# Merging from the command prompt will add diff markers to the files if there +# are conflicts (Merging from VS is not affected by the settings below, in VS +# the diff markers are never inserted). Diff markers may cause the following +# file extensions to fail to load in VS. An alternative would be to treat +# these files as binary and thus will always conflict and require user +# intervention with every merge. To do so, just uncomment the entries below +############################################################################### +#*.sln merge=binary +#*.csproj merge=binary +#*.vbproj merge=binary +#*.vcxproj merge=binary +#*.vcproj merge=binary +#*.dbproj merge=binary +#*.fsproj merge=binary +#*.lsproj merge=binary +#*.wixproj merge=binary +#*.modelproj merge=binary +#*.sqlproj merge=binary +#*.wwaproj merge=binary + +############################################################################### +# behavior for image files +# +# image files are treated as binary by default. +############################################################################### +#*.jpg binary +#*.png binary +#*.gif binary + +############################################################################### +# diff behavior for common document formats +# +# Convert binary document formats to text before diffing them. This feature +# is only available from the command line. Turn it on by uncommenting the +# entries below. +############################################################################### +#*.doc diff=astextplain +#*.DOC diff=astextplain +#*.docx diff=astextplain +#*.DOCX diff=astextplain +#*.dot diff=astextplain +#*.DOT diff=astextplain +#*.pdf diff=astextplain +#*.PDF diff=astextplain +#*.rtf diff=astextplain +#*.RTF diff=astextplain diff --git a/CUE.NET.csproj b/CUE.NET.csproj new file mode 100644 index 0000000..7e8561c --- /dev/null +++ b/CUE.NET.csproj @@ -0,0 +1,106 @@ + + + + + Debug + AnyCPU + {70A266B5-E9D4-4EAA-A91A-947C0039FFB6} + Library + Properties + CUE.NET + CUE.NET + v4.6 + 512 + + + true + bin\x64\ + TRACE;DEBUG;WIN64 + full + x64 + prompt + MinimumRecommendedRules.ruleset + + + bin\x64\ + TRACE;WIN64 + true + pdbonly + x64 + prompt + MinimumRecommendedRules.ruleset + + + true + bin\x86\ + TRACE;DEBUG;WIN32 + full + x86 + prompt + MinimumRecommendedRules.ruleset + + + bin\x86\ + TRACE;WIN32 + true + pdbonly + x86 + prompt + MinimumRecommendedRules.ruleset + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + if $(PlatformName) == x86 copy "$(ProjectDir)libs\CUESDK_2013.dll" "$(TargetDir)CUESDK_2013.dll" +if $(PlatformName) == x64 copy "$(ProjectDir)libs\CUESDK.x64_2013.dll" "$(TargetDir)CUESDK.x64_2013.dll" + + + \ No newline at end of file diff --git a/CUE.NET.csproj.DotSettings b/CUE.NET.csproj.DotSettings new file mode 100644 index 0000000..b35dc7e --- /dev/null +++ b/CUE.NET.csproj.DotSettings @@ -0,0 +1,2 @@ + + True \ No newline at end of file diff --git a/CUE.NET.sln b/CUE.NET.sln new file mode 100644 index 0000000..c041fd8 --- /dev/null +++ b/CUE.NET.sln @@ -0,0 +1,28 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.23107.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CUE.NET", "CUE.NET.csproj", "{70A266B5-E9D4-4EAA-A91A-947C0039FFB6}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {70A266B5-E9D4-4EAA-A91A-947C0039FFB6}.Debug|x64.ActiveCfg = Release|x64 + {70A266B5-E9D4-4EAA-A91A-947C0039FFB6}.Debug|x64.Build.0 = Release|x64 + {70A266B5-E9D4-4EAA-A91A-947C0039FFB6}.Debug|x86.ActiveCfg = Release|x86 + {70A266B5-E9D4-4EAA-A91A-947C0039FFB6}.Debug|x86.Build.0 = Release|x86 + {70A266B5-E9D4-4EAA-A91A-947C0039FFB6}.Release|x64.ActiveCfg = Release|x64 + {70A266B5-E9D4-4EAA-A91A-947C0039FFB6}.Release|x64.Build.0 = Release|x64 + {70A266B5-E9D4-4EAA-A91A-947C0039FFB6}.Release|x86.ActiveCfg = Release|x86 + {70A266B5-E9D4-4EAA-A91A-947C0039FFB6}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Enums/CorsairAccessMode.cs b/Enums/CorsairAccessMode.cs new file mode 100644 index 0000000..dc569f5 --- /dev/null +++ b/Enums/CorsairAccessMode.cs @@ -0,0 +1,13 @@ +// ReSharper disable InconsistentNaming +// ReSharper disable UnusedMember.Global + +namespace CUE.NET.Enums +{ + /// + /// Contains list of available SDK access modes. + /// + public enum CorsairAccessMode + { + CAM_ExclusiveLightingControl = 0 + }; +} diff --git a/Enums/CorsairDeviceCaps.cs b/Enums/CorsairDeviceCaps.cs new file mode 100644 index 0000000..4033771 --- /dev/null +++ b/Enums/CorsairDeviceCaps.cs @@ -0,0 +1,21 @@ +// ReSharper disable InconsistentNaming +// ReSharper disable UnusedMember.Global + +namespace CUE.NET.Enums +{ + /// + /// Contains list of device capabilities + /// + public enum CorsairDeviceCaps + { + /// + /// For devices that do not support any SDK functions + /// + CDC_None = 0, + + /// + /// For devices that has controlled lighting + /// + CDC_Lighting = 1 + }; +} diff --git a/Enums/CorsairDeviceType.cs b/Enums/CorsairDeviceType.cs new file mode 100644 index 0000000..e0f415d --- /dev/null +++ b/Enums/CorsairDeviceType.cs @@ -0,0 +1,16 @@ +// ReSharper disable InconsistentNaming +// ReSharper disable UnusedMember.Global + +namespace CUE.NET.Enums +{ + /// + /// Contains list of available device types. + /// + public enum CorsairDeviceType + { + CDT_Unknown = 0, + CDT_Mouse = 1, + CDT_Keyboard = 2, + CDT_Headset = 3 + }; +} diff --git a/Enums/CorsairError.cs b/Enums/CorsairError.cs new file mode 100644 index 0000000..5938f06 --- /dev/null +++ b/Enums/CorsairError.cs @@ -0,0 +1,42 @@ +// ReSharper disable InconsistentNaming +// ReSharper disable UnusedMember.Global + +namespace CUE.NET.Enums +{ + /// + /// Shared list of all errors which could happen during calling of Corsair* functions. + /// + public enum CorsairError + { + /// + /// If previously called function completed successfully. + /// + CE_Success, + + /// + /// CUE is not running or was shut down or third-party control is disabled in CUE settings. (runtime error) + /// + CE_ServerNotFound, + + /// + /// If some other client has or took over exclusive control. (runtime error) + /// + CE_NoControl, + + /// + /// If developer did not perform protocol handshake. (developer error) + /// + CE_ProtocolHandshakeMissing, + + /// + /// If developer is calling the function that is not supported by the server (either because protocol has broken by server or client or because the function is new and server is too old. + /// Check CorsairProtocolDetails for details). (developer error) + /// + CE_IncompatibleProtocol, + + /// + /// If developer supplied invalid arguments to the function (for specifics look at function descriptions). (developer error) + /// + CE_InvalidArguments + }; +} diff --git a/Enums/CorsairLedId.cs b/Enums/CorsairLedId.cs new file mode 100644 index 0000000..4b8909c --- /dev/null +++ b/Enums/CorsairLedId.cs @@ -0,0 +1,166 @@ +// ReSharper disable UnusedMember.Global +// ReSharper disable InconsistentNaming + +namespace CUE.NET.Enums +{ + public enum CorsairLedId + { + CLI_Invalid = 0, + CLK_Escape = 1, + CLK_F1 = 2, + CLK_F2 = 3, + CLK_F3 = 4, + CLK_F4 = 5, + CLK_F5 = 6, + CLK_F6 = 7, + CLK_F7 = 8, + CLK_F8 = 9, + CLK_F9 = 10, + CLK_F10 = 11, + CLK_F11 = 12, + CLK_GraveAccentAndTilde = 13, + CLK_1 = 14, + CLK_2 = 15, + CLK_3 = 16, + CLK_4 = 17, + CLK_5 = 18, + CLK_6 = 19, + CLK_7 = 20, + CLK_8 = 21, + CLK_9 = 22, + CLK_0 = 23, + CLK_MinusAndUnderscore = 24, + CLK_Tab = 25, + CLK_Q = 26, + CLK_W = 27, + CLK_E = 28, + CLK_R = 29, + CLK_T = 30, + CLK_Y = 31, + CLK_U = 32, + CLK_I = 33, + CLK_O = 34, + CLK_P = 35, + CLK_BracketLeft = 36, + CLK_CapsLock = 37, + CLK_A = 38, + CLK_S = 39, + CLK_D = 40, + CLK_F = 41, + CLK_G = 42, + CLK_H = 43, + CLK_J = 44, + CLK_K = 45, + CLK_L = 46, + CLK_SemicolonAndColon = 47, + CLK_ApostropheAndDoubleQuote = 48, + CLK_LeftShift = 49, + CLK_NonUsBackslash = 50, + CLK_Z = 51, + CLK_X = 52, + CLK_C = 53, + CLK_V = 54, + CLK_B = 55, + CLK_N = 56, + CLK_M = 57, + CLK_CommaAndLessThan = 58, + CLK_PeriodAndBiggerThan = 59, + CLK_SlashAndQuestionMark = 60, + CLK_LeftCtrl = 61, + CLK_LeftGui = 62, + CLK_LeftAlt = 63, + CLK_Lang2 = 64, + CLK_Space = 65, + CLK_Lang1 = 66, + CLK_International2 = 67, + CLK_RightAlt = 68, + CLK_RightGui = 69, + CLK_Application = 70, + CLK_LedProgramming = 71, + CLK_Brightness = 72, + CLK_F12 = 73, + CLK_PrintScreen = 74, + CLK_ScrollLock = 75, + CLK_PauseBreak = 76, + CLK_Insert = 77, + CLK_Home = 78, + CLK_PageUp = 79, + CLK_BracketRight = 80, + CLK_Backslash = 81, + CLK_NonUsTilde = 82, + CLK_Enter = 83, + CLK_International1 = 84, + CLK_EqualsAndPlus = 85, + CLK_International3 = 86, + CLK_Backspace = 87, + CLK_Delete = 88, + CLK_End = 89, + CLK_PageDown = 90, + CLK_RightShift = 91, + CLK_RightCtrl = 92, + CLK_UpArrow = 93, + CLK_LeftArrow = 94, + CLK_DownArrow = 95, + CLK_RightArrow = 96, + CLK_WinLock = 97, + CLK_Mute = 98, + CLK_Stop = 99, + CLK_ScanPreviousTrack = 100, + CLK_PlayPause = 101, + CLK_ScanNextTrack = 102, + CLK_NumLock = 103, + CLK_KeypadSlash = 104, + CLK_KeypadAsterisk = 105, + CLK_KeypadMinus = 106, + CLK_KeypadPlus = 107, + CLK_KeypadEnter = 108, + CLK_Keypad7 = 109, + CLK_Keypad8 = 110, + CLK_Keypad9 = 111, + CLK_KeypadComma = 112, + CLK_Keypad4 = 113, + CLK_Keypad5 = 114, + CLK_Keypad6 = 115, + CLK_Keypad1 = 116, + CLK_Keypad2 = 117, + CLK_Keypad3 = 118, + CLK_Keypad0 = 119, + CLK_KeypadPeriodAndDelete = 120, + CLK_G1 = 121, + CLK_G2 = 122, + CLK_G3 = 123, + CLK_G4 = 124, + CLK_G5 = 125, + CLK_G6 = 126, + CLK_G7 = 127, + CLK_G8 = 128, + CLK_G9 = 129, + CLK_G10 = 130, + CLK_VolumeUp = 131, + CLK_VolumeDown = 132, + CLK_MR = 133, + CLK_M1 = 134, + CLK_M2 = 135, + CLK_M3 = 136, + CLK_G11 = 137, + CLK_G12 = 138, + CLK_G13 = 139, + CLK_G14 = 140, + CLK_G15 = 141, + CLK_G16 = 142, + CLK_G17 = 143, + CLK_G18 = 144, + CLK_International5 = 145, + CLK_International4 = 146, + CLK_Fn = 147, + CLM_1 = 148, + CLM_2 = 149, + CLM_3 = 150, + CLM_4 = 151, + CLH_LeftLogo = 152, + CLH_RightLogo = 153, + CLK_Logo = 154, + + CLI_Last = CLK_Logo + }; +} diff --git a/Enums/CorsairLogicalLayout.cs b/Enums/CorsairLogicalLayout.cs new file mode 100644 index 0000000..96d491e --- /dev/null +++ b/Enums/CorsairLogicalLayout.cs @@ -0,0 +1,35 @@ +// ReSharper disable InconsistentNaming +// ReSharper disable UnusedMember.Global + +namespace CUE.NET.Enums +{ + /// + /// Contains list of available logical layouts for keyboards. + /// + public enum CorsairLogicalLayout + { + /// + /// Dummy value + /// + CLL_Invalid = 0, + + CLL_US_Int = 1, + CLL_NA = 2, + CLL_EU = 3, + CLL_UK = 4, + CLL_BE = 5, + CLL_BR = 6, + CLL_CH = 7, + CLL_CN = 8, + CLL_DE = 9, + CLL_ES = 10, + CLL_FR = 11, + CLL_IT = 12, + CLL_ND = 13, + CLL_RU = 14, + CLL_JP = 15, + CLL_KR = 16, + CLL_TW = 17, + CLL_MEX = 18 + }; +} diff --git a/Enums/CorsairPhysicalLayout.cs b/Enums/CorsairPhysicalLayout.cs new file mode 100644 index 0000000..131eff8 --- /dev/null +++ b/Enums/CorsairPhysicalLayout.cs @@ -0,0 +1,61 @@ +// ReSharper disable InconsistentNaming +// ReSharper disable UnusedMember.Global + +namespace CUE.NET.Enums +{ + /// + /// Contains list of available physical layouts for keyboards. + /// + public enum CorsairPhysicalLayout + { + /// + /// Dummy value + /// + CPL_Invalid = 0, + + /// + /// US-Keyboard + /// + CPL_US = 1, + + /// + /// UK-Keyboard + /// + CPL_UK = 2, + + /// + /// BR-Keyboard + /// + CPL_BR = 3, + + /// + /// JP-Keyboard + /// + CPL_JP = 4, + + /// + /// KR-Keyboard + /// + CPL_KR = 5, + + /// + /// Zone1-Mouse + /// + CPL_Zones1 = 6, + + /// + /// Zone1-Mouse + /// + CPL_Zones2 = 7, + + /// + /// Zone1-Mouse + /// + CPL_Zones3 = 8, + + /// + /// Zone1-Mouse + /// + CPL_Zones4 = 9 + }; +} diff --git a/Exceptions/CUEException.cs b/Exceptions/CUEException.cs new file mode 100644 index 0000000..5e1612c --- /dev/null +++ b/Exceptions/CUEException.cs @@ -0,0 +1,26 @@ +// ReSharper disable UnusedAutoPropertyAccessor.Global +// ReSharper disable MemberCanBePrivate.Global + +using System; +using CUE.NET.Enums; + +namespace CUE.NET.Exceptions +{ + public class CUEException : ApplicationException + { + #region Properties & Fields + + public CorsairError Error { get; } + + #endregion + + #region Constructors + + public CUEException(CorsairError error) + { + this.Error = error; + } + + #endregion + } +} diff --git a/Exceptions/WrapperException.cs b/Exceptions/WrapperException.cs new file mode 100644 index 0000000..5fca300 --- /dev/null +++ b/Exceptions/WrapperException.cs @@ -0,0 +1,15 @@ +using System; + +namespace CUE.NET.Exceptions +{ + public class WrapperException : ApplicationException + { + #region Constructors + + public WrapperException(string message, Exception innerException = null) + : base(message, innerException) + { } + + #endregion + } +} diff --git a/Native/CUESDK.cs b/Native/CUESDK.cs new file mode 100644 index 0000000..654871c --- /dev/null +++ b/Native/CUESDK.cs @@ -0,0 +1,45 @@ +using System; +using System.Runtime.InteropServices; +using CUE.NET.Enums; + +namespace CUE.NET.Native +{ + // ReSharper disable once InconsistentNaming + internal static class CUESDK + { + // set specified leds to some colors. The color is retained until changed by successive calls. This function does not take logical layout into account + [DllImport("CUESDK.x64_2013.dll")] + public static extern bool CorsairSetLedsColors(int size, IntPtr ledsColors); + + //[DllImport("CUESDK.x64_2013.dll")] + //public static extern bool CorsairSetLedsColorsAsync(int size, CorsairLedColor* ledsColors, void(*CallbackType)(void*, bool, CorsairError), void* context); + + // returns number of connected Corsair devices that support lighting control. + [DllImport("CUESDK.x64_2013.dll")] + public static extern int CorsairGetDeviceCount(); + + // returns information about device at provided index + [DllImport("CUESDK.x64_2013.dll")] + public static extern IntPtr CorsairGetDeviceInfo(int deviceIndex); + + // provides list of keyboard LEDs with their physical positions. + [DllImport("CUESDK.x64_2013.dll")] + public static extern IntPtr CorsairGetLedPositions(); + + // retrieves led id for key name taking logical layout into account. + [DllImport("CUESDK.x64_2013.dll")] + public static extern CorsairLedId CorsairGetLedIdForKeyName(char keyName); + + // requestes control using specified access mode. By default client has shared control over lighting so there is no need to call CorsairRequestControl unless client requires exclusive control + [DllImport("CUESDK.x64_2013.dll")] + public static extern bool CorsairRequestControl(CorsairAccessMode accessMode); + + // checks file and protocol version of CUE to understand which of SDK functions can be used with this version of CUE + [DllImport("CUESDK.x64_2013.dll")] + public static extern _CorsairProtocolDetails CorsairPerformProtocolHandshake(); + + // returns last error that occured while using any of Corsair* functions + [DllImport("CUESDK.x64_2013.dll")] + public static extern CorsairError CorsairGetLastError(); + } +} diff --git a/Native/_CorsairDeviceInfo.cs b/Native/_CorsairDeviceInfo.cs new file mode 100644 index 0000000..310bfb0 --- /dev/null +++ b/Native/_CorsairDeviceInfo.cs @@ -0,0 +1,21 @@ +#pragma warning disable 169 // Field 'x' is never used +#pragma warning disable 414 // Field 'x' is assigned but its value never used +#pragma warning disable 649 // Field 'x' is never assigned + +using System; +using System.Runtime.InteropServices; +using CUE.NET.Enums; + +namespace CUE.NET.Native +{ + // ReSharper disable once InconsistentNaming + [StructLayout(LayoutKind.Sequential)] + public class _CorsairDeviceInfo // contains information about device + { + internal CorsairDeviceType type; // enum describing device type + internal IntPtr model; // null - terminated device model(like “K95RGB”) + internal CorsairPhysicalLayout physicalLayout; // enum describing physical layout of the keyboard or mouse + internal CorsairLogicalLayout logicalLayout; // enum describing logical layout of the keyboard as set in CUE settings + internal int capsMask; // mask that describes device capabilities, formed as logical “or” of CorsairDeviceCaps enum values + } +} diff --git a/Native/_CorsairLedColor.cs b/Native/_CorsairLedColor.cs new file mode 100644 index 0000000..4539ac3 --- /dev/null +++ b/Native/_CorsairLedColor.cs @@ -0,0 +1,20 @@ +#pragma warning disable 169 // Field 'x' is never used +#pragma warning disable 414 // Field 'x' is assigned but its value never used +#pragma warning disable 649 // Field 'x' is never assigned + +using System.Runtime.InteropServices; +using CUE.NET.Enums; + +namespace CUE.NET.Native +{ + // ReSharper disable once InconsistentNaming + [StructLayout(LayoutKind.Sequential)] + public class _CorsairLedColor // contains information about led and its color + { + + internal CorsairLedId ledId; // identifier of LED to set + internal int r; // red brightness[0..255] + internal int g; // green brightness[0..255] + internal int b; // blue brightness[0..255] + }; +} diff --git a/Native/_CorsairLedPosition.cs b/Native/_CorsairLedPosition.cs new file mode 100644 index 0000000..c57521e --- /dev/null +++ b/Native/_CorsairLedPosition.cs @@ -0,0 +1,20 @@ +#pragma warning disable 169 // Field 'x' is never used +#pragma warning disable 414 // Field 'x' is assigned but its value never used +#pragma warning disable 649 // Field 'x' is never assigned + +using System.Runtime.InteropServices; +using CUE.NET.Enums; + +namespace CUE.NET.Native +{ + // ReSharper disable once InconsistentNaming + [StructLayout(LayoutKind.Sequential)] + public class _CorsairLedPosition // contains led id and position of led rectangle.Most of the keys are rectangular. In case if key is not rectangular(like Enter in ISO / UK layout) it returns the smallest rectangle that fully contains the key + { + internal CorsairLedId ledId; // identifier of led + internal double top; + internal double left; + internal double height; + internal double width; // values in mm + } +} diff --git a/Native/_CorsairLedPositions.cs b/Native/_CorsairLedPositions.cs new file mode 100644 index 0000000..d299e25 --- /dev/null +++ b/Native/_CorsairLedPositions.cs @@ -0,0 +1,17 @@ +#pragma warning disable 169 // Field 'x' is never used +#pragma warning disable 414 // Field 'x' is assigned but its value never used +#pragma warning disable 649 // Field 'x' is never assigned + +using System; +using System.Runtime.InteropServices; + +namespace CUE.NET.Native +{ + // ReSharper disable once InconsistentNaming + [StructLayout(LayoutKind.Sequential)] + public class _CorsairLedPositions // contains number of leds and arrays with their positions + { + internal int numberOfLed; // integer value.Number of elements in following array + internal IntPtr pLedPosition; // array of led positions + } +} diff --git a/Native/_CorsairProtocolDetails.cs b/Native/_CorsairProtocolDetails.cs new file mode 100644 index 0000000..92fa888 --- /dev/null +++ b/Native/_CorsairProtocolDetails.cs @@ -0,0 +1,20 @@ +#pragma warning disable 169 // Field 'x' is never used +#pragma warning disable 414 // Field 'x' is assigned but its value never used +#pragma warning disable 649 // Field 'x' is never assigned + +using System; +using System.Runtime.InteropServices; + +namespace CUE.NET.Native +{ + // ReSharper disable once InconsistentNaming + [StructLayout(LayoutKind.Sequential)] + internal struct _CorsairProtocolDetails // contains information about SDK and CUE versions + { + internal IntPtr sdkVersion; // null - terminated string containing version of SDK(like “1.0.0.1”). Always contains valid value even if there was no CUE found + internal IntPtr serverVersion; // null - terminated string containing version of CUE(like “1.0.0.1”) or NULL if CUE was not found. + internal int sdkProtocolVersion; // integer number that specifies version of protocol that is implemented by current SDK. Numbering starts from 1. Always contains valid value even if there was no CUE found + internal int serverProtocolVersion; // integer number that specifies version of protocol that is implemented by CUE. Numbering starts from 1. If CUE was not found then this value will be 0 + internal byte breakingChanges; // boolean value that specifies if there were breaking changes between version of protocol implemented by server and client + }; +} diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..bdc9790 --- /dev/null +++ b/Properties/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("CUE.NET")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Wyrez")] +[assembly: AssemblyProduct("CUE.NET")] +[assembly: AssemblyCopyright("Copyright © Wyrez 2015")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("70a266b5-e9d4-4eaa-a91a-947c0039ffb6")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Wrapper/AbstractCueDevice.cs b/Wrapper/AbstractCueDevice.cs new file mode 100644 index 0000000..d6e42ec --- /dev/null +++ b/Wrapper/AbstractCueDevice.cs @@ -0,0 +1,24 @@ +namespace CUE.NET.Wrapper +{ + public abstract class AbstractCueDevice : ICueDevice + { + #region Properties & Fields + + public CorsairDeviceInfo DeviceInfo { get; } + + #endregion + + #region Constructors + + protected AbstractCueDevice(CorsairDeviceInfo info) + { + this.DeviceInfo = info; + } + + #endregion + + #region Methods + + #endregion + } +} diff --git a/Wrapper/CorsairDeviceInfo.cs b/Wrapper/CorsairDeviceInfo.cs new file mode 100644 index 0000000..574175e --- /dev/null +++ b/Wrapper/CorsairDeviceInfo.cs @@ -0,0 +1,57 @@ +// ReSharper disable MemberCanBePrivate.Global +// ReSharper disable UnusedAutoPropertyAccessor.Global + +using System; +using System.Runtime.InteropServices; +using CUE.NET.Enums; +using CUE.NET.Native; + +namespace CUE.NET.Wrapper +{ + public class CorsairDeviceInfo + { + #region Properties & Fields + + /// + /// Device type. + /// + public CorsairDeviceType Type { get; private set; } + + //TODO DarthAffe 17.09.2015: This could be an Enum + /// + /// Device model (like “K95RGB”). + /// + public string Model { get; private set; } + + /// + /// Physical layout of the keyboard or mouse. + /// + public CorsairPhysicalLayout PhysicalLayout { get; private set; } + + //TODO DarthAffe 17.09.2015: Would device-specific infos be useful? + /// + /// Logical layout of the keyboard as set in CUE settings. + /// + public CorsairLogicalLayout LogicalLayout { get; private set; } + + /// + /// Mask that describes device capabilities, formed as logical "or" of CorsairDeviceCaps enum values + /// + public int CapsMask { get; private set; } + + #endregion + + #region Constructors + + public CorsairDeviceInfo(_CorsairDeviceInfo nativeInfo) + { + this.Type = nativeInfo.type; + this.Model = nativeInfo.model == IntPtr.Zero ? null : Marshal.PtrToStringAuto(nativeInfo.model); + this.PhysicalLayout = nativeInfo.physicalLayout; + this.LogicalLayout = nativeInfo.logicalLayout; + this.CapsMask = nativeInfo.capsMask; + } + + #endregion + } +} diff --git a/Wrapper/CorsairProtocolDetails.cs b/Wrapper/CorsairProtocolDetails.cs new file mode 100644 index 0000000..ea31c73 --- /dev/null +++ b/Wrapper/CorsairProtocolDetails.cs @@ -0,0 +1,66 @@ +// ReSharper disable MemberCanBePrivate.Global +// ReSharper disable UnusedAutoPropertyAccessor.Global + +using System; +using System.Runtime.InteropServices; +using CUE.NET.Native; + +namespace CUE.NET.Wrapper +{ + /// + /// Managed wrapper for CorsairProtocolDetails. + /// + public class CorsairProtocolDetails + { + #region Properties & Fields + + /// + /// String containing version of SDK(like “1.0.0.1”). + /// Always contains valid value even if there was no CUE found. + /// + public string SdkVersion { get; } + + /// + /// String containing version of CUE(like “1.0.0.1”) or NULL if CUE was not found. + /// + public string ServerVersion { get; } + + /// + /// Integer that specifies version of protocol that is implemented by current SDK. + /// Numbering starts from 1. + /// Always contains valid value even if there was no CUE found. + /// + public int SdkProtocolVersion { get; } + + /// + /// Integer that specifies version of protocol that is implemented by CUE. + /// Numbering starts from 1. + /// If CUE was not found then this value will be 0. + /// + public int ServerProtocolVersion { get; } + + /// + /// Boolean that specifies if there were breaking changes between version of protocol implemented by server and client. + /// + public byte BreakingChanges { get; } + + #endregion + + #region Constructors + + /// + /// Internal constructor of managed CorsairProtocolDetails. + /// + /// The native CorsairProtocolDetails-struct + internal CorsairProtocolDetails(_CorsairProtocolDetails nativeDetails) + { + this.SdkVersion = nativeDetails.sdkVersion == IntPtr.Zero ? null : Marshal.PtrToStringAuto(nativeDetails.sdkVersion); + this.ServerVersion = nativeDetails.serverVersion == IntPtr.Zero ? null : Marshal.PtrToStringAuto(nativeDetails.serverVersion); + this.SdkProtocolVersion = nativeDetails.sdkProtocolVersion; + this.ServerProtocolVersion = nativeDetails.serverProtocolVersion; + this.BreakingChanges = nativeDetails.breakingChanges; + } + + #endregion + } +} diff --git a/Wrapper/CueHeadset.cs b/Wrapper/CueHeadset.cs new file mode 100644 index 0000000..e0651a5 --- /dev/null +++ b/Wrapper/CueHeadset.cs @@ -0,0 +1,22 @@ +namespace CUE.NET.Wrapper +{ + //TODO DarthAffe 18.09.2015: Implement + public class CueHeadset : AbstractCueDevice + { + #region Properties & Fields + + #endregion + + #region Constructors + + public CueHeadset(CorsairDeviceInfo info) + : base(info) + { } + + #endregion + + #region Methods + + #endregion + } +} diff --git a/Wrapper/CueKeyboard.cs b/Wrapper/CueKeyboard.cs new file mode 100644 index 0000000..721e6a7 --- /dev/null +++ b/Wrapper/CueKeyboard.cs @@ -0,0 +1,38 @@ +using System; +using System.Drawing; +using System.Runtime.InteropServices; +using CUE.NET.Enums; +using CUE.NET.Native; + +namespace CUE.NET.Wrapper +{ + public class CueKeyboard : AbstractCueDevice + { + #region Properties & Fields + + #endregion + + #region Constructors + + public CueKeyboard(CorsairDeviceInfo info) + : base(info) + { } + + #endregion + + #region Methods + + public void SetKeyColor(char key, Color color) + { + CorsairLedId id = CUESDK.CorsairGetLedIdForKeyName(key); + _CorsairLedColor ledColor = new _CorsairLedColor { ledId = id, r = color.R, g = color.G, b = color.B }; + + //TODO DarthAffe 18.09.2015: Generalize and move to base class + IntPtr ptr = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(_CorsairLedColor))); + Marshal.StructureToPtr(ledColor, ptr, true); + CUESDK.CorsairSetLedsColors(1, ptr); + } + + #endregion + } +} diff --git a/Wrapper/CueMouse.cs b/Wrapper/CueMouse.cs new file mode 100644 index 0000000..ebe440c --- /dev/null +++ b/Wrapper/CueMouse.cs @@ -0,0 +1,22 @@ +namespace CUE.NET.Wrapper +{ + //TODO DarthAffe 18.09.2015: Implement + public class CueMouse : AbstractCueDevice + { + #region Properties & Fields + + #endregion + + #region Constructors + + public CueMouse(CorsairDeviceInfo info) + : base(info) + { } + + #endregion + + #region Methods + + #endregion + } +} diff --git a/Wrapper/CueSDK.cs b/Wrapper/CueSDK.cs new file mode 100644 index 0000000..6ffed46 --- /dev/null +++ b/Wrapper/CueSDK.cs @@ -0,0 +1,90 @@ +// ReSharper disable MemberCanBePrivate.Global + +using System.Runtime.InteropServices; +using CUE.NET.Enums; +using CUE.NET.Exceptions; +using CUE.NET.Native; + +namespace CUE.NET.Wrapper +{ + public static class CueSDK + { + #region Properties & Fields + + // ReSharper disable UnusedAutoPropertyAccessor.Global + + public static CorsairProtocolDetails ProtocolDetails { get; private set; } + public static bool HasExclusiveAccess { get; private set; } + public static CorsairError LastError => CUESDK.CorsairGetLastError(); + + public static CueKeyboard KeyboardSDK { get; private set; } + public static CueMouse MouseSDK { get; private set; } + public static CueHeadset HeadsetSDK { get; private set; } + + // ReSharper restore UnusedAutoPropertyAccessor.Global + + #endregion + + #region Methods + + public static void Initialize(bool exclusiveAccess = false) + { + if (ProtocolDetails != null) + throw new WrapperException("CueSDK is already initialized."); + + ProtocolDetails = new CorsairProtocolDetails(CUESDK.CorsairPerformProtocolHandshake()); + + CorsairError error = LastError; + if (error != CorsairError.CE_Success) + Throw(error); + + if (exclusiveAccess) + { + if (!CUESDK.CorsairRequestControl(CorsairAccessMode.CAM_ExclusiveLightingControl)) + Throw(error); + + HasExclusiveAccess = true; + } + + int deviceCount = CUESDK.CorsairGetDeviceCount(); + for (int i = 0; i < deviceCount; i++) + { + CorsairDeviceInfo info = new CorsairDeviceInfo((_CorsairDeviceInfo)Marshal.PtrToStructure(CUESDK.CorsairGetDeviceInfo(i), typeof(_CorsairDeviceInfo))); + switch (info.Type) + { + case CorsairDeviceType.CDT_Keyboard: + KeyboardSDK = new CueKeyboard(info); + break; + case CorsairDeviceType.CDT_Mouse: + MouseSDK = new CueMouse(info); + break; + case CorsairDeviceType.CDT_Headset: + HeadsetSDK = new CueHeadset(info); + break; + + // ReSharper disable once RedundantCaseLabel + case CorsairDeviceType.CDT_Unknown: + default: + throw new WrapperException("Unknown Device-Type"); + } + + error = LastError; + if (error != CorsairError.CE_Success) + Throw(error); + } + } + + private static void Throw(CorsairError error) + { + ProtocolDetails = null; + HasExclusiveAccess = false; + KeyboardSDK = null; + MouseSDK = null; + HeadsetSDK = null; + + throw new CUEException(error); + } + + #endregion + } +} diff --git a/Wrapper/ICueDevice.cs b/Wrapper/ICueDevice.cs new file mode 100644 index 0000000..dc36911 --- /dev/null +++ b/Wrapper/ICueDevice.cs @@ -0,0 +1,7 @@ +namespace CUE.NET.Wrapper +{ + public interface ICueDevice + { + CorsairDeviceInfo DeviceInfo { get; } + } +} diff --git a/libs/CUESDK.x64_2013.dll b/libs/CUESDK.x64_2013.dll new file mode 100644 index 0000000000000000000000000000000000000000..64fbe92d8b63e5795282300cb147856427b7d994 GIT binary patch literal 118080 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