From aaf2fb15f4282b1242e7c18f72d046c905ce38ba Mon Sep 17 00:00:00 2001 From: Serge <5920850+seerge@users.noreply.github.com> Date: Fri, 5 Jul 2024 20:01:29 +0200 Subject: [PATCH] ROG Keris II Ace https://github.com/seerge/g-helper/issues/2810 --- app/Peripherals/Mouse/Models/KerisIIAce.cs | 117 +++++++++++++++++++++ app/Peripherals/PeripheralsProvider.cs | 1 + 2 files changed, 118 insertions(+) create mode 100644 app/Peripherals/Mouse/Models/KerisIIAce.cs diff --git a/app/Peripherals/Mouse/Models/KerisIIAce.cs b/app/Peripherals/Mouse/Models/KerisIIAce.cs new file mode 100644 index 00000000..046585e4 --- /dev/null +++ b/app/Peripherals/Mouse/Models/KerisIIAce.cs @@ -0,0 +1,117 @@ +namespace GHelper.Peripherals.Mouse.Models +{ + //P709_Wireless + public class KerisIIAce : AsusMouse + { + public KerisIIAce() : base(0x0B05, 0x1B16, "mi_00", true) + { + } + + protected KerisIIAce(ushort vendorId, bool wireless) : base(0x0B05, vendorId, "mi_00", wireless) + { + } + + public override int DPIProfileCount() + { + return 4; + } + + public override string GetDisplayName() + { + return "ROG Keris II Ace"; + } + + + public override PollingRate[] SupportedPollingrates() + { + return new PollingRate[] { + PollingRate.PR125Hz, + PollingRate.PR250Hz, + PollingRate.PR500Hz, + PollingRate.PR1000Hz + }; + } + + public override int ProfileCount() + { + return 5; + } + public override int MaxDPI() + { + return 42_000; + } + + public override bool HasLiftOffSetting() + { + return true; + } + + public override bool HasRGB() + { + return true; + } + + + public override bool IsLightingModeSupported(LightingMode lightingMode) + { + return lightingMode == LightingMode.Static + || lightingMode == LightingMode.Breathing + || lightingMode == LightingMode.ColorCycle + || lightingMode == LightingMode.BatteryState + || lightingMode == LightingMode.React; + } + + public override bool HasAutoPowerOff() + { + return true; + } + + public override bool HasAngleSnapping() + { + return true; + } + + public override bool HasAngleTuning() + { + return true; + } + + public override bool HasLowBatteryWarning() + { + return true; + } + + public override bool HasDPIColors() + { + return true; + } + + protected override PollingRate ParsePollingRate(byte[] packet) + { + if (packet[1] == 0x12 && packet[2] == 0x04 && packet[3] == 0x00) + { + if ((int)packet[13] > 7) + return (PollingRate)packet[13] - 96; + return (PollingRate)packet[13]; + } + + return PollingRate.PR125Hz; + } + + } + + /* + public class KerisIIAceWired : KerisIIAce + { + public KerisIIAceWired() : base(0xAAAA, false) + { + } + + public override string GetDisplayName() + { + return "ROG Keris II Ace (Wired)"; + } + } + */ + +} diff --git a/app/Peripherals/PeripheralsProvider.cs b/app/Peripherals/PeripheralsProvider.cs index 7dbdd581..3c62f152 100644 --- a/app/Peripherals/PeripheralsProvider.cs +++ b/app/Peripherals/PeripheralsProvider.cs @@ -214,6 +214,7 @@ namespace GHelper.Peripherals DetectMouse(new TUFM5()); DetectMouse(new KerisWirelssAimpoint()); DetectMouse(new KerisWirelssAimpointWired()); + DetectMouse(new KerisIIAce()); DetectMouse(new PugioII()); DetectMouse(new PugioIIWired()); DetectMouse(new StrixImpactII());