mirror of
https://github.com/DarthAffe/CUE.NET.git
synced 2025-12-13 09:08:34 +00:00
Merged PR #49
This commit is contained in:
commit
8ab40180b3
@ -63,6 +63,9 @@
|
|||||||
<Compile Include="Effects\AbstractBrushEffect.cs" />
|
<Compile Include="Effects\AbstractBrushEffect.cs" />
|
||||||
<Compile Include="Effects\AbstractEffectTarget.cs" />
|
<Compile Include="Effects\AbstractEffectTarget.cs" />
|
||||||
<Compile Include="Effects\IEffectTarget.cs" />
|
<Compile Include="Effects\IEffectTarget.cs" />
|
||||||
|
<Compile Include="Devices\Mousemat\CorsairMousemat.cs" />
|
||||||
|
<Compile Include="Devices\Mousemat\CorsairMousematDeviceInfo.cs" />
|
||||||
|
<Compile Include="Devices\Mousemat\Enums\CorsairMousematLedId.cs" />
|
||||||
<Compile Include="Gradients\AbstractGradient.cs" />
|
<Compile Include="Gradients\AbstractGradient.cs" />
|
||||||
<Compile Include="Gradients\GradientStop.cs" />
|
<Compile Include="Gradients\GradientStop.cs" />
|
||||||
<Compile Include="Gradients\IGradient.cs" />
|
<Compile Include="Gradients\IGradient.cs" />
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
# Visual Studio 14
|
# Visual Studio 14
|
||||||
VisualStudioVersion = 14.0.23107.0
|
VisualStudioVersion = 14.0.25123.0
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CUE.NET", "CUE.NET.csproj", "{70A266B5-E9D4-4EAA-A91A-947C0039FFB6}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CUE.NET", "CUE.NET.csproj", "{70A266B5-E9D4-4EAA-A91A-947C0039FFB6}"
|
||||||
EndProject
|
EndProject
|
||||||
@ -20,12 +20,12 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "libs", "libs", "{D69EF6D8-6
|
|||||||
EndProject
|
EndProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "x86", "x86", "{0525D895-E706-4920-8733-DABD9194BFB1}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "x86", "x86", "{0525D895-E706-4920-8733-DABD9194BFB1}"
|
||||||
ProjectSection(SolutionItems) = preProject
|
ProjectSection(SolutionItems) = preProject
|
||||||
libs\x86\CUESDK_2013.dll = libs\x86\CUESDK_2013.dll
|
bin\x86\CUESDK_2015.dll = bin\x86\CUESDK_2015.dll
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "x64", "x64", "{2F99124B-FAED-432D-B797-45566D373411}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "x64", "x64", "{2F99124B-FAED-432D-B797-45566D373411}"
|
||||||
ProjectSection(SolutionItems) = preProject
|
ProjectSection(SolutionItems) = preProject
|
||||||
libs\x64\CUESDK_2013.dll = libs\x64\CUESDK_2013.dll
|
bin\x64\CUESDK_2015.dll = bin\x64\CUESDK_2015.dll
|
||||||
EndProjectSection
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AudioAnalyzer", "AudioAnalyzer", "{BE16A0BF-6794-4718-AF27-F2A50078D880}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AudioAnalyzer", "AudioAnalyzer", "{BE16A0BF-6794-4718-AF27-F2A50078D880}"
|
||||||
|
|||||||
19
CueSDK.cs
19
CueSDK.cs
@ -7,6 +7,7 @@ using CUE.NET.Devices.Generic.Enums;
|
|||||||
using CUE.NET.Devices.Headset;
|
using CUE.NET.Devices.Headset;
|
||||||
using CUE.NET.Devices.Keyboard;
|
using CUE.NET.Devices.Keyboard;
|
||||||
using CUE.NET.Devices.Mouse;
|
using CUE.NET.Devices.Mouse;
|
||||||
|
using CUE.NET.Devices.Mousemat;
|
||||||
using CUE.NET.Exceptions;
|
using CUE.NET.Exceptions;
|
||||||
using CUE.NET.Native;
|
using CUE.NET.Native;
|
||||||
|
|
||||||
@ -61,6 +62,12 @@ namespace CUE.NET
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public static CorsairHeadset HeadsetSDK { get; private set; }
|
public static CorsairHeadset HeadsetSDK { get; private set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets the managed representation of a moustmat managed by the CUE-SDK.
|
||||||
|
/// Note that currently only one connected mousemat is supported.
|
||||||
|
/// </summary>
|
||||||
|
public static CorsairMousemat MousematSDK { get; private set; }
|
||||||
|
|
||||||
// ReSharper restore UnusedAutoPropertyAccessor.Global
|
// ReSharper restore UnusedAutoPropertyAccessor.Global
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
@ -86,6 +93,8 @@ namespace CUE.NET
|
|||||||
return MouseSDK != null;
|
return MouseSDK != null;
|
||||||
case CorsairDeviceType.Headset:
|
case CorsairDeviceType.Headset:
|
||||||
return HeadsetSDK != null;
|
return HeadsetSDK != null;
|
||||||
|
case CorsairDeviceType.Mousemat:
|
||||||
|
return MousematSDK != null;
|
||||||
default:
|
default:
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -163,7 +172,9 @@ namespace CUE.NET
|
|||||||
case CorsairDeviceType.Headset:
|
case CorsairDeviceType.Headset:
|
||||||
HeadsetSDK = new CorsairHeadset(new CorsairHeadsetDeviceInfo(nativeDeviceInfo));
|
HeadsetSDK = new CorsairHeadset(new CorsairHeadsetDeviceInfo(nativeDeviceInfo));
|
||||||
break;
|
break;
|
||||||
|
case CorsairDeviceType.Mousemat:
|
||||||
|
MousematSDK = new CorsairMousemat(new CorsairMousematDeviceInfo(nativeDeviceInfo));
|
||||||
|
break;
|
||||||
// ReSharper disable once RedundantCaseLabel
|
// ReSharper disable once RedundantCaseLabel
|
||||||
case CorsairDeviceType.Unknown:
|
case CorsairDeviceType.Unknown:
|
||||||
default:
|
default:
|
||||||
@ -198,6 +209,7 @@ namespace CUE.NET
|
|||||||
KeyboardSDK?.ResetLeds();
|
KeyboardSDK?.ResetLeds();
|
||||||
MouseSDK?.ResetLeds();
|
MouseSDK?.ResetLeds();
|
||||||
HeadsetSDK?.ResetLeds();
|
HeadsetSDK?.ResetLeds();
|
||||||
|
MousematSDK?.ResetLeds();
|
||||||
|
|
||||||
_CUESDK.Reload();
|
_CUESDK.Reload();
|
||||||
|
|
||||||
@ -244,6 +256,10 @@ namespace CUE.NET
|
|||||||
if (!reloadedDevices.ContainsKey(CorsairDeviceType.Headset)
|
if (!reloadedDevices.ContainsKey(CorsairDeviceType.Headset)
|
||||||
|| HeadsetSDK.HeadsetDeviceInfo.Model != reloadedDevices[CorsairDeviceType.Headset].Model)
|
|| HeadsetSDK.HeadsetDeviceInfo.Model != reloadedDevices[CorsairDeviceType.Headset].Model)
|
||||||
throw new WrapperException("The previously loaded Headset got disconnected.");
|
throw new WrapperException("The previously loaded Headset got disconnected.");
|
||||||
|
if (MousematSDK != null)
|
||||||
|
if (!reloadedDevices.ContainsKey(CorsairDeviceType.Mousemat)
|
||||||
|
|| MousematSDK.MousematDeviceInfo.Model != reloadedDevices[CorsairDeviceType.Mousemat].Model)
|
||||||
|
throw new WrapperException("The previously loaded Mousemat got disconnected.");
|
||||||
|
|
||||||
IsInitialized = true;
|
IsInitialized = true;
|
||||||
}
|
}
|
||||||
@ -255,6 +271,7 @@ namespace CUE.NET
|
|||||||
KeyboardSDK = null;
|
KeyboardSDK = null;
|
||||||
MouseSDK = null;
|
MouseSDK = null;
|
||||||
HeadsetSDK = null;
|
HeadsetSDK = null;
|
||||||
|
MousematSDK = null;
|
||||||
IsInitialized = false;
|
IsInitialized = false;
|
||||||
|
|
||||||
throw new CUEException(error);
|
throw new CUEException(error);
|
||||||
|
|||||||
@ -11,6 +11,7 @@ namespace CUE.NET.Devices.Generic.Enums
|
|||||||
Unknown = 0,
|
Unknown = 0,
|
||||||
Mouse = 1,
|
Mouse = 1,
|
||||||
Keyboard = 2,
|
Keyboard = 2,
|
||||||
Headset = 3
|
Headset = 3,
|
||||||
|
Mousemat = 4
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
183
Devices/Generic/Enums/CorsairLedId.cs
Normal file
183
Devices/Generic/Enums/CorsairLedId.cs
Normal file
@ -0,0 +1,183 @@
|
|||||||
|
namespace CUE.NET.Devices.Generic.Enums
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Contains list of all LEDs available for all corsair devices.
|
||||||
|
/// </summary>
|
||||||
|
public enum CorsairLedId
|
||||||
|
{
|
||||||
|
Invalid = 0,
|
||||||
|
Escape = 1,
|
||||||
|
F1 = 2,
|
||||||
|
F2 = 3,
|
||||||
|
F3 = 4,
|
||||||
|
F4 = 5,
|
||||||
|
F5 = 6,
|
||||||
|
F6 = 7,
|
||||||
|
F7 = 8,
|
||||||
|
F8 = 9,
|
||||||
|
F9 = 10,
|
||||||
|
F10 = 11,
|
||||||
|
F11 = 12,
|
||||||
|
GraveAccentAndTilde = 13,
|
||||||
|
D1 = 14,
|
||||||
|
D2 = 15,
|
||||||
|
D3 = 16,
|
||||||
|
D4 = 17,
|
||||||
|
D5 = 18,
|
||||||
|
D6 = 19,
|
||||||
|
D7 = 20,
|
||||||
|
D8 = 21,
|
||||||
|
D9 = 22,
|
||||||
|
D0 = 23,
|
||||||
|
MinusAndUnderscore = 24,
|
||||||
|
Tab = 25,
|
||||||
|
Q = 26,
|
||||||
|
W = 27,
|
||||||
|
E = 28,
|
||||||
|
R = 29,
|
||||||
|
T = 30,
|
||||||
|
Y = 31,
|
||||||
|
U = 32,
|
||||||
|
I = 33,
|
||||||
|
O = 34,
|
||||||
|
P = 35,
|
||||||
|
BracketLeft = 36,
|
||||||
|
CapsLock = 37,
|
||||||
|
A = 38,
|
||||||
|
S = 39,
|
||||||
|
D = 40,
|
||||||
|
F = 41,
|
||||||
|
G = 42,
|
||||||
|
H = 43,
|
||||||
|
J = 44,
|
||||||
|
K = 45,
|
||||||
|
L = 46,
|
||||||
|
SemicolonAndColon = 47,
|
||||||
|
ApostropheAndDoubleQuote = 48,
|
||||||
|
LeftShift = 49,
|
||||||
|
NonUsBackslash = 50,
|
||||||
|
Z = 51,
|
||||||
|
X = 52,
|
||||||
|
C = 53,
|
||||||
|
V = 54,
|
||||||
|
B = 55,
|
||||||
|
N = 56,
|
||||||
|
M = 57,
|
||||||
|
CommaAndLessThan = 58,
|
||||||
|
PeriodAndBiggerThan = 59,
|
||||||
|
SlashAndQuestionMark = 60,
|
||||||
|
LeftCtrl = 61,
|
||||||
|
LeftGui = 62,
|
||||||
|
LeftAlt = 63,
|
||||||
|
Lang2 = 64,
|
||||||
|
Space = 65,
|
||||||
|
Lang1 = 66,
|
||||||
|
International2 = 67,
|
||||||
|
RightAlt = 68,
|
||||||
|
RightGui = 69,
|
||||||
|
Application = 70,
|
||||||
|
LedProgramming = 71,
|
||||||
|
Brightness = 72,
|
||||||
|
F12 = 73,
|
||||||
|
PrintScreen = 74,
|
||||||
|
ScrollLock = 75,
|
||||||
|
PauseBreak = 76,
|
||||||
|
Insert = 77,
|
||||||
|
Home = 78,
|
||||||
|
PageUp = 79,
|
||||||
|
BracketRight = 80,
|
||||||
|
Backslash = 81,
|
||||||
|
NonUsTilde = 82,
|
||||||
|
Enter = 83,
|
||||||
|
International1 = 84,
|
||||||
|
EqualsAndPlus = 85,
|
||||||
|
International3 = 86,
|
||||||
|
Backspace = 87,
|
||||||
|
Delete = 88,
|
||||||
|
End = 89,
|
||||||
|
PageDown = 90,
|
||||||
|
RightShift = 91,
|
||||||
|
RightCtrl = 92,
|
||||||
|
UpArrow = 93,
|
||||||
|
LeftArrow = 94,
|
||||||
|
DownArrow = 95,
|
||||||
|
RightArrow = 96,
|
||||||
|
WinLock = 97,
|
||||||
|
Mute = 98,
|
||||||
|
Stop = 99,
|
||||||
|
ScanPreviousTrack = 100,
|
||||||
|
PlayPause = 101,
|
||||||
|
ScanNextTrack = 102,
|
||||||
|
NumLock = 103,
|
||||||
|
KeypadSlash = 104,
|
||||||
|
KeypadAsterisk = 105,
|
||||||
|
KeypadMinus = 106,
|
||||||
|
KeypadPlus = 107,
|
||||||
|
KeypadEnter = 108,
|
||||||
|
Keypad7 = 109,
|
||||||
|
Keypad8 = 110,
|
||||||
|
Keypad9 = 111,
|
||||||
|
KeypadComma = 112,
|
||||||
|
Keypad4 = 113,
|
||||||
|
Keypad5 = 114,
|
||||||
|
Keypad6 = 115,
|
||||||
|
Keypad1 = 116,
|
||||||
|
Keypad2 = 117,
|
||||||
|
Keypad3 = 118,
|
||||||
|
Keypad0 = 119,
|
||||||
|
KeypadPeriodAndDelete = 120,
|
||||||
|
G1 = 121,
|
||||||
|
G2 = 122,
|
||||||
|
G3 = 123,
|
||||||
|
G4 = 124,
|
||||||
|
G5 = 125,
|
||||||
|
G6 = 126,
|
||||||
|
G7 = 127,
|
||||||
|
G8 = 128,
|
||||||
|
G9 = 129,
|
||||||
|
G10 = 130,
|
||||||
|
VolumeUp = 131,
|
||||||
|
VolumeDown = 132,
|
||||||
|
MR = 133,
|
||||||
|
M1 = 134,
|
||||||
|
M2 = 135,
|
||||||
|
M3 = 136,
|
||||||
|
G11 = 137,
|
||||||
|
G12 = 138,
|
||||||
|
G13 = 139,
|
||||||
|
G14 = 140,
|
||||||
|
G15 = 141,
|
||||||
|
G16 = 142,
|
||||||
|
G17 = 143,
|
||||||
|
G18 = 144,
|
||||||
|
International5 = 145,
|
||||||
|
International4 = 146,
|
||||||
|
Fn = 147,
|
||||||
|
|
||||||
|
B1 = 148,
|
||||||
|
B2 = 149,
|
||||||
|
B3 = 150,
|
||||||
|
B4 = 151,
|
||||||
|
|
||||||
|
LeftLogo = 152,
|
||||||
|
RightLogo = 153,
|
||||||
|
|
||||||
|
Logo = 154,
|
||||||
|
|
||||||
|
Zone1 = 155,
|
||||||
|
Zone2 = 156,
|
||||||
|
Zone3 = 157,
|
||||||
|
Zone4 = 158,
|
||||||
|
Zone5 = 159,
|
||||||
|
Zone6 = 160,
|
||||||
|
Zone7 = 161,
|
||||||
|
Zone8 = 162,
|
||||||
|
Zone9 = 163,
|
||||||
|
Zone10 = 164,
|
||||||
|
Zone11 = 165,
|
||||||
|
Zone12 = 166,
|
||||||
|
Zone13 = 167,
|
||||||
|
Zone14 = 168,
|
||||||
|
Zone15 = 169
|
||||||
|
}
|
||||||
|
}
|
||||||
29
Devices/Generic/PositionedCorsairLed.cs
Normal file
29
Devices/Generic/PositionedCorsairLed.cs
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
// ReSharper disable MemberCanBePrivate.Global
|
||||||
|
// ReSharper disable UnusedAutoPropertyAccessor.Global
|
||||||
|
// ReSharper disable AutoPropertyCanBeMadeGetOnly.Global
|
||||||
|
|
||||||
|
using System.Drawing;
|
||||||
|
|
||||||
|
namespace CUE.NET.Devices.Generic
|
||||||
|
{
|
||||||
|
public class PositionedCorsairLed : CorsairLed
|
||||||
|
{
|
||||||
|
#region Properties & Fields
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets a rectangle representing the physical location of the led.
|
||||||
|
/// </summary>
|
||||||
|
public RectangleF LedRectangle { get; }
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Constructors
|
||||||
|
|
||||||
|
internal PositionedCorsairLed(RectangleF ledRectangle)
|
||||||
|
{
|
||||||
|
this.LedRectangle = ledRectangle;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -81,7 +81,7 @@ namespace CUE.NET.Devices.Headset
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Returns an enumerator that iterates over all LEDs of the headset.
|
/// Returns an enumerator that iterates over all LEDs of the headset.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns>An enumerator for all LDS of the headset.</returns>
|
/// <returns>An enumerator for all LEDS of the headset.</returns>
|
||||||
public IEnumerator<CorsairLed> GetEnumerator()
|
public IEnumerator<CorsairLed> GetEnumerator()
|
||||||
{
|
{
|
||||||
return Leds.GetEnumerator();
|
return Leds.GetEnumerator();
|
||||||
|
|||||||
@ -8,6 +8,8 @@ namespace CUE.NET.Devices.Headset
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class CorsairHeadsetDeviceInfo : GenericDeviceInfo
|
public class CorsairHeadsetDeviceInfo : GenericDeviceInfo
|
||||||
{
|
{
|
||||||
|
#region Constructors
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Internal constructor of managed <see cref="CorsairHeadsetDeviceInfo" />.
|
/// Internal constructor of managed <see cref="CorsairHeadsetDeviceInfo" />.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -15,5 +17,7 @@ namespace CUE.NET.Devices.Headset
|
|||||||
internal CorsairHeadsetDeviceInfo(_CorsairDeviceInfo nativeInfo)
|
internal CorsairHeadsetDeviceInfo(_CorsairDeviceInfo nativeInfo)
|
||||||
: base(nativeInfo)
|
: base(nativeInfo)
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
137
Devices/Mousemat/CorsairMousemat.cs
Normal file
137
Devices/Mousemat/CorsairMousemat.cs
Normal file
@ -0,0 +1,137 @@
|
|||||||
|
// ReSharper disable UnusedAutoPropertyAccessor.Global
|
||||||
|
// ReSharper disable MemberCanBePrivate.Global
|
||||||
|
// ReSharper disable UnusedMember.Global
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Collections.ObjectModel;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
using CUE.NET.Devices.Generic;
|
||||||
|
using CUE.NET.Devices.Generic.Enums;
|
||||||
|
using CUE.NET.Devices.Mousemat.Enums;
|
||||||
|
using CUE.NET.Effects;
|
||||||
|
using CUE.NET.Exceptions;
|
||||||
|
using CUE.NET.Native;
|
||||||
|
|
||||||
|
namespace CUE.NET.Devices.Mousemat
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Represents the SDK for a corsair mousemat.
|
||||||
|
/// </summary>
|
||||||
|
public class CorsairMousemat : AbstractCueDevice, IEnumerable<CorsairLed>
|
||||||
|
{
|
||||||
|
#region Properties & Fields
|
||||||
|
|
||||||
|
#region Indexer
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets the <see cref="CorsairLed" /> with the specified ID.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="ledId">The ID of the LED to get.</param>
|
||||||
|
/// <returns>The LED with the specified ID.</returns>
|
||||||
|
public CorsairLed this[CorsairMousematLedId ledId]
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
CorsairLed led;
|
||||||
|
return base.Leds.TryGetValue((int)ledId, out led) ? led : null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets specific information provided by CUE for the mousemat.
|
||||||
|
/// </summary>
|
||||||
|
public CorsairMousematDeviceInfo MousematDeviceInfo { get; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets a read-only collection containing all LEDs of the mousemat.
|
||||||
|
/// </summary>
|
||||||
|
public new IEnumerable<CorsairLed> Leds => new ReadOnlyCollection<CorsairLed>(base.Leds.Values.ToList());
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Constructors
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Initializes a new instance of the <see cref="CorsairMousemat"/> class.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="info">The specific information provided by CUE for the mousemat</param>
|
||||||
|
internal CorsairMousemat(CorsairMousematDeviceInfo info)
|
||||||
|
: base(info)
|
||||||
|
{
|
||||||
|
this.MousematDeviceInfo = info;
|
||||||
|
InitializeLeds();
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Methods
|
||||||
|
|
||||||
|
private void InitializeLeds()
|
||||||
|
{
|
||||||
|
int deviceCount = _CUESDK.CorsairGetDeviceCount();
|
||||||
|
|
||||||
|
// Get mousemat device index
|
||||||
|
int mousematIndex = -1;
|
||||||
|
for (int i = 0; i < deviceCount; i++)
|
||||||
|
{
|
||||||
|
_CorsairDeviceInfo nativeDeviceInfo = (_CorsairDeviceInfo)Marshal.PtrToStructure(_CUESDK.CorsairGetDeviceInfo(i), typeof(_CorsairDeviceInfo));
|
||||||
|
GenericDeviceInfo info = new GenericDeviceInfo(nativeDeviceInfo);
|
||||||
|
if (info.Type != CorsairDeviceType.Mousemat)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
mousematIndex = i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (mousematIndex < 0)
|
||||||
|
throw new WrapperException("Can't determine mousemat device index");
|
||||||
|
|
||||||
|
_CorsairLedPositions nativeLedPositions = (_CorsairLedPositions)Marshal.PtrToStructure(_CUESDK.CorsairGetLedPositionsByDeviceIndex(mousematIndex), typeof(_CorsairLedPositions));
|
||||||
|
int structSize = Marshal.SizeOf(typeof(_CorsairLedPosition));
|
||||||
|
IntPtr ptr = nativeLedPositions.pLedPosition;
|
||||||
|
|
||||||
|
// Put the positions in an array for sorting later on
|
||||||
|
List<_CorsairLedPosition> positions = new List<_CorsairLedPosition>();
|
||||||
|
for (int i = 0; i < nativeLedPositions.numberOfLed; i++)
|
||||||
|
{
|
||||||
|
_CorsairLedPosition ledPosition = (_CorsairLedPosition)Marshal.PtrToStructure(ptr, typeof(_CorsairLedPosition));
|
||||||
|
ptr = new IntPtr(ptr.ToInt64() + structSize);
|
||||||
|
positions.Add(ledPosition);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Sort for easy iteration by clients
|
||||||
|
foreach (_CorsairLedPosition position in positions.OrderBy(p => p.ledId))
|
||||||
|
GetLed((int)position.ledId);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override void DeviceUpdate()
|
||||||
|
{
|
||||||
|
//TODO DarthAffe 10.09.2016: Implement
|
||||||
|
}
|
||||||
|
|
||||||
|
#region IEnumerable
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Returns an enumerator that iterates over all LEDs of the mousemat.
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>An enumerator for all LEDS of the mousemat.</returns>
|
||||||
|
public IEnumerator<CorsairLed> GetEnumerator()
|
||||||
|
{
|
||||||
|
return Leds.GetEnumerator();
|
||||||
|
}
|
||||||
|
|
||||||
|
IEnumerator IEnumerable.GetEnumerator()
|
||||||
|
{
|
||||||
|
return GetEnumerator();
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
||||||
26
Devices/Mousemat/CorsairMousematDeviceInfo.cs
Normal file
26
Devices/Mousemat/CorsairMousematDeviceInfo.cs
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
// ReSharper disable MemberCanBePrivate.Global
|
||||||
|
// ReSharper disable UnusedAutoPropertyAccessor.Global
|
||||||
|
|
||||||
|
using CUE.NET.Devices.Generic;
|
||||||
|
using CUE.NET.Native;
|
||||||
|
|
||||||
|
namespace CUE.NET.Devices.Mousemat
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Represents specific information for a CUE Mousemat.
|
||||||
|
/// </summary>
|
||||||
|
public class CorsairMousematDeviceInfo : GenericDeviceInfo
|
||||||
|
{
|
||||||
|
#region Constructors
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Internal constructor of managed <see cref="CorsairMousematDeviceInfo" />.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="nativeInfo">The native <see cref="_CorsairDeviceInfo" />-struct</param>
|
||||||
|
internal CorsairMousematDeviceInfo(_CorsairDeviceInfo nativeInfo)
|
||||||
|
: base(nativeInfo)
|
||||||
|
{ }
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
||||||
25
Devices/Mousemat/Enums/CorsairMousematLedId.cs
Normal file
25
Devices/Mousemat/Enums/CorsairMousematLedId.cs
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
namespace CUE.NET.Devices.Mousemat.Enums
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Contains list of all LEDs available for corsair mousemats.
|
||||||
|
/// </summary>
|
||||||
|
public enum CorsairMousematLedId
|
||||||
|
{
|
||||||
|
Invalid = 0,
|
||||||
|
Zone1 = 155,
|
||||||
|
Zone2 = 156,
|
||||||
|
Zone3 = 157,
|
||||||
|
Zone4 = 158,
|
||||||
|
Zone5 = 159,
|
||||||
|
Zone6 = 160,
|
||||||
|
Zone7 = 161,
|
||||||
|
Zone8 = 162,
|
||||||
|
Zone9 = 163,
|
||||||
|
Zone10 = 164,
|
||||||
|
Zone11 = 165,
|
||||||
|
Zone12 = 166,
|
||||||
|
Zone13 = 167,
|
||||||
|
Zone14 = 168,
|
||||||
|
Zone15 = 169
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -95,7 +95,7 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<PostBuildEvent>xcopy "$(SolutionDir)libs\x86\CUESDK_2013.dll" "$(TargetDir)x86\" /y</PostBuildEvent>
|
<PostBuildEvent>xcopy "$(SolutionDir)libs\x86\CUESDK_2015.dll" "$(TargetDir)x86\" /y</PostBuildEvent>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||||
Other similar extension points exist, see Microsoft.Common.targets.
|
Other similar extension points exist, see Microsoft.Common.targets.
|
||||||
|
|||||||
@ -1,6 +1,8 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
|
using System.Linq;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using CUE.NET;
|
using CUE.NET;
|
||||||
@ -10,6 +12,8 @@ using CUE.NET.Devices.Keyboard;
|
|||||||
using CUE.NET.Devices.Keyboard.Enums;
|
using CUE.NET.Devices.Keyboard.Enums;
|
||||||
using CUE.NET.Devices.Keyboard.Extensions;
|
using CUE.NET.Devices.Keyboard.Extensions;
|
||||||
using CUE.NET.Devices.Keyboard.Keys;
|
using CUE.NET.Devices.Keyboard.Keys;
|
||||||
|
using CUE.NET.Devices.Mousemat;
|
||||||
|
using CUE.NET.Devices.Mousemat.Enums;
|
||||||
using CUE.NET.Exceptions;
|
using CUE.NET.Exceptions;
|
||||||
using CUE.NET.Gradients;
|
using CUE.NET.Gradients;
|
||||||
using CUE.NET.Profiles;
|
using CUE.NET.Profiles;
|
||||||
@ -18,6 +22,8 @@ namespace SimpleDevTest
|
|||||||
{
|
{
|
||||||
internal class Program
|
internal class Program
|
||||||
{
|
{
|
||||||
|
private static readonly Random Rand = new Random();
|
||||||
|
|
||||||
public static void Main(string[] args)
|
public static void Main(string[] args)
|
||||||
{
|
{
|
||||||
Console.WriteLine("Press any key to exit ...");
|
Console.WriteLine("Press any key to exit ...");
|
||||||
@ -70,6 +76,40 @@ namespace SimpleDevTest
|
|||||||
spotGroup.Rectangle = spot;
|
spotGroup.Rectangle = spot;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
CorsairMousemat mousemat = CueSDK.MousematSDK;
|
||||||
|
mousemat.UpdateMode = UpdateMode.Continuous;
|
||||||
|
|
||||||
|
// Left
|
||||||
|
mousemat[CorsairMousematLedId.Zone1].Color = Color.Red;
|
||||||
|
mousemat[CorsairMousematLedId.Zone2].Color = Color.Red;
|
||||||
|
mousemat[CorsairMousematLedId.Zone3].Color = Color.Red;
|
||||||
|
mousemat[CorsairMousematLedId.Zone4].Color = Color.Red;
|
||||||
|
mousemat[CorsairMousematLedId.Zone5].Color = Color.Red;
|
||||||
|
// Bottom
|
||||||
|
mousemat[CorsairMousematLedId.Zone6].Color = Color.LawnGreen;
|
||||||
|
mousemat[CorsairMousematLedId.Zone7].Color = Color.LawnGreen;
|
||||||
|
mousemat[CorsairMousematLedId.Zone8].Color = Color.LawnGreen;
|
||||||
|
mousemat[CorsairMousematLedId.Zone9].Color = Color.LawnGreen;
|
||||||
|
mousemat[CorsairMousematLedId.Zone10].Color = Color.LawnGreen;
|
||||||
|
// Right
|
||||||
|
mousemat[CorsairMousematLedId.Zone11].Color = Color.Blue;
|
||||||
|
mousemat[CorsairMousematLedId.Zone12].Color = Color.Blue;
|
||||||
|
mousemat[CorsairMousematLedId.Zone13].Color = Color.Blue;
|
||||||
|
mousemat[CorsairMousematLedId.Zone14].Color = Color.Blue;
|
||||||
|
mousemat[CorsairMousematLedId.Zone15].Color = Color.Blue;
|
||||||
|
|
||||||
|
// Random colors to show update rate
|
||||||
|
//foreach (var mousematLed in mousemat.Leds)
|
||||||
|
// mousematLed.Color = GetRandomRainbowColor();
|
||||||
|
|
||||||
|
//mousemat.Updating += (sender, eventArgs) =>
|
||||||
|
//{
|
||||||
|
// foreach (var mousematLed in mousemat.Leds)
|
||||||
|
// {
|
||||||
|
// mousematLed.Color = ShiftColor(mousematLed.Color, 20);
|
||||||
|
// }
|
||||||
|
//};
|
||||||
|
|
||||||
//keyboard.Brush = new SolidColorBrush(Color.Black);
|
//keyboard.Brush = new SolidColorBrush(Color.Black);
|
||||||
//IKeyGroup group = new RectangleKeyGroup(keyboard, CorsairKeyboardKeyId.F1, CorsairKeyboardKeyId.RightShift);
|
//IKeyGroup group = new RectangleKeyGroup(keyboard, CorsairKeyboardKeyId.F1, CorsairKeyboardKeyId.RightShift);
|
||||||
//group.Brush = new LinearGradientBrush(new RainbowGradient());
|
//group.Brush = new LinearGradientBrush(new RainbowGradient());
|
||||||
@ -350,5 +390,66 @@ namespace SimpleDevTest
|
|||||||
}
|
}
|
||||||
return p2;
|
return p2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Comes up with a 'pure' psuedo-random color
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>The color</returns>
|
||||||
|
public static Color GetRandomRainbowColor()
|
||||||
|
{
|
||||||
|
List<int> colors = new List<int>();
|
||||||
|
for (int i = 0; i < 3; i++)
|
||||||
|
colors.Add(Rand.Next(0, 256));
|
||||||
|
|
||||||
|
int highest = colors.Max();
|
||||||
|
int lowest = colors.Min();
|
||||||
|
colors[colors.FindIndex(c => c == highest)] = 255;
|
||||||
|
colors[colors.FindIndex(c => c == lowest)] = 0;
|
||||||
|
|
||||||
|
Color returnColor = Color.FromArgb(255, colors[0], colors[1], colors[2]);
|
||||||
|
|
||||||
|
return returnColor;
|
||||||
|
}
|
||||||
|
public static Color ShiftColor(Color c, int shiftAmount)
|
||||||
|
{
|
||||||
|
int newRed = c.R;
|
||||||
|
int newGreen = c.G;
|
||||||
|
int newBlue = c.B;
|
||||||
|
|
||||||
|
// Red to purple
|
||||||
|
if (c.R == 255 && c.B < 255 && c.G == 0)
|
||||||
|
newBlue = newBlue + shiftAmount;
|
||||||
|
// Purple to blue
|
||||||
|
else if (c.B == 255 && c.R > 0)
|
||||||
|
newRed = newRed - shiftAmount;
|
||||||
|
// Blue to light-blue
|
||||||
|
else if (c.B == 255 && c.G < 255)
|
||||||
|
newGreen = newGreen + shiftAmount;
|
||||||
|
// Light-blue to green
|
||||||
|
else if (c.G == 255 && c.B > 0)
|
||||||
|
newBlue = newBlue - shiftAmount;
|
||||||
|
// Green to yellow
|
||||||
|
else if (c.G == 255 && c.R < 255)
|
||||||
|
newRed = newRed + shiftAmount;
|
||||||
|
// Yellow to red
|
||||||
|
else if (c.R == 255 && c.G > 0)
|
||||||
|
newGreen = newGreen - shiftAmount;
|
||||||
|
|
||||||
|
newRed = BringIntInColorRange(newRed);
|
||||||
|
newGreen = BringIntInColorRange(newGreen);
|
||||||
|
newBlue = BringIntInColorRange(newBlue);
|
||||||
|
|
||||||
|
return Color.FromArgb(c.A, newRed, newGreen, newBlue);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static int BringIntInColorRange(int i)
|
||||||
|
{
|
||||||
|
if (i < 0)
|
||||||
|
return 0;
|
||||||
|
if (i > 255)
|
||||||
|
return 255;
|
||||||
|
|
||||||
|
return i;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -63,8 +63,8 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<PostBuildEvent>xcopy "$(SolutionDir)libs\x64\CUESDK_2013.dll" "$(TargetDir)x64\" /y
|
<PostBuildEvent>xcopy "$(SolutionDir)libs\x64\CUESDK_2015.dll" "$(TargetDir)x64\" /y
|
||||||
xcopy "$(SolutionDir)libs\x86\CUESDK_2013.dll" "$(TargetDir)x86\" /y</PostBuildEvent>
|
xcopy "$(SolutionDir)libs\x86\CUESDK_2015.dll" "$(TargetDir)x86\" /y</PostBuildEvent>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||||
Other similar extension points exist, see Microsoft.Common.targets.
|
Other similar extension points exist, see Microsoft.Common.targets.
|
||||||
|
|||||||
@ -36,12 +36,13 @@ namespace CUE.NET.Native
|
|||||||
if (_dllHandle != IntPtr.Zero) return;
|
if (_dllHandle != IntPtr.Zero) return;
|
||||||
|
|
||||||
// HACK: Load library at runtime to support both, x86 and x64 with one managed dll
|
// HACK: Load library at runtime to support both, x86 and x64 with one managed dll
|
||||||
_dllHandle = LoadLibrary((LoadedArchitecture = Environment.Is64BitProcess ? "x64" : "x86") + "/CUESDK_2013.dll");
|
_dllHandle = LoadLibrary((LoadedArchitecture = Environment.Is64BitProcess ? "x64" : "x86") + "/CUESDK_2015.dll");
|
||||||
|
|
||||||
_corsairSetLedsColorsPointer = (CorsairSetLedsColorsPointer)Marshal.GetDelegateForFunctionPointer(GetProcAddress(_dllHandle, "CorsairSetLedsColors"), typeof(CorsairSetLedsColorsPointer));
|
_corsairSetLedsColorsPointer = (CorsairSetLedsColorsPointer)Marshal.GetDelegateForFunctionPointer(GetProcAddress(_dllHandle, "CorsairSetLedsColors"), typeof(CorsairSetLedsColorsPointer));
|
||||||
_corsairGetDeviceCountPointer = (CorsairGetDeviceCountPointer)Marshal.GetDelegateForFunctionPointer(GetProcAddress(_dllHandle, "CorsairGetDeviceCount"), typeof(CorsairGetDeviceCountPointer));
|
_corsairGetDeviceCountPointer = (CorsairGetDeviceCountPointer)Marshal.GetDelegateForFunctionPointer(GetProcAddress(_dllHandle, "CorsairGetDeviceCount"), typeof(CorsairGetDeviceCountPointer));
|
||||||
_corsairGetDeviceInfoPointer = (CorsairGetDeviceInfoPointer)Marshal.GetDelegateForFunctionPointer(GetProcAddress(_dllHandle, "CorsairGetDeviceInfo"), typeof(CorsairGetDeviceInfoPointer));
|
_corsairGetDeviceInfoPointer = (CorsairGetDeviceInfoPointer)Marshal.GetDelegateForFunctionPointer(GetProcAddress(_dllHandle, "CorsairGetDeviceInfo"), typeof(CorsairGetDeviceInfoPointer));
|
||||||
_corsairGetLedPositionsPointer = (CorsairGetLedPositionsPointer)Marshal.GetDelegateForFunctionPointer(GetProcAddress(_dllHandle, "CorsairGetLedPositions"), typeof(CorsairGetLedPositionsPointer));
|
_corsairGetLedPositionsPointer = (CorsairGetLedPositionsPointer)Marshal.GetDelegateForFunctionPointer(GetProcAddress(_dllHandle, "CorsairGetLedPositions"), typeof(CorsairGetLedPositionsPointer));
|
||||||
|
_corsairGetLedPositionsByDeviceIndexPointer = (CorsairGetLedPositionsByDeviceIndexPointer)Marshal.GetDelegateForFunctionPointer(GetProcAddress(_dllHandle, "CorsairGetLedPositionsByDeviceIndex"), typeof(CorsairGetLedPositionsByDeviceIndexPointer));
|
||||||
_corsairGetLedIdForKeyNamePointer = (CorsairGetLedIdForKeyNamePointer)Marshal.GetDelegateForFunctionPointer(GetProcAddress(_dllHandle, "CorsairGetLedIdForKeyName"), typeof(CorsairGetLedIdForKeyNamePointer));
|
_corsairGetLedIdForKeyNamePointer = (CorsairGetLedIdForKeyNamePointer)Marshal.GetDelegateForFunctionPointer(GetProcAddress(_dllHandle, "CorsairGetLedIdForKeyName"), typeof(CorsairGetLedIdForKeyNamePointer));
|
||||||
_corsairRequestControlPointer = (CorsairRequestControlPointer)Marshal.GetDelegateForFunctionPointer(GetProcAddress(_dllHandle, "CorsairRequestControl"), typeof(CorsairRequestControlPointer));
|
_corsairRequestControlPointer = (CorsairRequestControlPointer)Marshal.GetDelegateForFunctionPointer(GetProcAddress(_dllHandle, "CorsairRequestControl"), typeof(CorsairRequestControlPointer));
|
||||||
_corsairReleaseControlPointer = (CorsairReleaseControlPointer)Marshal.GetDelegateForFunctionPointer(GetProcAddress(_dllHandle, "CorsairReleaseControl"), typeof(CorsairReleaseControlPointer));
|
_corsairReleaseControlPointer = (CorsairReleaseControlPointer)Marshal.GetDelegateForFunctionPointer(GetProcAddress(_dllHandle, "CorsairReleaseControl"), typeof(CorsairReleaseControlPointer));
|
||||||
@ -78,6 +79,7 @@ namespace CUE.NET.Native
|
|||||||
private static CorsairGetDeviceInfoPointer _corsairGetDeviceInfoPointer;
|
private static CorsairGetDeviceInfoPointer _corsairGetDeviceInfoPointer;
|
||||||
private static CorsairGetLedPositionsPointer _corsairGetLedPositionsPointer;
|
private static CorsairGetLedPositionsPointer _corsairGetLedPositionsPointer;
|
||||||
private static CorsairGetLedIdForKeyNamePointer _corsairGetLedIdForKeyNamePointer;
|
private static CorsairGetLedIdForKeyNamePointer _corsairGetLedIdForKeyNamePointer;
|
||||||
|
private static CorsairGetLedPositionsByDeviceIndexPointer _corsairGetLedPositionsByDeviceIndexPointer;
|
||||||
private static CorsairRequestControlPointer _corsairRequestControlPointer;
|
private static CorsairRequestControlPointer _corsairRequestControlPointer;
|
||||||
private static CorsairReleaseControlPointer _corsairReleaseControlPointer;
|
private static CorsairReleaseControlPointer _corsairReleaseControlPointer;
|
||||||
private static CorsairPerformProtocolHandshakePointer _corsairPerformProtocolHandshakePointer;
|
private static CorsairPerformProtocolHandshakePointer _corsairPerformProtocolHandshakePointer;
|
||||||
@ -99,6 +101,9 @@ namespace CUE.NET.Native
|
|||||||
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
||||||
private delegate IntPtr CorsairGetLedPositionsPointer();
|
private delegate IntPtr CorsairGetLedPositionsPointer();
|
||||||
|
|
||||||
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
||||||
|
private delegate IntPtr CorsairGetLedPositionsByDeviceIndexPointer(int deviceIndex);
|
||||||
|
|
||||||
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
[UnmanagedFunctionPointer(CallingConvention.Cdecl)]
|
||||||
private delegate CorsairKeyboardKeyId CorsairGetLedIdForKeyNamePointer(char keyName);
|
private delegate CorsairKeyboardKeyId CorsairGetLedIdForKeyNamePointer(char keyName);
|
||||||
|
|
||||||
@ -150,6 +155,14 @@ namespace CUE.NET.Native
|
|||||||
return _corsairGetLedPositionsPointer();
|
return _corsairGetLedPositionsPointer();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// CUE-SDK: provides list of keyboard or mousemat LEDs with their physical positions.
|
||||||
|
/// </summary>
|
||||||
|
internal static IntPtr CorsairGetLedPositionsByDeviceIndex(int deviceIndex)
|
||||||
|
{
|
||||||
|
return _corsairGetLedPositionsByDeviceIndexPointer(deviceIndex);
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// CUE-SDK: retrieves led id for key name taking logical layout into account.
|
/// CUE-SDK: retrieves led id for key name taking logical layout into account.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@ -39,5 +39,10 @@ namespace CUE.NET.Native
|
|||||||
/// CUE-SDK: mask that describes device capabilities, formed as logical “or” of CorsairDeviceCaps enum values
|
/// CUE-SDK: mask that describes device capabilities, formed as logical “or” of CorsairDeviceCaps enum values
|
||||||
/// </summary>
|
/// </summary>
|
||||||
internal int capsMask;
|
internal int capsMask;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// CUE-SDK: number of controllable LEDs on the device
|
||||||
|
/// </summary>
|
||||||
|
internal int ledsCount;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
BIN
libs/x64/CUESDK_2015.dll
Normal file
BIN
libs/x64/CUESDK_2015.dll
Normal file
Binary file not shown.
Binary file not shown.
BIN
libs/x86/CUESDK_2015.dll
Normal file
BIN
libs/x86/CUESDK_2015.dll
Normal file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user