diff --git a/RGB.NET.Devices.Asus/Enum/AsusDeviceTypes.cs b/RGB.NET.Devices.Asus/Enum/AsusDeviceType.cs similarity index 93% rename from RGB.NET.Devices.Asus/Enum/AsusDeviceTypes.cs rename to RGB.NET.Devices.Asus/Enum/AsusDeviceType.cs index a86ac4c..7990bce 100644 --- a/RGB.NET.Devices.Asus/Enum/AsusDeviceTypes.cs +++ b/RGB.NET.Devices.Asus/Enum/AsusDeviceType.cs @@ -2,7 +2,7 @@ namespace RGB.NET.Devices.Asus { - internal enum AsusDeviceTypes + internal enum AsusDeviceType : uint { ALL = 0, MB_RGB = 0x10000, diff --git a/RGB.NET.Devices.Asus/Enum/AsusLedIds.cs b/RGB.NET.Devices.Asus/Enum/AsusLedId.cs similarity index 96% rename from RGB.NET.Devices.Asus/Enum/AsusLedIds.cs rename to RGB.NET.Devices.Asus/Enum/AsusLedId.cs index 665015f..f56d64a 100644 --- a/RGB.NET.Devices.Asus/Enum/AsusLedIds.cs +++ b/RGB.NET.Devices.Asus/Enum/AsusLedId.cs @@ -2,7 +2,7 @@ namespace RGB.NET.Devices.Asus { - internal enum AsusLedIds + internal enum AsusLedId : ushort { KEY_ESCAPE = 0x01, KEY_1 = 0x02, @@ -149,5 +149,12 @@ namespace RGB.NET.Devices.Asus KEY_MAIL = 0xEC, // Mail KEY_MEDIASELECT = 0xED, // Media Select KEY_FN = 0x100, // Function key + + // Undocumented + UNDOCUMENTED_1 = 0x59, + UNDOCUMENTED_2 = 0x56, + UNDOCUMENTED_3 = 0x101, + UNDOCUMENTED_4 = 0x102, + UNDOCUMENTED_5 = 0x103, } } diff --git a/RGB.NET.Devices.Asus/Generic/AsusUpdateQueue.cs b/RGB.NET.Devices.Asus/Generic/AsusUpdateQueue.cs index 4328dc1..9a3b260 100644 --- a/RGB.NET.Devices.Asus/Generic/AsusUpdateQueue.cs +++ b/RGB.NET.Devices.Asus/Generic/AsusUpdateQueue.cs @@ -1,5 +1,4 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; using AuraServiceLib; using RGB.NET.Core; @@ -48,40 +47,31 @@ namespace RGB.NET.Devices.Asus { try { - if ((Device.Type == 0x00080000) || (Device.Type == 0x00081000)) //Keyboard + if ((Device.Type == (uint)AsusDeviceType.KEYBOARD_RGB) || (Device.Type == (uint)AsusDeviceType.NB_KB_RGB)) { foreach (KeyValuePair data in dataSet) { - ushort index = (ushort)data.Key; + AsusLedId index = (AsusLedId)data.Key; IAuraSyncKeyboard keyboard = (IAuraSyncKeyboard)Device; if (keyboard != null) { - IAuraRgbLight light; - //UK keyboard Layout - if (index == 0x56) + IAuraRgbLight light = index switch { - light = keyboard.Lights[(int)(3 * keyboard.Width + 13)]; - } - else if (index == 0x59) - { - light = keyboard.Lights[(int)(4 * keyboard.Width + 1)]; - } - else - { - light = keyboard.Key[index]; - } + //UK keyboard Layout + AsusLedId.KEY_OEM_102 => keyboard.Lights[(int)((3 * keyboard.Width) + 13)], + AsusLedId.UNDOCUMENTED_1 => keyboard.Lights[(int)((4 * keyboard.Width) + 1)], + _ => keyboard.Key[(ushort)index] + }; + // Asus Strix Scope if (keyboard.Name == "Charm") - { - if (index == 0XDB) + light = index switch { - light = keyboard.Lights[(int)(5 * keyboard.Width + 2)]; - } - else if (index == 0x38) - { - light = keyboard.Lights[(int)(5 * keyboard.Width + 3)]; - } - } + AsusLedId.KEY_LWIN => keyboard.Lights[(int)((5 * keyboard.Width) + 2)], + AsusLedId.KEY_LMENU => keyboard.Lights[(int)((5 * keyboard.Width) + 3)], + _ => light + }; + (_, byte r, byte g, byte b) = data.Value.GetRGBBytes(); light.Red = r; light.Green = g; @@ -95,6 +85,7 @@ namespace RGB.NET.Devices.Asus { int index = (int)data.Key; IAuraRgbLight light = Device.Lights[index]; + (_, byte r, byte g, byte b) = data.Value.GetRGBBytes(); light.Red = r; light.Green = g; @@ -104,7 +95,7 @@ namespace RGB.NET.Devices.Asus Device.Apply(); } - catch (Exception ex) + catch { /* "The server threw an exception." seems to be a thing here ... */ } } #endregion diff --git a/RGB.NET.Devices.Asus/Keyboard/AsusKeyboardLedMapping.cs b/RGB.NET.Devices.Asus/Keyboard/AsusKeyboardLedMapping.cs new file mode 100644 index 0000000..2b48961 --- /dev/null +++ b/RGB.NET.Devices.Asus/Keyboard/AsusKeyboardLedMapping.cs @@ -0,0 +1,161 @@ +using System.Collections.Generic; +using RGB.NET.Core; + +namespace RGB.NET.Devices.Asus +{ + internal static class AsusKeyboardLedMapping + { + public static readonly Dictionary MAPPING = new Dictionary + { + { LedId.Keyboard_Escape, AsusLedId.KEY_ESCAPE }, + { LedId.Keyboard_F1, AsusLedId.KEY_F1 }, + { LedId.Keyboard_F2, AsusLedId.KEY_F2 }, + { LedId.Keyboard_F3, AsusLedId.KEY_F3 }, + { LedId.Keyboard_F4, AsusLedId.KEY_F4 }, + { LedId.Keyboard_F5, AsusLedId.KEY_F5 }, + { LedId.Keyboard_F6, AsusLedId.KEY_F6 }, + { LedId.Keyboard_F7, AsusLedId.KEY_F7 }, + { LedId.Keyboard_F8, AsusLedId.KEY_F8 }, + { LedId.Keyboard_F9, AsusLedId.KEY_F9 }, + { LedId.Keyboard_F10, AsusLedId.KEY_F10 }, + { LedId.Keyboard_F11, AsusLedId.KEY_F11 }, + { LedId.Keyboard_F12, AsusLedId.KEY_F12 }, + { LedId.Keyboard_1, AsusLedId.KEY_1 }, + { LedId.Keyboard_2, AsusLedId.KEY_2 }, + { LedId.Keyboard_3, AsusLedId.KEY_3 }, + { LedId.Keyboard_4, AsusLedId.KEY_4 }, + { LedId.Keyboard_5, AsusLedId.KEY_5 }, + { LedId.Keyboard_6, AsusLedId.KEY_6 }, + { LedId.Keyboard_7, AsusLedId.KEY_7 }, + { LedId.Keyboard_8, AsusLedId.KEY_8 }, + { LedId.Keyboard_9, AsusLedId.KEY_9 }, + { LedId.Keyboard_0, AsusLedId.KEY_0 }, + { LedId.Keyboard_MinusAndUnderscore, AsusLedId.KEY_MINUS }, + { LedId.Keyboard_EqualsAndPlus, AsusLedId.KEY_EQUALS }, + { LedId.Keyboard_Backspace, AsusLedId.KEY_BACK }, + { LedId.Keyboard_Tab, AsusLedId.KEY_TAB }, + { LedId.Keyboard_Q, AsusLedId.KEY_Q }, + { LedId.Keyboard_W, AsusLedId.KEY_W }, + { LedId.Keyboard_E, AsusLedId.KEY_E }, + { LedId.Keyboard_R, AsusLedId.KEY_R }, + { LedId.Keyboard_T, AsusLedId.KEY_T }, + { LedId.Keyboard_Y, AsusLedId.KEY_Y }, + { LedId.Keyboard_U, AsusLedId.KEY_U }, + { LedId.Keyboard_I, AsusLedId.KEY_I }, + { LedId.Keyboard_O, AsusLedId.KEY_O }, + { LedId.Keyboard_P, AsusLedId.KEY_P }, + { LedId.Keyboard_BracketLeft, AsusLedId.KEY_LBRACKET }, + { LedId.Keyboard_BracketRight, AsusLedId.KEY_RBRACKET }, + { LedId.Keyboard_Enter, AsusLedId.KEY_RETURN }, + { LedId.Keyboard_CapsLock, AsusLedId.KEY_CAPITAL }, + { LedId.Keyboard_A, AsusLedId.KEY_A }, + { LedId.Keyboard_S, AsusLedId.KEY_S }, + { LedId.Keyboard_D, AsusLedId.KEY_D }, + { LedId.Keyboard_F, AsusLedId.KEY_F }, + { LedId.Keyboard_G, AsusLedId.KEY_G }, + { LedId.Keyboard_H, AsusLedId.KEY_H }, + { LedId.Keyboard_J, AsusLedId.KEY_J }, + { LedId.Keyboard_K, AsusLedId.KEY_K }, + { LedId.Keyboard_L, AsusLedId.KEY_L }, + { LedId.Keyboard_SemicolonAndColon, AsusLedId.KEY_SEMICOLON }, + { LedId.Keyboard_ApostropheAndDoubleQuote, AsusLedId.KEY_APOSTROPHE }, + { LedId.Keyboard_GraveAccentAndTilde, AsusLedId.KEY_GRAVE }, + { LedId.Keyboard_LeftShift, AsusLedId.KEY_LSHIFT }, + { LedId.Keyboard_Backslash, AsusLedId.KEY_BACKSLASH }, + { LedId.Keyboard_Z, AsusLedId.KEY_Z }, + { LedId.Keyboard_X, AsusLedId.KEY_X }, + { LedId.Keyboard_C, AsusLedId.KEY_C }, + { LedId.Keyboard_V, AsusLedId.KEY_V }, + { LedId.Keyboard_B, AsusLedId.KEY_B }, + { LedId.Keyboard_N, AsusLedId.KEY_N }, + { LedId.Keyboard_M, AsusLedId.KEY_M }, + { LedId.Keyboard_CommaAndLessThan, AsusLedId.KEY_COMMA }, + { LedId.Keyboard_PeriodAndBiggerThan, AsusLedId.KEY_PERIOD }, + { LedId.Keyboard_SlashAndQuestionMark, AsusLedId.KEY_SLASH }, + { LedId.Keyboard_RightShift, AsusLedId.KEY_RSHIFT }, + { LedId.Keyboard_LeftCtrl, AsusLedId.KEY_LCONTROL }, + { LedId.Keyboard_LeftGui, AsusLedId.KEY_LWIN }, + { LedId.Keyboard_LeftAlt, AsusLedId.KEY_LMENU }, + { LedId.Keyboard_Space, AsusLedId.KEY_SPACE }, + { LedId.Keyboard_RightAlt, AsusLedId.KEY_RMENU }, + { LedId.Keyboard_RightGui, AsusLedId.KEY_RWIN }, + { LedId.Keyboard_Application, AsusLedId.KEY_APPS }, + { LedId.Keyboard_RightCtrl, AsusLedId.KEY_RCONTROL }, + { LedId.Keyboard_PrintScreen, AsusLedId.KEY_SYSRQ }, + { LedId.Keyboard_ScrollLock, AsusLedId.KEY_SCROLL }, + { LedId.Keyboard_PauseBreak, AsusLedId.KEY_PAUSE }, + { LedId.Keyboard_Insert, AsusLedId.KEY_INSERT }, + { LedId.Keyboard_Home, AsusLedId.KEY_HOME }, + { LedId.Keyboard_PageUp, AsusLedId.KEY_PRIOR }, + { LedId.Keyboard_Delete, AsusLedId.KEY_DELETE }, + { LedId.Keyboard_End, AsusLedId.KEY_END }, + { LedId.Keyboard_PageDown, AsusLedId.KEY_NEXT }, + { LedId.Keyboard_ArrowUp, AsusLedId.KEY_UP }, + { LedId.Keyboard_ArrowLeft, AsusLedId.KEY_LEFT }, + { LedId.Keyboard_ArrowDown, AsusLedId.KEY_DOWN }, + { LedId.Keyboard_ArrowRight, AsusLedId.KEY_RIGHT }, + { LedId.Keyboard_NumLock, AsusLedId.KEY_NUMLOCK }, + { LedId.Keyboard_NumSlash, AsusLedId.KEY_DIVIDE }, + { LedId.Keyboard_NumAsterisk, AsusLedId.KEY_MULTIPLY }, + { LedId.Keyboard_NumMinus, AsusLedId.KEY_SUBTRACT }, + { LedId.Keyboard_Num7, AsusLedId.KEY_NUMPAD7 }, + { LedId.Keyboard_Num8, AsusLedId.KEY_NUMPAD8 }, + { LedId.Keyboard_Num9, AsusLedId.KEY_NUMPAD9 }, + { LedId.Keyboard_NumPeriodAndDelete, AsusLedId.KEY_DECIMAL }, + { LedId.Keyboard_NumPlus, AsusLedId.KEY_ADD }, + { LedId.Keyboard_Num4, AsusLedId.KEY_NUMPAD4 }, + { LedId.Keyboard_Num5, AsusLedId.KEY_NUMPAD5 }, + { LedId.Keyboard_Num6, AsusLedId.KEY_NUMPAD6 }, + { LedId.Keyboard_Num1, AsusLedId.KEY_NUMPAD1 }, + { LedId.Keyboard_Num2, AsusLedId.KEY_NUMPAD2 }, + { LedId.Keyboard_Num3, AsusLedId.KEY_NUMPAD3 }, + { LedId.Keyboard_Num0, AsusLedId.KEY_NUMPAD0 }, + { LedId.Keyboard_NumEnter, AsusLedId.KEY_NUMPADENTER }, + { LedId.Keyboard_NonUsBackslash, AsusLedId.UNDOCUMENTED_1 }, + { LedId.Keyboard_NonUsTilde, AsusLedId.UNDOCUMENTED_2 }, + { LedId.Keyboard_NumComma, AsusLedId.KEY_NUMPADCOMMA }, + { LedId.Logo, AsusLedId.UNDOCUMENTED_3 }, + { LedId.Keyboard_Custom1, AsusLedId.UNDOCUMENTED_4 }, + { LedId.Keyboard_Custom2, AsusLedId.UNDOCUMENTED_5 }, + { LedId.Keyboard_Custom3, AsusLedId.KEY_F13 }, + { LedId.Keyboard_Custom4, AsusLedId.KEY_F14 }, + { LedId.Keyboard_Custom5, AsusLedId.KEY_F15 }, + { LedId.Keyboard_Custom6, AsusLedId.KEY_KANA }, + { LedId.Keyboard_Custom7, AsusLedId.KEY_ABNT_C1 }, + { LedId.Keyboard_Custom8, AsusLedId.KEY_CONVERT }, + { LedId.Keyboard_Custom9, AsusLedId.KEY_NOCONVERT }, + { LedId.Keyboard_Custom10, AsusLedId.KEY_YEN }, + { LedId.Keyboard_Custom11, AsusLedId.KEY_ABNT_C2 }, + { LedId.Keyboard_Custom12, AsusLedId.KEY_NUMPADEQUALS }, + { LedId.Keyboard_Custom13, AsusLedId.KEY_CIRCUMFLEX }, + { LedId.Keyboard_Custom14, AsusLedId.KEY_AT }, + { LedId.Keyboard_Custom15, AsusLedId.KEY_COLON }, + { LedId.Keyboard_Custom16, AsusLedId.KEY_UNDERLINE }, + { LedId.Keyboard_Custom17, AsusLedId.KEY_KANJI }, + { LedId.Keyboard_Custom18, AsusLedId.KEY_STOP }, + { LedId.Keyboard_Custom19, AsusLedId.KEY_AX }, + { LedId.Keyboard_Custom20, AsusLedId.KEY_UNLABELED }, + { LedId.Keyboard_Custom21, AsusLedId.KEY_NEXTTRACK }, + { LedId.Keyboard_Custom22, AsusLedId.KEY_CALCULATOR }, + { LedId.Keyboard_Custom23, AsusLedId.KEY_POWER }, + { LedId.Keyboard_Custom24, AsusLedId.KEY_SLEEP }, + { LedId.Keyboard_Custom25, AsusLedId.KEY_WAKE }, + { LedId.Keyboard_Custom26, AsusLedId.KEY_WEBSEARCH }, + { LedId.Keyboard_Custom27, AsusLedId.KEY_WEBFAVORITES }, + { LedId.Keyboard_Custom28, AsusLedId.KEY_WEBREFRESH }, + { LedId.Keyboard_Custom29, AsusLedId.KEY_WEBSTOP }, + { LedId.Keyboard_Custom30, AsusLedId.KEY_WEBFORWARD }, + { LedId.Keyboard_Custom31, AsusLedId.KEY_WEBHOME }, + { LedId.Keyboard_Custom32, AsusLedId.KEY_WEBBACK }, + { LedId.Keyboard_Custom33, AsusLedId.KEY_MYCOMPUTER }, + { LedId.Keyboard_Custom34, AsusLedId.KEY_MAIL }, + { LedId.Keyboard_Custom35, AsusLedId.KEY_MEDIASELECT }, + { LedId.Keyboard_Custom36, AsusLedId.KEY_FN }, + { LedId.Keyboard_MediaMute, AsusLedId.KEY_MUTE }, + { LedId.Keyboard_MediaPlay, AsusLedId.KEY_PLAYPAUSE }, + { LedId.Keyboard_MediaStop, AsusLedId.KEY_MEDIASTOP }, + { LedId.Keyboard_MediaVolumeDown, AsusLedId.KEY_VOLUMEDOWN }, + { LedId.Keyboard_MediaVolumeUp, AsusLedId.KEY_VOLUMEUP }, + }; + } +} diff --git a/RGB.NET.Devices.Asus/Keyboard/AsusKeyboardLedMappings.cs b/RGB.NET.Devices.Asus/Keyboard/AsusKeyboardLedMappings.cs deleted file mode 100644 index 7c336ac..0000000 --- a/RGB.NET.Devices.Asus/Keyboard/AsusKeyboardLedMappings.cs +++ /dev/null @@ -1,138 +0,0 @@ -using System.Collections.Generic; -using RGB.NET.Core; - -namespace RGB.NET.Devices.Asus -{ - internal static class AsusKeyboardLedMappings - { - private static readonly Dictionary MasterKeysL_US = new Dictionary - { - { LedId.Keyboard_Escape, (0,0) }, - { LedId.Keyboard_F1, (0,1) }, - { LedId.Keyboard_F2, (0,2) }, - { LedId.Keyboard_F3, (0,3) }, - { LedId.Keyboard_F4, (0,4) }, - { LedId.Keyboard_F5, (0,6) }, - { LedId.Keyboard_F6, (0,7) }, - { LedId.Keyboard_F7, (0,8) }, - { LedId.Keyboard_F8, (0,9) }, - { LedId.Keyboard_F9, (0,11) }, - { LedId.Keyboard_F10, (0,12) }, - { LedId.Keyboard_F11, (0,13) }, - { LedId.Keyboard_F12, (0,14) }, - { LedId.Keyboard_PrintScreen, (0,15) }, - { LedId.Keyboard_ScrollLock, (0,16) }, - { LedId.Keyboard_PauseBreak, (0,17) }, - { LedId.Keyboard_Programmable1, (0,18) }, - { LedId.Keyboard_Programmable2, (0,19) }, - { LedId.Keyboard_Programmable3, (0,20) }, - { LedId.Keyboard_Programmable4, (0,21) }, - - { LedId.Keyboard_GraveAccentAndTilde, (1,0) }, - { LedId.Keyboard_1, (1,1) }, - { LedId.Keyboard_2, (1,2) }, - { LedId.Keyboard_3, (1,3) }, - { LedId.Keyboard_4, (1,4) }, - { LedId.Keyboard_5, (1,5) }, - { LedId.Keyboard_6, (1,6) }, - { LedId.Keyboard_7, (1,7) }, - { LedId.Keyboard_8, (1,8) }, - { LedId.Keyboard_9, (1,9) }, - { LedId.Keyboard_0, (1,10) }, - { LedId.Keyboard_MinusAndUnderscore, (1,11) }, - { LedId.Keyboard_EqualsAndPlus, (1,12) }, - { LedId.Keyboard_Backspace, (1,14) }, - { LedId.Keyboard_Insert, (1,15) }, - { LedId.Keyboard_Home, (1,16) }, - { LedId.Keyboard_PageUp, (1,17) }, - { LedId.Keyboard_NumLock, (1,18) }, - { LedId.Keyboard_NumSlash, (1,19) }, - { LedId.Keyboard_NumAsterisk, (1,20) }, - { LedId.Keyboard_NumMinus, (1,21) }, - - { LedId.Keyboard_Tab, (2,0) }, - { LedId.Keyboard_Q, (2,1) }, - { LedId.Keyboard_W, (2,2) }, - { LedId.Keyboard_E, (2,3) }, - { LedId.Keyboard_R, (2,4) }, - { LedId.Keyboard_T, (2,5) }, - { LedId.Keyboard_Y, (2,6) }, - { LedId.Keyboard_U, (2,7) }, - { LedId.Keyboard_I, (2,8) }, - { LedId.Keyboard_O, (2,9) }, - { LedId.Keyboard_P, (2,10) }, - { LedId.Keyboard_BracketLeft, (2,11) }, - { LedId.Keyboard_BracketRight, (2,12) }, - { LedId.Keyboard_Backslash, (2,14) }, - { LedId.Keyboard_Delete, (2,15) }, - { LedId.Keyboard_End, (2,16) }, - { LedId.Keyboard_PageDown, (2,17) }, - { LedId.Keyboard_Num7, (2,18) }, - { LedId.Keyboard_Num8, (2,19) }, - { LedId.Keyboard_Num9, (2,20) }, - { LedId.Keyboard_NumPlus, (2,21) }, - - { LedId.Keyboard_CapsLock, (3,0) }, - { LedId.Keyboard_A, (3,1) }, - { LedId.Keyboard_S, (3,2) }, - { LedId.Keyboard_D, (3,3) }, - { LedId.Keyboard_F, (3,4) }, - { LedId.Keyboard_G, (3,5) }, - { LedId.Keyboard_H, (3,6) }, - { LedId.Keyboard_J, (3,7) }, - { LedId.Keyboard_K, (3,8) }, - { LedId.Keyboard_L, (3,9) }, - { LedId.Keyboard_SemicolonAndColon, (3,10) }, - { LedId.Keyboard_ApostropheAndDoubleQuote, (3,11) }, - { LedId.Keyboard_Enter, (3,14) }, - { LedId.Keyboard_Num4, (3,18) }, - { LedId.Keyboard_Num5, (3,19) }, - { LedId.Keyboard_Num6, (3,20) }, - - { LedId.Keyboard_LeftShift, (4,0) }, - { LedId.Keyboard_Z, (4,2) }, - { LedId.Keyboard_X, (4,3) }, - { LedId.Keyboard_C, (4,4) }, - { LedId.Keyboard_V, (4,5) }, - { LedId.Keyboard_B, (4,6) }, - { LedId.Keyboard_N, (4,7) }, - { LedId.Keyboard_M, (4,8) }, - { LedId.Keyboard_CommaAndLessThan, (4,9) }, - { LedId.Keyboard_PeriodAndBiggerThan, (4,10) }, - { LedId.Keyboard_SlashAndQuestionMark, (4,11) }, - { LedId.Keyboard_RightShift, (4,14) }, - { LedId.Keyboard_ArrowUp, (4,16) }, - { LedId.Keyboard_Num1, (4,18) }, - { LedId.Keyboard_Num2, (4,19) }, - { LedId.Keyboard_Num3, (4,20) }, - { LedId.Keyboard_NumEnter, (4,21) }, - - { LedId.Keyboard_LeftCtrl, (5,0) }, - { LedId.Keyboard_LeftGui, (5,1) }, - { LedId.Keyboard_LeftAlt, (5,2) }, - { LedId.Keyboard_Space, (5,6) }, - { LedId.Keyboard_RightAlt, (5,10) }, - { LedId.Keyboard_RightGui, (5,11) }, - { LedId.Keyboard_Application, (5,12) }, - { LedId.Keyboard_RightCtrl, (5,14) }, - { LedId.Keyboard_ArrowLeft, (5,15) }, - { LedId.Keyboard_ArrowDown, (5,16) }, - { LedId.Keyboard_ArrowRight, (5,17) }, - { LedId.Keyboard_Num0, (5,18) }, - { LedId.Keyboard_NumPeriodAndDelete, (5,20) } - }; - - /// - /// Contains all the hardware-id mappings for CoolerMaster devices. - /// - public static readonly Dictionary>> Mapping = - new Dictionary>> - { - { "", new Dictionary> - { - { AsusPhysicalKeyboardLayout.TODO, MasterKeysL_US } - } - }, - }; - } -} diff --git a/RGB.NET.Devices.Asus/Keyboard/AsusKeyboardRGBDevice.cs b/RGB.NET.Devices.Asus/Keyboard/AsusKeyboardRGBDevice.cs index 46a7a21..ce44e12 100644 --- a/RGB.NET.Devices.Asus/Keyboard/AsusKeyboardRGBDevice.cs +++ b/RGB.NET.Devices.Asus/Keyboard/AsusKeyboardRGBDevice.cs @@ -1,4 +1,6 @@ -using AuraServiceLib; +using System.Collections.Generic; +using System.Linq; +using AuraServiceLib; using RGB.NET.Core; namespace RGB.NET.Devices.Asus @@ -23,33 +25,28 @@ namespace RGB.NET.Devices.Asus #endregion #region Methods - private ushort asusCode; + /// protected override void InitializeLayout() { - if (DeviceInfo.Device.Type != 0x00081001) + Dictionary reversedMapping = AsusKeyboardLedMapping.MAPPING.ToDictionary(x => x.Value, x => x.Key); + + if (DeviceInfo.Device.Type != (uint)AsusDeviceType.NB_KB_4ZONE_RGB) { int pos = 0; foreach (IAuraRgbKey key in ((IAuraSyncKeyboard)DeviceInfo.Device).Keys) - { - asusCode = key.Code; - InitializeLed(AsusLedIdMapper(key.Code), new Rectangle(pos++ * 19, 0, 19, 19)); - } + InitializeLed(reversedMapping[(AsusLedId)key.Code], new Point(pos++ * 19, 0), new Size(19, 19)); + //UK Layout - asusCode = 0x56; - InitializeLed(AsusLedIdMapper(asusCode), new Rectangle(pos++ * 19, 0, 19, 19)); - asusCode = 0x59; - InitializeLed(AsusLedIdMapper(asusCode), new Rectangle(pos++ * 19, 0, 19, 19)); + InitializeLed(reversedMapping[AsusLedId.KEY_OEM_102], new Point(pos++ * 19, 0), new Size(19, 19)); + + InitializeLed(reversedMapping[AsusLedId.UNDOCUMENTED_1], new Point(pos * 19, 0), new Size(19, 19)); } else { int ledCount = DeviceInfo.Device.Lights.Count; for (int i = 0; i < ledCount; i++) - { - asusCode = (ushort)i; - InitializeLed(LedId.Keyboard_Custom1 + i, new Rectangle(i * 19, 0, 19, 19)); - } - + InitializeLed(LedId.Keyboard_Custom1 + i, new Point(i * 19, 0), new Size(19, 19)); } string model = DeviceInfo.Model.Replace(" ", string.Empty).ToUpper(); @@ -57,236 +54,14 @@ namespace RGB.NET.Devices.Asus } /// - protected override object CreateLedCustomData(LedId ledId) => asusCode; - - private LedId AsusLedIdMapper(ushort asusKey) + protected override object CreateLedCustomData(LedId ledId) { - switch (asusKey) - { - case 0x01: - return LedId.Keyboard_Escape; - case 0x3B: - return LedId.Keyboard_F1; - case 0x3C: - return LedId.Keyboard_F2; - case 0x3D: - return LedId.Keyboard_F3; - case 0x3E: - return LedId.Keyboard_F4; - case 0x3F: - return LedId.Keyboard_F5; - case 0x40: - return LedId.Keyboard_F6; - case 0x41: - return LedId.Keyboard_F7; - case 0x42: - return LedId.Keyboard_F8; - case 0x43: - return LedId.Keyboard_F9; - case 0x44: - return LedId.Keyboard_F10; - case 0x57: - return LedId.Keyboard_F11; - case 0x58: - return LedId.Keyboard_F12; - case 0x02: - return LedId.Keyboard_1; - case 0x03: - return LedId.Keyboard_2; - case 0x04: - return LedId.Keyboard_3; - case 0x05: - return LedId.Keyboard_4; - case 0x06: - return LedId.Keyboard_5; - case 0x07: - return LedId.Keyboard_6; - case 0x08: - return LedId.Keyboard_7; - case 0x09: - return LedId.Keyboard_8; - case 0x0A: - return LedId.Keyboard_9; - case 0x0B: - return LedId.Keyboard_0; - case 0x0C: - return LedId.Keyboard_MinusAndUnderscore; - case 0x0D: - return LedId.Keyboard_EqualsAndPlus; - case 0x0E: - return LedId.Keyboard_Backspace; - case 0x0F: - return LedId.Keyboard_Tab; - case 0x10: - return LedId.Keyboard_Q; - case 0x11: - return LedId.Keyboard_W; - case 0x12: - return LedId.Keyboard_E; - case 0x13: - return LedId.Keyboard_R; - case 0x14: - return LedId.Keyboard_T; - case 0x15: - return LedId.Keyboard_Y; - case 0x16: - return LedId.Keyboard_U; - case 0x17: - return LedId.Keyboard_I; - case 0x18: - return LedId.Keyboard_O; - case 0x19: - return LedId.Keyboard_P; - case 0x1A: - return LedId.Keyboard_BracketLeft; - case 0x1B: - return LedId.Keyboard_BracketRight; - case 0x1C: - return LedId.Keyboard_Enter; - case 0x3A: - return LedId.Keyboard_CapsLock; - case 0x1E: - return LedId.Keyboard_A; - case 0x1F: - return LedId.Keyboard_S; - case 0x20: - return LedId.Keyboard_D; - case 0x21: - return LedId.Keyboard_F; - case 0x22: - return LedId.Keyboard_G; - case 0x23: - return LedId.Keyboard_H; - case 0x24: - return LedId.Keyboard_J; - case 0x25: - return LedId.Keyboard_K; - case 0x26: - return LedId.Keyboard_L; - case 0x27: - return LedId.Keyboard_SemicolonAndColon; - case 0x28: - return LedId.Keyboard_ApostropheAndDoubleQuote; - case 0x29: - return LedId.Keyboard_GraveAccentAndTilde; - case 0x2A: - return LedId.Keyboard_LeftShift; - case 0x2B: - return LedId.Keyboard_Backslash; - case 0x2C: - return LedId.Keyboard_Z; - case 0x2D: - return LedId.Keyboard_X; - case 0x2E: - return LedId.Keyboard_C; - case 0x2F: - return LedId.Keyboard_V; - case 0x30: - return LedId.Keyboard_B; - case 0x31: - return LedId.Keyboard_N; - case 0x32: - return LedId.Keyboard_M; - case 0x33: - return LedId.Keyboard_CommaAndLessThan; - case 0x34: - return LedId.Keyboard_PeriodAndBiggerThan; - case 0x35: - return LedId.Keyboard_SlashAndQuestionMark; - case 0x36: - return LedId.Keyboard_RightShift; - case 0x1D: - return LedId.Keyboard_LeftCtrl; - case 0xDB: - return LedId.Keyboard_LeftGui; - case 0x38: - return LedId.Keyboard_LeftAlt; - case 0x39: - return LedId.Keyboard_Space; - case 0xB8: - return LedId.Keyboard_RightAlt; - case 0x100: - return LedId.Keyboard_RightGui; - case 0xDD: - return LedId.Keyboard_Application; - case 0x9D: - return LedId.Keyboard_RightCtrl; - case 0xB7: - return LedId.Keyboard_PrintScreen; - case 0x46: - return LedId.Keyboard_ScrollLock; - case 0xC5: - return LedId.Keyboard_PauseBreak; - case 0xD2: - return LedId.Keyboard_Insert; - case 0xC7: - return LedId.Keyboard_Home; - case 0xC9: - return LedId.Keyboard_PageUp; - case 0xD3: - return LedId.Keyboard_Delete; - case 0xCF: - return LedId.Keyboard_End; - case 0xD1: - return LedId.Keyboard_PageDown; - case 0xC8: - return LedId.Keyboard_ArrowUp; - case 0xCB: - return LedId.Keyboard_ArrowLeft; - case 0xD0: - return LedId.Keyboard_ArrowDown; - case 0xCD: - return LedId.Keyboard_ArrowRight; - case 0x45: - return LedId.Keyboard_NumLock; - case 0xB5: - return LedId.Keyboard_NumSlash; - case 0x37: - return LedId.Keyboard_NumAsterisk; - case 0x4A: - return LedId.Keyboard_NumMinus; - case 0x47: - return LedId.Keyboard_Num7; - case 0x48: - return LedId.Keyboard_Num8; - case 0x49: - return LedId.Keyboard_Num9; - case 0x53: - return LedId.Keyboard_NumPeriodAndDelete; - case 0x4E: - return LedId.Keyboard_NumPlus; - case 0x4B: - return LedId.Keyboard_Num4; - case 0x4C: - return LedId.Keyboard_Num5; - case 0x4D: - return LedId.Keyboard_Num6; - case 0x4F: - return LedId.Keyboard_Num1; - case 0x50: - return LedId.Keyboard_Num2; - case 0x51: - return LedId.Keyboard_Num3; - case 0x52: - return LedId.Keyboard_Num0; - case 0x9C: - return LedId.Keyboard_NumEnter; - case 0x59: - return LedId.Keyboard_NonUsBackslash; - case 0x56: - return LedId.Keyboard_NonUsTilde; - case 0xB3: - return LedId.Keyboard_NumComma; - case 0x101: - return LedId.Logo; - case 0x102: - return LedId.Keyboard_Custom1; - case 0x103: - return LedId.Keyboard_Custom2; - default: - return LedId.Invalid; - } + if (DeviceInfo.Device.Type == (uint)AsusDeviceType.NB_KB_4ZONE_RGB) + return ledId - LedId.Keyboard_Custom1; + + return AsusKeyboardLedMapping.MAPPING[ledId]; } + #endregion } }