diff --git a/Devices/Headset/Enums/CorsairHeadsetLedId.cs b/Devices/Headset/Enums/CorsairHeadsetLedId.cs index c3ed34b..8a27111 100644 --- a/Devices/Headset/Enums/CorsairHeadsetLedId.cs +++ b/Devices/Headset/Enums/CorsairHeadsetLedId.cs @@ -5,6 +5,7 @@ namespace CUE.NET.Devices.Headset.Enums { public enum CorsairHeadsetLedId { + Invalid = 0, LeftLogo = 152, RightLogo = 153 } diff --git a/Devices/Keyboard/CorsairKeyboard.cs b/Devices/Keyboard/CorsairKeyboard.cs index 6630f1f..cbf5e33 100644 --- a/Devices/Keyboard/CorsairKeyboard.cs +++ b/Devices/Keyboard/CorsairKeyboard.cs @@ -32,6 +32,12 @@ namespace CUE.NET.Devices.Keyboard private set { throw new NotSupportedException(); } } + public CorsairKey this[char key] + { + get { return this[_CUESDK.CorsairGetLedIdForKeyName(key)]; } + private set { throw new NotSupportedException(); } + } + public CorsairKey this[PointF location] { get { return _keys.Values.FirstOrDefault(x => x.KeyRectangle.Contains(location)); } diff --git a/Devices/Keyboard/Enums/CorsairKeyboardKeyId.cs b/Devices/Keyboard/Enums/CorsairKeyboardKeyId.cs index 33eb3b9..63d7677 100644 --- a/Devices/Keyboard/Enums/CorsairKeyboardKeyId.cs +++ b/Devices/Keyboard/Enums/CorsairKeyboardKeyId.cs @@ -5,6 +5,7 @@ namespace CUE.NET.Devices.Keyboard.Enums { public enum CorsairKeyboardKeyId { + Invalid = 0, Escape = 1, F1 = 2, F2 = 3, diff --git a/Devices/Mouse/Enums/CorsairMouseButtonId.cs b/Devices/Mouse/Enums/CorsairMouseButtonId.cs index 38a3b60..99494da 100644 --- a/Devices/Mouse/Enums/CorsairMouseButtonId.cs +++ b/Devices/Mouse/Enums/CorsairMouseButtonId.cs @@ -5,6 +5,7 @@ namespace CUE.NET.Devices.Mouse.Enums { public enum CorsairMouseLedId { + Invalid = 0, B1 = 148, B2 = 149, B3 = 150, diff --git a/Examples/SimpleDevTest/Program.cs b/Examples/SimpleDevTest/Program.cs index 22afb93..30fc880 100644 --- a/Examples/SimpleDevTest/Program.cs +++ b/Examples/SimpleDevTest/Program.cs @@ -39,9 +39,10 @@ namespace SimpleDevTest centerGroup.SetColor(Color.Purple); // Ink the Keys 'r', 'g', 'b' in their respective color - keyboard[CorsairKeyboardKeyId.R].Led.Color = Color.Red; + // The char access seems to fail for everything except letters (SDK doesn't return a valid keyId) + keyboard['R'].Led.Color = Color.Red; keyboard[CorsairKeyboardKeyId.G].Led.Color = Color.Green; - keyboard[CorsairKeyboardKeyId.B].Led.Color = Color.Blue; + keyboard['B'].Led.Color = Color.Blue; // Ink the letters of 'white' white SimpleKeyGroup whiteGroup = new SimpleKeyGroup(keyboard, CorsairKeyboardKeyId.W, CorsairKeyboardKeyId.H, CorsairKeyboardKeyId.I, CorsairKeyboardKeyId.T, CorsairKeyboardKeyId.E); @@ -122,6 +123,9 @@ namespace SimpleDevTest { Console.WriteLine("Exception! Message:" + ex.Message); } + + while (true) + Thread.Sleep(1000); // Don't exit after exception } private static PointF Interpolate(PointF p1, PointF p2, float length)