mirror of
https://github.com/DarthAffe/RGB.NET.git
synced 2025-12-13 01:58:30 +00:00
commit
17db44d007
@ -1236,133 +1236,263 @@ namespace RGB.NET.Core
|
||||
Cooler64 = 0x00D00040,
|
||||
|
||||
/*### Custom ###*/
|
||||
Custom1 = 0x0FF00001,
|
||||
Custom2 = 0x0FF00002,
|
||||
Custom3 = 0x0FF00003,
|
||||
Custom4 = 0x0FF00004,
|
||||
Custom5 = 0x0FF00005,
|
||||
Custom6 = 0x0FF00006,
|
||||
Custom7 = 0x0FF00007,
|
||||
Custom8 = 0x0FF00008,
|
||||
Custom9 = 0x0FF00009,
|
||||
Custom10 = 0x0FF0000A,
|
||||
Custom11 = 0x0FF0000B,
|
||||
Custom12 = 0x0FF0000C,
|
||||
Custom13 = 0x0FF0000D,
|
||||
Custom14 = 0x0FF0000E,
|
||||
Custom15 = 0x0FF0000F,
|
||||
Custom16 = 0x0FF00010,
|
||||
Custom17 = 0x0FF00011,
|
||||
Custom18 = 0x0FF00012,
|
||||
Custom19 = 0x0FF00013,
|
||||
Custom20 = 0x0FF00014,
|
||||
Custom21 = 0x0FF00015,
|
||||
Custom22 = 0x0FF00016,
|
||||
Custom23 = 0x0FF00017,
|
||||
Custom24 = 0x0FF00018,
|
||||
Custom25 = 0x0FF00019,
|
||||
Custom26 = 0x0FF0001A,
|
||||
Custom27 = 0x0FF0001B,
|
||||
Custom28 = 0x0FF0001C,
|
||||
Custom29 = 0x0FF0001D,
|
||||
Custom30 = 0x0FF0001E,
|
||||
Custom31 = 0x0FF0001F,
|
||||
Custom32 = 0x0FF00020,
|
||||
Custom33 = 0x0FF00021,
|
||||
Custom34 = 0x0FF00022,
|
||||
Custom35 = 0x0FF00023,
|
||||
Custom36 = 0x0FF00024,
|
||||
Custom37 = 0x0FF00025,
|
||||
Custom38 = 0x0FF00026,
|
||||
Custom39 = 0x0FF00027,
|
||||
Custom40 = 0x0FF00028,
|
||||
Custom41 = 0x0FF00029,
|
||||
Custom42 = 0x0FF0002A,
|
||||
Custom43 = 0x0FF0002B,
|
||||
Custom44 = 0x0FF0002C,
|
||||
Custom45 = 0x0FF0002D,
|
||||
Custom46 = 0x0FF0002E,
|
||||
Custom47 = 0x0FF0002F,
|
||||
Custom48 = 0x0FF00030,
|
||||
Custom49 = 0x0FF00031,
|
||||
Custom50 = 0x0FF00032,
|
||||
Custom51 = 0x0FF00033,
|
||||
Custom52 = 0x0FF00034,
|
||||
Custom53 = 0x0FF00035,
|
||||
Custom54 = 0x0FF00036,
|
||||
Custom55 = 0x0FF00037,
|
||||
Custom56 = 0x0FF00038,
|
||||
Custom57 = 0x0FF00039,
|
||||
Custom58 = 0x0FF0003A,
|
||||
Custom59 = 0x0FF0003B,
|
||||
Custom60 = 0x0FF0003C,
|
||||
Custom61 = 0x0FF0003D,
|
||||
Custom62 = 0x0FF0003E,
|
||||
Custom63 = 0x0FF0003F,
|
||||
Custom64 = 0x0FF00040,
|
||||
Custom65 = 0x0FF00041,
|
||||
Custom66 = 0x0FF00042,
|
||||
Custom67 = 0x0FF00043,
|
||||
Custom68 = 0x0FF00044,
|
||||
Custom69 = 0x0FF00045,
|
||||
Custom70 = 0x0FF00046,
|
||||
Custom71 = 0x0FF00047,
|
||||
Custom72 = 0x0FF00048,
|
||||
Custom73 = 0x0FF00049,
|
||||
Custom74 = 0x0FF0004A,
|
||||
Custom75 = 0x0FF0004B,
|
||||
Custom76 = 0x0FF0004C,
|
||||
Custom77 = 0x0FF0004D,
|
||||
Custom78 = 0x0FF0004E,
|
||||
Custom79 = 0x0FF0004F,
|
||||
Custom80 = 0x0FF00050,
|
||||
Custom81 = 0x0FF00051,
|
||||
Custom82 = 0x0FF00052,
|
||||
Custom83 = 0x0FF00053,
|
||||
Custom84 = 0x0FF00054,
|
||||
Custom85 = 0x0FF00055,
|
||||
Custom86 = 0x0FF00056,
|
||||
Custom87 = 0x0FF00057,
|
||||
Custom88 = 0x0FF00058,
|
||||
Custom89 = 0x0FF00059,
|
||||
Custom90 = 0x0FF0005A,
|
||||
Custom91 = 0x0FF0005B,
|
||||
Custom92 = 0x0FF0005C,
|
||||
Custom93 = 0x0FF0005D,
|
||||
Custom94 = 0x0FF0005E,
|
||||
Custom95 = 0x0FF0005F,
|
||||
Custom96 = 0x0FF00060,
|
||||
Custom97 = 0x0FF00061,
|
||||
Custom98 = 0x0FF00062,
|
||||
Custom99 = 0x0FF00063,
|
||||
Custom100 = 0x0FF00064,
|
||||
Custom101 = 0x0FF00065,
|
||||
Custom102 = 0x0FF00066,
|
||||
Custom103 = 0x0FF00067,
|
||||
Custom104 = 0x0FF00068,
|
||||
Custom105 = 0x0FF00069,
|
||||
Custom106 = 0x0FF0006A,
|
||||
Custom107 = 0x0FF0006B,
|
||||
Custom108 = 0x0FF0006C,
|
||||
Custom109 = 0x0FF0006D,
|
||||
Custom110 = 0x0FF0006E,
|
||||
Custom111 = 0x0FF0006F,
|
||||
Custom112 = 0x0FF00070,
|
||||
Custom113 = 0x0FF00071,
|
||||
Custom114 = 0x0FF00072,
|
||||
Custom115 = 0x0FF00073,
|
||||
Custom116 = 0x0FF00074,
|
||||
Custom117 = 0x0FF00075,
|
||||
Custom118 = 0x0FF00076,
|
||||
Custom119 = 0x0FF00077,
|
||||
Custom120 = 0x0FF00078,
|
||||
Custom121 = 0x0FF00079,
|
||||
Custom122 = 0x0FF0007A,
|
||||
Custom123 = 0x0FF0007B,
|
||||
Custom124 = 0x0FF0007C,
|
||||
Custom125 = 0x0FF0007D,
|
||||
Custom126 = 0x0FF0007E,
|
||||
Custom127 = 0x0FF0007F,
|
||||
Custom128 = 0x0FF00080,
|
||||
Custom1 = 0x0FE00001,
|
||||
Custom2 = 0x0FE00002,
|
||||
Custom3 = 0x0FE00003,
|
||||
Custom4 = 0x0FE00004,
|
||||
Custom5 = 0x0FE00005,
|
||||
Custom6 = 0x0FE00006,
|
||||
Custom7 = 0x0FE00007,
|
||||
Custom8 = 0x0FE00008,
|
||||
Custom9 = 0x0FE00009,
|
||||
Custom10 = 0x0FE0000A,
|
||||
Custom11 = 0x0FE0000B,
|
||||
Custom12 = 0x0FE0000C,
|
||||
Custom13 = 0x0FE0000D,
|
||||
Custom14 = 0x0FE0000E,
|
||||
Custom15 = 0x0FE0000F,
|
||||
Custom16 = 0x0FE00010,
|
||||
Custom17 = 0x0FE00011,
|
||||
Custom18 = 0x0FE00012,
|
||||
Custom19 = 0x0FE00013,
|
||||
Custom20 = 0x0FE00014,
|
||||
Custom21 = 0x0FE00015,
|
||||
Custom22 = 0x0FE00016,
|
||||
Custom23 = 0x0FE00017,
|
||||
Custom24 = 0x0FE00018,
|
||||
Custom25 = 0x0FE00019,
|
||||
Custom26 = 0x0FE0001A,
|
||||
Custom27 = 0x0FE0001B,
|
||||
Custom28 = 0x0FE0001C,
|
||||
Custom29 = 0x0FE0001D,
|
||||
Custom30 = 0x0FE0001E,
|
||||
Custom31 = 0x0FE0001F,
|
||||
Custom32 = 0x0FE00020,
|
||||
Custom33 = 0x0FE00021,
|
||||
Custom34 = 0x0FE00022,
|
||||
Custom35 = 0x0FE00023,
|
||||
Custom36 = 0x0FE00024,
|
||||
Custom37 = 0x0FE00025,
|
||||
Custom38 = 0x0FE00026,
|
||||
Custom39 = 0x0FE00027,
|
||||
Custom40 = 0x0FE00028,
|
||||
Custom41 = 0x0FE00029,
|
||||
Custom42 = 0x0FE0002A,
|
||||
Custom43 = 0x0FE0002B,
|
||||
Custom44 = 0x0FE0002C,
|
||||
Custom45 = 0x0FE0002D,
|
||||
Custom46 = 0x0FE0002E,
|
||||
Custom47 = 0x0FE0002F,
|
||||
Custom48 = 0x0FE00030,
|
||||
Custom49 = 0x0FE00031,
|
||||
Custom50 = 0x0FE00032,
|
||||
Custom51 = 0x0FE00033,
|
||||
Custom52 = 0x0FE00034,
|
||||
Custom53 = 0x0FE00035,
|
||||
Custom54 = 0x0FE00036,
|
||||
Custom55 = 0x0FE00037,
|
||||
Custom56 = 0x0FE00038,
|
||||
Custom57 = 0x0FE00039,
|
||||
Custom58 = 0x0FE0003A,
|
||||
Custom59 = 0x0FE0003B,
|
||||
Custom60 = 0x0FE0003C,
|
||||
Custom61 = 0x0FE0003D,
|
||||
Custom62 = 0x0FE0003E,
|
||||
Custom63 = 0x0FE0003F,
|
||||
Custom64 = 0x0FE00040,
|
||||
Custom65 = 0x0FE00041,
|
||||
Custom66 = 0x0FE00042,
|
||||
Custom67 = 0x0FE00043,
|
||||
Custom68 = 0x0FE00044,
|
||||
Custom69 = 0x0FE00045,
|
||||
Custom70 = 0x0FE00046,
|
||||
Custom71 = 0x0FE00047,
|
||||
Custom72 = 0x0FE00048,
|
||||
Custom73 = 0x0FE00049,
|
||||
Custom74 = 0x0FE0004A,
|
||||
Custom75 = 0x0FE0004B,
|
||||
Custom76 = 0x0FE0004C,
|
||||
Custom77 = 0x0FE0004D,
|
||||
Custom78 = 0x0FE0004E,
|
||||
Custom79 = 0x0FE0004F,
|
||||
Custom80 = 0x0FE00050,
|
||||
Custom81 = 0x0FE00051,
|
||||
Custom82 = 0x0FE00052,
|
||||
Custom83 = 0x0FE00053,
|
||||
Custom84 = 0x0FE00054,
|
||||
Custom85 = 0x0FE00055,
|
||||
Custom86 = 0x0FE00056,
|
||||
Custom87 = 0x0FE00057,
|
||||
Custom88 = 0x0FE00058,
|
||||
Custom89 = 0x0FE00059,
|
||||
Custom90 = 0x0FE0005A,
|
||||
Custom91 = 0x0FE0005B,
|
||||
Custom92 = 0x0FE0005C,
|
||||
Custom93 = 0x0FE0005D,
|
||||
Custom94 = 0x0FE0005E,
|
||||
Custom95 = 0x0FE0005F,
|
||||
Custom96 = 0x0FE00060,
|
||||
Custom97 = 0x0FE00061,
|
||||
Custom98 = 0x0FE00062,
|
||||
Custom99 = 0x0FE00063,
|
||||
Custom100 = 0x0FE00064,
|
||||
Custom101 = 0x0FE00065,
|
||||
Custom102 = 0x0FE00066,
|
||||
Custom103 = 0x0FE00067,
|
||||
Custom104 = 0x0FE00068,
|
||||
Custom105 = 0x0FE00069,
|
||||
Custom106 = 0x0FE0006A,
|
||||
Custom107 = 0x0FE0006B,
|
||||
Custom108 = 0x0FE0006C,
|
||||
Custom109 = 0x0FE0006D,
|
||||
Custom110 = 0x0FE0006E,
|
||||
Custom111 = 0x0FE0006F,
|
||||
Custom112 = 0x0FE00070,
|
||||
Custom113 = 0x0FE00071,
|
||||
Custom114 = 0x0FE00072,
|
||||
Custom115 = 0x0FE00073,
|
||||
Custom116 = 0x0FE00074,
|
||||
Custom117 = 0x0FE00075,
|
||||
Custom118 = 0x0FE00076,
|
||||
Custom119 = 0x0FE00077,
|
||||
Custom120 = 0x0FE00078,
|
||||
Custom121 = 0x0FE00079,
|
||||
Custom122 = 0x0FE0007A,
|
||||
Custom123 = 0x0FE0007B,
|
||||
Custom124 = 0x0FE0007C,
|
||||
Custom125 = 0x0FE0007D,
|
||||
Custom126 = 0x0FE0007E,
|
||||
Custom127 = 0x0FE0007F,
|
||||
Custom128 = 0x0FE00080,
|
||||
|
||||
/*### Unknown ###*/
|
||||
Unknown1 = 0x0FF00001,
|
||||
Unknown2 = 0x0FF00002,
|
||||
Unknown3 = 0x0FF00003,
|
||||
Unknown4 = 0x0FF00004,
|
||||
Unknown5 = 0x0FF00005,
|
||||
Unknown6 = 0x0FF00006,
|
||||
Unknown7 = 0x0FF00007,
|
||||
Unknown8 = 0x0FF00008,
|
||||
Unknown9 = 0x0FF00009,
|
||||
Unknown10 = 0x0FF0000A,
|
||||
Unknown11 = 0x0FF0000B,
|
||||
Unknown12 = 0x0FF0000C,
|
||||
Unknown13 = 0x0FF0000D,
|
||||
Unknown14 = 0x0FF0000E,
|
||||
Unknown15 = 0x0FF0000F,
|
||||
Unknown16 = 0x0FF00010,
|
||||
Unknown17 = 0x0FF00011,
|
||||
Unknown18 = 0x0FF00012,
|
||||
Unknown19 = 0x0FF00013,
|
||||
Unknown20 = 0x0FF00014,
|
||||
Unknown21 = 0x0FF00015,
|
||||
Unknown22 = 0x0FF00016,
|
||||
Unknown23 = 0x0FF00017,
|
||||
Unknown24 = 0x0FF00018,
|
||||
Unknown25 = 0x0FF00019,
|
||||
Unknown26 = 0x0FF0001A,
|
||||
Unknown27 = 0x0FF0001B,
|
||||
Unknown28 = 0x0FF0001C,
|
||||
Unknown29 = 0x0FF0001D,
|
||||
Unknown30 = 0x0FF0001E,
|
||||
Unknown31 = 0x0FF0001F,
|
||||
Unknown32 = 0x0FF00020,
|
||||
Unknown33 = 0x0FF00021,
|
||||
Unknown34 = 0x0FF00022,
|
||||
Unknown35 = 0x0FF00023,
|
||||
Unknown36 = 0x0FF00024,
|
||||
Unknown37 = 0x0FF00025,
|
||||
Unknown38 = 0x0FF00026,
|
||||
Unknown39 = 0x0FF00027,
|
||||
Unknown40 = 0x0FF00028,
|
||||
Unknown41 = 0x0FF00029,
|
||||
Unknown42 = 0x0FF0002A,
|
||||
Unknown43 = 0x0FF0002B,
|
||||
Unknown44 = 0x0FF0002C,
|
||||
Unknown45 = 0x0FF0002D,
|
||||
Unknown46 = 0x0FF0002E,
|
||||
Unknown47 = 0x0FF0002F,
|
||||
Unknown48 = 0x0FF00030,
|
||||
Unknown49 = 0x0FF00031,
|
||||
Unknown50 = 0x0FF00032,
|
||||
Unknown51 = 0x0FF00033,
|
||||
Unknown52 = 0x0FF00034,
|
||||
Unknown53 = 0x0FF00035,
|
||||
Unknown54 = 0x0FF00036,
|
||||
Unknown55 = 0x0FF00037,
|
||||
Unknown56 = 0x0FF00038,
|
||||
Unknown57 = 0x0FF00039,
|
||||
Unknown58 = 0x0FF0003A,
|
||||
Unknown59 = 0x0FF0003B,
|
||||
Unknown60 = 0x0FF0003C,
|
||||
Unknown61 = 0x0FF0003D,
|
||||
Unknown62 = 0x0FF0003E,
|
||||
Unknown63 = 0x0FF0003F,
|
||||
Unknown64 = 0x0FF00040,
|
||||
Unknown65 = 0x0FF00041,
|
||||
Unknown66 = 0x0FF00042,
|
||||
Unknown67 = 0x0FF00043,
|
||||
Unknown68 = 0x0FF00044,
|
||||
Unknown69 = 0x0FF00045,
|
||||
Unknown70 = 0x0FF00046,
|
||||
Unknown71 = 0x0FF00047,
|
||||
Unknown72 = 0x0FF00048,
|
||||
Unknown73 = 0x0FF00049,
|
||||
Unknown74 = 0x0FF0004A,
|
||||
Unknown75 = 0x0FF0004B,
|
||||
Unknown76 = 0x0FF0004C,
|
||||
Unknown77 = 0x0FF0004D,
|
||||
Unknown78 = 0x0FF0004E,
|
||||
Unknown79 = 0x0FF0004F,
|
||||
Unknown80 = 0x0FF00050,
|
||||
Unknown81 = 0x0FF00051,
|
||||
Unknown82 = 0x0FF00052,
|
||||
Unknown83 = 0x0FF00053,
|
||||
Unknown84 = 0x0FF00054,
|
||||
Unknown85 = 0x0FF00055,
|
||||
Unknown86 = 0x0FF00056,
|
||||
Unknown87 = 0x0FF00057,
|
||||
Unknown88 = 0x0FF00058,
|
||||
Unknown89 = 0x0FF00059,
|
||||
Unknown90 = 0x0FF0005A,
|
||||
Unknown91 = 0x0FF0005B,
|
||||
Unknown92 = 0x0FF0005C,
|
||||
Unknown93 = 0x0FF0005D,
|
||||
Unknown94 = 0x0FF0005E,
|
||||
Unknown95 = 0x0FF0005F,
|
||||
Unknown96 = 0x0FF00060,
|
||||
Unknown97 = 0x0FF00061,
|
||||
Unknown98 = 0x0FF00062,
|
||||
Unknown99 = 0x0FF00063,
|
||||
Unknown100 = 0x0FF00064,
|
||||
Unknown101 = 0x0FF00065,
|
||||
Unknown102 = 0x0FF00066,
|
||||
Unknown103 = 0x0FF00067,
|
||||
Unknown104 = 0x0FF00068,
|
||||
Unknown105 = 0x0FF00069,
|
||||
Unknown106 = 0x0FF0006A,
|
||||
Unknown107 = 0x0FF0006B,
|
||||
Unknown108 = 0x0FF0006C,
|
||||
Unknown109 = 0x0FF0006D,
|
||||
Unknown110 = 0x0FF0006E,
|
||||
Unknown111 = 0x0FF0006F,
|
||||
Unknown112 = 0x0FF00070,
|
||||
Unknown113 = 0x0FF00071,
|
||||
Unknown114 = 0x0FF00072,
|
||||
Unknown115 = 0x0FF00073,
|
||||
Unknown116 = 0x0FF00074,
|
||||
Unknown117 = 0x0FF00075,
|
||||
Unknown118 = 0x0FF00076,
|
||||
Unknown119 = 0x0FF00077,
|
||||
Unknown120 = 0x0FF00078,
|
||||
Unknown121 = 0x0FF00079,
|
||||
Unknown122 = 0x0FF0007A,
|
||||
Unknown123 = 0x0FF0007B,
|
||||
Unknown124 = 0x0FF0007C,
|
||||
Unknown125 = 0x0FF0007D,
|
||||
Unknown126 = 0x0FF0007E,
|
||||
Unknown127 = 0x0FF0007F,
|
||||
Unknown128 = 0x0FF00080,
|
||||
}
|
||||
}
|
||||
|
||||
@ -45,6 +45,7 @@ namespace RGB.NET.Devices.Asus
|
||||
|
||||
protected override void InitializeSDK()
|
||||
{
|
||||
// ReSharper disable once SuspiciousTypeConversion.Global
|
||||
_sdk = (IAuraSdk2)new AuraSdk();
|
||||
_sdk.SwitchMode();
|
||||
}
|
||||
@ -64,9 +65,9 @@ namespace RGB.NET.Devices.Asus
|
||||
AsusDeviceType.VGA_RGB => new AsusGraphicsCardRGBDevice(new AsusRGBDeviceInfo(RGBDeviceType.GraphicsCard, device), GetUpdateTrigger()),
|
||||
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), GetUpdateTrigger()),
|
||||
AsusDeviceType.NB_KB_RGB => new AsusKeyboardRGBDevice(new AsusKeyboardRGBDeviceInfo(device), GetUpdateTrigger()),
|
||||
AsusDeviceType.NB_KB_4ZONE_RGB => new AsusKeyboardRGBDevice(new AsusKeyboardRGBDeviceInfo(device), GetUpdateTrigger()),
|
||||
AsusDeviceType.KEYBOARD_RGB => new AsusKeyboardRGBDevice(new AsusKeyboardRGBDeviceInfo(device), LedMappings.KeyboardMapping, 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()),
|
||||
_ => new AsusUnspecifiedRGBDevice(new AsusRGBDeviceInfo(RGBDeviceType.Unknown, device), LedId.Custom1, GetUpdateTrigger())
|
||||
};
|
||||
|
||||
@ -2,7 +2,10 @@
|
||||
|
||||
namespace RGB.NET.Devices.Asus
|
||||
{
|
||||
internal enum AsusLedId : ushort
|
||||
/// <summary>
|
||||
/// Represents a LED ID as they are known by the ASUS SDK
|
||||
/// </summary>
|
||||
public enum AsusLedId : ushort
|
||||
{
|
||||
KEY_ESCAPE = 0x01,
|
||||
KEY_1 = 0x02,
|
||||
@ -156,5 +159,6 @@ namespace RGB.NET.Devices.Asus
|
||||
UNDOCUMENTED_3 = 0x101,
|
||||
UNDOCUMENTED_4 = 0x102,
|
||||
UNDOCUMENTED_5 = 0x103,
|
||||
UNDOCUMENTED_6 = 0xDA, // Bottom-left function on the ROG Zephyrus Duo 15
|
||||
}
|
||||
}
|
||||
|
||||
18
RGB.NET.Devices.Asus/Enum/AsusLedType.cs
Normal file
18
RGB.NET.Devices.Asus/Enum/AsusLedType.cs
Normal file
@ -0,0 +1,18 @@
|
||||
namespace RGB.NET.Devices.Asus
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents a type of ASUS LED as known by the ASUS SDK
|
||||
/// </summary>
|
||||
public enum AsusLedType
|
||||
{
|
||||
/// <summary>
|
||||
/// An ASUS LED that is present on a device's IAuraSyncKeyboard.Keys enumerable
|
||||
/// </summary>
|
||||
Key,
|
||||
|
||||
/// <summary>
|
||||
/// An ASUS LED that is present on a device's IAuraSyncDevice.Lights enumerable
|
||||
/// </summary>
|
||||
Light
|
||||
}
|
||||
}
|
||||
@ -42,28 +42,23 @@ namespace RGB.NET.Devices.Asus
|
||||
{
|
||||
if ((Device.Type == (uint)AsusDeviceType.KEYBOARD_RGB) || (Device.Type == (uint)AsusDeviceType.NB_KB_RGB))
|
||||
{
|
||||
foreach ((object key, Color value) in dataSet)
|
||||
if (Device is not IAuraSyncKeyboard keyboard)
|
||||
return;
|
||||
|
||||
foreach ((object customData, Color value) in dataSet)
|
||||
{
|
||||
AsusLedId index = (AsusLedId)key;
|
||||
if (Device is IAuraSyncKeyboard keyboard)
|
||||
(AsusLedType ledType, int id) = (AsusKeyboardLedCustomData)customData;
|
||||
if (ledType == AsusLedType.Key)
|
||||
{
|
||||
IAuraRgbLight light = index switch
|
||||
{
|
||||
//UK keyboard Layout
|
||||
AsusLedId.KEY_OEM_102 => keyboard.Lights[(int)((3 * keyboard.Width) + 13)],
|
||||
AsusLedId.UNDOCUMENTED_1 => keyboard.Lights[(int)((4 * keyboard.Width) + 1)],
|
||||
_ => keyboard.Key[(ushort)index]
|
||||
};
|
||||
|
||||
// Asus Strix Scope
|
||||
if (keyboard.Name == "Charm")
|
||||
light = index switch
|
||||
{
|
||||
AsusLedId.KEY_LWIN => keyboard.Lights[(int)((5 * keyboard.Width) + 2)],
|
||||
AsusLedId.KEY_LMENU => keyboard.Lights[(int)((5 * keyboard.Width) + 3)],
|
||||
_ => light
|
||||
};
|
||||
|
||||
IAuraRgbLight light = keyboard.Key[(ushort)id];
|
||||
(_, byte r, byte g, byte b) = value.GetRGBBytes();
|
||||
light.Red = r;
|
||||
light.Green = g;
|
||||
light.Blue = b;
|
||||
}
|
||||
else
|
||||
{
|
||||
IAuraRgbLight light = keyboard.Lights[id];
|
||||
(_, byte r, byte g, byte b) = value.GetRGBBytes();
|
||||
light.Red = r;
|
||||
light.Green = g;
|
||||
@ -88,8 +83,10 @@ namespace RGB.NET.Devices.Asus
|
||||
Device.Apply();
|
||||
}
|
||||
catch
|
||||
{ /* "The server threw an exception." seems to be a thing here ... */ }
|
||||
{ /* "The server threw an exception." seems to be a thing here ... */
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
@ -9,13 +9,15 @@ namespace RGB.NET.Devices.Asus
|
||||
#region Properties & Fields
|
||||
|
||||
// ReSharper disable InconsistentNaming
|
||||
private static readonly ManagementObjectSearcher? _systemModelSearcher;
|
||||
private static readonly ManagementObjectSearcher? _mainboardSearcher;
|
||||
private static readonly ManagementObjectSearcher? _graphicsCardSearcher;
|
||||
// ReSharper restore InconsistentNaming
|
||||
|
||||
private static string? _systemModelInfo;
|
||||
private static (string manufacturer, string model)? _mainboardInfo;
|
||||
private static string? _graphicsCardInfo;
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructors
|
||||
@ -24,6 +26,7 @@ namespace RGB.NET.Devices.Asus
|
||||
{
|
||||
if (OperatingSystem.IsWindows())
|
||||
{
|
||||
_systemModelSearcher = new ManagementObjectSearcher(@"root\CIMV2", "SELECT Model FROM Win32_ComputerSystem");
|
||||
_mainboardSearcher = new ManagementObjectSearcher(@"root\CIMV2", "SELECT Manufacturer,Product FROM Win32_BaseBoard");
|
||||
_graphicsCardSearcher = new ManagementObjectSearcher(@"root\CIMV2", "SELECT Name FROM Win32_VideoController");
|
||||
}
|
||||
@ -33,6 +36,20 @@ namespace RGB.NET.Devices.Asus
|
||||
|
||||
#region Methods
|
||||
|
||||
internal static string? GetSystemModelInfo()
|
||||
{
|
||||
if (!OperatingSystem.IsWindows()) return null;
|
||||
|
||||
if ((_systemModelInfo == null) && (_systemModelSearcher != null))
|
||||
foreach (ManagementBaseObject managementBaseObject in _systemModelSearcher.Get())
|
||||
{
|
||||
_systemModelInfo = managementBaseObject["Model"]?.ToString();
|
||||
break;
|
||||
}
|
||||
|
||||
return _systemModelInfo;
|
||||
}
|
||||
|
||||
internal static (string manufacturer, string model)? GetMainboardInfo()
|
||||
{
|
||||
if (!OperatingSystem.IsWindows()) return null;
|
||||
|
||||
@ -1,161 +1,189 @@
|
||||
using System.Collections.Generic;
|
||||
using RGB.NET.Core;
|
||||
using RGB.NET.Core;
|
||||
|
||||
namespace RGB.NET.Devices.Asus
|
||||
{
|
||||
internal static class AsusKeyboardLedMapping
|
||||
public static class LedMappings
|
||||
{
|
||||
public static readonly Dictionary<LedId, AsusLedId> MAPPING = new()
|
||||
{
|
||||
{ LedId.Keyboard_Escape, AsusLedId.KEY_ESCAPE },
|
||||
{ LedId.Keyboard_F1, AsusLedId.KEY_F1 },
|
||||
{ LedId.Keyboard_F2, AsusLedId.KEY_F2 },
|
||||
{ LedId.Keyboard_F3, AsusLedId.KEY_F3 },
|
||||
{ LedId.Keyboard_F4, AsusLedId.KEY_F4 },
|
||||
{ LedId.Keyboard_F5, AsusLedId.KEY_F5 },
|
||||
{ LedId.Keyboard_F6, AsusLedId.KEY_F6 },
|
||||
{ LedId.Keyboard_F7, AsusLedId.KEY_F7 },
|
||||
{ LedId.Keyboard_F8, AsusLedId.KEY_F8 },
|
||||
{ LedId.Keyboard_F9, AsusLedId.KEY_F9 },
|
||||
{ LedId.Keyboard_F10, AsusLedId.KEY_F10 },
|
||||
{ LedId.Keyboard_F11, AsusLedId.KEY_F11 },
|
||||
{ LedId.Keyboard_F12, AsusLedId.KEY_F12 },
|
||||
{ LedId.Keyboard_1, AsusLedId.KEY_1 },
|
||||
{ LedId.Keyboard_2, AsusLedId.KEY_2 },
|
||||
{ LedId.Keyboard_3, AsusLedId.KEY_3 },
|
||||
{ LedId.Keyboard_4, AsusLedId.KEY_4 },
|
||||
{ LedId.Keyboard_5, AsusLedId.KEY_5 },
|
||||
{ LedId.Keyboard_6, AsusLedId.KEY_6 },
|
||||
{ LedId.Keyboard_7, AsusLedId.KEY_7 },
|
||||
{ LedId.Keyboard_8, AsusLedId.KEY_8 },
|
||||
{ LedId.Keyboard_9, AsusLedId.KEY_9 },
|
||||
{ LedId.Keyboard_0, AsusLedId.KEY_0 },
|
||||
{ LedId.Keyboard_MinusAndUnderscore, AsusLedId.KEY_MINUS },
|
||||
{ LedId.Keyboard_EqualsAndPlus, AsusLedId.KEY_EQUALS },
|
||||
{ LedId.Keyboard_Backspace, AsusLedId.KEY_BACK },
|
||||
{ LedId.Keyboard_Tab, AsusLedId.KEY_TAB },
|
||||
{ LedId.Keyboard_Q, AsusLedId.KEY_Q },
|
||||
{ LedId.Keyboard_W, AsusLedId.KEY_W },
|
||||
{ LedId.Keyboard_E, AsusLedId.KEY_E },
|
||||
{ LedId.Keyboard_R, AsusLedId.KEY_R },
|
||||
{ LedId.Keyboard_T, AsusLedId.KEY_T },
|
||||
{ LedId.Keyboard_Y, AsusLedId.KEY_Y },
|
||||
{ LedId.Keyboard_U, AsusLedId.KEY_U },
|
||||
{ LedId.Keyboard_I, AsusLedId.KEY_I },
|
||||
{ LedId.Keyboard_O, AsusLedId.KEY_O },
|
||||
{ LedId.Keyboard_P, AsusLedId.KEY_P },
|
||||
{ LedId.Keyboard_BracketLeft, AsusLedId.KEY_LBRACKET },
|
||||
{ LedId.Keyboard_BracketRight, AsusLedId.KEY_RBRACKET },
|
||||
{ LedId.Keyboard_Enter, AsusLedId.KEY_RETURN },
|
||||
{ LedId.Keyboard_CapsLock, AsusLedId.KEY_CAPITAL },
|
||||
{ LedId.Keyboard_A, AsusLedId.KEY_A },
|
||||
{ LedId.Keyboard_S, AsusLedId.KEY_S },
|
||||
{ LedId.Keyboard_D, AsusLedId.KEY_D },
|
||||
{ LedId.Keyboard_F, AsusLedId.KEY_F },
|
||||
{ LedId.Keyboard_G, AsusLedId.KEY_G },
|
||||
{ LedId.Keyboard_H, AsusLedId.KEY_H },
|
||||
{ LedId.Keyboard_J, AsusLedId.KEY_J },
|
||||
{ LedId.Keyboard_K, AsusLedId.KEY_K },
|
||||
{ LedId.Keyboard_L, AsusLedId.KEY_L },
|
||||
{ LedId.Keyboard_SemicolonAndColon, AsusLedId.KEY_SEMICOLON },
|
||||
{ LedId.Keyboard_ApostropheAndDoubleQuote, AsusLedId.KEY_APOSTROPHE },
|
||||
{ LedId.Keyboard_GraveAccentAndTilde, AsusLedId.KEY_GRAVE },
|
||||
{ LedId.Keyboard_LeftShift, AsusLedId.KEY_LSHIFT },
|
||||
{ LedId.Keyboard_Backslash, AsusLedId.KEY_BACKSLASH },
|
||||
{ LedId.Keyboard_Z, AsusLedId.KEY_Z },
|
||||
{ LedId.Keyboard_X, AsusLedId.KEY_X },
|
||||
{ LedId.Keyboard_C, AsusLedId.KEY_C },
|
||||
{ LedId.Keyboard_V, AsusLedId.KEY_V },
|
||||
{ LedId.Keyboard_B, AsusLedId.KEY_B },
|
||||
{ LedId.Keyboard_N, AsusLedId.KEY_N },
|
||||
{ LedId.Keyboard_M, AsusLedId.KEY_M },
|
||||
{ LedId.Keyboard_CommaAndLessThan, AsusLedId.KEY_COMMA },
|
||||
{ LedId.Keyboard_PeriodAndBiggerThan, AsusLedId.KEY_PERIOD },
|
||||
{ LedId.Keyboard_SlashAndQuestionMark, AsusLedId.KEY_SLASH },
|
||||
{ LedId.Keyboard_RightShift, AsusLedId.KEY_RSHIFT },
|
||||
{ LedId.Keyboard_LeftCtrl, AsusLedId.KEY_LCONTROL },
|
||||
{ LedId.Keyboard_LeftGui, AsusLedId.KEY_LWIN },
|
||||
{ LedId.Keyboard_LeftAlt, AsusLedId.KEY_LMENU },
|
||||
{ LedId.Keyboard_Space, AsusLedId.KEY_SPACE },
|
||||
{ LedId.Keyboard_RightAlt, AsusLedId.KEY_RMENU },
|
||||
{ LedId.Keyboard_RightGui, AsusLedId.KEY_RWIN },
|
||||
{ LedId.Keyboard_Application, AsusLedId.KEY_APPS },
|
||||
{ LedId.Keyboard_RightCtrl, AsusLedId.KEY_RCONTROL },
|
||||
{ LedId.Keyboard_PrintScreen, AsusLedId.KEY_SYSRQ },
|
||||
{ LedId.Keyboard_ScrollLock, AsusLedId.KEY_SCROLL },
|
||||
{ LedId.Keyboard_PauseBreak, AsusLedId.KEY_PAUSE },
|
||||
{ LedId.Keyboard_Insert, AsusLedId.KEY_INSERT },
|
||||
{ LedId.Keyboard_Home, AsusLedId.KEY_HOME },
|
||||
{ LedId.Keyboard_PageUp, AsusLedId.KEY_PRIOR },
|
||||
{ LedId.Keyboard_Delete, AsusLedId.KEY_DELETE },
|
||||
{ LedId.Keyboard_End, AsusLedId.KEY_END },
|
||||
{ LedId.Keyboard_PageDown, AsusLedId.KEY_NEXT },
|
||||
{ LedId.Keyboard_ArrowUp, AsusLedId.KEY_UP },
|
||||
{ LedId.Keyboard_ArrowLeft, AsusLedId.KEY_LEFT },
|
||||
{ LedId.Keyboard_ArrowDown, AsusLedId.KEY_DOWN },
|
||||
{ LedId.Keyboard_ArrowRight, AsusLedId.KEY_RIGHT },
|
||||
{ LedId.Keyboard_NumLock, AsusLedId.KEY_NUMLOCK },
|
||||
{ LedId.Keyboard_NumSlash, AsusLedId.KEY_DIVIDE },
|
||||
{ LedId.Keyboard_NumAsterisk, AsusLedId.KEY_MULTIPLY },
|
||||
{ LedId.Keyboard_NumMinus, AsusLedId.KEY_SUBTRACT },
|
||||
{ LedId.Keyboard_Num7, AsusLedId.KEY_NUMPAD7 },
|
||||
{ LedId.Keyboard_Num8, AsusLedId.KEY_NUMPAD8 },
|
||||
{ LedId.Keyboard_Num9, AsusLedId.KEY_NUMPAD9 },
|
||||
{ LedId.Keyboard_NumPeriodAndDelete, AsusLedId.KEY_DECIMAL },
|
||||
{ LedId.Keyboard_NumPlus, AsusLedId.KEY_ADD },
|
||||
{ LedId.Keyboard_Num4, AsusLedId.KEY_NUMPAD4 },
|
||||
{ LedId.Keyboard_Num5, AsusLedId.KEY_NUMPAD5 },
|
||||
{ LedId.Keyboard_Num6, AsusLedId.KEY_NUMPAD6 },
|
||||
{ LedId.Keyboard_Num1, AsusLedId.KEY_NUMPAD1 },
|
||||
{ LedId.Keyboard_Num2, AsusLedId.KEY_NUMPAD2 },
|
||||
{ LedId.Keyboard_Num3, AsusLedId.KEY_NUMPAD3 },
|
||||
{ LedId.Keyboard_Num0, AsusLedId.KEY_NUMPAD0 },
|
||||
{ LedId.Keyboard_NumEnter, AsusLedId.KEY_NUMPADENTER },
|
||||
{ LedId.Keyboard_NonUsBackslash, AsusLedId.UNDOCUMENTED_1 },
|
||||
{ LedId.Keyboard_NonUsTilde, AsusLedId.UNDOCUMENTED_2 },
|
||||
{ LedId.Keyboard_NumComma, AsusLedId.KEY_NUMPADCOMMA },
|
||||
{ LedId.Logo, AsusLedId.UNDOCUMENTED_3 },
|
||||
{ LedId.Keyboard_Custom1, AsusLedId.UNDOCUMENTED_4 },
|
||||
{ LedId.Keyboard_Custom2, AsusLedId.UNDOCUMENTED_5 },
|
||||
{ LedId.Keyboard_Custom3, AsusLedId.KEY_F13 },
|
||||
{ LedId.Keyboard_Custom4, AsusLedId.KEY_F14 },
|
||||
{ LedId.Keyboard_Custom5, AsusLedId.KEY_F15 },
|
||||
{ LedId.Keyboard_Custom6, AsusLedId.KEY_KANA },
|
||||
{ LedId.Keyboard_Custom7, AsusLedId.KEY_ABNT_C1 },
|
||||
{ LedId.Keyboard_Custom8, AsusLedId.KEY_CONVERT },
|
||||
{ LedId.Keyboard_Custom9, AsusLedId.KEY_NOCONVERT },
|
||||
{ LedId.Keyboard_Custom10, AsusLedId.KEY_YEN },
|
||||
{ LedId.Keyboard_Custom11, AsusLedId.KEY_ABNT_C2 },
|
||||
{ LedId.Keyboard_Custom12, AsusLedId.KEY_NUMPADEQUALS },
|
||||
{ LedId.Keyboard_Custom13, AsusLedId.KEY_CIRCUMFLEX },
|
||||
{ LedId.Keyboard_Custom14, AsusLedId.KEY_AT },
|
||||
{ LedId.Keyboard_Custom15, AsusLedId.KEY_COLON },
|
||||
{ LedId.Keyboard_Custom16, AsusLedId.KEY_UNDERLINE },
|
||||
{ LedId.Keyboard_Custom17, AsusLedId.KEY_KANJI },
|
||||
{ LedId.Keyboard_Custom18, AsusLedId.KEY_STOP },
|
||||
{ LedId.Keyboard_Custom19, AsusLedId.KEY_AX },
|
||||
{ LedId.Keyboard_Custom20, AsusLedId.KEY_UNLABELED },
|
||||
{ LedId.Keyboard_Custom21, AsusLedId.KEY_NEXTTRACK },
|
||||
{ LedId.Keyboard_Custom22, AsusLedId.KEY_CALCULATOR },
|
||||
{ LedId.Keyboard_Custom23, AsusLedId.KEY_POWER },
|
||||
{ LedId.Keyboard_Custom24, AsusLedId.KEY_SLEEP },
|
||||
{ LedId.Keyboard_Custom25, AsusLedId.KEY_WAKE },
|
||||
{ LedId.Keyboard_Custom26, AsusLedId.KEY_WEBSEARCH },
|
||||
{ LedId.Keyboard_Custom27, AsusLedId.KEY_WEBFAVORITES },
|
||||
{ LedId.Keyboard_Custom28, AsusLedId.KEY_WEBREFRESH },
|
||||
{ LedId.Keyboard_Custom29, AsusLedId.KEY_WEBSTOP },
|
||||
{ LedId.Keyboard_Custom30, AsusLedId.KEY_WEBFORWARD },
|
||||
{ LedId.Keyboard_Custom31, AsusLedId.KEY_WEBHOME },
|
||||
{ LedId.Keyboard_Custom32, AsusLedId.KEY_WEBBACK },
|
||||
{ LedId.Keyboard_Custom33, AsusLedId.KEY_MYCOMPUTER },
|
||||
{ LedId.Keyboard_Custom34, AsusLedId.KEY_MAIL },
|
||||
{ LedId.Keyboard_Custom35, AsusLedId.KEY_MEDIASELECT },
|
||||
{ LedId.Keyboard_Custom36, AsusLedId.KEY_FN },
|
||||
{ LedId.Keyboard_MediaMute, AsusLedId.KEY_MUTE },
|
||||
{ LedId.Keyboard_MediaPlay, AsusLedId.KEY_PLAYPAUSE },
|
||||
{ LedId.Keyboard_MediaStop, AsusLedId.KEY_MEDIASTOP },
|
||||
{ LedId.Keyboard_MediaVolumeDown, AsusLedId.KEY_VOLUMEDOWN },
|
||||
{ LedId.Keyboard_MediaVolumeUp, AsusLedId.KEY_VOLUMEUP },
|
||||
};
|
||||
/// <summary>
|
||||
/// A LED mapping containing ASUS keyboard LED IDs
|
||||
/// </summary>
|
||||
public static readonly LedMapping<AsusLedId> KeyboardMapping =
|
||||
new()
|
||||
{
|
||||
{LedId.Keyboard_Escape, AsusLedId.KEY_ESCAPE},
|
||||
{LedId.Keyboard_F1, AsusLedId.KEY_F1},
|
||||
{LedId.Keyboard_F2, AsusLedId.KEY_F2},
|
||||
{LedId.Keyboard_F3, AsusLedId.KEY_F3},
|
||||
{LedId.Keyboard_F4, AsusLedId.KEY_F4},
|
||||
{LedId.Keyboard_F5, AsusLedId.KEY_F5},
|
||||
{LedId.Keyboard_F6, AsusLedId.KEY_F6},
|
||||
{LedId.Keyboard_F7, AsusLedId.KEY_F7},
|
||||
{LedId.Keyboard_F8, AsusLedId.KEY_F8},
|
||||
{LedId.Keyboard_F9, AsusLedId.KEY_F9},
|
||||
{LedId.Keyboard_F10, AsusLedId.KEY_F10},
|
||||
{LedId.Keyboard_F11, AsusLedId.KEY_F11},
|
||||
{LedId.Keyboard_F12, AsusLedId.KEY_F12},
|
||||
{LedId.Keyboard_1, AsusLedId.KEY_1},
|
||||
{LedId.Keyboard_2, AsusLedId.KEY_2},
|
||||
{LedId.Keyboard_3, AsusLedId.KEY_3},
|
||||
{LedId.Keyboard_4, AsusLedId.KEY_4},
|
||||
{LedId.Keyboard_5, AsusLedId.KEY_5},
|
||||
{LedId.Keyboard_6, AsusLedId.KEY_6},
|
||||
{LedId.Keyboard_7, AsusLedId.KEY_7},
|
||||
{LedId.Keyboard_8, AsusLedId.KEY_8},
|
||||
{LedId.Keyboard_9, AsusLedId.KEY_9},
|
||||
{LedId.Keyboard_0, AsusLedId.KEY_0},
|
||||
{LedId.Keyboard_MinusAndUnderscore, AsusLedId.KEY_MINUS},
|
||||
{LedId.Keyboard_EqualsAndPlus, AsusLedId.KEY_EQUALS},
|
||||
{LedId.Keyboard_Backspace, AsusLedId.KEY_BACK},
|
||||
{LedId.Keyboard_Tab, AsusLedId.KEY_TAB},
|
||||
{LedId.Keyboard_Q, AsusLedId.KEY_Q},
|
||||
{LedId.Keyboard_W, AsusLedId.KEY_W},
|
||||
{LedId.Keyboard_E, AsusLedId.KEY_E},
|
||||
{LedId.Keyboard_R, AsusLedId.KEY_R},
|
||||
{LedId.Keyboard_T, AsusLedId.KEY_T},
|
||||
{LedId.Keyboard_Y, AsusLedId.KEY_Y},
|
||||
{LedId.Keyboard_U, AsusLedId.KEY_U},
|
||||
{LedId.Keyboard_I, AsusLedId.KEY_I},
|
||||
{LedId.Keyboard_O, AsusLedId.KEY_O},
|
||||
{LedId.Keyboard_P, AsusLedId.KEY_P},
|
||||
{LedId.Keyboard_BracketLeft, AsusLedId.KEY_LBRACKET},
|
||||
{LedId.Keyboard_BracketRight, AsusLedId.KEY_RBRACKET},
|
||||
{LedId.Keyboard_Enter, AsusLedId.KEY_RETURN},
|
||||
{LedId.Keyboard_CapsLock, AsusLedId.KEY_CAPITAL},
|
||||
{LedId.Keyboard_A, AsusLedId.KEY_A},
|
||||
{LedId.Keyboard_S, AsusLedId.KEY_S},
|
||||
{LedId.Keyboard_D, AsusLedId.KEY_D},
|
||||
{LedId.Keyboard_F, AsusLedId.KEY_F},
|
||||
{LedId.Keyboard_G, AsusLedId.KEY_G},
|
||||
{LedId.Keyboard_H, AsusLedId.KEY_H},
|
||||
{LedId.Keyboard_J, AsusLedId.KEY_J},
|
||||
{LedId.Keyboard_K, AsusLedId.KEY_K},
|
||||
{LedId.Keyboard_L, AsusLedId.KEY_L},
|
||||
{LedId.Keyboard_SemicolonAndColon, AsusLedId.KEY_SEMICOLON},
|
||||
{LedId.Keyboard_ApostropheAndDoubleQuote, AsusLedId.KEY_APOSTROPHE},
|
||||
{LedId.Keyboard_GraveAccentAndTilde, AsusLedId.KEY_GRAVE},
|
||||
{LedId.Keyboard_LeftShift, AsusLedId.KEY_LSHIFT},
|
||||
{LedId.Keyboard_Backslash, AsusLedId.KEY_BACKSLASH},
|
||||
{LedId.Keyboard_Z, AsusLedId.KEY_Z},
|
||||
{LedId.Keyboard_X, AsusLedId.KEY_X},
|
||||
{LedId.Keyboard_C, AsusLedId.KEY_C},
|
||||
{LedId.Keyboard_V, AsusLedId.KEY_V},
|
||||
{LedId.Keyboard_B, AsusLedId.KEY_B},
|
||||
{LedId.Keyboard_N, AsusLedId.KEY_N},
|
||||
{LedId.Keyboard_M, AsusLedId.KEY_M},
|
||||
{LedId.Keyboard_CommaAndLessThan, AsusLedId.KEY_COMMA},
|
||||
{LedId.Keyboard_PeriodAndBiggerThan, AsusLedId.KEY_PERIOD},
|
||||
{LedId.Keyboard_SlashAndQuestionMark, AsusLedId.KEY_SLASH},
|
||||
{LedId.Keyboard_RightShift, AsusLedId.KEY_RSHIFT},
|
||||
{LedId.Keyboard_LeftCtrl, AsusLedId.KEY_LCONTROL},
|
||||
{LedId.Keyboard_LeftGui, AsusLedId.KEY_LWIN},
|
||||
{LedId.Keyboard_LeftAlt, AsusLedId.KEY_LMENU},
|
||||
{LedId.Keyboard_Space, AsusLedId.KEY_SPACE},
|
||||
{LedId.Keyboard_RightAlt, AsusLedId.KEY_RMENU},
|
||||
{LedId.Keyboard_RightGui, AsusLedId.KEY_RWIN},
|
||||
{LedId.Keyboard_Application, AsusLedId.KEY_APPS},
|
||||
{LedId.Keyboard_RightCtrl, AsusLedId.KEY_RCONTROL},
|
||||
{LedId.Keyboard_PrintScreen, AsusLedId.KEY_SYSRQ},
|
||||
{LedId.Keyboard_ScrollLock, AsusLedId.KEY_SCROLL},
|
||||
{LedId.Keyboard_PauseBreak, AsusLedId.KEY_PAUSE},
|
||||
{LedId.Keyboard_Insert, AsusLedId.KEY_INSERT},
|
||||
{LedId.Keyboard_Home, AsusLedId.KEY_HOME},
|
||||
{LedId.Keyboard_PageUp, AsusLedId.KEY_PRIOR},
|
||||
{LedId.Keyboard_Delete, AsusLedId.KEY_DELETE},
|
||||
{LedId.Keyboard_End, AsusLedId.KEY_END},
|
||||
{LedId.Keyboard_PageDown, AsusLedId.KEY_NEXT},
|
||||
{LedId.Keyboard_ArrowUp, AsusLedId.KEY_UP},
|
||||
{LedId.Keyboard_ArrowLeft, AsusLedId.KEY_LEFT},
|
||||
{LedId.Keyboard_ArrowDown, AsusLedId.KEY_DOWN},
|
||||
{LedId.Keyboard_ArrowRight, AsusLedId.KEY_RIGHT},
|
||||
{LedId.Keyboard_NumLock, AsusLedId.KEY_NUMLOCK},
|
||||
{LedId.Keyboard_NumSlash, AsusLedId.KEY_DIVIDE},
|
||||
{LedId.Keyboard_NumAsterisk, AsusLedId.KEY_MULTIPLY},
|
||||
{LedId.Keyboard_NumMinus, AsusLedId.KEY_SUBTRACT},
|
||||
{LedId.Keyboard_Num7, AsusLedId.KEY_NUMPAD7},
|
||||
{LedId.Keyboard_Num8, AsusLedId.KEY_NUMPAD8},
|
||||
{LedId.Keyboard_Num9, AsusLedId.KEY_NUMPAD9},
|
||||
{LedId.Keyboard_NumPeriodAndDelete, AsusLedId.KEY_DECIMAL},
|
||||
{LedId.Keyboard_NumPlus, AsusLedId.KEY_ADD},
|
||||
{LedId.Keyboard_Num4, AsusLedId.KEY_NUMPAD4},
|
||||
{LedId.Keyboard_Num5, AsusLedId.KEY_NUMPAD5},
|
||||
{LedId.Keyboard_Num6, AsusLedId.KEY_NUMPAD6},
|
||||
{LedId.Keyboard_Num1, AsusLedId.KEY_NUMPAD1},
|
||||
{LedId.Keyboard_Num2, AsusLedId.KEY_NUMPAD2},
|
||||
{LedId.Keyboard_Num3, AsusLedId.KEY_NUMPAD3},
|
||||
{LedId.Keyboard_Num0, AsusLedId.KEY_NUMPAD0},
|
||||
{LedId.Keyboard_NumEnter, AsusLedId.KEY_NUMPADENTER},
|
||||
{LedId.Keyboard_NonUsBackslash, AsusLedId.UNDOCUMENTED_1},
|
||||
{LedId.Keyboard_NonUsTilde, AsusLedId.UNDOCUMENTED_2},
|
||||
{LedId.Keyboard_NumComma, AsusLedId.KEY_NUMPADCOMMA},
|
||||
{LedId.Logo, AsusLedId.UNDOCUMENTED_3},
|
||||
{LedId.Keyboard_Function, AsusLedId.KEY_FN},
|
||||
{LedId.Keyboard_MediaMute, AsusLedId.KEY_MUTE},
|
||||
{LedId.Keyboard_MediaPlay, AsusLedId.KEY_PLAYPAUSE},
|
||||
{LedId.Keyboard_MediaStop, AsusLedId.KEY_MEDIASTOP},
|
||||
{LedId.Keyboard_MediaVolumeDown, AsusLedId.KEY_VOLUMEDOWN},
|
||||
{LedId.Keyboard_MediaVolumeUp, AsusLedId.KEY_VOLUMEUP},
|
||||
{LedId.Keyboard_Custom1, AsusLedId.KEY_F13},
|
||||
{LedId.Keyboard_Custom2, AsusLedId.KEY_F14},
|
||||
{LedId.Keyboard_Custom3, AsusLedId.KEY_F15},
|
||||
{LedId.Keyboard_Custom4, AsusLedId.KEY_KANA},
|
||||
{LedId.Keyboard_Custom5, AsusLedId.KEY_ABNT_C1},
|
||||
{LedId.Keyboard_Custom6, AsusLedId.KEY_CONVERT},
|
||||
{LedId.Keyboard_Custom7, AsusLedId.KEY_NOCONVERT},
|
||||
{LedId.Keyboard_Custom8, AsusLedId.KEY_YEN},
|
||||
{LedId.Keyboard_Custom9, AsusLedId.KEY_ABNT_C2},
|
||||
{LedId.Keyboard_Custom10, AsusLedId.KEY_NUMPADEQUALS},
|
||||
{LedId.Keyboard_Custom11, AsusLedId.KEY_CIRCUMFLEX},
|
||||
{LedId.Keyboard_Custom12, AsusLedId.KEY_AT},
|
||||
{LedId.Keyboard_Custom13, AsusLedId.KEY_COLON},
|
||||
{LedId.Keyboard_Custom14, AsusLedId.KEY_UNDERLINE},
|
||||
{LedId.Keyboard_Custom15, AsusLedId.KEY_KANJI},
|
||||
{LedId.Keyboard_Custom16, AsusLedId.KEY_STOP},
|
||||
{LedId.Keyboard_Custom17, AsusLedId.KEY_AX},
|
||||
{LedId.Keyboard_Custom18, AsusLedId.KEY_UNLABELED},
|
||||
{LedId.Keyboard_Custom19, AsusLedId.KEY_NEXTTRACK},
|
||||
{LedId.Keyboard_Custom20, AsusLedId.KEY_CALCULATOR},
|
||||
{LedId.Keyboard_Custom21, AsusLedId.KEY_POWER},
|
||||
{LedId.Keyboard_Custom22, AsusLedId.KEY_SLEEP},
|
||||
{LedId.Keyboard_Custom23, AsusLedId.KEY_WAKE},
|
||||
{LedId.Keyboard_Custom24, AsusLedId.KEY_WEBSEARCH},
|
||||
{LedId.Keyboard_Custom25, AsusLedId.KEY_WEBFAVORITES},
|
||||
{LedId.Keyboard_Custom26, AsusLedId.KEY_WEBREFRESH},
|
||||
{LedId.Keyboard_Custom27, AsusLedId.KEY_WEBSTOP},
|
||||
{LedId.Keyboard_Custom28, AsusLedId.KEY_WEBFORWARD},
|
||||
{LedId.Keyboard_Custom29, AsusLedId.KEY_WEBHOME},
|
||||
{LedId.Keyboard_Custom30, AsusLedId.KEY_WEBBACK},
|
||||
{LedId.Keyboard_Custom31, AsusLedId.KEY_MYCOMPUTER},
|
||||
{LedId.Keyboard_Custom32, AsusLedId.KEY_MAIL},
|
||||
{LedId.Keyboard_Custom33, AsusLedId.KEY_MEDIASELECT},
|
||||
{LedId.Keyboard_Custom34, AsusLedId.UNDOCUMENTED_4},
|
||||
{LedId.Keyboard_Custom35, AsusLedId.UNDOCUMENTED_5},
|
||||
{LedId.Keyboard_Custom36, AsusLedId.UNDOCUMENTED_6}
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
/// A LED mapping containing extra lights for the ROG Zephyrus Duo 15
|
||||
/// <para>
|
||||
/// 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 LED IDs to the index of these lights.
|
||||
/// </para>
|
||||
/// <para>You may add more of these by further populating <see cref="AsusKeyboardRGBDevice.ExtraLedMappings"/>.</para>
|
||||
/// </summary>
|
||||
public static readonly LedMapping<int> ROGZephyrusDuo15 =
|
||||
new()
|
||||
{
|
||||
{LedId.Keyboard_Custom50, 39}, // Mapping starts at Custom50 to avoid possible conflicts with KeyboardMapping above
|
||||
{LedId.Keyboard_Custom51, 40},
|
||||
{LedId.Keyboard_Custom52, 55},
|
||||
{LedId.Keyboard_Custom53, 57},
|
||||
{LedId.Keyboard_Custom54, 97},
|
||||
{LedId.Keyboard_Custom55, 99},
|
||||
{LedId.Keyboard_Custom56, 118},
|
||||
{LedId.Keyboard_Custom57, 120},
|
||||
{LedId.Keyboard_Custom58, 130},
|
||||
{LedId.Keyboard_Custom59, 131},
|
||||
{LedId.Keyboard_Custom60, 133},
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,10 +1,21 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text.RegularExpressions;
|
||||
using AuraServiceLib;
|
||||
using RGB.NET.Core;
|
||||
|
||||
namespace RGB.NET.Devices.Asus
|
||||
{
|
||||
/// <summary>
|
||||
/// Represents custom LED data for ASUS keyboard LEDs.
|
||||
/// </summary>
|
||||
public record AsusKeyboardLedCustomData(AsusLedType LedType, int Id);
|
||||
|
||||
/// <summary>
|
||||
/// Represents a record containing regex that matches to an ASUS device model and a LED mapping mapping to Light indexes.
|
||||
/// </summary>
|
||||
public record AsusKeyboardExtraMapping(Regex Regex, LedMapping<int> LedMapping);
|
||||
|
||||
/// <inheritdoc cref="AsusRGBDevice{TDeviceInfo}" />
|
||||
/// <summary>
|
||||
/// Represents a Asus keyboard.
|
||||
@ -13,8 +24,22 @@ namespace RGB.NET.Devices.Asus
|
||||
{
|
||||
#region Properties & Fields
|
||||
|
||||
private readonly LedMapping<AsusLedId>? _ledMapping;
|
||||
private Dictionary<LedId, AsusLedId> _ledAsusLed = new();
|
||||
private Dictionary<LedId, int> _ledAsusLights = new();
|
||||
|
||||
IKeyboardDeviceInfo IKeyboard.DeviceInfo => DeviceInfo;
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets a list of extra LED mappings to apply to modes that match the provided regex
|
||||
/// <para>Note: These LED mappings should be based on light indexes</para>
|
||||
/// </summary>
|
||||
public static List<AsusKeyboardExtraMapping> ExtraLedMappings =
|
||||
new()
|
||||
{
|
||||
new AsusKeyboardExtraMapping(new Regex("(ROG Zephyrus Duo 15).*?"), LedMappings.ROGZephyrusDuo15)
|
||||
};
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructors
|
||||
@ -24,9 +49,11 @@ namespace RGB.NET.Devices.Asus
|
||||
/// Initializes a new instance of the <see cref="T:RGB.NET.Devices.Asus.AsusKeyboardRGBDevice" /> class.
|
||||
/// </summary>
|
||||
/// <param name="info">The specific information provided by Asus for the keyboard.</param>
|
||||
internal AsusKeyboardRGBDevice(AsusKeyboardRGBDeviceInfo info, IDeviceUpdateTrigger updateTrigger)
|
||||
internal AsusKeyboardRGBDevice(AsusKeyboardRGBDeviceInfo info, LedMapping<AsusLedId>? ledMapping, IDeviceUpdateTrigger updateTrigger)
|
||||
: base(info, updateTrigger)
|
||||
{
|
||||
this._ledMapping = ledMapping;
|
||||
|
||||
InitializeLayout();
|
||||
}
|
||||
|
||||
@ -36,18 +63,29 @@ namespace RGB.NET.Devices.Asus
|
||||
|
||||
private void InitializeLayout()
|
||||
{
|
||||
Dictionary<AsusLedId, LedId> reversedMapping = AsusKeyboardLedMapping.MAPPING.ToDictionary(x => x.Value, x => x.Key);
|
||||
|
||||
if (DeviceInfo.Device.Type != (uint)AsusDeviceType.NB_KB_4ZONE_RGB)
|
||||
{
|
||||
int pos = 0;
|
||||
int unknownLed = (int)LedId.Unknown1;
|
||||
|
||||
foreach (IAuraRgbKey key in ((IAuraSyncKeyboard)DeviceInfo.Device).Keys)
|
||||
AddLed(reversedMapping[(AsusLedId)key.Code], new Point(pos++ * 19, 0), new Size(19, 19));
|
||||
{
|
||||
if ((_ledMapping != null) && _ledMapping.TryGetValue((AsusLedId)key.Code, out LedId ledId))
|
||||
AddAsusLed((AsusLedId)key.Code, ledId, new Point(pos++ * 19, 0), new Size(19, 19));
|
||||
else
|
||||
{
|
||||
AddAsusLed((AsusLedId)key.Code, (LedId)unknownLed, new Point(pos++ * 19, 0), new Size(19, 19));
|
||||
unknownLed++;
|
||||
}
|
||||
}
|
||||
|
||||
//UK Layout
|
||||
AddLed(reversedMapping[AsusLedId.KEY_OEM_102], new Point(pos++ * 19, 0), new Size(19, 19));
|
||||
|
||||
AddLed(reversedMapping[AsusLedId.UNDOCUMENTED_1], new Point(pos * 19, 0), new Size(19, 19));
|
||||
// Add extra LED mapping if required
|
||||
AsusKeyboardExtraMapping? extraMapping = ExtraLedMappings.FirstOrDefault(m => m.Regex.IsMatch(this.DeviceInfo.Model));
|
||||
if (extraMapping != null)
|
||||
{
|
||||
foreach ((LedId ledId, int lightIndex) in extraMapping.LedMapping)
|
||||
AddAsusLed(lightIndex, ledId, new Point(pos++ * 19, 0), new Size(19, 19));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -60,10 +98,33 @@ namespace RGB.NET.Devices.Asus
|
||||
/// <inheritdoc />
|
||||
protected override object? GetLedCustomData(LedId ledId)
|
||||
{
|
||||
if (DeviceInfo.Device.Type == (uint)AsusDeviceType.NB_KB_4ZONE_RGB)
|
||||
return ledId - LedId.Keyboard_Custom1;
|
||||
if (this._ledAsusLed.TryGetValue(ledId, out AsusLedId asusLedId))
|
||||
return new AsusKeyboardLedCustomData(AsusLedType.Key, (int)asusLedId);
|
||||
if (this._ledAsusLights.TryGetValue(ledId, out int lightIndex))
|
||||
return new AsusKeyboardLedCustomData(AsusLedType.Light, lightIndex);
|
||||
return null;
|
||||
}
|
||||
|
||||
return AsusKeyboardLedMapping.MAPPING[ledId];
|
||||
/// <summary>
|
||||
/// Add an ASUS LED by its LED ID
|
||||
/// </summary>
|
||||
private void AddAsusLed(AsusLedId asusLedId, LedId ledId, Point position, Size size)
|
||||
{
|
||||
if (this._ledAsusLed.TryGetValue(ledId, out AsusLedId firstAsusLed))
|
||||
throw new RGBDeviceException($"Got LED '{ledId}' twice, first ASUS LED '{firstAsusLed}' "
|
||||
+ $"second ASUS LED '{asusLedId}' on device '{DeviceInfo.DeviceName}'");
|
||||
|
||||
this._ledAsusLed.Add(ledId, asusLedId);
|
||||
AddLed(ledId, position, size);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Add an ASUS LED by its light index
|
||||
/// </summary>
|
||||
private void AddAsusLed(int index, LedId ledId, Point position, Size size)
|
||||
{
|
||||
this._ledAsusLights.Add(ledId, index);
|
||||
AddLed(ledId, position, size);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
using AuraServiceLib;
|
||||
using System.Collections.Generic;
|
||||
using AuraServiceLib;
|
||||
using RGB.NET.Core;
|
||||
|
||||
namespace RGB.NET.Devices.Asus
|
||||
@ -10,6 +11,12 @@ namespace RGB.NET.Devices.Asus
|
||||
{
|
||||
#region Properties & Fields
|
||||
|
||||
/// <summary>
|
||||
/// The ASUS SDK returns useless names for notebook keyboards, possibly for others as well.
|
||||
/// Keep a list of those and rely on <see cref="WMIHelper.GetSystemModelInfo()"/> to get the real model
|
||||
/// </summary>
|
||||
private static List<string> GenericDeviceNames = new() {"NotebookKeyboard"};
|
||||
|
||||
/// <inheritdoc />
|
||||
public KeyboardLayoutType Layout => KeyboardLayoutType.Unknown;
|
||||
|
||||
@ -23,9 +30,18 @@ namespace RGB.NET.Devices.Asus
|
||||
/// </summary>
|
||||
/// <param name="device">The <see cref="IAuraSyncDevice"/> backing this RGB.NET device.</param>
|
||||
internal AsusKeyboardRGBDeviceInfo(IAuraSyncDevice device)
|
||||
: base(RGBDeviceType.Keyboard, device, device.Name)
|
||||
: base(RGBDeviceType.Keyboard, device, GetKeyboardModel(device.Name))
|
||||
{ }
|
||||
|
||||
#endregion
|
||||
|
||||
#region Methods
|
||||
|
||||
private static string? GetKeyboardModel(string deviceName)
|
||||
{
|
||||
return GenericDeviceNames.Contains(deviceName) ? WMIHelper.GetSystemModelInfo() : deviceName;
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user