diff --git a/RGB.NET.Devices.Wooting/Enum/WootingDeviceType.cs b/RGB.NET.Devices.Wooting/Enum/WootingDeviceType.cs
index 6b25a54..53c2015 100644
--- a/RGB.NET.Devices.Wooting/Enum/WootingDeviceType.cs
+++ b/RGB.NET.Devices.Wooting/Enum/WootingDeviceType.cs
@@ -7,10 +7,14 @@ namespace RGB.NET.Devices.Wooting.Enum
///
public enum WootingDeviceType
{
+ ///
/// 10 Keyless Keyboard. E.g. Wooting One
+ ///
KeyboardTKL = 1,
+ ///
/// Full Size keyboard. E.g. Wooting Two
+ ///
Keyboard = 2
}
}
diff --git a/RGB.NET.Devices.Wooting/Enum/WootingDevicesIndexes.cs b/RGB.NET.Devices.Wooting/Enum/WootingDevicesIndexes.cs
deleted file mode 100644
index c25afa4..0000000
--- a/RGB.NET.Devices.Wooting/Enum/WootingDevicesIndexes.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-// ReSharper disable InconsistentNaming
-// ReSharper disable UnusedMember.Global
-
-using System.ComponentModel;
-
-#pragma warning disable 1591 // Missing XML comment for publicly visible type or member
-
-namespace RGB.NET.Devices.Wooting.Enum
-{
- ///
- /// Contains a list of available device-indexes.
- ///
- public enum WootingDevicesIndexes
- {
- [Description("Wooting One")]
- WootingOne = 0,
-
- [Description("Wooting Two")]
- WootingTwo = 1
- }
-}
diff --git a/RGB.NET.Devices.Wooting/Generic/WootingRGBDeviceInfo.cs b/RGB.NET.Devices.Wooting/Generic/WootingRGBDeviceInfo.cs
index 850f8a4..f217c00 100644
--- a/RGB.NET.Devices.Wooting/Generic/WootingRGBDeviceInfo.cs
+++ b/RGB.NET.Devices.Wooting/Generic/WootingRGBDeviceInfo.cs
@@ -1,6 +1,7 @@
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
{
@@ -28,9 +29,9 @@ namespace RGB.NET.Devices.Wooting.Generic
public object? LayoutMetadata { get; set; }
///
- /// Gets the of the .
+ /// Gets the of the .
///
- public WootingDevicesIndexes DeviceIndex { get; }
+ public WootingDeviceType WootingDeviceType { get; }
#endregion
@@ -40,13 +41,13 @@ namespace RGB.NET.Devices.Wooting.Generic
/// Internal constructor of managed .
///
/// The type of the .
- /// The of the .
- internal WootingRGBDeviceInfo(RGBDeviceType deviceType, WootingDevicesIndexes deviceIndex)
+ /// The of the .
+ internal WootingRGBDeviceInfo(RGBDeviceType deviceType, _WootingDeviceInfo deviceInfo)
{
this.DeviceType = deviceType;
- this.DeviceIndex = deviceIndex;
+ this.WootingDeviceType = deviceInfo.DeviceType;
- Model = deviceIndex.GetDescription();
+ Model = deviceInfo.Model;
DeviceName = DeviceHelper.CreateDeviceName(Manufacturer, Model);
}
diff --git a/RGB.NET.Devices.Wooting/Keyboard/WootingKeyboardLedMappings.cs b/RGB.NET.Devices.Wooting/Keyboard/WootingKeyboardLedMappings.cs
index 0ce7e41..618f31c 100644
--- a/RGB.NET.Devices.Wooting/Keyboard/WootingKeyboardLedMappings.cs
+++ b/RGB.NET.Devices.Wooting/Keyboard/WootingKeyboardLedMappings.cs
@@ -13,9 +13,9 @@ namespace RGB.NET.Devices.Wooting.Keyboard
{
#region Properties & Fields
- #region Wooting One
+ #region TKL
- private static readonly Dictionary WootingOne_US = new()
+ private static readonly Dictionary TKL_US = new()
{
{ LedId.Keyboard_Escape, (0,0) },
{ LedId.Keyboard_F1, (0,2) },
@@ -111,7 +111,7 @@ namespace RGB.NET.Devices.Wooting.Keyboard
{ LedId.Keyboard_ArrowRight, (5,16) }
};
- private static readonly Dictionary WootingOne_UK = new()
+ private static readonly Dictionary TKL_UK = new()
{
{ LedId.Keyboard_Escape, (0,0) },
{ LedId.Keyboard_F1, (0,2) },
@@ -178,7 +178,7 @@ namespace RGB.NET.Devices.Wooting.Keyboard
{ LedId.Keyboard_L, (3,9) },
{ LedId.Keyboard_SemicolonAndColon, (3,10) },
{ LedId.Keyboard_ApostropheAndDoubleQuote, (3,11) },
- { LedId.Keyboard_NonUsTilde, (3,11) },
+ { LedId.Keyboard_NonUsTilde, (3,12) },
{ LedId.Keyboard_Enter, (3,13) },
{ LedId.Keyboard_LeftShift, (4,0) },
@@ -211,9 +211,9 @@ namespace RGB.NET.Devices.Wooting.Keyboard
#endregion
- #region Wooting Two
+ #region Fullsize
- private static readonly Dictionary WootingTwo_US = new()
+ private static readonly Dictionary Fullsize_US = new()
{
{ LedId.Keyboard_Escape, (0,0) },
{ LedId.Keyboard_F1, (0,2) },
@@ -330,7 +330,7 @@ namespace RGB.NET.Devices.Wooting.Keyboard
{ LedId.Keyboard_NumPeriodAndDelete, (5,19) }
};
- private static readonly Dictionary WootingTwo_UK = new()
+ private static readonly Dictionary Fullsize_UK = new()
{
{ LedId.Keyboard_Escape, (0,0) },
{ LedId.Keyboard_F1, (0,2) },
@@ -454,20 +454,20 @@ namespace RGB.NET.Devices.Wooting.Keyboard
///
/// Contains all the hardware-id mappings for Wooting devices.
///
- public static readonly Dictionary>> Mapping =
+ public static readonly Dictionary>> Mapping =
new()
{
- { WootingDevicesIndexes.WootingOne, new Dictionary>
+ { WootingDeviceType.KeyboardTKL, new Dictionary>
{
- { WootingPhysicalKeyboardLayout.US, WootingOne_US },
- { WootingPhysicalKeyboardLayout.UK, WootingOne_UK }
+ { WootingPhysicalKeyboardLayout.US, TKL_US },
+ { WootingPhysicalKeyboardLayout.UK, TKL_UK }
}
},
- { WootingDevicesIndexes.WootingTwo, new Dictionary>
+ { WootingDeviceType.Keyboard, new Dictionary>
{
- { WootingPhysicalKeyboardLayout.US, WootingTwo_US },
- { WootingPhysicalKeyboardLayout.UK, WootingTwo_UK }
+ { WootingPhysicalKeyboardLayout.US, Fullsize_US },
+ { WootingPhysicalKeyboardLayout.UK, Fullsize_UK }
}
}
};
diff --git a/RGB.NET.Devices.Wooting/Keyboard/WootingKeyboardRGBDevice.cs b/RGB.NET.Devices.Wooting/Keyboard/WootingKeyboardRGBDevice.cs
index 4e643bd..cace6cd 100644
--- a/RGB.NET.Devices.Wooting/Keyboard/WootingKeyboardRGBDevice.cs
+++ b/RGB.NET.Devices.Wooting/Keyboard/WootingKeyboardRGBDevice.cs
@@ -38,14 +38,14 @@ namespace RGB.NET.Devices.Wooting.Keyboard
private void InitializeLayout()
{
//TODO DarthAffe 13.02.2021: Check how the mapping can work without knowing the physical layout
- Dictionary mapping = WootingKeyboardLedMappings.Mapping[DeviceInfo.DeviceIndex][WootingPhysicalKeyboardLayout.US];
+ Dictionary mapping = WootingKeyboardLedMappings.Mapping[DeviceInfo.WootingDeviceType][WootingPhysicalKeyboardLayout.US];
foreach (KeyValuePair led in mapping)
AddLed(led.Key, new Point(led.Value.column * 19, led.Value.row * 19), new Size(19, 19));
}
///
- protected override object GetLedCustomData(LedId ledId) => WootingKeyboardLedMappings.Mapping[DeviceInfo.DeviceIndex][WootingPhysicalKeyboardLayout.US][ledId];
+ protected override object GetLedCustomData(LedId ledId) => WootingKeyboardLedMappings.Mapping[DeviceInfo.WootingDeviceType][WootingPhysicalKeyboardLayout.US][ledId];
///
protected override void UpdateLeds(IEnumerable ledsToUpdate) => UpdateQueue.SetData(GetUpdateData(ledsToUpdate));
diff --git a/RGB.NET.Devices.Wooting/Keyboard/WootingKeyboardRGBDeviceInfo.cs b/RGB.NET.Devices.Wooting/Keyboard/WootingKeyboardRGBDeviceInfo.cs
index f2dcfdf..abfe5dd 100644
--- a/RGB.NET.Devices.Wooting/Keyboard/WootingKeyboardRGBDeviceInfo.cs
+++ b/RGB.NET.Devices.Wooting/Keyboard/WootingKeyboardRGBDeviceInfo.cs
@@ -1,6 +1,7 @@
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
{
@@ -22,9 +23,9 @@ namespace RGB.NET.Devices.Wooting.Keyboard
///
/// Internal constructor of managed .
///
- /// The index of the .
- internal WootingKeyboardRGBDeviceInfo(WootingDevicesIndexes deviceIndex)
- : base(RGBDeviceType.Keyboard, deviceIndex)
+ /// The native .
+ internal WootingKeyboardRGBDeviceInfo(_WootingDeviceInfo deviceInfo)
+ : base(RGBDeviceType.Keyboard, deviceInfo)
{ }
#endregion
diff --git a/RGB.NET.Devices.Wooting/Native/_WootingDeviceInfo.cs b/RGB.NET.Devices.Wooting/Native/_WootingDeviceInfo.cs
index b1a7d51..fab57c6 100644
--- a/RGB.NET.Devices.Wooting/Native/_WootingDeviceInfo.cs
+++ b/RGB.NET.Devices.Wooting/Native/_WootingDeviceInfo.cs
@@ -20,5 +20,7 @@ namespace RGB.NET.Devices.Wooting.Native
internal byte KeycodeLimit { get; private set; }
internal WootingDeviceType DeviceType { get; private set; }
+
+ internal bool V2Interface { get; set; }
}
}
diff --git a/RGB.NET.Devices.Wooting/WootingDeviceProvider.cs b/RGB.NET.Devices.Wooting/WootingDeviceProvider.cs
index 6c06d35..3f964e0 100644
--- a/RGB.NET.Devices.Wooting/WootingDeviceProvider.cs
+++ b/RGB.NET.Devices.Wooting/WootingDeviceProvider.cs
@@ -70,17 +70,8 @@ namespace RGB.NET.Devices.Wooting
if (_WootingSDK.KeyboardConnected())
{
_WootingDeviceInfo nativeDeviceInfo = (_WootingDeviceInfo)Marshal.PtrToStructure(_WootingSDK.GetDeviceInfo(), typeof(_WootingDeviceInfo))!;
- IWootingRGBDevice? device = nativeDeviceInfo.Model switch
- {
- "Wooting two" => new WootingKeyboardRGBDevice(new WootingKeyboardRGBDeviceInfo(WootingDevicesIndexes.WootingTwo), GetUpdateTrigger()),
- "Wooting one" => new WootingKeyboardRGBDevice(new WootingKeyboardRGBDeviceInfo(WootingDevicesIndexes.WootingOne), GetUpdateTrigger()),
- _ => null
- };
- if (device == null)
- Throw(new RGBDeviceException("No supported Wooting keyboard connected"));
- else
- yield return device;
+ yield return new WootingKeyboardRGBDevice(new WootingKeyboardRGBDeviceInfo(nativeDeviceInfo), GetUpdateTrigger());
}
}
}