1
0
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:
Darth Affe 2020-07-11 23:50:33 +02:00
parent acdd7c19aa
commit ca29490f02
6 changed files with 207 additions and 411 deletions

View File

@ -2,7 +2,7 @@
namespace RGB.NET.Devices.Asus
{
internal enum AsusDeviceTypes
internal enum AsusDeviceType : uint
{
ALL = 0,
MB_RGB = 0x10000,

View File

@ -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,
}
}

View File

@ -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

View 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 },
};
}
}

View File

@ -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 }
}
},
};
}
}

View File

@ -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
}
}