mirror of
https://github.com/DarthAffe/RGB.NET.git
synced 2026-11-10 20:46:24 +00:00
Merge
This commit is contained in:
commit
f69560224d
12 files changed
+1510
-1554
No files matched your search
@@ -0,0 +1,19 @@
|
||||
// ReSharper disable InconsistentNaming
|
||||
// ReSharper disable UnusedMember.Global
|
||||
|
||||
#pragma warning disable 1591 // Missing XML comment for publicly visible type or member
|
||||
|
||||
namespace RGB.NET.Devices.Wooting.Enum
|
||||
{
|
||||
/// <summary>
|
||||
/// Contains list of available physical layouts for Wooting keyboards.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Shop states ANSI (US) and ISO (UK/German/Nodics) - https://wooting.store/collections/wooting-keyboards/products/wooting-two
|
||||
/// </remarks>
|
||||
public enum WootingLayoutType
|
||||
{
|
||||
ANSI = 0,
|
||||
ISO = 1
|
||||
}
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
// ReSharper disable InconsistentNaming
|
||||
// ReSharper disable UnusedMember.Global
|
||||
|
||||
#pragma warning disable 1591 // Missing XML comment for publicly visible type or member
|
||||
|
||||
namespace RGB.NET.Devices.Wooting.Enum;
|
||||
|
||||
/// <summary>
|
||||
/// Contains list of available physical layouts for Wooting keyboards.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Shop states ANSI (US) and ISO (UK/German/Nodics) - https://wooting.store/collections/wooting-keyboards/products/wooting-two
|
||||
/// </remarks>
|
||||
public enum WootingPhysicalKeyboardLayout
|
||||
{
|
||||
US = 0,
|
||||
UK = 1
|
||||
}
|
||||
@@ -1,54 +1,59 @@
|
||||
using RGB.NET.Core;
|
||||
using RGB.NET.Devices.Wooting.Enum;
|
||||
using RGB.NET.Devices.Wooting.Helper;
|
||||
using RGB.NET.Devices.Wooting.Native;
|
||||
|
||||
namespace RGB.NET.Devices.Wooting.Generic;
|
||||
|
||||
/// <inheritdoc />
|
||||
/// <summary>
|
||||
/// Represents a generic information for a Wooting-<see cref="T:RGB.NET.Core.IRGBDevice" />.
|
||||
/// </summary>
|
||||
public class WootingRGBDeviceInfo : IRGBDeviceInfo
|
||||
namespace RGB.NET.Devices.Wooting.Generic
|
||||
{
|
||||
#region Properties & Fields
|
||||
|
||||
/// <inheritdoc />
|
||||
public RGBDeviceType DeviceType { get; }
|
||||
|
||||
/// <inheritdoc />
|
||||
public string DeviceName { get; }
|
||||
|
||||
/// <inheritdoc />
|
||||
public string Manufacturer => "Wooting";
|
||||
|
||||
/// <inheritdoc />
|
||||
public string Model { get; }
|
||||
|
||||
/// <inheritdoc />
|
||||
public object? LayoutMetadata { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the <see cref="WootingDeviceType"/> of the <see cref="WootingRGBDevice{TDeviceInfo}"/>.
|
||||
/// Represents a generic information for a Wooting-<see cref="T:RGB.NET.Core.IRGBDevice" />.
|
||||
/// </summary>
|
||||
public WootingDeviceType WootingDeviceType { get; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructors
|
||||
|
||||
/// <summary>
|
||||
/// Internal constructor of managed <see cref="WootingRGBDeviceInfo"/>.
|
||||
/// </summary>
|
||||
/// <param name="deviceType">The type of the <see cref="IRGBDevice"/>.</param>
|
||||
/// <param name="deviceInfo">The <see cref="_WootingDeviceInfo"/> of the <see cref="IRGBDevice"/>.</param>
|
||||
internal WootingRGBDeviceInfo(RGBDeviceType deviceType, _WootingDeviceInfo deviceInfo)
|
||||
public class WootingRGBDeviceInfo : IRGBDeviceInfo
|
||||
{
|
||||
this.DeviceType = deviceType;
|
||||
this.WootingDeviceType = deviceInfo.DeviceType;
|
||||
#region Properties & Fields
|
||||
|
||||
Model = deviceInfo.Model;
|
||||
DeviceName = DeviceHelper.CreateDeviceName(Manufacturer, Model);
|
||||
/// <inheritdoc />
|
||||
public RGBDeviceType DeviceType { get; }
|
||||
|
||||
/// <inheritdoc />
|
||||
public string DeviceName { get; }
|
||||
|
||||
/// <inheritdoc />
|
||||
public string Manufacturer => "Wooting";
|
||||
|
||||
/// <inheritdoc />
|
||||
public string Model { get; }
|
||||
|
||||
/// <inheritdoc />
|
||||
public object? LayoutMetadata { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the <see cref="WootingDeviceType"/> of the <see cref="WootingRGBDevice{TDeviceInfo}"/>.
|
||||
/// </summary>
|
||||
public WootingDeviceType WootingDeviceType { get; }
|
||||
|
||||
public WootingLayoutType WootingLayoutType { get; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructors
|
||||
|
||||
/// <summary>
|
||||
/// Internal constructor of managed <see cref="WootingRGBDeviceInfo"/>.
|
||||
/// </summary>
|
||||
/// <param name="deviceType">The type of the <see cref="IRGBDevice"/>.</param>
|
||||
/// <param name="deviceInfo">The <see cref="_WootingDeviceInfo"/> of the <see cref="IRGBDevice"/>.</param>
|
||||
internal WootingRGBDeviceInfo(RGBDeviceType deviceType, _WootingDeviceInfo deviceInfo)
|
||||
{
|
||||
this.DeviceType = deviceType;
|
||||
this.WootingDeviceType = deviceInfo.DeviceType;
|
||||
this.WootingLayoutType = deviceInfo.LayoutType;
|
||||
|
||||
Model = deviceInfo.Model;
|
||||
DeviceName = DeviceHelper.CreateDeviceName(Manufacturer, Model);
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,476 +1,244 @@
|
||||
// ReSharper disable InconsistentNaming
|
||||
|
||||
using System.Collections.Generic;
|
||||
using RGB.NET.Core;
|
||||
using RGB.NET.Devices.Wooting.Enum;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace RGB.NET.Devices.Wooting.Keyboard;
|
||||
|
||||
/// <summary>
|
||||
/// Contains all the hardware-id mappings for Wooting devices.
|
||||
/// </summary>
|
||||
internal static class WootingKeyboardLedMappings
|
||||
namespace RGB.NET.Devices.Wooting.Keyboard
|
||||
{
|
||||
#region Properties & Fields
|
||||
|
||||
#region TKL
|
||||
|
||||
private static readonly Dictionary<LedId, (int row, int column)> TKL_US = 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_Enter, (3,13) },
|
||||
|
||||
{ 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,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_Application, (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<LedId, (int row, int column)> TKL_UK = 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_Application, (5,12) },
|
||||
{ LedId.Keyboard_RightCtrl, (5,13) },
|
||||
{ LedId.Keyboard_ArrowLeft, (5,14) },
|
||||
{ LedId.Keyboard_ArrowDown, (5,15) },
|
||||
{ LedId.Keyboard_ArrowRight, (5,16) }
|
||||
};
|
||||
|
||||
#endregion
|
||||
|
||||
#region Fullsize
|
||||
|
||||
private static readonly Dictionary<LedId, (int row, int column)> Fullsize_US = 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_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_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_Application, (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<LedId, (int row, int column)> Fullsize_UK = 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_Application, (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) }
|
||||
};
|
||||
|
||||
#endregion
|
||||
|
||||
/// <summary>
|
||||
/// Contains all the hardware-id mappings for Wooting devices.
|
||||
/// </summary>
|
||||
public static readonly Dictionary<WootingDeviceType, Dictionary<WootingPhysicalKeyboardLayout, Dictionary<LedId, (int row, int column)>>> Mapping =
|
||||
new()
|
||||
{
|
||||
{ WootingDeviceType.KeyboardTKL, new Dictionary<WootingPhysicalKeyboardLayout, Dictionary<LedId, (int row, int column)>>
|
||||
{
|
||||
{ WootingPhysicalKeyboardLayout.US, TKL_US },
|
||||
{ WootingPhysicalKeyboardLayout.UK, TKL_UK }
|
||||
}
|
||||
},
|
||||
internal static class WootingKeyboardLedMappings
|
||||
{
|
||||
#region Properties & Fields
|
||||
|
||||
{ WootingDeviceType.Keyboard, new Dictionary<WootingPhysicalKeyboardLayout, Dictionary<LedId, (int row, int column)>>
|
||||
{
|
||||
{ WootingPhysicalKeyboardLayout.US, Fullsize_US },
|
||||
{ WootingPhysicalKeyboardLayout.UK, Fullsize_UK }
|
||||
}
|
||||
}
|
||||
private static readonly Dictionary<LedId, (int row, int column)> 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_Application, (5,12) },
|
||||
{ LedId.Keyboard_RightCtrl, (5,13) },
|
||||
{ LedId.Keyboard_ArrowLeft, (5,14) },
|
||||
{ LedId.Keyboard_ArrowDown, (5,15) },
|
||||
{ LedId.Keyboard_ArrowRight, (5,16) }
|
||||
};
|
||||
|
||||
#endregion
|
||||
}
|
||||
private static readonly Dictionary<LedId, (int row, int column)> 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_Application, (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) }
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
/// Contains all the hardware-id mappings for Wooting devices.
|
||||
/// </summary>
|
||||
public static readonly Dictionary<WootingDeviceType, Dictionary<LedId, (int row, int column)>> Mapping = new()
|
||||
{
|
||||
[WootingDeviceType.Keyboard] = Fullsize,
|
||||
[WootingDeviceType.KeyboardTKL] = TKL
|
||||
};
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -3,52 +3,52 @@ using RGB.NET.Core;
|
||||
using RGB.NET.Devices.Wooting.Enum;
|
||||
using RGB.NET.Devices.Wooting.Generic;
|
||||
|
||||
namespace RGB.NET.Devices.Wooting.Keyboard;
|
||||
|
||||
/// <inheritdoc cref="WootingRGBDevice{TDeviceInfo}" />
|
||||
/// <summary>
|
||||
/// Represents a Wooting keyboard.
|
||||
/// </summary>
|
||||
public class WootingKeyboardRGBDevice : WootingRGBDevice<WootingKeyboardRGBDeviceInfo>, IKeyboard
|
||||
namespace RGB.NET.Devices.Wooting.Keyboard
|
||||
{
|
||||
#region Properties & Fields
|
||||
|
||||
IKeyboardDeviceInfo IKeyboard.DeviceInfo => DeviceInfo;
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructors
|
||||
|
||||
/// <inheritdoc />
|
||||
/// <inheritdoc cref="WootingRGBDevice{TDeviceInfo}" />
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="T:RGB.NET.Devices.Wooting.Keyboard.WootingKeyboardRGBDevice" /> class.
|
||||
/// Represents a Wooting keyboard.
|
||||
/// </summary>
|
||||
/// <param name="info">The specific information provided by Wooting for the keyboard</param>
|
||||
/// <param name="updateTrigger">The update trigger used to update this device.</param>
|
||||
internal WootingKeyboardRGBDevice(WootingKeyboardRGBDeviceInfo info, IDeviceUpdateTrigger updateTrigger)
|
||||
: base(info, updateTrigger)
|
||||
public class WootingKeyboardRGBDevice : WootingRGBDevice<WootingKeyboardRGBDeviceInfo>, IKeyboard
|
||||
{
|
||||
InitializeLayout();
|
||||
#region Properties & Fields
|
||||
|
||||
IKeyboardDeviceInfo IKeyboard.DeviceInfo => DeviceInfo;
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructors
|
||||
|
||||
/// <inheritdoc />
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="T:RGB.NET.Devices.Wooting.Keyboard.WootingKeyboardRGBDevice" /> class.
|
||||
/// </summary>
|
||||
/// <param name="info">The specific information provided by Wooting for the keyboard</param>
|
||||
/// <param name="updateTrigger">The update trigger used to update this device.</param>
|
||||
internal WootingKeyboardRGBDevice(WootingKeyboardRGBDeviceInfo info, IDeviceUpdateTrigger updateTrigger)
|
||||
: base(info, updateTrigger)
|
||||
{
|
||||
InitializeLayout();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Methods
|
||||
|
||||
private void InitializeLayout()
|
||||
{
|
||||
Dictionary<LedId, (int row, int column)> mapping = WootingKeyboardLedMappings.Mapping[DeviceInfo.WootingDeviceType];
|
||||
|
||||
foreach (KeyValuePair<LedId, (int row, int column)> led in mapping)
|
||||
AddLed(led.Key, new Point(led.Value.column * 19, led.Value.row * 19), new Size(19, 19));
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override object GetLedCustomData(LedId ledId) => WootingKeyboardLedMappings.Mapping[DeviceInfo.WootingDeviceType][ledId];
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override void UpdateLeds(IEnumerable<Led> ledsToUpdate) => UpdateQueue.SetData(GetUpdateData(ledsToUpdate));
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Methods
|
||||
|
||||
private void InitializeLayout()
|
||||
{
|
||||
//TODO DarthAffe 13.02.2021: Check how the mapping can work without knowing the physical layout
|
||||
Dictionary<LedId, (int row, int column)> mapping = WootingKeyboardLedMappings.Mapping[DeviceInfo.WootingDeviceType][WootingPhysicalKeyboardLayout.US];
|
||||
|
||||
foreach (KeyValuePair<LedId, (int row, int column)> led in mapping)
|
||||
AddLed(led.Key, new Point(led.Value.column * 19, led.Value.row * 19), new Size(19, 19));
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override object GetLedCustomData(LedId ledId) => WootingKeyboardLedMappings.Mapping[DeviceInfo.WootingDeviceType][WootingPhysicalKeyboardLayout.US][ledId];
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override void UpdateLeds(IEnumerable<Led> ledsToUpdate) => UpdateQueue.SetData(GetUpdateData(ledsToUpdate));
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1,31 +1,40 @@
|
||||
using RGB.NET.Core;
|
||||
using RGB.NET.Devices.Wooting.Enum;
|
||||
using RGB.NET.Devices.Wooting.Generic;
|
||||
using RGB.NET.Devices.Wooting.Native;
|
||||
|
||||
namespace RGB.NET.Devices.Wooting.Keyboard;
|
||||
|
||||
/// <summary>
|
||||
/// Represents a generic information for a <see cref="T:RGB.NET.Devices.Wooting.Keyboard.WootingKeyboardRGBDevice" />.
|
||||
/// </summary>
|
||||
public class WootingKeyboardRGBDeviceInfo : WootingRGBDeviceInfo, IKeyboardDeviceInfo
|
||||
namespace RGB.NET.Devices.Wooting.Keyboard
|
||||
{
|
||||
#region Properties & Fields
|
||||
|
||||
/// <inheritdoc />
|
||||
public KeyboardLayoutType Layout => KeyboardLayoutType.Unknown;
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructors
|
||||
|
||||
/// <inheritdoc />
|
||||
/// <summary>
|
||||
/// Internal constructor of managed <see cref="T:RGB.NET.Devices.Wooting.WootingKeyboardRGBDeviceInfo" />.
|
||||
/// Represents a generic information for a <see cref="T:RGB.NET.Devices.Wooting.Keyboard.WootingKeyboardRGBDevice" />.
|
||||
/// </summary>
|
||||
/// <param name="deviceInfo">The native <see cref="T:RGB.NET.Devices.Wooting.Native._WootingDeviceInfo" />.</param>
|
||||
internal WootingKeyboardRGBDeviceInfo(_WootingDeviceInfo deviceInfo)
|
||||
: base(RGBDeviceType.Keyboard, deviceInfo)
|
||||
{ }
|
||||
public class WootingKeyboardRGBDeviceInfo : WootingRGBDeviceInfo, IKeyboardDeviceInfo
|
||||
{
|
||||
#region Properties & Fields
|
||||
|
||||
#endregion
|
||||
}
|
||||
/// <inheritdoc />
|
||||
public KeyboardLayoutType Layout { get; }
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructors
|
||||
|
||||
/// <inheritdoc />
|
||||
/// <summary>
|
||||
/// Internal constructor of managed <see cref="T:RGB.NET.Devices.Wooting.WootingKeyboardRGBDeviceInfo" />.
|
||||
/// </summary>
|
||||
/// <param name="deviceInfo">The native <see cref="T:RGB.NET.Devices.Wooting.Native._WootingDeviceInfo" />.</param>
|
||||
internal WootingKeyboardRGBDeviceInfo(_WootingDeviceInfo deviceInfo)
|
||||
: base(RGBDeviceType.Keyboard, deviceInfo)
|
||||
{
|
||||
Layout = WootingLayoutType switch
|
||||
{
|
||||
WootingLayoutType.ANSI => KeyboardLayoutType.ANSI,
|
||||
WootingLayoutType.ISO => KeyboardLayoutType.ISO,
|
||||
_ => KeyboardLayoutType.Unknown
|
||||
};
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -4,22 +4,25 @@
|
||||
using System.Runtime.InteropServices;
|
||||
using RGB.NET.Devices.Wooting.Enum;
|
||||
|
||||
namespace RGB.NET.Devices.Wooting.Native;
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
internal struct _WootingDeviceInfo
|
||||
namespace RGB.NET.Devices.Wooting.Native
|
||||
{
|
||||
internal bool Connected { get; private set; }
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
internal struct _WootingDeviceInfo
|
||||
{
|
||||
internal bool Connected { get; private set; }
|
||||
|
||||
internal string Model { get; private set; }
|
||||
internal string Model { get; private set; }
|
||||
|
||||
internal byte MaxRows { get; private set; }
|
||||
internal byte MaxRows { get; private set; }
|
||||
|
||||
internal byte MaxColumns { get; private set; }
|
||||
internal byte MaxColumns { get; private set; }
|
||||
|
||||
internal byte KeycodeLimit { get; private set; }
|
||||
internal byte KeycodeLimit { get; private set; }
|
||||
|
||||
internal WootingDeviceType DeviceType { get; private set; }
|
||||
internal WootingDeviceType DeviceType { get; private set; }
|
||||
|
||||
internal bool V2Interface { get; set; }
|
||||
}
|
||||
internal bool V2Interface { get; set; }
|
||||
|
||||
internal WootingLayoutType LayoutType { get; private set; }
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user