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)