From 184a5823e8f77117aef0fa39265eaa9f53a07aa2 Mon Sep 17 00:00:00 2001 From: David Ross Smith <5095074+DragRedSim@users.noreply.github.com> Date: Tue, 2 May 2023 21:55:36 +1000 Subject: [PATCH] Asus - added LED mapping for ROG Strix G15 (2021) - Device is a laptop with RGB in the keyboard, as well as an LED strip - LED mappings reuse those from the ROG Zephyrus Duo where appropriate --- .../Keyboard/AsusKeyboardLedMapping.cs | 45 +++++++++++++++++++ .../Keyboard/AsusKeyboardRGBDevice.cs | 5 ++- 2 files changed, 48 insertions(+), 2 deletions(-) diff --git a/RGB.NET.Devices.Asus/Keyboard/AsusKeyboardLedMapping.cs b/RGB.NET.Devices.Asus/Keyboard/AsusKeyboardLedMapping.cs index 9eb8d1f..298dd61 100644 --- a/RGB.NET.Devices.Asus/Keyboard/AsusKeyboardLedMapping.cs +++ b/RGB.NET.Devices.Asus/Keyboard/AsusKeyboardLedMapping.cs @@ -188,4 +188,49 @@ public static class LedMappings { LedId.Keyboard_Custom59, 131 }, { LedId.Keyboard_Custom60, 133 }, }; + + /// + /// A LED mapping containing extra lights for the ROG Strix G15 (2021) + /// + /// + /// + /// ASUS notebooks have extra lights under wide keys like space and backspace, these do not appear as keys on the device. + /// Instead they only appear in the Lights enumerable, this mapping maps the matching keys to the index of these lights. + /// There are also some keys which do not use the default key scan code mappings for LEDs, and instead rely on lights. + /// + /// You may add more of these by further populating . + /// + public static LedMapping ROGStrixG15 { get; } = new() + { + { LedId.Keyboard_Custom71, 4 }, //Mic Mute + { LedId.Keyboard_Custom72, 5 }, //Fan + { LedId.Keyboard_Custom73, 6 }, //ROG Logo + //{ LedId.Keyboard_Function, 127 }, //commented out because adding a mapping fails if a mapping already exists for a key, even if it is incorrect for this device + //use Keyboard_Custom36 in the default mapping to get the Fn key on this laptop + + { LedId.Keyboard_Custom52, 55 }, //backspace extra LEDs (x2) - these are named to match the appropriate LEDs in the previous ROG Zephyrus mapping + { LedId.Keyboard_Custom53, 57 }, + { LedId.Keyboard_Custom54, 97 }, //enter extra LEDs (x2) + { LedId.Keyboard_Custom55, 99 }, + { LedId.Keyboard_Custom56, 118 }, //right shift extra LEDs (x2) + { LedId.Keyboard_Custom57, 120 }, + { LedId.Keyboard_Custom58, 130 }, //space bar extra LEDs (x3) + { LedId.Keyboard_Custom59, 131 }, //this one specifically is also exposed as Custom7 (AsusLedID.KEY_NOCONVERT) in the main map + { LedId.Keyboard_Custom60, 133 }, + + { LedId.Keyboard_MediaVolumeDown, 2 }, + { LedId.Keyboard_MediaVolumeUp, 3 }, + { LedId.Keyboard_MediaPlay, 58 }, + { LedId.Keyboard_MediaStop, 79 }, + { LedId.Keyboard_MediaPreviousTrack, 100 }, + { LedId.Keyboard_MediaNextTrack, 121 }, + + { LedId.LedStripe1, 174 }, //front LED strip; yes, these are in reverse order, since the SDK exposes them from right to left + { LedId.LedStripe2, 173 }, + { LedId.LedStripe3, 172 }, + { LedId.LedStripe4, 171 }, + { LedId.LedStripe5, 170 }, + { LedId.LedStripe6, 169 }, + + }; } \ No newline at end of file diff --git a/RGB.NET.Devices.Asus/Keyboard/AsusKeyboardRGBDevice.cs b/RGB.NET.Devices.Asus/Keyboard/AsusKeyboardRGBDevice.cs index 30b429c..ee5f549 100644 --- a/RGB.NET.Devices.Asus/Keyboard/AsusKeyboardRGBDevice.cs +++ b/RGB.NET.Devices.Asus/Keyboard/AsusKeyboardRGBDevice.cs @@ -37,7 +37,8 @@ public sealed class AsusKeyboardRGBDevice : AsusRGBDevice ExtraLedMappings = new() { - new AsusKeyboardExtraMapping(new Regex("(ROG Zephyrus Duo 15).*?"), LedMappings.ROGZephyrusDuo15) + new AsusKeyboardExtraMapping(new Regex("(ROG Zephyrus Duo 15).*?"), LedMappings.ROGZephyrusDuo15), + new AsusKeyboardExtraMapping(new Regex("(ROG Strix G513QM).*?"), LedMappings.ROGStrixG15) }; #endregion @@ -65,7 +66,7 @@ public sealed class AsusKeyboardRGBDevice : AsusRGBDevice