From 90ba7b6c08ad5d42f8758c840c36797dbf7391bd Mon Sep 17 00:00:00 2001 From: IceStormNG Date: Mon, 24 Jul 2023 19:19:31 +0200 Subject: [PATCH] Added more features to be selected and deselected individually. Renamed the P711 to Gladius III. Mouse classes will be named by their product name, not their internal name to find them easier. --- app/AsusMouseSettings.cs | 26 ++++++++++++--- app/Peripherals/Mouse/AsusMouse.cs | 33 +++++++++++++++---- app/Peripherals/Mouse/Models/ChakramX.cs | 16 ++++++++- .../Mouse/Models/{P711.cs => GladiusIII.cs} | 27 +++++++++++---- app/Peripherals/PeripheralsProvider.cs | 4 +-- 5 files changed, 86 insertions(+), 20 deletions(-) rename app/Peripherals/Mouse/Models/{P711.cs => GladiusIII.cs} (65%) diff --git a/app/AsusMouseSettings.cs b/app/AsusMouseSettings.cs index 0076193a..93e44ee4 100644 --- a/app/AsusMouseSettings.cs +++ b/app/AsusMouseSettings.cs @@ -381,6 +381,10 @@ namespace GHelper if (!mouse.HasAngleSnapping()) { checkBoxAngleSnapping.Visible = false; + } + + if (!mouse.HasAngleTuning()) + { labelAngleAdjustmentValue.Visible = false; sliderAngleAdjustment.Visible = false; } @@ -411,7 +415,7 @@ namespace GHelper panelBatteryState.Visible = false; } - if (mouse.HasEnergySettings()) + if (mouse.HasAutoPowerOff()) { comboBoxAutoPowerOff.Items.AddRange(new string[]{ " 1 "+ Properties.Strings.Minute, @@ -422,7 +426,15 @@ namespace GHelper Properties.Strings.Never, }); } - else + + if (!mouse.HasLowBatteryWarning()) + { + labelLowBatteryWarning.Visible = false; + labelLowBatteryWarningValue.Visible = false; + sliderLowBatteryWarning.Visible = false; + } + + if (!mouse.HasAutoPowerOff() && !mouse.HasLowBatteryWarning()) { panelEnergy.Visible = false; } @@ -477,10 +489,14 @@ namespace GHelper if (mouse.HasAngleSnapping()) { checkBoxAngleSnapping.Checked = mouse.AngleSnapping; + } + + if (mouse.HasAngleTuning()) + { sliderAngleAdjustment.Value = mouse.AngleAdjustmentDegrees; } - if (mouse.HasEnergySettings()) + if (mouse.HasAutoPowerOff()) { if (mouse.PowerOffSetting == PowerOffSetting.Never) { @@ -490,9 +506,11 @@ namespace GHelper { comboBoxAutoPowerOff.SelectedIndex = (int)mouse.PowerOffSetting; } + } + if (mouse.HasLowBatteryWarning()) + { sliderLowBatteryWarning.Value = mouse.LowBatteryWarning; - } if (mouse.HasLiftOffSetting()) diff --git a/app/Peripherals/Mouse/AsusMouse.cs b/app/Peripherals/Mouse/AsusMouse.cs index b2f54c4a..dfb2b656 100644 --- a/app/Peripherals/Mouse/AsusMouse.cs +++ b/app/Peripherals/Mouse/AsusMouse.cs @@ -276,7 +276,12 @@ namespace GHelper.Peripherals.Mouse return true; } - public virtual bool HasEnergySettings() + public virtual bool HasAutoPowerOff() + { + return false; + } + + public virtual bool HasLowBatteryWarning() { return false; } @@ -330,7 +335,7 @@ namespace GHelper.Peripherals.Mouse public void SetEnergySettings(int lowBatteryWarning, PowerOffSetting powerOff) { - if (!HasEnergySettings()) + if (!HasAutoPowerOff() && !HasLowBatteryWarning()) { return; } @@ -345,7 +350,7 @@ namespace GHelper.Peripherals.Mouse public void ReadBattery() { - if (!HasBattery() && !HasEnergySettings()) + if (!HasBattery() && !HasAutoPowerOff()) { return; } @@ -369,10 +374,18 @@ namespace GHelper.Peripherals.Mouse } } - if (HasEnergySettings()) + if (HasAutoPowerOff()) { PowerOffSetting = ParsePowerOffSetting(response); + } + + if (HasLowBatteryWarning()) + { LowBatteryWarning = ParseLowBatteryWarning(response); + } + + if (HasLowBatteryWarning() || HasAutoPowerOff()) + { Logger.WriteLine(GetDisplayName() + ": Got Auto Power Off: " + PowerOffSetting + " - Low Battery Warnning at: " + LowBatteryWarning + "%"); } @@ -467,6 +480,10 @@ namespace GHelper.Peripherals.Mouse { return false; } + public virtual bool HasAngleTuning() + { + return false; + } public virtual string PollingRateDisplayString(PollingRate pollingRate) { @@ -567,7 +584,9 @@ namespace GHelper.Peripherals.Mouse if (HasAngleSnapping()) { AngleSnapping = ParseAngleSnapping(response); - AngleAdjustmentDegrees = ParseAngleAdjustment(response); + if (HasAngleTuning()) + AngleAdjustmentDegrees = ParseAngleAdjustment(response); + Logger.WriteLine(GetDisplayName() + ": Angle Snapping enabled: " + AngleSnapping + ", Angle Adjustment: " + AngleAdjustmentDegrees + "°"); } } @@ -608,7 +627,7 @@ namespace GHelper.Peripherals.Mouse public void SetAngleAdjustment(short angleAdjustment) { - if (!HasAngleSnapping()) + if (!HasAngleTuning()) { return; } @@ -632,7 +651,7 @@ namespace GHelper.Peripherals.Mouse public abstract int DPIProfileCount(); public virtual bool HasDPIColors() { - return true; + return false; } public virtual bool CanChangeDPIProfile() diff --git a/app/Peripherals/Mouse/Models/ChakramX.cs b/app/Peripherals/Mouse/Models/ChakramX.cs index 7a96116c..f4ecde35 100644 --- a/app/Peripherals/Mouse/Models/ChakramX.cs +++ b/app/Peripherals/Mouse/Models/ChakramX.cs @@ -55,11 +55,25 @@ namespace GHelper.Peripherals.Mouse.Models return true; } - public override bool HasEnergySettings() + public override bool HasAutoPowerOff() { return true; } + public override bool HasAngleTuning() + { + return true; + } + + public override bool HasLowBatteryWarning() + { + return true; + } + + public override bool HasDPIColors() + { + return true; + } } public class ChakramXWired : ChakramX diff --git a/app/Peripherals/Mouse/Models/P711.cs b/app/Peripherals/Mouse/Models/GladiusIII.cs similarity index 65% rename from app/Peripherals/Mouse/Models/P711.cs rename to app/Peripherals/Mouse/Models/GladiusIII.cs index adadae84..3459b457 100644 --- a/app/Peripherals/Mouse/Models/P711.cs +++ b/app/Peripherals/Mouse/Models/GladiusIII.cs @@ -1,12 +1,12 @@ namespace GHelper.Peripherals.Mouse.Models { - public class P711 : AsusMouse + public class GladiusIII : AsusMouse { - public P711() : base(0x0B05, 0x1A70, "mi_00", true) + public GladiusIII() : base(0x0B05, 0x1A70, "mi_00", true) { } - protected P711(ushort vendorId, bool wireless) : base(0x0B05, vendorId, "mi_00", wireless) + protected GladiusIII(ushort vendorId, bool wireless) : base(0x0B05, vendorId, "mi_00", wireless) { } @@ -50,7 +50,7 @@ return true; } - public override bool HasEnergySettings() + public override bool HasAutoPowerOff() { return true; } @@ -59,11 +59,26 @@ { return true; } + + public override bool HasAngleTuning() + { + return true; + } + + public override bool HasLowBatteryWarning() + { + return true; + } + + public override bool HasDPIColors() + { + return true; + } } - public class P711Wired : P711 + public class GladiusIIIWired : GladiusIII { - public P711Wired() : base(0x1A72, false) + public GladiusIIIWired() : base(0x1A72, false) { } diff --git a/app/Peripherals/PeripheralsProvider.cs b/app/Peripherals/PeripheralsProvider.cs index 69dc658c..831c4f29 100644 --- a/app/Peripherals/PeripheralsProvider.cs +++ b/app/Peripherals/PeripheralsProvider.cs @@ -138,8 +138,8 @@ namespace GHelper.Peripherals //Add one line for every supported mouse class here to support them. DetectMouse(new ChakramX()); DetectMouse(new ChakramXWired()); - DetectMouse(new P711()); - DetectMouse(new P711Wired()); + DetectMouse(new GladiusIII()); + DetectMouse(new GladiusIIIWired()); } public static void DetectMouse(AsusMouse am)