diff --git a/app/Peripherals/Mouse/Models/TUFM3.cs b/app/Peripherals/Mouse/Models/TUFM3.cs new file mode 100644 index 00000000..d7c2443e --- /dev/null +++ b/app/Peripherals/Mouse/Models/TUFM3.cs @@ -0,0 +1,112 @@ +namespace GHelper.Peripherals.Mouse.Models +{ + //P306_Wireless + public class TUFM3 : AsusMouse + { + public TUFM3() : base(0x0B05, 0x1910, "mi_01", false) + { + } + + public override int DPIProfileCount() + { + return 4; + } + + public override string GetDisplayName() + { + return "TUF GAMING M3"; + } + + + public override PollingRate[] SupportedPollingrates() + { + return new PollingRate[] { + PollingRate.PR125Hz, + PollingRate.PR250Hz, + PollingRate.PR500Hz, + PollingRate.PR1000Hz + }; + } + + //Mouse has React mapped to 0x03 instead of 0x04 like other mice + protected override byte IndexForLightingMode(LightingMode lightingMode) + { + if (lightingMode == LightingMode.React) + { + return 0x03; + } + return ((byte)lightingMode); + } + + //Mouse has React mapped to 0x03 instead of 0x04 like other mice + protected override LightingMode LightingModeForIndex(byte lightingMode) + { + if (lightingMode == 0x03) + { + return LightingMode.React; + } + return base.LightingModeForIndex(lightingMode); + + } + + public override int ProfileCount() + { + return 1; + } + public override int MaxDPI() + { + return 7_000; + } + public override bool HasBattery() + { + return false; + } + + public override bool HasLiftOffSetting() + { + return false; + } + public override LightingZone[] SupportedLightingZones() + { + return new LightingZone[] { LightingZone.Logo }; + } + + public override bool HasRGB() + { + return true; + } + + public override bool HasAngleSnapping() + { + return true; + } + + public override int DPIIncrements() + { + return 100; + } + + public override bool CanChangeDPIProfile() + { + return true; + } + + public override bool HasDebounceSetting() + { + return true; + } + + public override int MaxBrightness() + { + return 4; + } + + public override bool IsLightingModeSupported(LightingMode lightingMode) + { + return lightingMode == LightingMode.Static + || lightingMode == LightingMode.Breathing + || lightingMode == LightingMode.ColorCycle + || lightingMode == LightingMode.React; + } + } +} diff --git a/app/Peripherals/PeripheralsProvider.cs b/app/Peripherals/PeripheralsProvider.cs index 05ed687b..b7f18ffa 100644 --- a/app/Peripherals/PeripheralsProvider.cs +++ b/app/Peripherals/PeripheralsProvider.cs @@ -194,6 +194,7 @@ namespace GHelper.Peripherals DetectMouse(new StrixImpactIIWirelessWired()); DetectMouse(new GladiusIII()); DetectMouse(new GladiusIIIWired()); + DetectMouse(new TUFM3()); } public static void DetectMouse(AsusMouse am)