diff --git a/RGB.NET.Devices.Asus/AsusDeviceProvider.cs b/RGB.NET.Devices.Asus/AsusDeviceProvider.cs
index 318850e..e3b093c 100644
--- a/RGB.NET.Devices.Asus/AsusDeviceProvider.cs
+++ b/RGB.NET.Devices.Asus/AsusDeviceProvider.cs
@@ -69,6 +69,7 @@ public sealed class AsusDeviceProvider : AbstractRGBDeviceProvider
AsusDeviceType.HEADSET_RGB => new AsusHeadsetRGBDevice(new AsusRGBDeviceInfo(RGBDeviceType.Headset, device), GetUpdateTrigger()),
AsusDeviceType.DRAM_RGB => new AsusDramRGBDevice(new AsusRGBDeviceInfo(RGBDeviceType.DRAM, device), GetUpdateTrigger()),
AsusDeviceType.KEYBOARD_RGB => new AsusKeyboardRGBDevice(new AsusKeyboardRGBDeviceInfo(device), LedMappings.KeyboardMapping, GetUpdateTrigger()),
+ AsusDeviceType.KEYBOARD_5ZONE_RGB => new AsusKeyboardRGBDevice(new AsusKeyboardRGBDeviceInfo(device), null, GetUpdateTrigger()),
AsusDeviceType.NB_KB_RGB => new AsusKeyboardRGBDevice(new AsusKeyboardRGBDeviceInfo(device), LedMappings.KeyboardMapping, GetUpdateTrigger()),
AsusDeviceType.NB_KB_4ZONE_RGB => new AsusKeyboardRGBDevice(new AsusKeyboardRGBDeviceInfo(device), null, GetUpdateTrigger()),
AsusDeviceType.MOUSE_RGB => new AsusMouseRGBDevice(new AsusRGBDeviceInfo(RGBDeviceType.Mouse, device), GetUpdateTrigger()),
diff --git a/RGB.NET.Devices.Asus/Enum/AsusDeviceType.cs b/RGB.NET.Devices.Asus/Enum/AsusDeviceType.cs
index bb5f16f..bb9a2be 100644
--- a/RGB.NET.Devices.Asus/Enum/AsusDeviceType.cs
+++ b/RGB.NET.Devices.Asus/Enum/AsusDeviceType.cs
@@ -16,10 +16,12 @@ internal enum AsusDeviceType : uint
EXTERNAL_BLUE_RAY_RGB = 0x61000,
DRAM_RGB = 0x70000,
KEYBOARD_RGB = 0x80000,
+ KEYBOARD_5ZONE_RGB = 0x80001,
NB_KB_RGB = 0x81000,
NB_KB_4ZONE_RGB = 0x81001,
MOUSE_RGB = 0x90000,
CHASSIS_RGB = 0xB0000,
PROJECTOR_RGB = 0xC0000,
+ WATERCOOLER_RGB = 0xD1000,
TERMINAL_RGB = 0xE0000
}
\ No newline at end of file
diff --git a/RGB.NET.Devices.Asus/Generic/AsusUnspecifiedRGBDevice.cs b/RGB.NET.Devices.Asus/Generic/AsusUnspecifiedRGBDevice.cs
index fe3c238..6d20952 100644
--- a/RGB.NET.Devices.Asus/Generic/AsusUnspecifiedRGBDevice.cs
+++ b/RGB.NET.Devices.Asus/Generic/AsusUnspecifiedRGBDevice.cs
@@ -4,7 +4,7 @@ namespace RGB.NET.Devices.Asus;
///
///
-/// Represents a Asus headset.
+/// Represents a Asus device that is otherwise not handled by a more specific helper.
///
public sealed class AsusUnspecifiedRGBDevice : AsusRGBDevice, IUnknownDevice
{
@@ -18,9 +18,9 @@ public sealed class AsusUnspecifiedRGBDevice : AsusRGBDevice,
///
///
- /// Initializes a new instance of the class.
+ /// Initializes a new instance of the class.
///
- /// The specific information provided by Asus for the headset.
+ /// The specific information provided by Asus for the device.
/// The ledId of the first led of this device. All other leds are created by incrementing this base-id by 1.
/// The update trigger used to update this device.
internal AsusUnspecifiedRGBDevice(AsusRGBDeviceInfo info, LedId baseLedId, IDeviceUpdateTrigger updateTrigger)
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