mirror of
https://github.com/DarthAffe/RGB.NET.git
synced 2025-12-12 17:48:31 +00:00
Refactored asus keyboard implementation
This commit is contained in:
parent
acdd7c19aa
commit
ca29490f02
@ -2,7 +2,7 @@
|
||||
|
||||
namespace RGB.NET.Devices.Asus
|
||||
{
|
||||
internal enum AsusDeviceTypes
|
||||
internal enum AsusDeviceType : uint
|
||||
{
|
||||
ALL = 0,
|
||||
MB_RGB = 0x10000,
|
||||
@ -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,
|
||||
}
|
||||
}
|
||||
@ -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<object, Color> 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
|
||||
|
||||
161
RGB.NET.Devices.Asus/Keyboard/AsusKeyboardLedMapping.cs
Normal file
161
RGB.NET.Devices.Asus/Keyboard/AsusKeyboardLedMapping.cs
Normal file
@ -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<LedId, AsusLedId> MAPPING = new Dictionary<LedId, AsusLedId>
|
||||
{
|
||||
{ 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 },
|
||||
};
|
||||
}
|
||||
}
|
||||
@ -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<LedId, (int row, int column)> MasterKeysL_US = new Dictionary<LedId, (int row, int column)>
|
||||
{
|
||||
{ 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) }
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
/// Contains all the hardware-id mappings for CoolerMaster devices.
|
||||
/// </summary>
|
||||
public static readonly Dictionary<string, Dictionary<AsusPhysicalKeyboardLayout, Dictionary<LedId, uint>>> Mapping =
|
||||
new Dictionary<string, Dictionary<AsusPhysicalKeyboardLayout, Dictionary<LedId, uint>>>
|
||||
{
|
||||
{ "", new Dictionary<AsusPhysicalKeyboardLayout, Dictionary<LedId, uint>>
|
||||
{
|
||||
{ AsusPhysicalKeyboardLayout.TODO, MasterKeysL_US }
|
||||
}
|
||||
},
|
||||
};
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override void InitializeLayout()
|
||||
{
|
||||
if (DeviceInfo.Device.Type != 0x00081001)
|
||||
Dictionary<AsusLedId, LedId> 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
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
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
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user