// ReSharper disable InconsistentNaming
using System.Collections.Generic;
using RGB.NET.Core;
using RGB.NET.Devices.Wooting.Enum;
namespace RGB.NET.Devices.Wooting.Generic;
///
/// Contains all the hardware-id mappings for Wooting devices.
///
internal static class WootingLedMappings
{
public const int ROWS = 6;
public const int COLUMNS = 21;
#region Properties & Fields
private static readonly Dictionary TKL = new()
{
{ LedId.Keyboard_Escape, (0, 0) },
{ LedId.Keyboard_F1, (0, 2) },
{ LedId.Keyboard_F2, (0, 3) },
{ LedId.Keyboard_F3, (0, 4) },
{ LedId.Keyboard_F4, (0, 5) },
{ LedId.Keyboard_F5, (0, 6) },
{ LedId.Keyboard_F6, (0, 7) },
{ LedId.Keyboard_F7, (0, 8) },
{ LedId.Keyboard_F8, (0, 9) },
{ LedId.Keyboard_F9, (0, 10) },
{ LedId.Keyboard_F10, (0, 11) },
{ LedId.Keyboard_F11, (0, 12) },
{ LedId.Keyboard_F12, (0, 13) },
{ LedId.Keyboard_PrintScreen, (0, 14) },
{ LedId.Keyboard_PauseBreak, (0, 15) },
{ LedId.Keyboard_Custom1, (0, 16) },
{ 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, 13) },
{ LedId.Keyboard_Insert, (1, 14) },
{ LedId.Keyboard_Home, (1, 15) },
{ LedId.Keyboard_PageUp, (1, 16) },
{ 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, 13) },
{ LedId.Keyboard_Delete, (2, 14) },
{ LedId.Keyboard_End, (2, 15) },
{ LedId.Keyboard_PageDown, (2, 16) },
{ 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_NonUsTilde, (3, 12) },
{ LedId.Keyboard_Enter, (3, 13) },
{ LedId.Keyboard_LeftShift, (4, 0) },
{ LedId.Keyboard_NonUsBackslash, (4, 1) },
{ 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, 13) },
{ LedId.Keyboard_ArrowUp, (4, 15) },
{ 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_Function, (5, 12) },
{ LedId.Keyboard_RightCtrl, (5, 13) },
{ LedId.Keyboard_ArrowLeft, (5, 14) },
{ LedId.Keyboard_ArrowDown, (5, 15) },
{ LedId.Keyboard_ArrowRight, (5, 16) }
};
private static readonly Dictionary EightyPercent = new()
{
{ 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, 5) },
{ LedId.Keyboard_F6, (0, 6) },
{ LedId.Keyboard_F7, (0, 7) },
{ LedId.Keyboard_F8, (0, 8) },
{ LedId.Keyboard_F9, (0, 10) },
{ LedId.Keyboard_F10, (0, 11) },
{ LedId.Keyboard_F11, (0, 12) },
{ LedId.Keyboard_F12, (0, 13) },
{ LedId.Keyboard_Profile, (0, 14) },
{ LedId.Keyboard_PrintScreen, (0, 15) },
{ LedId.Keyboard_PauseBreak, (0, 16) },
{ 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_International1, (1, 13) },//JIS key
{ LedId.Keyboard_Backspace, (1, 14) },
{ LedId.Keyboard_Insert, (1, 15) },
{ LedId.Keyboard_Home, (1, 16) },
{ 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_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_NonUsTilde, (3, 12) },
{ LedId.Keyboard_Enter, (3, 14) },
{ LedId.Keyboard_LeftShift, (4, 0) },
{ LedId.Keyboard_NonUsBackslash, (4, 1) },
{ 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_International2, (4, 13) },//JIS key
{ LedId.Keyboard_RightShift, (4, 14) },
{ LedId.Keyboard_ArrowUp, (4, 15) },
{ LedId.Keyboard_LeftCtrl, (5, 0) },
{ LedId.Keyboard_LeftGui, (5, 1) },
{ LedId.Keyboard_LeftAlt, (5, 2) },
{ LedId.Keyboard_International3, (5, 3) },//JIS key
{ LedId.Keyboard_Custom1, (5, 4) },
{ LedId.Keyboard_Custom2, (5, 5) },
{ LedId.Keyboard_Space, (5, 6) },
{ LedId.Keyboard_Custom3, (5, 7) },
{ LedId.Keyboard_Custom4, (5, 8) },
{ LedId.Keyboard_International4, (5, 9) },//JIS key
{ LedId.Keyboard_RightAlt, (5, 10) },
{ LedId.Keyboard_RightGui, (5, 11) },
{ LedId.Keyboard_Function, (5, 12) },
{ LedId.Keyboard_ArrowLeft, (5, 14) },
{ LedId.Keyboard_ArrowDown, (5, 15) },
{ LedId.Keyboard_ArrowRight, (5, 16) }
};
private static readonly Dictionary Fullsize = new()
{
{ LedId.Keyboard_Escape, (0, 0) },
{ LedId.Keyboard_F1, (0, 2) },
{ LedId.Keyboard_F2, (0, 3) },
{ LedId.Keyboard_F3, (0, 4) },
{ LedId.Keyboard_F4, (0, 5) },
{ LedId.Keyboard_F5, (0, 6) },
{ LedId.Keyboard_F6, (0, 7) },
{ LedId.Keyboard_F7, (0, 8) },
{ LedId.Keyboard_F8, (0, 9) },
{ LedId.Keyboard_F9, (0, 10) },
{ LedId.Keyboard_F10, (0, 11) },
{ LedId.Keyboard_F11, (0, 12) },
{ LedId.Keyboard_F12, (0, 13) },
{ LedId.Keyboard_PrintScreen, (0, 14) },
{ LedId.Keyboard_PauseBreak, (0, 15) },
{ LedId.Keyboard_ScrollLock, (0, 16) },
{ LedId.Keyboard_Custom1, (0, 17) },
{ LedId.Keyboard_Custom2, (0, 18) },
{ LedId.Keyboard_Custom3, (0, 19) },
{ LedId.Keyboard_Custom4, (0, 20) },
{ 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, 13) },
{ LedId.Keyboard_Insert, (1, 14) },
{ LedId.Keyboard_Home, (1, 15) },
{ LedId.Keyboard_PageUp, (1, 16) },
{ LedId.Keyboard_NumLock, (1, 17) },
{ LedId.Keyboard_NumSlash, (1, 18) },
{ LedId.Keyboard_NumAsterisk, (1, 19) },
{ LedId.Keyboard_NumMinus, (1, 20) },
{ 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, 13) },
{ LedId.Keyboard_Delete, (2, 14) },
{ LedId.Keyboard_End, (2, 15) },
{ LedId.Keyboard_PageDown, (2, 16) },
{ LedId.Keyboard_Num7, (2, 17) },
{ LedId.Keyboard_Num8, (2, 18) },
{ LedId.Keyboard_Num9, (2, 19) },
{ LedId.Keyboard_NumPlus, (2, 20) },
{ 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_NonUsTilde, (3, 12) },
{ LedId.Keyboard_Enter, (3, 13) },
{ LedId.Keyboard_Num4, (3, 17) },
{ LedId.Keyboard_Num5, (3, 18) },
{ LedId.Keyboard_Num6, (3, 19) },
{ LedId.Keyboard_LeftShift, (4, 0) },
{ LedId.Keyboard_NonUsBackslash, (4, 1) },
{ 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, 13) },
{ LedId.Keyboard_ArrowUp, (4, 15) },
{ LedId.Keyboard_Num1, (4, 17) },
{ LedId.Keyboard_Num2, (4, 18) },
{ LedId.Keyboard_Num3, (4, 19) },
{ LedId.Keyboard_NumEnter, (4, 20) },
{ 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_Function, (5, 12) },
{ LedId.Keyboard_RightCtrl, (5, 13) },
{ LedId.Keyboard_ArrowLeft, (5, 14) },
{ LedId.Keyboard_ArrowDown, (5, 15) },
{ LedId.Keyboard_ArrowRight, (5, 16) },
{ LedId.Keyboard_Num0, (5, 18) },
{ LedId.Keyboard_NumPeriodAndDelete, (5, 19) }
};
private static readonly Dictionary SixtyPercent = new()
{
{ LedId.Keyboard_Escape, (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, 13) },
{ 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, 13) },
{ 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_NonUsTilde, (3, 12) },
{ LedId.Keyboard_Enter, (3, 13) },
{ LedId.Keyboard_LeftShift, (4, 0) },
{ LedId.Keyboard_NonUsBackslash, (4, 1) },
{ 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, 13) },
{ LedId.Keyboard_LeftCtrl, (5, 0) },
{ LedId.Keyboard_LeftGui, (5, 1) },
{ LedId.Keyboard_LeftAlt, (5, 2) },
{ LedId.Keyboard_Custom1, (5, 4) },
{ LedId.Keyboard_Custom2, (5, 5) },
{ LedId.Keyboard_Space, (5, 6) },
{ LedId.Keyboard_Custom3, (5, 7) },
{ LedId.Keyboard_Custom4, (5, 8) },
{ LedId.Keyboard_RightAlt, (5, 10) },
{ LedId.Keyboard_Application, (5, 11) },
{ LedId.Keyboard_RightCtrl, (5, 12) },
{ LedId.Keyboard_Function, (5, 13) }
};
private static readonly Dictionary ThreeKeyKeypad = new()
{
//left (from top to bottom)
[LedId.LedStripe1] = (1, 0),
[LedId.LedStripe2] = (2, 0),
[LedId.LedStripe3] = (3, 0),
//bottom (from left to right)
[LedId.LedStripe4] = (4, 1),
[LedId.LedStripe5] = (4, 2),
[LedId.LedStripe6] = (4, 4),
[LedId.LedStripe7] = (4, 5),
//right (from bottom to top)
[LedId.LedStripe8] = (3, 6),
[LedId.LedStripe9] = (2, 6),
[LedId.LedStripe10] = (1, 6),
//top (from right to left)
[LedId.LedStripe11] = (0, 6),
[LedId.LedStripe12] = (0, 4),
[LedId.LedStripe13] = (0, 2),
[LedId.LedStripe14] = (0, 0),
//analog keys
[LedId.Keypad1] = (2, 1),
[LedId.Keypad2] = (2, 3),
[LedId.Keypad3] = (2, 5),
};
///
/// Contains all the hardware-id mappings for Wooting devices.
///
public static readonly Dictionary> Mapping = new()
{
[WootingDeviceType.Keyboard] = Fullsize,
[WootingDeviceType.KeyboardTKL] = TKL,
[WootingDeviceType.KeyboardSixtyPercent] = SixtyPercent,
[WootingDeviceType.Keypad3Keys] = ThreeKeyKeypad,
[WootingDeviceType.KeyboardEightyPercent] = EightyPercent
};
#endregion
}