diff --git a/app/Peripherals/Mouse/AsusMouse.cs b/app/Peripherals/Mouse/AsusMouse.cs index a678bb3b..3ec99e15 100644 --- a/app/Peripherals/Mouse/AsusMouse.cs +++ b/app/Peripherals/Mouse/AsusMouse.cs @@ -719,6 +719,11 @@ namespace GHelper.Peripherals.Mouse return 100; } + public virtual bool HasXYDPI() + { + return false; + } + protected virtual byte[] GetChangeDPIProfilePacket(int profile) { return new byte[] { 0x00, 0x51, 0x31, 0x0A, 0x00, (byte)profile }; @@ -795,12 +800,13 @@ namespace GHelper.Peripherals.Mouse DpiSettings[i] = new AsusMouseDPI(); } - int offset = 5 + (i * 4); + int offset = HasXYDPI() ? (5 + (i * 4)) : (5 + (i * 2)); + uint b1 = packet[offset]; uint b2 = packet[offset + 1]; - DpiSettings[i].DPI = (uint)(b2 << 8 | b1) * 50 + 50; + DpiSettings[i].DPI = (uint)((b2 << 8 | b1) * DPIIncrements() + DPIIncrements()); } } diff --git a/app/Peripherals/Mouse/Models/ChakramX.cs b/app/Peripherals/Mouse/Models/ChakramX.cs index f4ecde35..f630e3c2 100644 --- a/app/Peripherals/Mouse/Models/ChakramX.cs +++ b/app/Peripherals/Mouse/Models/ChakramX.cs @@ -45,6 +45,11 @@ namespace GHelper.Peripherals.Mouse.Models return 36_000; } + public override bool HasXYDPI() + { + return true; + } + public override bool HasLiftOffSetting() { return true; diff --git a/app/Peripherals/Mouse/Models/GladiusIII.cs b/app/Peripherals/Mouse/Models/GladiusIII.cs index 3459b457..c0780a94 100644 --- a/app/Peripherals/Mouse/Models/GladiusIII.cs +++ b/app/Peripherals/Mouse/Models/GladiusIII.cs @@ -40,6 +40,11 @@ return 36_000; } + public override bool HasXYDPI() + { + return true; + } + public override bool HasLiftOffSetting() { return true;