diff --git a/RGB.NET.Devices.Corsair/CorsairDeviceProvider.cs b/RGB.NET.Devices.Corsair/CorsairDeviceProvider.cs index 57c0440..7acd75e 100644 --- a/RGB.NET.Devices.Corsair/CorsairDeviceProvider.cs +++ b/RGB.NET.Devices.Corsair/CorsairDeviceProvider.cs @@ -139,6 +139,10 @@ public class CorsairDeviceProvider : AbstractRGBDeviceProvider yield return new CorsairGraphicsCardRGBDevice(new CorsairGraphicsCardRGBDeviceInfo(i, nativeDeviceInfo), updateQueue); break; + case CorsairDeviceType.Touchbar: + yield return new CorsairTouchbarRGBDevice(new CorsairTouchbarRGBDeviceInfo(i, nativeDeviceInfo), updateQueue); + break; + case CorsairDeviceType.Cooler: case CorsairDeviceType.CommanderPro: case CorsairDeviceType.LightningNodePro: diff --git a/RGB.NET.Devices.Corsair/Enum/CorsairDeviceType.cs b/RGB.NET.Devices.Corsair/Enum/CorsairDeviceType.cs index 7e44eca..a409c5d 100644 --- a/RGB.NET.Devices.Corsair/Enum/CorsairDeviceType.cs +++ b/RGB.NET.Devices.Corsair/Enum/CorsairDeviceType.cs @@ -22,5 +22,6 @@ public enum CorsairDeviceType MemoryModule = 8, Cooler = 9, Mainboard = 10, - GraphicsCard = 11 + GraphicsCard = 11, + Touchbar = 12 }; \ No newline at end of file diff --git a/RGB.NET.Devices.Corsair/RGB.NET.Devices.Corsair.csproj.DotSettings b/RGB.NET.Devices.Corsair/RGB.NET.Devices.Corsair.csproj.DotSettings index f37e8f8..eeca971 100644 --- a/RGB.NET.Devices.Corsair/RGB.NET.Devices.Corsair.csproj.DotSettings +++ b/RGB.NET.Devices.Corsair/RGB.NET.Devices.Corsair.csproj.DotSettings @@ -18,4 +18,5 @@ True True True + True \ No newline at end of file diff --git a/RGB.NET.Devices.Corsair/Touchbar/CorsairTouchbarRGBDevice.cs b/RGB.NET.Devices.Corsair/Touchbar/CorsairTouchbarRGBDevice.cs new file mode 100644 index 0000000..092e84c --- /dev/null +++ b/RGB.NET.Devices.Corsair/Touchbar/CorsairTouchbarRGBDevice.cs @@ -0,0 +1,27 @@ +// ReSharper disable MemberCanBePrivate.Global +// ReSharper disable UnusedMember.Global + +using RGB.NET.Core; + +namespace RGB.NET.Devices.Corsair; + +/// +/// +/// Represents a corsair touchbar. +/// +public class CorsairTouchbarRGBDevice : CorsairRGBDevice, IDRAM +{ + #region Constructors + + /// + /// + /// Initializes a new instance of the class. + /// + /// The specific information provided by CUE for the touchbar. + /// The queue used to update this device. + internal CorsairTouchbarRGBDevice(CorsairTouchbarRGBDeviceInfo info, CorsairDeviceUpdateQueue updateQueue) + : base(info, LedMappings.Keyboard, updateQueue) //TODO DarthAffe 17.07.2022: Find someone with such a device and check which LedIds are actually used + { } + + #endregion +} \ No newline at end of file diff --git a/RGB.NET.Devices.Corsair/Touchbar/CorsairTouchbarRGBDeviceInfo.cs b/RGB.NET.Devices.Corsair/Touchbar/CorsairTouchbarRGBDeviceInfo.cs new file mode 100644 index 0000000..9ee690c --- /dev/null +++ b/RGB.NET.Devices.Corsair/Touchbar/CorsairTouchbarRGBDeviceInfo.cs @@ -0,0 +1,28 @@ +// ReSharper disable MemberCanBePrivate.Global +// ReSharper disable UnusedMember.Global + +using RGB.NET.Core; +using RGB.NET.Devices.Corsair.Native; + +namespace RGB.NET.Devices.Corsair; + +/// +/// +/// Represents a generic information for a . +/// +public class CorsairTouchbarRGBDeviceInfo : CorsairRGBDeviceInfo +{ + #region Constructors + + /// + /// + /// Internal constructor of managed . + /// + /// The index of the . + /// The native -struct + internal CorsairTouchbarRGBDeviceInfo(int deviceIndex, _CorsairDeviceInfo nativeInfo) + : base(deviceIndex, RGBDeviceType.Keypad, nativeInfo) + { } + + #endregion +} \ No newline at end of file diff --git a/RGB.NET.Devices.Novation/Enum/NovationDevices.cs b/RGB.NET.Devices.Novation/Enum/NovationDevices.cs index 79fb34f..11ae6e0 100644 --- a/RGB.NET.Devices.Novation/Enum/NovationDevices.cs +++ b/RGB.NET.Devices.Novation/Enum/NovationDevices.cs @@ -24,5 +24,15 @@ public enum NovationDevices [DeviceId("Launchpad MK2")] [ColorCapability(NovationColorCapabilities.RGB)] [LedIdMapping(LedIdMappings.Current)] - LaunchpadMK2 + LaunchpadMK2, + + [DeviceId("Launchpad Pro")] + [ColorCapability(NovationColorCapabilities.RGB)] + [LedIdMapping(LedIdMappings.Pro)] + LaunchpadPro, + + [DeviceId("Launchpad Open")] + [ColorCapability(NovationColorCapabilities.RGB)] + [LedIdMapping(LedIdMappings.Pro)] + LaunchpadCustomFirmware } \ No newline at end of file diff --git a/RGB.NET.Devices.Novation/Launchpad/LaunchpadIdMapping.cs b/RGB.NET.Devices.Novation/Launchpad/LaunchpadIdMapping.cs index 3b710e1..81a6793 100644 --- a/RGB.NET.Devices.Novation/Launchpad/LaunchpadIdMapping.cs +++ b/RGB.NET.Devices.Novation/Launchpad/LaunchpadIdMapping.cs @@ -6,178 +6,284 @@ namespace RGB.NET.Devices.Novation; internal static class LaunchpadIdMapping { internal static readonly Dictionary LEGACY = new() - { - { LedId.Invalid, (0x00, 0xFF, 8, 0) }, + { + { LedId.Invalid, (0x00, 0xFF, 8, 0) }, - { LedId.LedMatrix1, (0x90, 0x00, 0, 1) }, - { LedId.LedMatrix2, (0x90, 0x01, 1, 1) }, - { LedId.LedMatrix3, (0x90, 0x02, 2, 1) }, - { LedId.LedMatrix4, (0x90, 0x03, 3, 1) }, - { LedId.LedMatrix5, (0x90, 0x04, 4, 1) }, - { LedId.LedMatrix6, (0x90, 0x05, 5, 1) }, - { LedId.LedMatrix7, (0x90, 0x06, 6, 1) }, - { LedId.LedMatrix8, (0x90, 0x07, 7, 1) }, - { LedId.LedMatrix9, (0x90, 0x10, 0, 2) }, - { LedId.LedMatrix10, (0x90, 0x11, 1, 2) }, - { LedId.LedMatrix11, (0x90, 0x12, 2, 2) }, - { LedId.LedMatrix12, (0x90, 0x13, 3, 2) }, - { LedId.LedMatrix13, (0x90, 0x14, 4, 2) }, - { LedId.LedMatrix14, (0x90, 0x15, 5, 2) }, - { LedId.LedMatrix15, (0x90, 0x16, 6, 2) }, - { LedId.LedMatrix16, (0x90, 0x17, 7, 2) }, - { LedId.LedMatrix17, (0x90, 0x20, 0, 3) }, - { LedId.LedMatrix18, (0x90, 0x21, 1, 3) }, - { LedId.LedMatrix19, (0x90, 0x22, 2, 3) }, - { LedId.LedMatrix20, (0x90, 0x23, 3, 3) }, - { LedId.LedMatrix21, (0x90, 0x24, 4, 3) }, - { LedId.LedMatrix22, (0x90, 0x25, 5, 3) }, - { LedId.LedMatrix23, (0x90, 0x26, 6, 3) }, - { LedId.LedMatrix24, (0x90, 0x27, 7, 3) }, - { LedId.LedMatrix25, (0x90, 0x30, 0, 4) }, - { LedId.LedMatrix26, (0x90, 0x31, 1, 4) }, - { LedId.LedMatrix27, (0x90, 0x32, 2, 4) }, - { LedId.LedMatrix28, (0x90, 0x33, 3, 4) }, - { LedId.LedMatrix29, (0x90, 0x34, 4, 4) }, - { LedId.LedMatrix30, (0x90, 0x35, 5, 4) }, - { LedId.LedMatrix31, (0x90, 0x36, 6, 4) }, - { LedId.LedMatrix32, (0x90, 0x37, 7, 4) }, - { LedId.LedMatrix33, (0x90, 0x40, 0, 5) }, - { LedId.LedMatrix34, (0x90, 0x41, 1, 5) }, - { LedId.LedMatrix35, (0x90, 0x42, 2, 5) }, - { LedId.LedMatrix36, (0x90, 0x43, 3, 5) }, - { LedId.LedMatrix37, (0x90, 0x44, 4, 5) }, - { LedId.LedMatrix38, (0x90, 0x45, 5, 5) }, - { LedId.LedMatrix39, (0x90, 0x46, 6, 5) }, - { LedId.LedMatrix40, (0x90, 0x47, 7, 5) }, - { LedId.LedMatrix41, (0x90, 0x50, 0, 6) }, - { LedId.LedMatrix42, (0x90, 0x51, 1, 6) }, - { LedId.LedMatrix43, (0x90, 0x52, 2, 6) }, - { LedId.LedMatrix44, (0x90, 0x53, 3, 6) }, - { LedId.LedMatrix45, (0x90, 0x54, 4, 6) }, - { LedId.LedMatrix46, (0x90, 0x55, 5, 6) }, - { LedId.LedMatrix47, (0x90, 0x56, 6, 6) }, - { LedId.LedMatrix48, (0x90, 0x57, 7, 6) }, - { LedId.LedMatrix49, (0x90, 0x60, 0, 7) }, - { LedId.LedMatrix50, (0x90, 0x61, 1, 7) }, - { LedId.LedMatrix51, (0x90, 0x62, 2, 7) }, - { LedId.LedMatrix52, (0x90, 0x63, 3, 7) }, - { LedId.LedMatrix53, (0x90, 0x64, 4, 7) }, - { LedId.LedMatrix54, (0x90, 0x65, 5, 7) }, - { LedId.LedMatrix55, (0x90, 0x66, 6, 7) }, - { LedId.LedMatrix56, (0x90, 0x67, 7, 7) }, - { LedId.LedMatrix57, (0x90, 0x70, 0, 8) }, - { LedId.LedMatrix58, (0x90, 0x71, 1, 8) }, - { LedId.LedMatrix59, (0x90, 0x72, 2, 8) }, - { LedId.LedMatrix60, (0x90, 0x73, 3, 8) }, - { LedId.LedMatrix61, (0x90, 0x74, 4, 8) }, - { LedId.LedMatrix62, (0x90, 0x75, 5, 8) }, - { LedId.LedMatrix63, (0x90, 0x76, 6, 8) }, - { LedId.LedMatrix64, (0x90, 0x77, 7, 8) }, + { LedId.LedMatrix1, (0x90, 0x00, 0, 1) }, + { LedId.LedMatrix2, (0x90, 0x01, 1, 1) }, + { LedId.LedMatrix3, (0x90, 0x02, 2, 1) }, + { LedId.LedMatrix4, (0x90, 0x03, 3, 1) }, + { LedId.LedMatrix5, (0x90, 0x04, 4, 1) }, + { LedId.LedMatrix6, (0x90, 0x05, 5, 1) }, + { LedId.LedMatrix7, (0x90, 0x06, 6, 1) }, + { LedId.LedMatrix8, (0x90, 0x07, 7, 1) }, + { LedId.LedMatrix9, (0x90, 0x10, 0, 2) }, + { LedId.LedMatrix10, (0x90, 0x11, 1, 2) }, + { LedId.LedMatrix11, (0x90, 0x12, 2, 2) }, + { LedId.LedMatrix12, (0x90, 0x13, 3, 2) }, + { LedId.LedMatrix13, (0x90, 0x14, 4, 2) }, + { LedId.LedMatrix14, (0x90, 0x15, 5, 2) }, + { LedId.LedMatrix15, (0x90, 0x16, 6, 2) }, + { LedId.LedMatrix16, (0x90, 0x17, 7, 2) }, + { LedId.LedMatrix17, (0x90, 0x20, 0, 3) }, + { LedId.LedMatrix18, (0x90, 0x21, 1, 3) }, + { LedId.LedMatrix19, (0x90, 0x22, 2, 3) }, + { LedId.LedMatrix20, (0x90, 0x23, 3, 3) }, + { LedId.LedMatrix21, (0x90, 0x24, 4, 3) }, + { LedId.LedMatrix22, (0x90, 0x25, 5, 3) }, + { LedId.LedMatrix23, (0x90, 0x26, 6, 3) }, + { LedId.LedMatrix24, (0x90, 0x27, 7, 3) }, + { LedId.LedMatrix25, (0x90, 0x30, 0, 4) }, + { LedId.LedMatrix26, (0x90, 0x31, 1, 4) }, + { LedId.LedMatrix27, (0x90, 0x32, 2, 4) }, + { LedId.LedMatrix28, (0x90, 0x33, 3, 4) }, + { LedId.LedMatrix29, (0x90, 0x34, 4, 4) }, + { LedId.LedMatrix30, (0x90, 0x35, 5, 4) }, + { LedId.LedMatrix31, (0x90, 0x36, 6, 4) }, + { LedId.LedMatrix32, (0x90, 0x37, 7, 4) }, + { LedId.LedMatrix33, (0x90, 0x40, 0, 5) }, + { LedId.LedMatrix34, (0x90, 0x41, 1, 5) }, + { LedId.LedMatrix35, (0x90, 0x42, 2, 5) }, + { LedId.LedMatrix36, (0x90, 0x43, 3, 5) }, + { LedId.LedMatrix37, (0x90, 0x44, 4, 5) }, + { LedId.LedMatrix38, (0x90, 0x45, 5, 5) }, + { LedId.LedMatrix39, (0x90, 0x46, 6, 5) }, + { LedId.LedMatrix40, (0x90, 0x47, 7, 5) }, + { LedId.LedMatrix41, (0x90, 0x50, 0, 6) }, + { LedId.LedMatrix42, (0x90, 0x51, 1, 6) }, + { LedId.LedMatrix43, (0x90, 0x52, 2, 6) }, + { LedId.LedMatrix44, (0x90, 0x53, 3, 6) }, + { LedId.LedMatrix45, (0x90, 0x54, 4, 6) }, + { LedId.LedMatrix46, (0x90, 0x55, 5, 6) }, + { LedId.LedMatrix47, (0x90, 0x56, 6, 6) }, + { LedId.LedMatrix48, (0x90, 0x57, 7, 6) }, + { LedId.LedMatrix49, (0x90, 0x60, 0, 7) }, + { LedId.LedMatrix50, (0x90, 0x61, 1, 7) }, + { LedId.LedMatrix51, (0x90, 0x62, 2, 7) }, + { LedId.LedMatrix52, (0x90, 0x63, 3, 7) }, + { LedId.LedMatrix53, (0x90, 0x64, 4, 7) }, + { LedId.LedMatrix54, (0x90, 0x65, 5, 7) }, + { LedId.LedMatrix55, (0x90, 0x66, 6, 7) }, + { LedId.LedMatrix56, (0x90, 0x67, 7, 7) }, + { LedId.LedMatrix57, (0x90, 0x70, 0, 8) }, + { LedId.LedMatrix58, (0x90, 0x71, 1, 8) }, + { LedId.LedMatrix59, (0x90, 0x72, 2, 8) }, + { LedId.LedMatrix60, (0x90, 0x73, 3, 8) }, + { LedId.LedMatrix61, (0x90, 0x74, 4, 8) }, + { LedId.LedMatrix62, (0x90, 0x75, 5, 8) }, + { LedId.LedMatrix63, (0x90, 0x76, 6, 8) }, + { LedId.LedMatrix64, (0x90, 0x77, 7, 8) }, - { LedId.Custom1, (0xB0, 0x68, 0, 0) }, // Up - { LedId.Custom2, (0xB0, 0x69, 1, 0) }, // Down - { LedId.Custom3, (0xB0, 0x6A, 2, 0) }, // Left - { LedId.Custom4, (0xB0, 0x6B, 3, 0) }, // Right - { LedId.Custom5, (0xB0, 0x6C, 4, 0) }, // Session - { LedId.Custom6, (0xB0, 0x6D, 5, 0) }, // User 1 - { LedId.Custom7, (0xB0, 0x6E, 6, 0) }, // User 2 - { LedId.Custom8, (0xB0, 0x6F, 7, 0) }, // Mix + { LedId.Custom1, (0xB0, 0x68, 0, 0) }, // Up + { LedId.Custom2, (0xB0, 0x69, 1, 0) }, // Down + { LedId.Custom3, (0xB0, 0x6A, 2, 0) }, // Left + { LedId.Custom4, (0xB0, 0x6B, 3, 0) }, // Right + { LedId.Custom5, (0xB0, 0x6C, 4, 0) }, // Session + { LedId.Custom6, (0xB0, 0x6D, 5, 0) }, // User 1 + { LedId.Custom7, (0xB0, 0x6E, 6, 0) }, // User 2 + { LedId.Custom8, (0xB0, 0x6F, 7, 0) }, // Mix - { LedId.Custom9, (0x90, 0x08, 8, 1) }, //Scene1 - { LedId.Custom10, (0x90, 0x18, 8, 2) }, //Scene2 - { LedId.Custom11, (0x90, 0x28, 8, 3) }, //Scene3 - { LedId.Custom12, (0x90, 0x38, 8, 4) }, //Scene4 - { LedId.Custom13, (0x90, 0x48, 8, 5) }, //Scene5 - { LedId.Custom14, (0x90, 0x58, 8, 6) }, //Scene6 - { LedId.Custom15, (0x90, 0x68, 8, 7) }, //Scene7 - { LedId.Custom16, (0x90, 0x78, 8, 8) }, //Scene8 - }; + { LedId.Custom9, (0x90, 0x08, 8, 1) }, //Scene1 + { LedId.Custom10, (0x90, 0x18, 8, 2) }, //Scene2 + { LedId.Custom11, (0x90, 0x28, 8, 3) }, //Scene3 + { LedId.Custom12, (0x90, 0x38, 8, 4) }, //Scene4 + { LedId.Custom13, (0x90, 0x48, 8, 5) }, //Scene5 + { LedId.Custom14, (0x90, 0x58, 8, 6) }, //Scene6 + { LedId.Custom15, (0x90, 0x68, 8, 7) }, //Scene7 + { LedId.Custom16, (0x90, 0x78, 8, 8) }, //Scene8 + }; internal static readonly Dictionary CURRENT = new() - { - { LedId.Invalid, (0x00, 0xFF, 8, 0) }, + { + { LedId.Invalid, (0x00, 0xFF, 8, 0) }, - { LedId.LedMatrix1, (0x90, 81, 0, 1) }, - { LedId.LedMatrix2, (0x90, 82, 1, 1) }, - { LedId.LedMatrix3, (0x90, 83, 2, 1) }, - { LedId.LedMatrix4, (0x90, 84, 3, 1) }, - { LedId.LedMatrix5, (0x90, 85, 4, 1) }, - { LedId.LedMatrix6, (0x90, 86, 5, 1) }, - { LedId.LedMatrix7, (0x90, 87, 6, 1) }, - { LedId.LedMatrix8, (0x90, 88, 7, 1) }, - { LedId.LedMatrix9, (0x90, 71, 0, 2) }, - { LedId.LedMatrix10, (0x90, 72, 1, 2) }, - { LedId.LedMatrix11, (0x90, 73, 2, 2) }, - { LedId.LedMatrix12, (0x90, 74, 3, 2) }, - { LedId.LedMatrix13, (0x90, 75, 4, 2) }, - { LedId.LedMatrix14, (0x90, 76, 5, 2) }, - { LedId.LedMatrix15, (0x90, 77, 6, 2) }, - { LedId.LedMatrix16, (0x90, 78, 7, 2) }, - { LedId.LedMatrix17, (0x90, 61, 0, 3) }, - { LedId.LedMatrix18, (0x90, 62, 1, 3) }, - { LedId.LedMatrix19, (0x90, 63, 2, 3) }, - { LedId.LedMatrix20, (0x90, 64, 3, 3) }, - { LedId.LedMatrix21, (0x90, 65, 4, 3) }, - { LedId.LedMatrix22, (0x90, 66, 5, 3) }, - { LedId.LedMatrix23, (0x90, 67, 6, 3) }, - { LedId.LedMatrix24, (0x90, 68, 7, 3) }, - { LedId.LedMatrix25, (0x90, 51, 0, 4) }, - { LedId.LedMatrix26, (0x90, 52, 1, 4) }, - { LedId.LedMatrix27, (0x90, 53, 2, 4) }, - { LedId.LedMatrix28, (0x90, 54, 3, 4) }, - { LedId.LedMatrix29, (0x90, 55, 4, 4) }, - { LedId.LedMatrix30, (0x90, 56, 5, 4) }, - { LedId.LedMatrix31, (0x90, 57, 6, 4) }, - { LedId.LedMatrix32, (0x90, 58, 7, 4) }, - { LedId.LedMatrix33, (0x90, 41, 0, 5) }, - { LedId.LedMatrix34, (0x90, 42, 1, 5) }, - { LedId.LedMatrix35, (0x90, 43, 2, 5) }, - { LedId.LedMatrix36, (0x90, 44, 3, 5) }, - { LedId.LedMatrix37, (0x90, 45, 4, 5) }, - { LedId.LedMatrix38, (0x90, 46, 5, 5) }, - { LedId.LedMatrix39, (0x90, 47, 6, 5) }, - { LedId.LedMatrix40, (0x90, 48, 7, 5) }, - { LedId.LedMatrix41, (0x90, 31, 0, 6) }, - { LedId.LedMatrix42, (0x90, 32, 1, 6) }, - { LedId.LedMatrix43, (0x90, 33, 2, 6) }, - { LedId.LedMatrix44, (0x90, 34, 3, 6) }, - { LedId.LedMatrix45, (0x90, 35, 4, 6) }, - { LedId.LedMatrix46, (0x90, 36, 5, 6) }, - { LedId.LedMatrix47, (0x90, 37, 6, 6) }, - { LedId.LedMatrix48, (0x90, 38, 7, 6) }, - { LedId.LedMatrix49, (0x90, 21, 0, 7) }, - { LedId.LedMatrix50, (0x90, 22, 1, 7) }, - { LedId.LedMatrix51, (0x90, 23, 2, 7) }, - { LedId.LedMatrix52, (0x90, 24, 3, 7) }, - { LedId.LedMatrix53, (0x90, 25, 4, 7) }, - { LedId.LedMatrix54, (0x90, 26, 5, 7) }, - { LedId.LedMatrix55, (0x90, 27, 6, 7) }, - { LedId.LedMatrix56, (0x90, 28, 7, 7) }, - { LedId.LedMatrix57, (0x90, 11, 0, 8) }, - { LedId.LedMatrix58, (0x90, 12, 1, 8) }, - { LedId.LedMatrix59, (0x90, 13, 2, 8) }, - { LedId.LedMatrix60, (0x90, 14, 3, 8) }, - { LedId.LedMatrix61, (0x90, 15, 4, 8) }, - { LedId.LedMatrix62, (0x90, 16, 5, 8) }, - { LedId.LedMatrix63, (0x90, 17, 6, 8) }, - { LedId.LedMatrix64, (0x90, 18, 7, 8) }, + { LedId.LedMatrix1, (0x90, 81, 0, 1) }, + { LedId.LedMatrix2, (0x90, 82, 1, 1) }, + { LedId.LedMatrix3, (0x90, 83, 2, 1) }, + { LedId.LedMatrix4, (0x90, 84, 3, 1) }, + { LedId.LedMatrix5, (0x90, 85, 4, 1) }, + { LedId.LedMatrix6, (0x90, 86, 5, 1) }, + { LedId.LedMatrix7, (0x90, 87, 6, 1) }, + { LedId.LedMatrix8, (0x90, 88, 7, 1) }, + { LedId.LedMatrix9, (0x90, 71, 0, 2) }, + { LedId.LedMatrix10, (0x90, 72, 1, 2) }, + { LedId.LedMatrix11, (0x90, 73, 2, 2) }, + { LedId.LedMatrix12, (0x90, 74, 3, 2) }, + { LedId.LedMatrix13, (0x90, 75, 4, 2) }, + { LedId.LedMatrix14, (0x90, 76, 5, 2) }, + { LedId.LedMatrix15, (0x90, 77, 6, 2) }, + { LedId.LedMatrix16, (0x90, 78, 7, 2) }, + { LedId.LedMatrix17, (0x90, 61, 0, 3) }, + { LedId.LedMatrix18, (0x90, 62, 1, 3) }, + { LedId.LedMatrix19, (0x90, 63, 2, 3) }, + { LedId.LedMatrix20, (0x90, 64, 3, 3) }, + { LedId.LedMatrix21, (0x90, 65, 4, 3) }, + { LedId.LedMatrix22, (0x90, 66, 5, 3) }, + { LedId.LedMatrix23, (0x90, 67, 6, 3) }, + { LedId.LedMatrix24, (0x90, 68, 7, 3) }, + { LedId.LedMatrix25, (0x90, 51, 0, 4) }, + { LedId.LedMatrix26, (0x90, 52, 1, 4) }, + { LedId.LedMatrix27, (0x90, 53, 2, 4) }, + { LedId.LedMatrix28, (0x90, 54, 3, 4) }, + { LedId.LedMatrix29, (0x90, 55, 4, 4) }, + { LedId.LedMatrix30, (0x90, 56, 5, 4) }, + { LedId.LedMatrix31, (0x90, 57, 6, 4) }, + { LedId.LedMatrix32, (0x90, 58, 7, 4) }, + { LedId.LedMatrix33, (0x90, 41, 0, 5) }, + { LedId.LedMatrix34, (0x90, 42, 1, 5) }, + { LedId.LedMatrix35, (0x90, 43, 2, 5) }, + { LedId.LedMatrix36, (0x90, 44, 3, 5) }, + { LedId.LedMatrix37, (0x90, 45, 4, 5) }, + { LedId.LedMatrix38, (0x90, 46, 5, 5) }, + { LedId.LedMatrix39, (0x90, 47, 6, 5) }, + { LedId.LedMatrix40, (0x90, 48, 7, 5) }, + { LedId.LedMatrix41, (0x90, 31, 0, 6) }, + { LedId.LedMatrix42, (0x90, 32, 1, 6) }, + { LedId.LedMatrix43, (0x90, 33, 2, 6) }, + { LedId.LedMatrix44, (0x90, 34, 3, 6) }, + { LedId.LedMatrix45, (0x90, 35, 4, 6) }, + { LedId.LedMatrix46, (0x90, 36, 5, 6) }, + { LedId.LedMatrix47, (0x90, 37, 6, 6) }, + { LedId.LedMatrix48, (0x90, 38, 7, 6) }, + { LedId.LedMatrix49, (0x90, 21, 0, 7) }, + { LedId.LedMatrix50, (0x90, 22, 1, 7) }, + { LedId.LedMatrix51, (0x90, 23, 2, 7) }, + { LedId.LedMatrix52, (0x90, 24, 3, 7) }, + { LedId.LedMatrix53, (0x90, 25, 4, 7) }, + { LedId.LedMatrix54, (0x90, 26, 5, 7) }, + { LedId.LedMatrix55, (0x90, 27, 6, 7) }, + { LedId.LedMatrix56, (0x90, 28, 7, 7) }, + { LedId.LedMatrix57, (0x90, 11, 0, 8) }, + { LedId.LedMatrix58, (0x90, 12, 1, 8) }, + { LedId.LedMatrix59, (0x90, 13, 2, 8) }, + { LedId.LedMatrix60, (0x90, 14, 3, 8) }, + { LedId.LedMatrix61, (0x90, 15, 4, 8) }, + { LedId.LedMatrix62, (0x90, 16, 5, 8) }, + { LedId.LedMatrix63, (0x90, 17, 6, 8) }, + { LedId.LedMatrix64, (0x90, 18, 7, 8) }, - { LedId.Custom1, (0xB0, 104, 0, 0) }, // Up - { LedId.Custom2, (0xB0, 105, 1, 0) }, // Down - { LedId.Custom3, (0xB0, 106, 2, 0) }, // Left - { LedId.Custom4, (0xB0, 107, 3, 0) }, // Right - { LedId.Custom5, (0xB0, 108, 4, 0) }, // Session - { LedId.Custom6, (0xB0, 109, 5, 0) }, // User 1 - { LedId.Custom7, (0xB0, 110, 6, 0) }, // User 2 - { LedId.Custom8, (0xB0, 111, 7, 0) }, // Mix + { LedId.Custom1, (0xB0, 104, 0, 0) }, // Up + { LedId.Custom2, (0xB0, 105, 1, 0) }, // Down + { LedId.Custom3, (0xB0, 106, 2, 0) }, // Left + { LedId.Custom4, (0xB0, 107, 3, 0) }, // Right + { LedId.Custom5, (0xB0, 108, 4, 0) }, // Session + { LedId.Custom6, (0xB0, 109, 5, 0) }, // User 1 + { LedId.Custom7, (0xB0, 110, 6, 0) }, // User 2 + { LedId.Custom8, (0xB0, 111, 7, 0) }, // Mix - { LedId.Custom9, (0x90, 89, 8, 1) }, //Scene1 - { LedId.Custom10, (0x90, 79, 8, 2) }, //Scene2 - { LedId.Custom11, (0x90, 69, 8, 3) }, //Scene3 - { LedId.Custom12, (0x90, 59, 8, 4) }, //Scene4 - { LedId.Custom13, (0x90, 49, 8, 5) }, //Scene5 - { LedId.Custom14, (0x90, 39, 8, 6) }, //Scene6 - { LedId.Custom15, (0x90, 29, 8, 7) }, //Scene7 - { LedId.Custom16, (0x90, 19, 8, 8) }, //Scene8 - }; + { LedId.Custom9, (0x90, 89, 8, 1) }, //Scene1 + { LedId.Custom10, (0x90, 79, 8, 2) }, //Scene2 + { LedId.Custom11, (0x90, 69, 8, 3) }, //Scene3 + { LedId.Custom12, (0x90, 59, 8, 4) }, //Scene4 + { LedId.Custom13, (0x90, 49, 8, 5) }, //Scene5 + { LedId.Custom14, (0x90, 39, 8, 6) }, //Scene6 + { LedId.Custom15, (0x90, 29, 8, 7) }, //Scene7 + { LedId.Custom16, (0x90, 19, 8, 8) }, //Scene8 + }; + + internal static readonly Dictionary PRO = new() + { + { LedId.Invalid, (0x00, 0xFF, 8, 0) }, + + { LedId.LedMatrix1, (0x90, 81, 0, 1) }, + { LedId.LedMatrix2, (0x90, 82, 1, 1) }, + { LedId.LedMatrix3, (0x90, 83, 2, 1) }, + { LedId.LedMatrix4, (0x90, 84, 3, 1) }, + { LedId.LedMatrix5, (0x90, 85, 4, 1) }, + { LedId.LedMatrix6, (0x90, 86, 5, 1) }, + { LedId.LedMatrix7, (0x90, 87, 6, 1) }, + { LedId.LedMatrix8, (0x90, 88, 7, 1) }, + { LedId.LedMatrix9, (0x90, 71, 0, 2) }, + { LedId.LedMatrix10, (0x90, 72, 1, 2) }, + { LedId.LedMatrix11, (0x90, 73, 2, 2) }, + { LedId.LedMatrix12, (0x90, 74, 3, 2) }, + { LedId.LedMatrix13, (0x90, 75, 4, 2) }, + { LedId.LedMatrix14, (0x90, 76, 5, 2) }, + { LedId.LedMatrix15, (0x90, 77, 6, 2) }, + { LedId.LedMatrix16, (0x90, 78, 7, 2) }, + { LedId.LedMatrix17, (0x90, 61, 0, 3) }, + { LedId.LedMatrix18, (0x90, 62, 1, 3) }, + { LedId.LedMatrix19, (0x90, 63, 2, 3) }, + { LedId.LedMatrix20, (0x90, 64, 3, 3) }, + { LedId.LedMatrix21, (0x90, 65, 4, 3) }, + { LedId.LedMatrix22, (0x90, 66, 5, 3) }, + { LedId.LedMatrix23, (0x90, 67, 6, 3) }, + { LedId.LedMatrix24, (0x90, 68, 7, 3) }, + { LedId.LedMatrix25, (0x90, 51, 0, 4) }, + { LedId.LedMatrix26, (0x90, 52, 1, 4) }, + { LedId.LedMatrix27, (0x90, 53, 2, 4) }, + { LedId.LedMatrix28, (0x90, 54, 3, 4) }, + { LedId.LedMatrix29, (0x90, 55, 4, 4) }, + { LedId.LedMatrix30, (0x90, 56, 5, 4) }, + { LedId.LedMatrix31, (0x90, 57, 6, 4) }, + { LedId.LedMatrix32, (0x90, 58, 7, 4) }, + { LedId.LedMatrix33, (0x90, 41, 0, 5) }, + { LedId.LedMatrix34, (0x90, 42, 1, 5) }, + { LedId.LedMatrix35, (0x90, 43, 2, 5) }, + { LedId.LedMatrix36, (0x90, 44, 3, 5) }, + { LedId.LedMatrix37, (0x90, 45, 4, 5) }, + { LedId.LedMatrix38, (0x90, 46, 5, 5) }, + { LedId.LedMatrix39, (0x90, 47, 6, 5) }, + { LedId.LedMatrix40, (0x90, 48, 7, 5) }, + { LedId.LedMatrix41, (0x90, 31, 0, 6) }, + { LedId.LedMatrix42, (0x90, 32, 1, 6) }, + { LedId.LedMatrix43, (0x90, 33, 2, 6) }, + { LedId.LedMatrix44, (0x90, 34, 3, 6) }, + { LedId.LedMatrix45, (0x90, 35, 4, 6) }, + { LedId.LedMatrix46, (0x90, 36, 5, 6) }, + { LedId.LedMatrix47, (0x90, 37, 6, 6) }, + { LedId.LedMatrix48, (0x90, 38, 7, 6) }, + { LedId.LedMatrix49, (0x90, 21, 0, 7) }, + { LedId.LedMatrix50, (0x90, 22, 1, 7) }, + { LedId.LedMatrix51, (0x90, 23, 2, 7) }, + { LedId.LedMatrix52, (0x90, 24, 3, 7) }, + { LedId.LedMatrix53, (0x90, 25, 4, 7) }, + { LedId.LedMatrix54, (0x90, 26, 5, 7) }, + { LedId.LedMatrix55, (0x90, 27, 6, 7) }, + { LedId.LedMatrix56, (0x90, 28, 7, 7) }, + { LedId.LedMatrix57, (0x90, 11, 0, 8) }, + { LedId.LedMatrix58, (0x90, 12, 1, 8) }, + { LedId.LedMatrix59, (0x90, 13, 2, 8) }, + { LedId.LedMatrix60, (0x90, 14, 3, 8) }, + { LedId.LedMatrix61, (0x90, 15, 4, 8) }, + { LedId.LedMatrix62, (0x90, 16, 5, 8) }, + { LedId.LedMatrix63, (0x90, 17, 6, 8) }, + { LedId.LedMatrix64, (0x90, 18, 7, 8) }, + + { LedId.Custom1, (0xB0, 91, 0, 0) }, // Up + { LedId.Custom2, (0xB0, 92, 1, 0) }, // Down + { LedId.Custom3, (0xB0, 93, 2, 0) }, // Left + { LedId.Custom4, (0xB0, 94, 3, 0) }, // Right + { LedId.Custom5, (0xB0, 95, 4, 0) }, // Session + { LedId.Custom6, (0xB0, 96, 5, 0) }, // Note + { LedId.Custom7, (0xB0, 97, 6, 0) }, // Device + { LedId.Custom8, (0xB0, 98, 7, 0) }, // User + + { LedId.Custom9, (0x90, 89, 8, 1) }, // Scene1 + { LedId.Custom10, (0x90, 79, 8, 2) }, // Scene2 + { LedId.Custom11, (0x90, 69, 8, 3) }, // Scene3 + { LedId.Custom12, (0x90, 59, 8, 4) }, // Scene4 + { LedId.Custom13, (0x90, 49, 8, 5) }, // Scene5 + { LedId.Custom14, (0x90, 39, 8, 6) }, // Scene6 + { LedId.Custom15, (0x90, 29, 8, 7) }, // Scene7 + { LedId.Custom16, (0x90, 19, 8, 8) }, // Scene8 + + { LedId.Custom17, (0x90, 80, 8, 1) }, // Shift + { LedId.Custom18, (0x90, 70, 8, 2) }, // Click + { LedId.Custom19, (0x90, 60, 8, 3) }, // Undo + { LedId.Custom20, (0x90, 50, 8, 4) }, // Delete + { LedId.Custom21, (0x90, 40, 8, 5) }, // Quantise + { LedId.Custom22, (0x90, 30, 8, 6) }, // Duplicate + { LedId.Custom23, (0x90, 20, 8, 7) }, // Double + { LedId.Custom24, (0x90, 10, 8, 8) }, // Record + + { LedId.Custom25, (0x90, 1, 8, 1) }, // Record Arm + { LedId.Custom26, (0x90, 2, 8, 2) }, // Track Select + { LedId.Custom27, (0x90, 3, 8, 3) }, // Mute + { LedId.Custom28, (0x90, 4, 8, 4) }, // Solo + { LedId.Custom29, (0x90, 5, 8, 5) }, // Volume + { LedId.Custom30, (0x90, 6, 8, 6) }, // Pan + { LedId.Custom31, (0x90, 7, 8, 7) }, // Sends + { LedId.Custom32, (0x90, 8, 8, 8) }, // Stop Clip + }; } \ No newline at end of file diff --git a/RGB.NET.Devices.Novation/Launchpad/LedIdMappings.cs b/RGB.NET.Devices.Novation/Launchpad/LedIdMappings.cs index d035ba9..93c1539 100644 --- a/RGB.NET.Devices.Novation/Launchpad/LedIdMappings.cs +++ b/RGB.NET.Devices.Novation/Launchpad/LedIdMappings.cs @@ -3,5 +3,6 @@ internal enum LedIdMappings { Current, - Legacy + Legacy, + Pro } \ No newline at end of file diff --git a/RGB.NET.Devices.Novation/Launchpad/NovationLaunchpadRGBDevice.cs b/RGB.NET.Devices.Novation/Launchpad/NovationLaunchpadRGBDevice.cs index 9ec1e5d..81e5dce 100644 --- a/RGB.NET.Devices.Novation/Launchpad/NovationLaunchpadRGBDevice.cs +++ b/RGB.NET.Devices.Novation/Launchpad/NovationLaunchpadRGBDevice.cs @@ -55,6 +55,7 @@ public class NovationLaunchpadRGBDevice : NovationRGBDevice LaunchpadIdMapping.CURRENT, LedIdMappings.Legacy => LaunchpadIdMapping.LEGACY, + LedIdMappings.Pro => LaunchpadIdMapping.PRO, _ => throw new ArgumentOutOfRangeException() }; diff --git a/RGB.NET.Devices.Novation/NovationDeviceProvider.cs b/RGB.NET.Devices.Novation/NovationDeviceProvider.cs index 3c2d126..9d2d8d2 100644 --- a/RGB.NET.Devices.Novation/NovationDeviceProvider.cs +++ b/RGB.NET.Devices.Novation/NovationDeviceProvider.cs @@ -52,13 +52,11 @@ public class NovationDeviceProvider : AbstractRGBDeviceProvider MidiOutCaps outCaps = OutputDeviceBase.GetDeviceCapabilities(index); if (outCaps.name == null) continue; + string deviceName = outCaps.name.ToUpperInvariant(); NovationDevices? deviceId = (NovationDevices?)Enum.GetValues(typeof(NovationDevices)) .Cast() - .FirstOrDefault(x => - { - string? deviceId = x.GetDeviceId(); - return (deviceId != null) && outCaps.name.ToUpperInvariant().Contains(deviceId.ToUpperInvariant()); - }); + .Where(x => x.GetDeviceId() != null) + .FirstOrDefault(x => deviceName.Contains(x.GetDeviceId()!.ToUpperInvariant())); if (deviceId == null) continue; diff --git a/RGB.NET.Devices.Razer/RazerDeviceProvider.cs b/RGB.NET.Devices.Razer/RazerDeviceProvider.cs index efcb7b0..8ed41ff 100644 --- a/RGB.NET.Devices.Razer/RazerDeviceProvider.cs +++ b/RGB.NET.Devices.Razer/RazerDeviceProvider.cs @@ -106,6 +106,7 @@ public class RazerDeviceProvider : AbstractRGBDeviceProvider { 0x025D, RGBDeviceType.Keyboard, "Ornata Chroma V2", LedMappings.Keyboard, RazerEndpointType.Keyboard }, { 0x025E, RGBDeviceType.Keyboard, "Cynosa V2", LedMappings.Keyboard, RazerEndpointType.Keyboard }, { 0x0266, RGBDeviceType.Keyboard, "Huntsman V2", LedMappings.Keyboard, RazerEndpointType.Keyboard }, + { 0x026C, RGBDeviceType.Keyboard, "Huntsman V2", LedMappings.Keyboard, RazerEndpointType.Keyboard }, // Mice { 0x0013, RGBDeviceType.Mouse, "Orochi 2011", LedMappings.Mouse, RazerEndpointType.Mouse }, diff --git a/RGB.NET.Devices.SteelSeries/API/SteelSeriesSDK.cs b/RGB.NET.Devices.SteelSeries/API/SteelSeriesSDK.cs index 268116d..562e609 100644 --- a/RGB.NET.Devices.SteelSeries/API/SteelSeriesSDK.cs +++ b/RGB.NET.Devices.SteelSeries/API/SteelSeriesSDK.cs @@ -47,7 +47,9 @@ internal static class SteelSeriesSDK (add-event-zone-use-with-specifier ""{EVENT_NAME}"" ""all"" ""rgb-103-zone"") (add-custom-zone '(""non-us-backslash"" 100)) -(add-custom-zone '(""num-5"" 93))"; //HACK DarthAffe 07.10.2021: Custom zone to workaround a SDK-issue (https://github.com/SteelSeries/gamesense-sdk/issues/85) +(add-custom-zone '(""num-5"" 93)) +(add-custom-zone '(""fn"" 240)) +(add-custom-zone '(""power"" 102))"; //HACK DarthAffe 07.10.2021: Custom zone to workaround a SDK-issue (https://github.com/SteelSeries/gamesense-sdk/issues/85) private const string CORE_PROPS_WINDOWS = "%PROGRAMDATA%/SteelSeries/SteelSeries Engine 3/coreProps.json"; private const string CORE_PROPS_OSX = "/Library/Application Support/SteelSeries Engine 3/coreProps.json"; diff --git a/RGB.NET.Devices.SteelSeries/Enum/SteelSeriesLedId.cs b/RGB.NET.Devices.SteelSeries/Enum/SteelSeriesLedId.cs index 295b9c8..2402fca 100644 --- a/RGB.NET.Devices.SteelSeries/Enum/SteelSeriesLedId.cs +++ b/RGB.NET.Devices.SteelSeries/Enum/SteelSeriesLedId.cs @@ -443,4 +443,8 @@ public enum SteelSeriesLedId M4, [APIName("m5")] M5, + [APIName("fn")] + Fn, + [APIName("power")] + Power, } \ No newline at end of file diff --git a/RGB.NET.Devices.SteelSeries/Generic/LedMappings.cs b/RGB.NET.Devices.SteelSeries/Generic/LedMappings.cs index 5b7bee5..70acca7 100644 --- a/RGB.NET.Devices.SteelSeries/Generic/LedMappings.cs +++ b/RGB.NET.Devices.SteelSeries/Generic/LedMappings.cs @@ -217,6 +217,104 @@ public static class LedMappings { LedId.Keyboard_ArrowRight, SteelSeriesLedId.RightArrow } }; + /// + /// Gets the uk-notebook-mapping for keyboards. + /// + public static LedMapping KeyboardNotebookMappingUk { get; } = new() + { + { LedId.Logo, SteelSeriesLedId.Logo }, + { LedId.Keyboard_Escape, SteelSeriesLedId.Escape }, + { LedId.Keyboard_F1, SteelSeriesLedId.F1 }, + { LedId.Keyboard_F2, SteelSeriesLedId.F2 }, + { LedId.Keyboard_F3, SteelSeriesLedId.F3 }, + { LedId.Keyboard_F4, SteelSeriesLedId.F4 }, + { LedId.Keyboard_F5, SteelSeriesLedId.F5 }, + { LedId.Keyboard_F6, SteelSeriesLedId.F6 }, + { LedId.Keyboard_F7, SteelSeriesLedId.F7 }, + { LedId.Keyboard_F8, SteelSeriesLedId.F8 }, + { LedId.Keyboard_F9, SteelSeriesLedId.F9 }, + { LedId.Keyboard_F10, SteelSeriesLedId.F10 }, + { LedId.Keyboard_F11, SteelSeriesLedId.F11 }, + { LedId.Keyboard_GraveAccentAndTilde, SteelSeriesLedId.Backqoute }, + { LedId.Keyboard_1, SteelSeriesLedId.Keyboard1 }, + { LedId.Keyboard_2, SteelSeriesLedId.Keyboard2 }, + { LedId.Keyboard_3, SteelSeriesLedId.Keyboard3 }, + { LedId.Keyboard_4, SteelSeriesLedId.Keyboard4 }, + { LedId.Keyboard_5, SteelSeriesLedId.Keyboard5 }, + { LedId.Keyboard_6, SteelSeriesLedId.Keyboard6 }, + { LedId.Keyboard_7, SteelSeriesLedId.Keyboard7 }, + { LedId.Keyboard_8, SteelSeriesLedId.Keyboard8 }, + { LedId.Keyboard_9, SteelSeriesLedId.Keyboard9 }, + { LedId.Keyboard_0, SteelSeriesLedId.Keyboard0 }, + { LedId.Keyboard_MinusAndUnderscore, SteelSeriesLedId.Dash }, + { LedId.Keyboard_Tab, SteelSeriesLedId.Tab }, + { LedId.Keyboard_Q, SteelSeriesLedId.Q }, + { LedId.Keyboard_W, SteelSeriesLedId.W }, + { LedId.Keyboard_E, SteelSeriesLedId.E }, + { LedId.Keyboard_R, SteelSeriesLedId.R }, + { LedId.Keyboard_T, SteelSeriesLedId.T }, + { LedId.Keyboard_Y, SteelSeriesLedId.Y }, + { LedId.Keyboard_U, SteelSeriesLedId.U }, + { LedId.Keyboard_I, SteelSeriesLedId.I }, + { LedId.Keyboard_O, SteelSeriesLedId.O }, + { LedId.Keyboard_P, SteelSeriesLedId.P }, + { LedId.Keyboard_BracketLeft, SteelSeriesLedId.LBracket }, + { LedId.Keyboard_CapsLock, SteelSeriesLedId.Caps }, + { LedId.Keyboard_A, SteelSeriesLedId.A }, + { LedId.Keyboard_S, SteelSeriesLedId.S }, + { LedId.Keyboard_D, SteelSeriesLedId.D }, + { LedId.Keyboard_F, SteelSeriesLedId.F }, + { LedId.Keyboard_G, SteelSeriesLedId.G }, + { LedId.Keyboard_H, SteelSeriesLedId.H }, + { LedId.Keyboard_J, SteelSeriesLedId.J }, + { LedId.Keyboard_K, SteelSeriesLedId.K }, + { LedId.Keyboard_L, SteelSeriesLedId.L }, + { LedId.Keyboard_SemicolonAndColon, SteelSeriesLedId.Semicolon }, + { LedId.Keyboard_ApostropheAndDoubleQuote, SteelSeriesLedId.Quote }, + { LedId.Keyboard_LeftShift, SteelSeriesLedId.LShift }, + { LedId.Keyboard_NonUsTilde, SteelSeriesLedId.Pound }, + { LedId.Keyboard_Z, SteelSeriesLedId.Z }, + { LedId.Keyboard_X, SteelSeriesLedId.X }, + { LedId.Keyboard_C, SteelSeriesLedId.C }, + { LedId.Keyboard_V, SteelSeriesLedId.V }, + { LedId.Keyboard_B, SteelSeriesLedId.B }, + { LedId.Keyboard_N, SteelSeriesLedId.N }, + { LedId.Keyboard_M, SteelSeriesLedId.M }, + { LedId.Keyboard_CommaAndLessThan, SteelSeriesLedId.Comma }, + { LedId.Keyboard_PeriodAndBiggerThan, SteelSeriesLedId.Period }, + { LedId.Keyboard_SlashAndQuestionMark, SteelSeriesLedId.Slash }, + { LedId.Keyboard_LeftCtrl, SteelSeriesLedId.LCtrl }, + { LedId.Keyboard_LeftGui, SteelSeriesLedId.LWin }, + { LedId.Keyboard_LeftAlt, SteelSeriesLedId.LAlt }, + { LedId.Keyboard_Space, SteelSeriesLedId.Spacebar }, + { LedId.Keyboard_RightAlt, SteelSeriesLedId.RAlt }, + { LedId.Keyboard_RightGui, SteelSeriesLedId.RWin }, + { LedId.Keyboard_Application, SteelSeriesLedId.SSKey }, + { LedId.Keyboard_F12, SteelSeriesLedId.F12 }, + { LedId.Keyboard_PrintScreen, SteelSeriesLedId.PrintScreen }, + { LedId.Keyboard_ScrollLock, SteelSeriesLedId.ScrollLock }, + { LedId.Keyboard_PauseBreak, SteelSeriesLedId.Pause }, + { LedId.Keyboard_Insert, SteelSeriesLedId.Insert }, + { LedId.Keyboard_Home, SteelSeriesLedId.Home }, + { LedId.Keyboard_PageUp, SteelSeriesLedId.PageUp }, + { LedId.Keyboard_BracketRight, SteelSeriesLedId.RBracket }, + { LedId.Keyboard_Backslash, SteelSeriesLedId.Backslash }, + { LedId.Keyboard_Enter, SteelSeriesLedId.Return }, + { LedId.Keyboard_EqualsAndPlus, SteelSeriesLedId.Equal }, + { LedId.Keyboard_Backspace, SteelSeriesLedId.Backspace }, + { LedId.Keyboard_Delete, SteelSeriesLedId.Delete }, + { LedId.Keyboard_End, SteelSeriesLedId.End }, + { LedId.Keyboard_PageDown, SteelSeriesLedId.PageDown }, + { LedId.Keyboard_RightShift, SteelSeriesLedId.RShift }, + { LedId.Keyboard_RightCtrl, SteelSeriesLedId.RCtrl }, + { LedId.Keyboard_ArrowUp, SteelSeriesLedId.UpArrow }, + { LedId.Keyboard_ArrowLeft, SteelSeriesLedId.LeftArrow }, + { LedId.Keyboard_ArrowDown, SteelSeriesLedId.DownArrow }, + { LedId.Keyboard_ArrowRight, SteelSeriesLedId.RightArrow }, + { LedId.Keyboard_Function, SteelSeriesLedId.Fn }, + { LedId.Keyboard_Custom1, SteelSeriesLedId.Power }, + }; + /// /// Gets the mapping for one-zone mice. /// diff --git a/RGB.NET.Devices.SteelSeries/SteelSeriesDeviceProvider.cs b/RGB.NET.Devices.SteelSeries/SteelSeriesDeviceProvider.cs index 73f653a..3deb842 100644 --- a/RGB.NET.Devices.SteelSeries/SteelSeriesDeviceProvider.cs +++ b/RGB.NET.Devices.SteelSeries/SteelSeriesDeviceProvider.cs @@ -57,6 +57,7 @@ public class SteelSeriesDeviceProvider : AbstractRGBDeviceProvider { 0x1600, RGBDeviceType.Keyboard, "Apex M800", LedMappings.KeyboardMappingUk, SteelSeriesDeviceType.PerKey }, { 0x1610, RGBDeviceType.Keyboard, "Apex Pro", LedMappings.KeyboardMappingUk, SteelSeriesDeviceType.PerKey }, { 0x1614, RGBDeviceType.Keyboard, "Apex Pro TKL", LedMappings.KeyboardTklMappingUk, SteelSeriesDeviceType.PerKey }, + { 0x2036, RGBDeviceType.Keyboard, "MSI Notebook", LedMappings.KeyboardNotebookMappingUk, SteelSeriesDeviceType.PerKey }, //Headsets { 0x12AA, RGBDeviceType.Headset, "Arctis 5", LedMappings.HeadsetTwoZone, SteelSeriesDeviceType.TwoZone },