diff --git a/RGB.NET.Core/Devices/RGBDeviceType.cs b/RGB.NET.Core/Devices/RGBDeviceType.cs
index b0de5e3..3786763 100644
--- a/RGB.NET.Core/Devices/RGBDeviceType.cs
+++ b/RGB.NET.Core/Devices/RGBDeviceType.cs
@@ -83,6 +83,11 @@ namespace RGB.NET.Core
///
Cooler = 1 << 13,
+ ///
+ /// Represents a monitor.
+ ///
+ Monitor = 1 << 14,
+
///
/// Represents a device where the type is not known or not present in the list.
///
diff --git a/RGB.NET.Devices.SteelSeries/HID/DeviceChecker.cs b/RGB.NET.Devices.SteelSeries/HID/DeviceChecker.cs
index deca9f3..2741391 100644
--- a/RGB.NET.Devices.SteelSeries/HID/DeviceChecker.cs
+++ b/RGB.NET.Devices.SteelSeries/HID/DeviceChecker.cs
@@ -1,224 +1,224 @@
-using System.Collections.Generic;
-using System.Linq;
-using HidSharp;
-using RGB.NET.Core;
-using DeviceDataList = System.Collections.Generic.List<(string model, RGB.NET.Core.RGBDeviceType deviceType, int id, RGB.NET.Devices.SteelSeries.SteelSeriesDeviceType steelSeriesDeviceType, System.Collections.Generic.Dictionary ledMapping)>;
-using LedMapping = System.Collections.Generic.Dictionary;
-
-namespace RGB.NET.Devices.SteelSeries.HID
-{
- internal static class DeviceChecker
- {
- #region Constants
-
+using System.Collections.Generic;
+using System.Linq;
+using HidSharp;
+using RGB.NET.Core;
+using DeviceDataList = System.Collections.Generic.List<(string model, RGB.NET.Core.RGBDeviceType deviceType, int id, RGB.NET.Devices.SteelSeries.SteelSeriesDeviceType steelSeriesDeviceType, System.Collections.Generic.Dictionary ledMapping)>;
+using LedMapping = System.Collections.Generic.Dictionary;
+
+namespace RGB.NET.Devices.SteelSeries.HID
+{
+ internal static class DeviceChecker
+ {
+ #region Constants
+
private static readonly LedMapping KEYBOARD_MAPPING_UK = new()
- {
- { LedId.Logo, SteelSeriesLedId.Logo },
- { LedId.Keyboard_Escape, SteelSeriesLedId.Escape },
- { LedId.Keyboard_F1, SteelSeriesLedId.F1 },
- { LedId.Keyboard_F2, SteelSeriesLedId.F2 },
- { LedId.Keyboard_F3, SteelSeriesLedId.F3 },
- { LedId.Keyboard_F4, SteelSeriesLedId.F4 },
- { LedId.Keyboard_F5, SteelSeriesLedId.F5 },
- { LedId.Keyboard_F6, SteelSeriesLedId.F6 },
- { LedId.Keyboard_F7, SteelSeriesLedId.F7 },
- { LedId.Keyboard_F8, SteelSeriesLedId.F8 },
- { LedId.Keyboard_F9, SteelSeriesLedId.F9 },
- { LedId.Keyboard_F10, SteelSeriesLedId.F10 },
- { LedId.Keyboard_F11, SteelSeriesLedId.F11 },
- { LedId.Keyboard_GraveAccentAndTilde, SteelSeriesLedId.Backqoute },
- { LedId.Keyboard_1, SteelSeriesLedId.Keyboard1 },
- { LedId.Keyboard_2, SteelSeriesLedId.Keyboard2 },
- { LedId.Keyboard_3, SteelSeriesLedId.Keyboard3 },
- { LedId.Keyboard_4, SteelSeriesLedId.Keyboard4 },
- { LedId.Keyboard_5, SteelSeriesLedId.Keyboard5 },
- { LedId.Keyboard_6, SteelSeriesLedId.Keyboard6 },
- { LedId.Keyboard_7, SteelSeriesLedId.Keyboard7 },
- { LedId.Keyboard_8, SteelSeriesLedId.Keyboard8 },
- { LedId.Keyboard_9, SteelSeriesLedId.Keyboard9 },
- { LedId.Keyboard_0, SteelSeriesLedId.Keyboard0 },
- { LedId.Keyboard_MinusAndUnderscore, SteelSeriesLedId.Dash },
- { LedId.Keyboard_Tab, SteelSeriesLedId.Tab },
- { LedId.Keyboard_Q, SteelSeriesLedId.Q },
- { LedId.Keyboard_W, SteelSeriesLedId.W },
- { LedId.Keyboard_E, SteelSeriesLedId.E },
- { LedId.Keyboard_R, SteelSeriesLedId.R },
- { LedId.Keyboard_T, SteelSeriesLedId.T },
- { LedId.Keyboard_Y, SteelSeriesLedId.Y },
- { LedId.Keyboard_U, SteelSeriesLedId.U },
- { LedId.Keyboard_I, SteelSeriesLedId.I },
- { LedId.Keyboard_O, SteelSeriesLedId.O },
- { LedId.Keyboard_P, SteelSeriesLedId.P },
- { LedId.Keyboard_BracketLeft, SteelSeriesLedId.LBracket },
- { LedId.Keyboard_CapsLock, SteelSeriesLedId.Caps },
- { LedId.Keyboard_A, SteelSeriesLedId.A },
- { LedId.Keyboard_S, SteelSeriesLedId.S },
- { LedId.Keyboard_D, SteelSeriesLedId.D },
- { LedId.Keyboard_F, SteelSeriesLedId.F },
- { LedId.Keyboard_G, SteelSeriesLedId.G },
- { LedId.Keyboard_H, SteelSeriesLedId.H },
- { LedId.Keyboard_J, SteelSeriesLedId.J },
- { LedId.Keyboard_K, SteelSeriesLedId.K },
- { LedId.Keyboard_L, SteelSeriesLedId.L },
- { LedId.Keyboard_SemicolonAndColon, SteelSeriesLedId.Semicolon },
- { LedId.Keyboard_ApostropheAndDoubleQuote, SteelSeriesLedId.Quote },
- { LedId.Keyboard_LeftShift, SteelSeriesLedId.LShift },
- { LedId.Keyboard_NonUsTilde, SteelSeriesLedId.Pound },
- { LedId.Keyboard_Z, SteelSeriesLedId.Z },
- { LedId.Keyboard_X, SteelSeriesLedId.X },
- { LedId.Keyboard_C, SteelSeriesLedId.C },
- { LedId.Keyboard_V, SteelSeriesLedId.V },
- { LedId.Keyboard_B, SteelSeriesLedId.B },
- { LedId.Keyboard_N, SteelSeriesLedId.N },
- { LedId.Keyboard_M, SteelSeriesLedId.M },
- { LedId.Keyboard_CommaAndLessThan, SteelSeriesLedId.Comma },
- { LedId.Keyboard_PeriodAndBiggerThan, SteelSeriesLedId.Period },
- { LedId.Keyboard_SlashAndQuestionMark, SteelSeriesLedId.Slash },
- { LedId.Keyboard_LeftCtrl, SteelSeriesLedId.LCtrl },
- { LedId.Keyboard_LeftGui, SteelSeriesLedId.LWin },
- { LedId.Keyboard_LeftAlt, SteelSeriesLedId.LAlt },
- { LedId.Keyboard_Space, SteelSeriesLedId.Spacebar },
- { LedId.Keyboard_RightAlt, SteelSeriesLedId.RAlt },
- { LedId.Keyboard_RightGui, SteelSeriesLedId.RWin },
- { LedId.Keyboard_Application, SteelSeriesLedId.SSKey },
- { LedId.Keyboard_F12, SteelSeriesLedId.F12 },
- { LedId.Keyboard_PrintScreen, SteelSeriesLedId.PrintScreen },
- { LedId.Keyboard_ScrollLock, SteelSeriesLedId.ScrollLock },
- { LedId.Keyboard_PauseBreak, SteelSeriesLedId.Pause },
- { LedId.Keyboard_Insert, SteelSeriesLedId.Insert },
- { LedId.Keyboard_Home, SteelSeriesLedId.Home },
- { LedId.Keyboard_PageUp, SteelSeriesLedId.PageUp },
- { LedId.Keyboard_BracketRight, SteelSeriesLedId.RBracket },
- { LedId.Keyboard_Backslash, SteelSeriesLedId.Backslash },
- { LedId.Keyboard_Enter, SteelSeriesLedId.Return },
- { LedId.Keyboard_EqualsAndPlus, SteelSeriesLedId.Equal },
- { LedId.Keyboard_Backspace, SteelSeriesLedId.Backspace },
- { LedId.Keyboard_Delete, SteelSeriesLedId.Delete },
- { LedId.Keyboard_End, SteelSeriesLedId.End },
- { LedId.Keyboard_PageDown, SteelSeriesLedId.PageDown },
- { LedId.Keyboard_RightShift, SteelSeriesLedId.RShift },
- { LedId.Keyboard_RightCtrl, SteelSeriesLedId.RCtrl },
- { LedId.Keyboard_ArrowUp, SteelSeriesLedId.UpArrow },
- { LedId.Keyboard_ArrowLeft, SteelSeriesLedId.LeftArrow },
- { LedId.Keyboard_ArrowDown, SteelSeriesLedId.DownArrow },
- { LedId.Keyboard_ArrowRight, SteelSeriesLedId.RightArrow },
- { LedId.Keyboard_NumLock, SteelSeriesLedId.KeypadNumLock },
- { LedId.Keyboard_NumSlash, SteelSeriesLedId.KeypadDivide },
- { LedId.Keyboard_NumAsterisk, SteelSeriesLedId.KeypadTimes },
- { LedId.Keyboard_NumMinus, SteelSeriesLedId.KeypadMinus },
- { LedId.Keyboard_NumPlus, SteelSeriesLedId.KeypadPlus },
- { LedId.Keyboard_NumEnter, SteelSeriesLedId.KeypadEnter },
- { LedId.Keyboard_Num7, SteelSeriesLedId.Keypad7 },
- { LedId.Keyboard_Num8, SteelSeriesLedId.Keypad8 },
- { LedId.Keyboard_Num9, SteelSeriesLedId.Keypad9 },
- { LedId.Keyboard_Num4, SteelSeriesLedId.Keypad4 },
- { LedId.Keyboard_Num5, SteelSeriesLedId.Keypad5 },
- { LedId.Keyboard_Num6, SteelSeriesLedId.Keypad6 },
- { LedId.Keyboard_Num1, SteelSeriesLedId.Keypad1 },
- { LedId.Keyboard_Num2, SteelSeriesLedId.Keypad2 },
- { LedId.Keyboard_Num3, SteelSeriesLedId.Keypad3 },
- { LedId.Keyboard_Num0, SteelSeriesLedId.Keypad0 },
- { LedId.Keyboard_NumPeriodAndDelete, SteelSeriesLedId.KeypadPeriod }
- };
-
+ {
+ { LedId.Logo, SteelSeriesLedId.Logo },
+ { LedId.Keyboard_Escape, SteelSeriesLedId.Escape },
+ { LedId.Keyboard_F1, SteelSeriesLedId.F1 },
+ { LedId.Keyboard_F2, SteelSeriesLedId.F2 },
+ { LedId.Keyboard_F3, SteelSeriesLedId.F3 },
+ { LedId.Keyboard_F4, SteelSeriesLedId.F4 },
+ { LedId.Keyboard_F5, SteelSeriesLedId.F5 },
+ { LedId.Keyboard_F6, SteelSeriesLedId.F6 },
+ { LedId.Keyboard_F7, SteelSeriesLedId.F7 },
+ { LedId.Keyboard_F8, SteelSeriesLedId.F8 },
+ { LedId.Keyboard_F9, SteelSeriesLedId.F9 },
+ { LedId.Keyboard_F10, SteelSeriesLedId.F10 },
+ { LedId.Keyboard_F11, SteelSeriesLedId.F11 },
+ { LedId.Keyboard_GraveAccentAndTilde, SteelSeriesLedId.Backqoute },
+ { LedId.Keyboard_1, SteelSeriesLedId.Keyboard1 },
+ { LedId.Keyboard_2, SteelSeriesLedId.Keyboard2 },
+ { LedId.Keyboard_3, SteelSeriesLedId.Keyboard3 },
+ { LedId.Keyboard_4, SteelSeriesLedId.Keyboard4 },
+ { LedId.Keyboard_5, SteelSeriesLedId.Keyboard5 },
+ { LedId.Keyboard_6, SteelSeriesLedId.Keyboard6 },
+ { LedId.Keyboard_7, SteelSeriesLedId.Keyboard7 },
+ { LedId.Keyboard_8, SteelSeriesLedId.Keyboard8 },
+ { LedId.Keyboard_9, SteelSeriesLedId.Keyboard9 },
+ { LedId.Keyboard_0, SteelSeriesLedId.Keyboard0 },
+ { LedId.Keyboard_MinusAndUnderscore, SteelSeriesLedId.Dash },
+ { LedId.Keyboard_Tab, SteelSeriesLedId.Tab },
+ { LedId.Keyboard_Q, SteelSeriesLedId.Q },
+ { LedId.Keyboard_W, SteelSeriesLedId.W },
+ { LedId.Keyboard_E, SteelSeriesLedId.E },
+ { LedId.Keyboard_R, SteelSeriesLedId.R },
+ { LedId.Keyboard_T, SteelSeriesLedId.T },
+ { LedId.Keyboard_Y, SteelSeriesLedId.Y },
+ { LedId.Keyboard_U, SteelSeriesLedId.U },
+ { LedId.Keyboard_I, SteelSeriesLedId.I },
+ { LedId.Keyboard_O, SteelSeriesLedId.O },
+ { LedId.Keyboard_P, SteelSeriesLedId.P },
+ { LedId.Keyboard_BracketLeft, SteelSeriesLedId.LBracket },
+ { LedId.Keyboard_CapsLock, SteelSeriesLedId.Caps },
+ { LedId.Keyboard_A, SteelSeriesLedId.A },
+ { LedId.Keyboard_S, SteelSeriesLedId.S },
+ { LedId.Keyboard_D, SteelSeriesLedId.D },
+ { LedId.Keyboard_F, SteelSeriesLedId.F },
+ { LedId.Keyboard_G, SteelSeriesLedId.G },
+ { LedId.Keyboard_H, SteelSeriesLedId.H },
+ { LedId.Keyboard_J, SteelSeriesLedId.J },
+ { LedId.Keyboard_K, SteelSeriesLedId.K },
+ { LedId.Keyboard_L, SteelSeriesLedId.L },
+ { LedId.Keyboard_SemicolonAndColon, SteelSeriesLedId.Semicolon },
+ { LedId.Keyboard_ApostropheAndDoubleQuote, SteelSeriesLedId.Quote },
+ { LedId.Keyboard_LeftShift, SteelSeriesLedId.LShift },
+ { LedId.Keyboard_NonUsTilde, SteelSeriesLedId.Pound },
+ { LedId.Keyboard_Z, SteelSeriesLedId.Z },
+ { LedId.Keyboard_X, SteelSeriesLedId.X },
+ { LedId.Keyboard_C, SteelSeriesLedId.C },
+ { LedId.Keyboard_V, SteelSeriesLedId.V },
+ { LedId.Keyboard_B, SteelSeriesLedId.B },
+ { LedId.Keyboard_N, SteelSeriesLedId.N },
+ { LedId.Keyboard_M, SteelSeriesLedId.M },
+ { LedId.Keyboard_CommaAndLessThan, SteelSeriesLedId.Comma },
+ { LedId.Keyboard_PeriodAndBiggerThan, SteelSeriesLedId.Period },
+ { LedId.Keyboard_SlashAndQuestionMark, SteelSeriesLedId.Slash },
+ { LedId.Keyboard_LeftCtrl, SteelSeriesLedId.LCtrl },
+ { LedId.Keyboard_LeftGui, SteelSeriesLedId.LWin },
+ { LedId.Keyboard_LeftAlt, SteelSeriesLedId.LAlt },
+ { LedId.Keyboard_Space, SteelSeriesLedId.Spacebar },
+ { LedId.Keyboard_RightAlt, SteelSeriesLedId.RAlt },
+ { LedId.Keyboard_RightGui, SteelSeriesLedId.RWin },
+ { LedId.Keyboard_Application, SteelSeriesLedId.SSKey },
+ { LedId.Keyboard_F12, SteelSeriesLedId.F12 },
+ { LedId.Keyboard_PrintScreen, SteelSeriesLedId.PrintScreen },
+ { LedId.Keyboard_ScrollLock, SteelSeriesLedId.ScrollLock },
+ { LedId.Keyboard_PauseBreak, SteelSeriesLedId.Pause },
+ { LedId.Keyboard_Insert, SteelSeriesLedId.Insert },
+ { LedId.Keyboard_Home, SteelSeriesLedId.Home },
+ { LedId.Keyboard_PageUp, SteelSeriesLedId.PageUp },
+ { LedId.Keyboard_BracketRight, SteelSeriesLedId.RBracket },
+ { LedId.Keyboard_Backslash, SteelSeriesLedId.Backslash },
+ { LedId.Keyboard_Enter, SteelSeriesLedId.Return },
+ { LedId.Keyboard_EqualsAndPlus, SteelSeriesLedId.Equal },
+ { LedId.Keyboard_Backspace, SteelSeriesLedId.Backspace },
+ { LedId.Keyboard_Delete, SteelSeriesLedId.Delete },
+ { LedId.Keyboard_End, SteelSeriesLedId.End },
+ { LedId.Keyboard_PageDown, SteelSeriesLedId.PageDown },
+ { LedId.Keyboard_RightShift, SteelSeriesLedId.RShift },
+ { LedId.Keyboard_RightCtrl, SteelSeriesLedId.RCtrl },
+ { LedId.Keyboard_ArrowUp, SteelSeriesLedId.UpArrow },
+ { LedId.Keyboard_ArrowLeft, SteelSeriesLedId.LeftArrow },
+ { LedId.Keyboard_ArrowDown, SteelSeriesLedId.DownArrow },
+ { LedId.Keyboard_ArrowRight, SteelSeriesLedId.RightArrow },
+ { LedId.Keyboard_NumLock, SteelSeriesLedId.KeypadNumLock },
+ { LedId.Keyboard_NumSlash, SteelSeriesLedId.KeypadDivide },
+ { LedId.Keyboard_NumAsterisk, SteelSeriesLedId.KeypadTimes },
+ { LedId.Keyboard_NumMinus, SteelSeriesLedId.KeypadMinus },
+ { LedId.Keyboard_NumPlus, SteelSeriesLedId.KeypadPlus },
+ { LedId.Keyboard_NumEnter, SteelSeriesLedId.KeypadEnter },
+ { LedId.Keyboard_Num7, SteelSeriesLedId.Keypad7 },
+ { LedId.Keyboard_Num8, SteelSeriesLedId.Keypad8 },
+ { LedId.Keyboard_Num9, SteelSeriesLedId.Keypad9 },
+ { LedId.Keyboard_Num4, SteelSeriesLedId.Keypad4 },
+ { LedId.Keyboard_Num5, SteelSeriesLedId.Keypad5 },
+ { LedId.Keyboard_Num6, SteelSeriesLedId.Keypad6 },
+ { LedId.Keyboard_Num1, SteelSeriesLedId.Keypad1 },
+ { LedId.Keyboard_Num2, SteelSeriesLedId.Keypad2 },
+ { LedId.Keyboard_Num3, SteelSeriesLedId.Keypad3 },
+ { LedId.Keyboard_Num0, SteelSeriesLedId.Keypad0 },
+ { LedId.Keyboard_NumPeriodAndDelete, SteelSeriesLedId.KeypadPeriod }
+ };
+
private static readonly LedMapping KEYBOARD_TKL_MAPPING_UK = new()
- {
- { LedId.Logo, SteelSeriesLedId.Logo },
- { LedId.Keyboard_Escape, SteelSeriesLedId.Escape },
- { LedId.Keyboard_F1, SteelSeriesLedId.F1 },
- { LedId.Keyboard_F2, SteelSeriesLedId.F2 },
- { LedId.Keyboard_F3, SteelSeriesLedId.F3 },
- { LedId.Keyboard_F4, SteelSeriesLedId.F4 },
- { LedId.Keyboard_F5, SteelSeriesLedId.F5 },
- { LedId.Keyboard_F6, SteelSeriesLedId.F6 },
- { LedId.Keyboard_F7, SteelSeriesLedId.F7 },
- { LedId.Keyboard_F8, SteelSeriesLedId.F8 },
- { LedId.Keyboard_F9, SteelSeriesLedId.F9 },
- { LedId.Keyboard_F10, SteelSeriesLedId.F10 },
- { LedId.Keyboard_F11, SteelSeriesLedId.F11 },
- { LedId.Keyboard_GraveAccentAndTilde, SteelSeriesLedId.Backqoute },
- { LedId.Keyboard_1, SteelSeriesLedId.Keyboard1 },
- { LedId.Keyboard_2, SteelSeriesLedId.Keyboard2 },
- { LedId.Keyboard_3, SteelSeriesLedId.Keyboard3 },
- { LedId.Keyboard_4, SteelSeriesLedId.Keyboard4 },
- { LedId.Keyboard_5, SteelSeriesLedId.Keyboard5 },
- { LedId.Keyboard_6, SteelSeriesLedId.Keyboard6 },
- { LedId.Keyboard_7, SteelSeriesLedId.Keyboard7 },
- { LedId.Keyboard_8, SteelSeriesLedId.Keyboard8 },
- { LedId.Keyboard_9, SteelSeriesLedId.Keyboard9 },
- { LedId.Keyboard_0, SteelSeriesLedId.Keyboard0 },
- { LedId.Keyboard_MinusAndUnderscore, SteelSeriesLedId.Dash },
- { LedId.Keyboard_Tab, SteelSeriesLedId.Tab },
- { LedId.Keyboard_Q, SteelSeriesLedId.Q },
- { LedId.Keyboard_W, SteelSeriesLedId.W },
- { LedId.Keyboard_E, SteelSeriesLedId.E },
- { LedId.Keyboard_R, SteelSeriesLedId.R },
- { LedId.Keyboard_T, SteelSeriesLedId.T },
- { LedId.Keyboard_Y, SteelSeriesLedId.Y },
- { LedId.Keyboard_U, SteelSeriesLedId.U },
- { LedId.Keyboard_I, SteelSeriesLedId.I },
- { LedId.Keyboard_O, SteelSeriesLedId.O },
- { LedId.Keyboard_P, SteelSeriesLedId.P },
- { LedId.Keyboard_BracketLeft, SteelSeriesLedId.LBracket },
- { LedId.Keyboard_CapsLock, SteelSeriesLedId.Caps },
- { LedId.Keyboard_A, SteelSeriesLedId.A },
- { LedId.Keyboard_S, SteelSeriesLedId.S },
- { LedId.Keyboard_D, SteelSeriesLedId.D },
- { LedId.Keyboard_F, SteelSeriesLedId.F },
- { LedId.Keyboard_G, SteelSeriesLedId.G },
- { LedId.Keyboard_H, SteelSeriesLedId.H },
- { LedId.Keyboard_J, SteelSeriesLedId.J },
- { LedId.Keyboard_K, SteelSeriesLedId.K },
- { LedId.Keyboard_L, SteelSeriesLedId.L },
- { LedId.Keyboard_SemicolonAndColon, SteelSeriesLedId.Semicolon },
- { LedId.Keyboard_ApostropheAndDoubleQuote, SteelSeriesLedId.Quote },
- { LedId.Keyboard_LeftShift, SteelSeriesLedId.LShift },
- { LedId.Keyboard_NonUsTilde, SteelSeriesLedId.Pound },
- { LedId.Keyboard_Z, SteelSeriesLedId.Z },
- { LedId.Keyboard_X, SteelSeriesLedId.X },
- { LedId.Keyboard_C, SteelSeriesLedId.C },
- { LedId.Keyboard_V, SteelSeriesLedId.V },
- { LedId.Keyboard_B, SteelSeriesLedId.B },
- { LedId.Keyboard_N, SteelSeriesLedId.N },
- { LedId.Keyboard_M, SteelSeriesLedId.M },
- { LedId.Keyboard_CommaAndLessThan, SteelSeriesLedId.Comma },
- { LedId.Keyboard_PeriodAndBiggerThan, SteelSeriesLedId.Period },
- { LedId.Keyboard_SlashAndQuestionMark, SteelSeriesLedId.Slash },
- { LedId.Keyboard_LeftCtrl, SteelSeriesLedId.LCtrl },
- { LedId.Keyboard_LeftGui, SteelSeriesLedId.LWin },
- { LedId.Keyboard_LeftAlt, SteelSeriesLedId.LAlt },
- { LedId.Keyboard_Space, SteelSeriesLedId.Spacebar },
- { LedId.Keyboard_RightAlt, SteelSeriesLedId.RAlt },
- { LedId.Keyboard_RightGui, SteelSeriesLedId.RWin },
- { LedId.Keyboard_Application, SteelSeriesLedId.SSKey },
- { LedId.Keyboard_F12, SteelSeriesLedId.F12 },
- { LedId.Keyboard_PrintScreen, SteelSeriesLedId.PrintScreen },
- { LedId.Keyboard_ScrollLock, SteelSeriesLedId.ScrollLock },
- { LedId.Keyboard_PauseBreak, SteelSeriesLedId.Pause },
- { LedId.Keyboard_Insert, SteelSeriesLedId.Insert },
- { LedId.Keyboard_Home, SteelSeriesLedId.Home },
- { LedId.Keyboard_PageUp, SteelSeriesLedId.PageUp },
- { LedId.Keyboard_BracketRight, SteelSeriesLedId.RBracket },
- { LedId.Keyboard_Backslash, SteelSeriesLedId.Backslash },
- { LedId.Keyboard_Enter, SteelSeriesLedId.Return },
- { LedId.Keyboard_EqualsAndPlus, SteelSeriesLedId.Equal },
- { LedId.Keyboard_Backspace, SteelSeriesLedId.Backspace },
- { LedId.Keyboard_Delete, SteelSeriesLedId.Delete },
- { LedId.Keyboard_End, SteelSeriesLedId.End },
- { LedId.Keyboard_PageDown, SteelSeriesLedId.PageDown },
- { LedId.Keyboard_RightShift, SteelSeriesLedId.RShift },
- { LedId.Keyboard_RightCtrl, SteelSeriesLedId.RCtrl },
- { LedId.Keyboard_ArrowUp, SteelSeriesLedId.UpArrow },
- { LedId.Keyboard_ArrowLeft, SteelSeriesLedId.LeftArrow },
- { LedId.Keyboard_ArrowDown, SteelSeriesLedId.DownArrow },
- { LedId.Keyboard_ArrowRight, SteelSeriesLedId.RightArrow }
- };
-
+ {
+ { LedId.Logo, SteelSeriesLedId.Logo },
+ { LedId.Keyboard_Escape, SteelSeriesLedId.Escape },
+ { LedId.Keyboard_F1, SteelSeriesLedId.F1 },
+ { LedId.Keyboard_F2, SteelSeriesLedId.F2 },
+ { LedId.Keyboard_F3, SteelSeriesLedId.F3 },
+ { LedId.Keyboard_F4, SteelSeriesLedId.F4 },
+ { LedId.Keyboard_F5, SteelSeriesLedId.F5 },
+ { LedId.Keyboard_F6, SteelSeriesLedId.F6 },
+ { LedId.Keyboard_F7, SteelSeriesLedId.F7 },
+ { LedId.Keyboard_F8, SteelSeriesLedId.F8 },
+ { LedId.Keyboard_F9, SteelSeriesLedId.F9 },
+ { LedId.Keyboard_F10, SteelSeriesLedId.F10 },
+ { LedId.Keyboard_F11, SteelSeriesLedId.F11 },
+ { LedId.Keyboard_GraveAccentAndTilde, SteelSeriesLedId.Backqoute },
+ { LedId.Keyboard_1, SteelSeriesLedId.Keyboard1 },
+ { LedId.Keyboard_2, SteelSeriesLedId.Keyboard2 },
+ { LedId.Keyboard_3, SteelSeriesLedId.Keyboard3 },
+ { LedId.Keyboard_4, SteelSeriesLedId.Keyboard4 },
+ { LedId.Keyboard_5, SteelSeriesLedId.Keyboard5 },
+ { LedId.Keyboard_6, SteelSeriesLedId.Keyboard6 },
+ { LedId.Keyboard_7, SteelSeriesLedId.Keyboard7 },
+ { LedId.Keyboard_8, SteelSeriesLedId.Keyboard8 },
+ { LedId.Keyboard_9, SteelSeriesLedId.Keyboard9 },
+ { LedId.Keyboard_0, SteelSeriesLedId.Keyboard0 },
+ { LedId.Keyboard_MinusAndUnderscore, SteelSeriesLedId.Dash },
+ { LedId.Keyboard_Tab, SteelSeriesLedId.Tab },
+ { LedId.Keyboard_Q, SteelSeriesLedId.Q },
+ { LedId.Keyboard_W, SteelSeriesLedId.W },
+ { LedId.Keyboard_E, SteelSeriesLedId.E },
+ { LedId.Keyboard_R, SteelSeriesLedId.R },
+ { LedId.Keyboard_T, SteelSeriesLedId.T },
+ { LedId.Keyboard_Y, SteelSeriesLedId.Y },
+ { LedId.Keyboard_U, SteelSeriesLedId.U },
+ { LedId.Keyboard_I, SteelSeriesLedId.I },
+ { LedId.Keyboard_O, SteelSeriesLedId.O },
+ { LedId.Keyboard_P, SteelSeriesLedId.P },
+ { LedId.Keyboard_BracketLeft, SteelSeriesLedId.LBracket },
+ { LedId.Keyboard_CapsLock, SteelSeriesLedId.Caps },
+ { LedId.Keyboard_A, SteelSeriesLedId.A },
+ { LedId.Keyboard_S, SteelSeriesLedId.S },
+ { LedId.Keyboard_D, SteelSeriesLedId.D },
+ { LedId.Keyboard_F, SteelSeriesLedId.F },
+ { LedId.Keyboard_G, SteelSeriesLedId.G },
+ { LedId.Keyboard_H, SteelSeriesLedId.H },
+ { LedId.Keyboard_J, SteelSeriesLedId.J },
+ { LedId.Keyboard_K, SteelSeriesLedId.K },
+ { LedId.Keyboard_L, SteelSeriesLedId.L },
+ { LedId.Keyboard_SemicolonAndColon, SteelSeriesLedId.Semicolon },
+ { LedId.Keyboard_ApostropheAndDoubleQuote, SteelSeriesLedId.Quote },
+ { LedId.Keyboard_LeftShift, SteelSeriesLedId.LShift },
+ { LedId.Keyboard_NonUsTilde, SteelSeriesLedId.Pound },
+ { LedId.Keyboard_Z, SteelSeriesLedId.Z },
+ { LedId.Keyboard_X, SteelSeriesLedId.X },
+ { LedId.Keyboard_C, SteelSeriesLedId.C },
+ { LedId.Keyboard_V, SteelSeriesLedId.V },
+ { LedId.Keyboard_B, SteelSeriesLedId.B },
+ { LedId.Keyboard_N, SteelSeriesLedId.N },
+ { LedId.Keyboard_M, SteelSeriesLedId.M },
+ { LedId.Keyboard_CommaAndLessThan, SteelSeriesLedId.Comma },
+ { LedId.Keyboard_PeriodAndBiggerThan, SteelSeriesLedId.Period },
+ { LedId.Keyboard_SlashAndQuestionMark, SteelSeriesLedId.Slash },
+ { LedId.Keyboard_LeftCtrl, SteelSeriesLedId.LCtrl },
+ { LedId.Keyboard_LeftGui, SteelSeriesLedId.LWin },
+ { LedId.Keyboard_LeftAlt, SteelSeriesLedId.LAlt },
+ { LedId.Keyboard_Space, SteelSeriesLedId.Spacebar },
+ { LedId.Keyboard_RightAlt, SteelSeriesLedId.RAlt },
+ { LedId.Keyboard_RightGui, SteelSeriesLedId.RWin },
+ { LedId.Keyboard_Application, SteelSeriesLedId.SSKey },
+ { LedId.Keyboard_F12, SteelSeriesLedId.F12 },
+ { LedId.Keyboard_PrintScreen, SteelSeriesLedId.PrintScreen },
+ { LedId.Keyboard_ScrollLock, SteelSeriesLedId.ScrollLock },
+ { LedId.Keyboard_PauseBreak, SteelSeriesLedId.Pause },
+ { LedId.Keyboard_Insert, SteelSeriesLedId.Insert },
+ { LedId.Keyboard_Home, SteelSeriesLedId.Home },
+ { LedId.Keyboard_PageUp, SteelSeriesLedId.PageUp },
+ { LedId.Keyboard_BracketRight, SteelSeriesLedId.RBracket },
+ { LedId.Keyboard_Backslash, SteelSeriesLedId.Backslash },
+ { LedId.Keyboard_Enter, SteelSeriesLedId.Return },
+ { LedId.Keyboard_EqualsAndPlus, SteelSeriesLedId.Equal },
+ { LedId.Keyboard_Backspace, SteelSeriesLedId.Backspace },
+ { LedId.Keyboard_Delete, SteelSeriesLedId.Delete },
+ { LedId.Keyboard_End, SteelSeriesLedId.End },
+ { LedId.Keyboard_PageDown, SteelSeriesLedId.PageDown },
+ { LedId.Keyboard_RightShift, SteelSeriesLedId.RShift },
+ { LedId.Keyboard_RightCtrl, SteelSeriesLedId.RCtrl },
+ { LedId.Keyboard_ArrowUp, SteelSeriesLedId.UpArrow },
+ { LedId.Keyboard_ArrowLeft, SteelSeriesLedId.LeftArrow },
+ { LedId.Keyboard_ArrowDown, SteelSeriesLedId.DownArrow },
+ { LedId.Keyboard_ArrowRight, SteelSeriesLedId.RightArrow }
+ };
+
private static readonly LedMapping MOUSE_ONE_ZONE = new()
{
{ LedId.Mouse1, SteelSeriesLedId.ZoneOne }
- };
-
+ };
+
private static readonly LedMapping MOUSE_TWO_ZONE = new()
{
{ LedId.Mouse1, SteelSeriesLedId.ZoneOne },
@@ -230,88 +230,217 @@ namespace RGB.NET.Devices.SteelSeries.HID
{ LedId.Mouse1, SteelSeriesLedId.ZoneOne },
{ LedId.Mouse2, SteelSeriesLedId.ZoneTwo },
{ LedId.Mouse3, SteelSeriesLedId.ZoneThree }
- };
-
- private static readonly LedMapping MOUSE_EIGHT_ZONE = new()
- {
- { LedId.Mouse1, SteelSeriesLedId.ZoneOne },
- { LedId.Mouse2, SteelSeriesLedId.ZoneTwo },
- { LedId.Mouse3, SteelSeriesLedId.ZoneThree },
- { LedId.Mouse4, SteelSeriesLedId.ZoneFour },
- { LedId.Mouse5, SteelSeriesLedId.ZoneFive },
- { LedId.Mouse6, SteelSeriesLedId.ZoneSix },
- { LedId.Mouse7, SteelSeriesLedId.ZoneSeven },
- { LedId.Mouse8, SteelSeriesLedId.ZoneEight }
- };
-
- private static readonly LedMapping HEADSET_TWO_ZONE = new()
- {
- { LedId.Headset1, SteelSeriesLedId.ZoneOne },
- { LedId.Headset2, SteelSeriesLedId.ZoneTwo }
};
- private const int VENDOR_ID = 0x1038;
-
- //TODO DarthAffe 16.02.2019: Add devices
- private static readonly DeviceDataList DEVICES = new()
- {
- //Mice
- ("Aerox 3", RGBDeviceType.Mouse, 0x1836, SteelSeriesDeviceType.ThreeZone, MOUSE_THREE_ZONE),
- ("Aerox 3 Wireless", RGBDeviceType.Mouse, 0x183A, SteelSeriesDeviceType.ThreeZone, MOUSE_THREE_ZONE),
- ("Rival 100", RGBDeviceType.Mouse, 0x1702, SteelSeriesDeviceType.OneZone, MOUSE_ONE_ZONE),
- ("Rival 105", RGBDeviceType.Mouse, 0x1814, SteelSeriesDeviceType.OneZone, MOUSE_ONE_ZONE),
- ("Rival 106", RGBDeviceType.Mouse, 0x1816, SteelSeriesDeviceType.OneZone, MOUSE_ONE_ZONE),
- ("Rival 110", RGBDeviceType.Mouse, 0x1729, SteelSeriesDeviceType.OneZone, MOUSE_ONE_ZONE),
- ("Rival 150", RGBDeviceType.Mouse, 0x0472, SteelSeriesDeviceType.OneZone, MOUSE_ONE_ZONE),
- ("Rival 300", RGBDeviceType.Mouse, 0x1710, SteelSeriesDeviceType.TwoZone, MOUSE_TWO_ZONE),
- ("Rival 310", RGBDeviceType.Mouse, 0x1720, SteelSeriesDeviceType.TwoZone, MOUSE_TWO_ZONE),
- ("Rival 500", RGBDeviceType.Mouse, 0x170E, SteelSeriesDeviceType.TwoZone, MOUSE_TWO_ZONE),
- ("Rival 600", RGBDeviceType.Mouse, 0x1724, SteelSeriesDeviceType.EightZone, MOUSE_EIGHT_ZONE),
- ("Rival 700", RGBDeviceType.Mouse, 0x1700, SteelSeriesDeviceType.TwoZone, MOUSE_TWO_ZONE),
- ("Rival 3 (Old Firmware)", RGBDeviceType.Mouse, 0x1824, SteelSeriesDeviceType.ThreeZone, MOUSE_THREE_ZONE),
- ("Rival 3", RGBDeviceType.Mouse, 0x184C, SteelSeriesDeviceType.ThreeZone, MOUSE_THREE_ZONE),
- ("Rival 3 Wireless", RGBDeviceType.Mouse, 0x1830, SteelSeriesDeviceType.ThreeZone, MOUSE_THREE_ZONE),
- ("Sensei Ten", RGBDeviceType.Mouse, 0x1832, SteelSeriesDeviceType.TwoZone, MOUSE_TWO_ZONE),
-
- //Keyboards
- ("Apex 5", RGBDeviceType.Keyboard, 0x161C, SteelSeriesDeviceType.PerKey, KEYBOARD_MAPPING_UK),
- ("Apex 7", RGBDeviceType.Keyboard, 0x1612, SteelSeriesDeviceType.PerKey, KEYBOARD_MAPPING_UK),
- ("Apex 7 TKL", RGBDeviceType.Keyboard, 0x1618, SteelSeriesDeviceType.PerKey, KEYBOARD_TKL_MAPPING_UK),
- ("Apex M750", RGBDeviceType.Keyboard, 0x0616, SteelSeriesDeviceType.PerKey, KEYBOARD_MAPPING_UK),
- ("Apex M800", RGBDeviceType.Keyboard, 0x1600, SteelSeriesDeviceType.PerKey, KEYBOARD_MAPPING_UK),
- ("Apex Pro", RGBDeviceType.Keyboard, 0x1610, SteelSeriesDeviceType.PerKey, KEYBOARD_MAPPING_UK),
- ("Apex Pro TKL", RGBDeviceType.Keyboard, 0x1614, SteelSeriesDeviceType.PerKey, KEYBOARD_TKL_MAPPING_UK),
-
- //Headsets
- ("Arctis 5", RGBDeviceType.Headset, 0x12AA, SteelSeriesDeviceType.TwoZone, HEADSET_TWO_ZONE),
- ("Arctis 5 Game", RGBDeviceType.Headset, 0x1250, SteelSeriesDeviceType.TwoZone, HEADSET_TWO_ZONE),
- ("Arctis 5 Game - Dota 2 edition", RGBDeviceType.Headset, 0x1251, SteelSeriesDeviceType.TwoZone, HEADSET_TWO_ZONE),
- ("Arctis 5 Game - PUBG edition", RGBDeviceType.Headset, 0x12A8, SteelSeriesDeviceType.TwoZone, HEADSET_TWO_ZONE),
- ("Arctis Pro Game", RGBDeviceType.Headset, 0x1252, SteelSeriesDeviceType.TwoZone, HEADSET_TWO_ZONE),
- };
-
- #endregion
-
- #region Properties & Fields
-
- public static DeviceDataList ConnectedDevices { get; } = new();
-
- #endregion
-
- #region Methods
-
- internal static void LoadDeviceList(RGBDeviceType loadFilter)
- {
- ConnectedDevices.Clear();
-
- HashSet ids = new(DeviceList.Local.GetHidDevices(VENDOR_ID).Select(x => x.ProductID).Distinct());
- DeviceDataList connectedDevices = DEVICES.Where(d => ids.Contains(d.id) && loadFilter.HasFlag(d.deviceType)).ToList();
-
- List connectedDeviceTypes = connectedDevices.Select(d => d.steelSeriesDeviceType).ToList();
- foreach (SteelSeriesDeviceType deviceType in connectedDeviceTypes)
- ConnectedDevices.Add(connectedDevices.Where(d => d.steelSeriesDeviceType == deviceType).OrderByDescending(d => d.ledMapping.Count).First());
- }
-
- #endregion
- }
-}
+ private static readonly LedMapping MOUSE_EIGHT_ZONE = new()
+ {
+ { LedId.Mouse1, SteelSeriesLedId.ZoneOne },
+ { LedId.Mouse2, SteelSeriesLedId.ZoneTwo },
+ { LedId.Mouse3, SteelSeriesLedId.ZoneThree },
+ { LedId.Mouse4, SteelSeriesLedId.ZoneFour },
+ { LedId.Mouse5, SteelSeriesLedId.ZoneFive },
+ { LedId.Mouse6, SteelSeriesLedId.ZoneSix },
+ { LedId.Mouse7, SteelSeriesLedId.ZoneSeven },
+ { LedId.Mouse8, SteelSeriesLedId.ZoneEight }
+ };
+
+ private static readonly LedMapping HEADSET_TWO_ZONE = new()
+ {
+ { LedId.Headset1, SteelSeriesLedId.ZoneOne },
+ { LedId.Headset2, SteelSeriesLedId.ZoneTwo }
+ };
+
+ private static readonly LedMapping MOUSEPAD_TWELVE_ZONE = new()
+ {
+ { LedId.Mousepad1, SteelSeriesLedId.ZoneOne },
+ { LedId.Mousepad2, SteelSeriesLedId.ZoneTwo },
+ { LedId.Mousepad3, SteelSeriesLedId.ZoneThree },
+ { LedId.Mousepad4, SteelSeriesLedId.ZoneFour },
+ { LedId.Mousepad5, SteelSeriesLedId.ZoneFive },
+ { LedId.Mousepad6, SteelSeriesLedId.ZoneSix },
+ { LedId.Mousepad7, SteelSeriesLedId.ZoneSeven },
+ { LedId.Mousepad8, SteelSeriesLedId.ZoneEight },
+ { LedId.Mousepad9, SteelSeriesLedId.ZoneNine },
+ { LedId.Mousepad10, SteelSeriesLedId.ZoneTen },
+ { LedId.Mousepad11, SteelSeriesLedId.ZoneEleven },
+ { LedId.Mousepad12, SteelSeriesLedId.ZoneTwelve },
+ };
+
+ private static readonly LedMapping MONITOR_ONEHUNDREDANDTHREE_ZONE = new()
+ {
+ { LedId.LedStripe1, SteelSeriesLedId.ZoneOne },
+ { LedId.LedStripe2, SteelSeriesLedId.ZoneTwo },
+ { LedId.LedStripe3, SteelSeriesLedId.ZoneThree },
+ { LedId.LedStripe4, SteelSeriesLedId.ZoneFour },
+ { LedId.LedStripe5, SteelSeriesLedId.ZoneFive },
+ { LedId.LedStripe6, SteelSeriesLedId.ZoneSix },
+ { LedId.LedStripe7, SteelSeriesLedId.ZoneSeven },
+ { LedId.LedStripe8, SteelSeriesLedId.ZoneEight },
+ { LedId.LedStripe9, SteelSeriesLedId.ZoneNine },
+ { LedId.LedStripe10, SteelSeriesLedId.ZoneTen },
+ { LedId.LedStripe11, SteelSeriesLedId.ZoneEleven },
+ { LedId.LedStripe12, SteelSeriesLedId.ZoneTwelve },
+ { LedId.LedStripe13, SteelSeriesLedId.ZoneThirteen },
+ { LedId.LedStripe14, SteelSeriesLedId.ZoneFourteen },
+ { LedId.LedStripe15, SteelSeriesLedId.ZoneFifteen },
+ { LedId.LedStripe16, SteelSeriesLedId.ZoneSixteen },
+ { LedId.LedStripe17, SteelSeriesLedId.ZoneSeventeen },
+ { LedId.LedStripe18, SteelSeriesLedId.ZoneEighteen },
+ { LedId.LedStripe19, SteelSeriesLedId.ZoneNineteen },
+ { LedId.LedStripe20, SteelSeriesLedId.ZoneTwenty },
+ { LedId.LedStripe21, SteelSeriesLedId.ZoneTwentyOne },
+ { LedId.LedStripe22, SteelSeriesLedId.ZoneTwentyTwo },
+ { LedId.LedStripe23, SteelSeriesLedId.ZoneTwentyThree },
+ { LedId.LedStripe24, SteelSeriesLedId.ZoneTwentyFour },
+ { LedId.LedStripe25, SteelSeriesLedId.ZoneTwentyFive },
+ { LedId.LedStripe26, SteelSeriesLedId.ZoneTwentySix },
+ { LedId.LedStripe27, SteelSeriesLedId.ZoneTwentySeven },
+ { LedId.LedStripe28, SteelSeriesLedId.ZoneTwentyEight },
+ { LedId.LedStripe29, SteelSeriesLedId.ZoneTwentyNine },
+ { LedId.LedStripe30, SteelSeriesLedId.ZoneThirty },
+ { LedId.LedStripe31, SteelSeriesLedId.ZoneThirtyOne },
+ { LedId.LedStripe32, SteelSeriesLedId.ZoneThirtyTwo },
+ { LedId.LedStripe33, SteelSeriesLedId.ZoneThirtyThree },
+ { LedId.LedStripe34, SteelSeriesLedId.ZoneThirtyFour },
+ { LedId.LedStripe35, SteelSeriesLedId.ZoneThirtyFive },
+ { LedId.LedStripe36, SteelSeriesLedId.ZoneThirtySix },
+ { LedId.LedStripe37, SteelSeriesLedId.ZoneThirtySeven },
+ { LedId.LedStripe38, SteelSeriesLedId.ZoneThirtyEight },
+ { LedId.LedStripe39, SteelSeriesLedId.ZoneThirtyNine },
+ { LedId.LedStripe40, SteelSeriesLedId.ZoneForty },
+ { LedId.LedStripe41, SteelSeriesLedId.ZoneFortyOne },
+ { LedId.LedStripe42, SteelSeriesLedId.ZoneFortyTwo },
+ { LedId.LedStripe43, SteelSeriesLedId.ZoneFortyThree },
+ { LedId.LedStripe44, SteelSeriesLedId.ZoneFortyFour },
+ { LedId.LedStripe45, SteelSeriesLedId.ZoneFortyFive },
+ { LedId.LedStripe46, SteelSeriesLedId.ZoneFortySix },
+ { LedId.LedStripe47, SteelSeriesLedId.ZoneFortySeven },
+ { LedId.LedStripe48, SteelSeriesLedId.ZoneFortyEight },
+ { LedId.LedStripe49, SteelSeriesLedId.ZoneFortyNine },
+ { LedId.LedStripe50, SteelSeriesLedId.ZoneFifty },
+ { LedId.LedStripe51, SteelSeriesLedId.ZoneFiftyOne },
+ { LedId.LedStripe52, SteelSeriesLedId.ZoneFiftyTwo },
+ { LedId.LedStripe53, SteelSeriesLedId.ZoneFiftyThree },
+ { LedId.LedStripe54, SteelSeriesLedId.ZoneFiftyFour },
+ { LedId.LedStripe55, SteelSeriesLedId.ZoneFiftyFive },
+ { LedId.LedStripe56, SteelSeriesLedId.ZoneFiftySix },
+ { LedId.LedStripe57, SteelSeriesLedId.ZoneFiftySeven },
+ { LedId.LedStripe58, SteelSeriesLedId.ZoneFiftyEight },
+ { LedId.LedStripe59, SteelSeriesLedId.ZoneFiftyNine },
+ { LedId.LedStripe60, SteelSeriesLedId.ZoneSixty },
+ { LedId.LedStripe61, SteelSeriesLedId.ZoneSixtyOne },
+ { LedId.LedStripe62, SteelSeriesLedId.ZoneSixtyTwo },
+ { LedId.LedStripe63, SteelSeriesLedId.ZoneSixtyThree },
+ { LedId.LedStripe64, SteelSeriesLedId.ZoneSixtyFour },
+ { LedId.LedStripe65, SteelSeriesLedId.ZoneSixtyFive },
+ { LedId.LedStripe66, SteelSeriesLedId.ZoneSixtySix },
+ { LedId.LedStripe67, SteelSeriesLedId.ZoneSixtySeven },
+ { LedId.LedStripe68, SteelSeriesLedId.ZoneSixtyEight },
+ { LedId.LedStripe69, SteelSeriesLedId.ZoneSixtyNine },
+ { LedId.LedStripe70, SteelSeriesLedId.ZoneSeventy },
+ { LedId.LedStripe71, SteelSeriesLedId.ZoneSeventyOne },
+ { LedId.LedStripe72, SteelSeriesLedId.ZoneSeventyTwo },
+ { LedId.LedStripe73, SteelSeriesLedId.ZoneSeventyThree },
+ { LedId.LedStripe74, SteelSeriesLedId.ZoneSeventyFour },
+ { LedId.LedStripe75, SteelSeriesLedId.ZoneSeventyFive },
+ { LedId.LedStripe76, SteelSeriesLedId.ZoneSeventySix },
+ { LedId.LedStripe77, SteelSeriesLedId.ZoneSeventySeven },
+ { LedId.LedStripe78, SteelSeriesLedId.ZoneSeventyEight },
+ { LedId.LedStripe79, SteelSeriesLedId.ZoneSeventyNine },
+ { LedId.LedStripe80, SteelSeriesLedId.ZoneEighty },
+ { LedId.LedStripe81, SteelSeriesLedId.ZoneEightyOne },
+ { LedId.LedStripe82, SteelSeriesLedId.ZoneEightyTwo },
+ { LedId.LedStripe83, SteelSeriesLedId.ZoneEightyThree },
+ { LedId.LedStripe84, SteelSeriesLedId.ZoneEightyFour },
+ { LedId.LedStripe85, SteelSeriesLedId.ZoneEightyFive },
+ { LedId.LedStripe86, SteelSeriesLedId.ZoneEightySix },
+ { LedId.LedStripe87, SteelSeriesLedId.ZoneEightySeven },
+ { LedId.LedStripe88, SteelSeriesLedId.ZoneEightyEight },
+ { LedId.LedStripe89, SteelSeriesLedId.ZoneEightyNine },
+ { LedId.LedStripe90, SteelSeriesLedId.ZoneNinety },
+ { LedId.LedStripe91, SteelSeriesLedId.ZoneNinetyOne },
+ { LedId.LedStripe92, SteelSeriesLedId.ZoneNinetyTwo },
+ { LedId.LedStripe93, SteelSeriesLedId.ZoneNinetyThree },
+ { LedId.LedStripe94, SteelSeriesLedId.ZoneNinetyFour },
+ { LedId.LedStripe95, SteelSeriesLedId.ZoneNinetyFive },
+ { LedId.LedStripe96, SteelSeriesLedId.ZoneNinetySix },
+ { LedId.LedStripe97, SteelSeriesLedId.ZoneNinetySeven },
+ { LedId.LedStripe98, SteelSeriesLedId.ZoneNinetyEight },
+ { LedId.LedStripe99, SteelSeriesLedId.ZoneNinetyNine },
+ { LedId.LedStripe100, SteelSeriesLedId.ZoneOneHundred },
+ { LedId.LedStripe101, SteelSeriesLedId.ZoneOneHundredOne },
+ { LedId.LedStripe102, SteelSeriesLedId.ZoneOneHundredTwo },
+ { LedId.LedStripe103, SteelSeriesLedId.ZoneOneHundredThree }
+ };
+
+ private const int VENDOR_ID = 0x1038;
+
+ //TODO DarthAffe 16.02.2019: Add devices
+ private static readonly DeviceDataList DEVICES = new()
+ {
+ //Mice
+ ("Aerox 3", RGBDeviceType.Mouse, 0x1836, SteelSeriesDeviceType.ThreeZone, MOUSE_THREE_ZONE),
+ ("Aerox 3 Wireless", RGBDeviceType.Mouse, 0x183A, SteelSeriesDeviceType.ThreeZone, MOUSE_THREE_ZONE),
+ ("Rival 100", RGBDeviceType.Mouse, 0x1702, SteelSeriesDeviceType.OneZone, MOUSE_ONE_ZONE),
+ ("Rival 105", RGBDeviceType.Mouse, 0x1814, SteelSeriesDeviceType.OneZone, MOUSE_ONE_ZONE),
+ ("Rival 106", RGBDeviceType.Mouse, 0x1816, SteelSeriesDeviceType.OneZone, MOUSE_ONE_ZONE),
+ ("Rival 110", RGBDeviceType.Mouse, 0x1729, SteelSeriesDeviceType.OneZone, MOUSE_ONE_ZONE),
+ ("Rival 150", RGBDeviceType.Mouse, 0x0472, SteelSeriesDeviceType.OneZone, MOUSE_ONE_ZONE),
+ ("Rival 300", RGBDeviceType.Mouse, 0x1710, SteelSeriesDeviceType.TwoZone, MOUSE_TWO_ZONE),
+ ("Rival 310", RGBDeviceType.Mouse, 0x1720, SteelSeriesDeviceType.TwoZone, MOUSE_TWO_ZONE),
+ ("Rival 500", RGBDeviceType.Mouse, 0x170E, SteelSeriesDeviceType.TwoZone, MOUSE_TWO_ZONE),
+ ("Rival 600", RGBDeviceType.Mouse, 0x1724, SteelSeriesDeviceType.EightZone, MOUSE_EIGHT_ZONE),
+ ("Rival 700", RGBDeviceType.Mouse, 0x1700, SteelSeriesDeviceType.TwoZone, MOUSE_TWO_ZONE),
+ ("Rival 3 (Old Firmware)", RGBDeviceType.Mouse, 0x1824, SteelSeriesDeviceType.ThreeZone, MOUSE_THREE_ZONE),
+ ("Rival 3", RGBDeviceType.Mouse, 0x184C, SteelSeriesDeviceType.ThreeZone, MOUSE_THREE_ZONE),
+ ("Rival 3 Wireless", RGBDeviceType.Mouse, 0x1830, SteelSeriesDeviceType.ThreeZone, MOUSE_THREE_ZONE),
+ ("Sensei Ten", RGBDeviceType.Mouse, 0x1832, SteelSeriesDeviceType.TwoZone, MOUSE_TWO_ZONE),
+
+ //Keyboards
+ ("Apex 5", RGBDeviceType.Keyboard, 0x161C, SteelSeriesDeviceType.PerKey, KEYBOARD_MAPPING_UK),
+ ("Apex 7", RGBDeviceType.Keyboard, 0x1612, SteelSeriesDeviceType.PerKey, KEYBOARD_MAPPING_UK),
+ ("Apex 7 TKL", RGBDeviceType.Keyboard, 0x1618, SteelSeriesDeviceType.PerKey, KEYBOARD_TKL_MAPPING_UK),
+ ("Apex M750", RGBDeviceType.Keyboard, 0x0616, SteelSeriesDeviceType.PerKey, KEYBOARD_MAPPING_UK),
+ ("Apex M800", RGBDeviceType.Keyboard, 0x1600, SteelSeriesDeviceType.PerKey, KEYBOARD_MAPPING_UK),
+ ("Apex Pro", RGBDeviceType.Keyboard, 0x1610, SteelSeriesDeviceType.PerKey, KEYBOARD_MAPPING_UK),
+ ("Apex Pro TKL", RGBDeviceType.Keyboard, 0x1614, SteelSeriesDeviceType.PerKey, KEYBOARD_TKL_MAPPING_UK),
+
+ //Headsets
+ ("Arctis 5", RGBDeviceType.Headset, 0x12AA, SteelSeriesDeviceType.TwoZone, HEADSET_TWO_ZONE),
+ ("Arctis 5 Game", RGBDeviceType.Headset, 0x1250, SteelSeriesDeviceType.TwoZone, HEADSET_TWO_ZONE),
+ ("Arctis 5 Game - Dota 2 edition", RGBDeviceType.Headset, 0x1251, SteelSeriesDeviceType.TwoZone, HEADSET_TWO_ZONE),
+ ("Arctis 5 Game - PUBG edition", RGBDeviceType.Headset, 0x12A8, SteelSeriesDeviceType.TwoZone, HEADSET_TWO_ZONE),
+ ("Arctis Pro Game", RGBDeviceType.Headset, 0x1252, SteelSeriesDeviceType.TwoZone, HEADSET_TWO_ZONE),
+
+ //Mousepads
+ ("QCK Prism", RGBDeviceType.Mousepad, 0x1507, SteelSeriesDeviceType.TwelveZone, MOUSEPAD_TWELVE_ZONE),
+
+ //Monitors
+ ("MGP27C", RGBDeviceType.Monitor, 0x1126, SteelSeriesDeviceType.OneHundredAndThreeZone, MONITOR_ONEHUNDREDANDTHREE_ZONE),
+ };
+
+ #endregion
+
+ #region Properties & Fields
+
+ public static DeviceDataList ConnectedDevices { get; } = new();
+
+ #endregion
+
+ #region Methods
+
+ internal static void LoadDeviceList(RGBDeviceType loadFilter)
+ {
+ ConnectedDevices.Clear();
+
+ HashSet ids = new(DeviceList.Local.GetHidDevices(VENDOR_ID).Select(x => x.ProductID).Distinct());
+ DeviceDataList connectedDevices = DEVICES.Where(d => ids.Contains(d.id) && loadFilter.HasFlag(d.deviceType)).ToList();
+
+ List connectedDeviceTypes = connectedDevices.Select(d => d.steelSeriesDeviceType).ToList();
+ foreach (SteelSeriesDeviceType deviceType in connectedDeviceTypes)
+ ConnectedDevices.Add(connectedDevices.Where(d => d.steelSeriesDeviceType == deviceType).OrderByDescending(d => d.ledMapping.Count).First());
+ }
+
+ #endregion
+ }
+}