mirror of
https://github.com/DarthAffe/RGB.NET.git
synced 2025-12-13 01:58:30 +00:00
Device Support
Asus strix scope tested Asus strix flare not tested Signed-off-by: Alex <ritt.alex@gmail.com>
This commit is contained in:
parent
0a378b3424
commit
03c8d35421
@ -48,14 +48,58 @@ namespace RGB.NET.Devices.Asus
|
||||
{
|
||||
try
|
||||
{
|
||||
foreach (KeyValuePair<object, Color> data in dataSet)
|
||||
if (Device.Type == 0x00080000 || Device.Type == 0x00081000)//Keyboard
|
||||
{
|
||||
int index = (int)data.Key;
|
||||
IAuraRgbLight light = Device.Lights[index];
|
||||
(_, byte r, byte g, byte b) = data.Value.GetRGBBytes();
|
||||
light.Red = r;
|
||||
light.Green = g;
|
||||
light.Blue = b;
|
||||
foreach (KeyValuePair<object, Color> data in dataSet)
|
||||
{
|
||||
ushort index = (ushort)data.Key;
|
||||
IAuraSyncKeyboard keyboard = (IAuraSyncKeyboard)Device;
|
||||
if (keyboard != null)
|
||||
{
|
||||
IAuraRgbLight light;
|
||||
//UK keyboard Layout
|
||||
if (index == 0x56)
|
||||
{
|
||||
light = keyboard.Lights[(int)(3 * keyboard.Width + 13)];
|
||||
}
|
||||
else if (index == 0x59)
|
||||
{
|
||||
light = keyboard.Lights[(int)(4 * keyboard.Width + 1)];
|
||||
}
|
||||
else
|
||||
{
|
||||
light = keyboard.Key[index];
|
||||
}
|
||||
// Asus Strix Scope
|
||||
if (keyboard.Name == "Charm")
|
||||
{
|
||||
if (index == 0XDB)
|
||||
{
|
||||
light = keyboard.Lights[(int)(5 * keyboard.Width + 2)];
|
||||
}
|
||||
else if (index == 0x38)
|
||||
{
|
||||
light = keyboard.Lights[(int)(5 * keyboard.Width + 3)];
|
||||
}
|
||||
}
|
||||
(_, byte r, byte g, byte b) = data.Value.GetRGBBytes();
|
||||
light.Red = r;
|
||||
light.Green = g;
|
||||
light.Blue = b;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach (KeyValuePair<object, Color> data in dataSet)
|
||||
{
|
||||
int index = (int)data.Key;
|
||||
IAuraRgbLight light = Device.Lights[index];
|
||||
(_, byte r, byte g, byte b) = data.Value.GetRGBBytes();
|
||||
light.Red = r;
|
||||
light.Green = g;
|
||||
light.Blue = b;
|
||||
}
|
||||
}
|
||||
|
||||
Device.Apply();
|
||||
@ -63,7 +107,6 @@ namespace RGB.NET.Devices.Asus
|
||||
catch (Exception ex)
|
||||
{ /* "The server threw an exception." seems to be a thing here ... */ }
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
using RGB.NET.Core;
|
||||
using AuraServiceLib;
|
||||
using RGB.NET.Core;
|
||||
|
||||
namespace RGB.NET.Devices.Asus
|
||||
{
|
||||
@ -22,22 +23,271 @@ namespace RGB.NET.Devices.Asus
|
||||
#endregion
|
||||
|
||||
#region Methods
|
||||
|
||||
private ushort asusCode;
|
||||
/// <inheritdoc />
|
||||
protected override void InitializeLayout()
|
||||
{
|
||||
//TODO DarthAffe 07.10.2017: This doesn't make sense at all ... Find someone with such a keyboard!
|
||||
int ledCount = DeviceInfo.Device.Lights.Count;
|
||||
for (int i = 0; i < ledCount; i++)
|
||||
InitializeLed(LedId.Keyboard_Escape + i, new Rectangle(i * 19, 0, 19, 19));
|
||||
if (DeviceInfo.Device.Type != 0x00081001)
|
||||
{
|
||||
int pos = 0;
|
||||
foreach (IAuraRgbKey key in ((IAuraSyncKeyboard)DeviceInfo.Device).Keys)
|
||||
{
|
||||
asusCode = key.Code;
|
||||
InitializeLed(AsusLedIdMapper(key.Code), new Rectangle(pos++ * 19, 0, 19, 19));
|
||||
}
|
||||
//UK Layout
|
||||
asusCode = 0x56;
|
||||
InitializeLed(AsusLedIdMapper(asusCode), new Rectangle(pos++ * 19, 0, 19, 19));
|
||||
asusCode = 0x59;
|
||||
InitializeLed(AsusLedIdMapper(asusCode), new Rectangle(pos++ * 19, 0, 19, 19));
|
||||
}
|
||||
else
|
||||
{
|
||||
int ledCount = DeviceInfo.Device.Lights.Count;
|
||||
for (int i = 0; i < ledCount; i++)
|
||||
{
|
||||
asusCode = (ushort)i;
|
||||
InitializeLed(LedId.Keyboard_Custom1 + i, new Rectangle(i * 19, 0, 19, 19));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
string model = DeviceInfo.Model.Replace(" ", string.Empty).ToUpper();
|
||||
ApplyLayoutFromFile(PathHelper.GetAbsolutePath(this, $@"Layouts\Asus\Keyboards\{model}", $"{DeviceInfo.PhysicalLayout.ToString().ToUpper()}.xml"), DeviceInfo.LogicalLayout.ToString());
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
protected override object CreateLedCustomData(LedId ledId) => (int)ledId - (int)LedId.Keyboard_Escape;
|
||||
protected override object CreateLedCustomData(LedId ledId) => asusCode;
|
||||
|
||||
/// <inheritdoc />
|
||||
private LedId AsusLedIdMapper(ushort asusKey)
|
||||
{
|
||||
switch (asusKey)
|
||||
{
|
||||
case 0x01:
|
||||
return LedId.Keyboard_Escape;
|
||||
case 0x3B:
|
||||
return LedId.Keyboard_F1;
|
||||
case 0x3C:
|
||||
return LedId.Keyboard_F2;
|
||||
case 0x3D:
|
||||
return LedId.Keyboard_F3;
|
||||
case 0x3E:
|
||||
return LedId.Keyboard_F4;
|
||||
case 0x3F:
|
||||
return LedId.Keyboard_F5;
|
||||
case 0x40:
|
||||
return LedId.Keyboard_F6;
|
||||
case 0x41:
|
||||
return LedId.Keyboard_F7;
|
||||
case 0x42:
|
||||
return LedId.Keyboard_F8;
|
||||
case 0x43:
|
||||
return LedId.Keyboard_F9;
|
||||
case 0x44:
|
||||
return LedId.Keyboard_F10;
|
||||
case 0x57:
|
||||
return LedId.Keyboard_F11;
|
||||
case 0x58:
|
||||
return LedId.Keyboard_F12;
|
||||
case 0x02:
|
||||
return LedId.Keyboard_1;
|
||||
case 0x03:
|
||||
return LedId.Keyboard_2;
|
||||
case 0x04:
|
||||
return LedId.Keyboard_3;
|
||||
case 0x05:
|
||||
return LedId.Keyboard_4;
|
||||
case 0x06:
|
||||
return LedId.Keyboard_5;
|
||||
case 0x07:
|
||||
return LedId.Keyboard_6;
|
||||
case 0x08:
|
||||
return LedId.Keyboard_7;
|
||||
case 0x09:
|
||||
return LedId.Keyboard_8;
|
||||
case 0x0A:
|
||||
return LedId.Keyboard_9;
|
||||
case 0x0B:
|
||||
return LedId.Keyboard_0;
|
||||
case 0x0C:
|
||||
return LedId.Keyboard_MinusAndUnderscore;
|
||||
case 0x0D:
|
||||
return LedId.Keyboard_EqualsAndPlus;
|
||||
case 0x0E:
|
||||
return LedId.Keyboard_Backspace;
|
||||
case 0x0F:
|
||||
return LedId.Keyboard_Tab;
|
||||
case 0x10:
|
||||
return LedId.Keyboard_Q;
|
||||
case 0x11:
|
||||
return LedId.Keyboard_W;
|
||||
case 0x12:
|
||||
return LedId.Keyboard_E;
|
||||
case 0x13:
|
||||
return LedId.Keyboard_R;
|
||||
case 0x14:
|
||||
return LedId.Keyboard_T;
|
||||
case 0x15:
|
||||
return LedId.Keyboard_Y;
|
||||
case 0x16:
|
||||
return LedId.Keyboard_U;
|
||||
case 0x17:
|
||||
return LedId.Keyboard_I;
|
||||
case 0x18:
|
||||
return LedId.Keyboard_O;
|
||||
case 0x19:
|
||||
return LedId.Keyboard_P;
|
||||
case 0x1A:
|
||||
return LedId.Keyboard_BracketLeft;
|
||||
case 0x1B:
|
||||
return LedId.Keyboard_BracketRight;
|
||||
case 0x1C:
|
||||
return LedId.Keyboard_Enter;
|
||||
case 0x3A:
|
||||
return LedId.Keyboard_CapsLock;
|
||||
case 0x1E:
|
||||
return LedId.Keyboard_A;
|
||||
case 0x1F:
|
||||
return LedId.Keyboard_S;
|
||||
case 0x20:
|
||||
return LedId.Keyboard_D;
|
||||
case 0x21:
|
||||
return LedId.Keyboard_F;
|
||||
case 0x22:
|
||||
return LedId.Keyboard_G;
|
||||
case 0x23:
|
||||
return LedId.Keyboard_H;
|
||||
case 0x24:
|
||||
return LedId.Keyboard_J;
|
||||
case 0x25:
|
||||
return LedId.Keyboard_K;
|
||||
case 0x26:
|
||||
return LedId.Keyboard_L;
|
||||
case 0x27:
|
||||
return LedId.Keyboard_SemicolonAndColon;
|
||||
case 0x28:
|
||||
return LedId.Keyboard_ApostropheAndDoubleQuote;
|
||||
case 0x29:
|
||||
return LedId.Keyboard_GraveAccentAndTilde;
|
||||
case 0x2A:
|
||||
return LedId.Keyboard_LeftShift;
|
||||
case 0x2B:
|
||||
return LedId.Keyboard_Backslash;
|
||||
case 0x2C:
|
||||
return LedId.Keyboard_Z;
|
||||
case 0x2D:
|
||||
return LedId.Keyboard_X;
|
||||
case 0x2E:
|
||||
return LedId.Keyboard_C;
|
||||
case 0x2F:
|
||||
return LedId.Keyboard_V;
|
||||
case 0x30:
|
||||
return LedId.Keyboard_B;
|
||||
case 0x31:
|
||||
return LedId.Keyboard_N;
|
||||
case 0x32:
|
||||
return LedId.Keyboard_M;
|
||||
case 0x33:
|
||||
return LedId.Keyboard_CommaAndLessThan;
|
||||
case 0x34:
|
||||
return LedId.Keyboard_PeriodAndBiggerThan;
|
||||
case 0x35:
|
||||
return LedId.Keyboard_SlashAndQuestionMark;
|
||||
case 0x36:
|
||||
return LedId.Keyboard_RightShift;
|
||||
case 0x1D:
|
||||
return LedId.Keyboard_LeftCtrl;
|
||||
case 0xDB:
|
||||
return LedId.Keyboard_LeftGui;
|
||||
case 0x38:
|
||||
return LedId.Keyboard_LeftAlt;
|
||||
case 0x39:
|
||||
return LedId.Keyboard_Space;
|
||||
case 0xB8:
|
||||
return LedId.Keyboard_RightAlt;
|
||||
case 0x100:
|
||||
return LedId.Keyboard_RightGui;
|
||||
case 0xDD:
|
||||
return LedId.Keyboard_Application;
|
||||
case 0x9D:
|
||||
return LedId.Keyboard_RightCtrl;
|
||||
case 0xB7:
|
||||
return LedId.Keyboard_PrintScreen;
|
||||
case 0x46:
|
||||
return LedId.Keyboard_ScrollLock;
|
||||
case 0xC5:
|
||||
return LedId.Keyboard_PauseBreak;
|
||||
case 0xD2:
|
||||
return LedId.Keyboard_Insert;
|
||||
case 0xC7:
|
||||
return LedId.Keyboard_Home;
|
||||
case 0xC9:
|
||||
return LedId.Keyboard_PageUp;
|
||||
case 0xD3:
|
||||
return LedId.Keyboard_Delete;
|
||||
case 0xCF:
|
||||
return LedId.Keyboard_End;
|
||||
case 0xD1:
|
||||
return LedId.Keyboard_PageDown;
|
||||
case 0xC8:
|
||||
return LedId.Keyboard_ArrowUp;
|
||||
case 0xCB:
|
||||
return LedId.Keyboard_ArrowLeft;
|
||||
case 0xD0:
|
||||
return LedId.Keyboard_ArrowDown;
|
||||
case 0xCD:
|
||||
return LedId.Keyboard_ArrowRight;
|
||||
case 0x45:
|
||||
return LedId.Keyboard_NumLock;
|
||||
case 0xB5:
|
||||
return LedId.Keyboard_NumSlash;
|
||||
case 0x37:
|
||||
return LedId.Keyboard_NumAsterisk;
|
||||
case 0x4A:
|
||||
return LedId.Keyboard_NumMinus;
|
||||
case 0x47:
|
||||
return LedId.Keyboard_Num7;
|
||||
case 0x48:
|
||||
return LedId.Keyboard_Num8;
|
||||
case 0x49:
|
||||
return LedId.Keyboard_Num9;
|
||||
case 0x53:
|
||||
return LedId.Keyboard_NumPeriodAndDelete;
|
||||
case 0x4E:
|
||||
return LedId.Keyboard_NumPlus;
|
||||
case 0x4B:
|
||||
return LedId.Keyboard_Num4;
|
||||
case 0x4C:
|
||||
return LedId.Keyboard_Num5;
|
||||
case 0x4D:
|
||||
return LedId.Keyboard_Num6;
|
||||
case 0x4F:
|
||||
return LedId.Keyboard_Num1;
|
||||
case 0x50:
|
||||
return LedId.Keyboard_Num2;
|
||||
case 0x51:
|
||||
return LedId.Keyboard_Num3;
|
||||
case 0x52:
|
||||
return LedId.Keyboard_Num0;
|
||||
case 0x9C:
|
||||
return LedId.Keyboard_NumEnter;
|
||||
case 0x59:
|
||||
return LedId.Keyboard_NonUsBackslash;
|
||||
case 0x56:
|
||||
return LedId.Keyboard_NonUsTilde;
|
||||
case 0xB3:
|
||||
return LedId.Keyboard_NumComma;
|
||||
case 0x101:
|
||||
return LedId.Logo;
|
||||
case 0x102:
|
||||
return LedId.Keyboard_Custom1;
|
||||
case 0x103:
|
||||
return LedId.Keyboard_Custom2;
|
||||
default:
|
||||
return LedId.Invalid;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
@ -33,7 +33,7 @@ namespace RGB.NET.Devices.Asus
|
||||
/// <param name="device">The <see cref="IAuraSyncDevice"/> backing this RGB.NET device.</param>
|
||||
/// <param name="culture">The <see cref="T:System.Globalization.CultureInfo" /> of the layout this keyboard is using.</param>
|
||||
internal AsusKeyboardRGBDeviceInfo(IAuraSyncDevice device, CultureInfo culture)
|
||||
: base(RGBDeviceType.Keyboard, device, "Claymore")
|
||||
: base(RGBDeviceType.Keyboard, device, device.Name)
|
||||
{
|
||||
SetLayouts(culture.KeyboardLayoutId);
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user