mirror of
https://github.com/jkocon/g-helper.git
synced 2026-02-23 13:00:52 +01:00
Merge branch 'main' of https://github.com/seerge/g-helper
This commit is contained in:
@@ -503,6 +503,9 @@ namespace GHelper
|
|||||||
{
|
{
|
||||||
labelAngleAdjustmentValue.Visible = false;
|
labelAngleAdjustmentValue.Visible = false;
|
||||||
sliderAngleAdjustment.Visible = false;
|
sliderAngleAdjustment.Visible = false;
|
||||||
|
sliderAngleAdjustment.Max = mouse.AngleTuningMax();
|
||||||
|
sliderAngleAdjustment.Min = mouse.AngleTuningMin();
|
||||||
|
sliderAngleAdjustment.Step = mouse.AngleTuningStep();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!mouse.HasAngleTuning() && !mouse.HasAngleSnapping())
|
if (!mouse.HasAngleTuning() && !mouse.HasAngleSnapping())
|
||||||
|
|||||||
@@ -38,7 +38,6 @@ namespace GHelper
|
|||||||
public static class AsusUSB
|
public static class AsusUSB
|
||||||
{
|
{
|
||||||
public const int HEATMAP = 20;
|
public const int HEATMAP = 20;
|
||||||
public const int HEATMAP_ALT = 21;
|
|
||||||
|
|
||||||
public const int ASUS_ID = 0x0b05;
|
public const int ASUS_ID = 0x0b05;
|
||||||
|
|
||||||
@@ -172,8 +171,7 @@ namespace GHelper
|
|||||||
{ 10, Properties.Strings.AuraStrobe},
|
{ 10, Properties.Strings.AuraStrobe},
|
||||||
{ 11, "Comet" },
|
{ 11, "Comet" },
|
||||||
{ 12, "Flash" },
|
{ 12, "Flash" },
|
||||||
{ HEATMAP, "Heatmap"},
|
{ HEATMAP, "Heatmap"}
|
||||||
{ HEATMAP_ALT, "Heatmap Alt"}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -458,13 +456,6 @@ namespace GHelper
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static byte[] PrepareAuraMessage(byte[] msg)
|
|
||||||
{
|
|
||||||
var buffer = new byte[0x40];
|
|
||||||
Array.Copy(msg, buffer, msg.Length);
|
|
||||||
return buffer;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void ApplyColor(Color color, bool init = false)
|
public static void ApplyColor(Color color, bool init = false)
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -477,10 +468,12 @@ namespace GHelper
|
|||||||
if (auraDevice is null || !auraDevice.IsConnected) GetAuraDevice();
|
if (auraDevice is null || !auraDevice.IsConnected) GetAuraDevice();
|
||||||
if (auraDevice is null || !auraDevice.IsConnected) return;
|
if (auraDevice is null || !auraDevice.IsConnected) return;
|
||||||
|
|
||||||
if (Manual)
|
if (isStrix)
|
||||||
{
|
{
|
||||||
byte[] msg = new byte[0x40];
|
byte[] msg = new byte[0x40];
|
||||||
int start = 9;
|
|
||||||
|
byte start = 9;
|
||||||
|
byte maxLeds = 0x93;
|
||||||
|
|
||||||
msg[0] = AURA_HID_ID;
|
msg[0] = AURA_HID_ID;
|
||||||
msg[1] = 0xbc;
|
msg[1] = 0xbc;
|
||||||
@@ -491,7 +484,7 @@ namespace GHelper
|
|||||||
msg[6] = 0;
|
msg[6] = 0;
|
||||||
msg[7] = 0x10;
|
msg[7] = 0x10;
|
||||||
|
|
||||||
for (int i = 0; i < 0x12; i++)
|
for (byte i = 0; i < 0x12; i++)
|
||||||
{
|
{
|
||||||
msg[start + i * 3] = color.R; // R
|
msg[start + i * 3] = color.R; // R
|
||||||
msg[start + 1 + i * 3] = color.G; // G
|
msg[start + 1 + i * 3] = color.G; // G
|
||||||
@@ -509,24 +502,22 @@ namespace GHelper
|
|||||||
auraDevice.Write(new byte[] { AURA_HID_ID, 0xbc});
|
auraDevice.Write(new byte[] { AURA_HID_ID, 0xbc});
|
||||||
}
|
}
|
||||||
|
|
||||||
for (byte b = 0; b <= 0xA0; b += 0x10)
|
for (byte b = 0; b < maxLeds; b += 0x10)
|
||||||
{
|
{
|
||||||
msg[6] = b;
|
msg[6] = b;
|
||||||
auraDevice.Write(msg);
|
auraDevice.Write(msg);
|
||||||
//Debug.WriteLine(BitConverter.ToString(msg));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
msg[6] = maxLeds;
|
||||||
|
auraDevice.Write(msg);
|
||||||
|
|
||||||
msg[4] = 4;
|
msg[4] = 4;
|
||||||
msg[5] = 0;
|
msg[5] = 0;
|
||||||
msg[6] = 0;
|
msg[6] = 0;
|
||||||
msg[7] = 0;
|
msg[7] = 0;
|
||||||
|
|
||||||
auraDevice.Write(msg);
|
auraDevice.Write(msg);
|
||||||
|
|
||||||
//auraDevice.Write(new byte[] { AURA_HID_ID, 0xbc, 1, 0, 0 });
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
auraDevice.Write(AuraMessage(0, color, color, 0));
|
auraDevice.Write(AuraMessage(0, color, color, 0));
|
||||||
@@ -544,9 +535,8 @@ namespace GHelper
|
|||||||
SetColor(AppConfig.Get("aura_color"));
|
SetColor(AppConfig.Get("aura_color"));
|
||||||
SetColor2(AppConfig.Get("aura_color2"));
|
SetColor2(AppConfig.Get("aura_color2"));
|
||||||
|
|
||||||
if (Mode == HEATMAP || Mode == HEATMAP_ALT)
|
if (Mode == HEATMAP)
|
||||||
{
|
{
|
||||||
Manual = (Mode == HEATMAP_ALT);
|
|
||||||
SetHeatmap(true);
|
SetHeatmap(true);
|
||||||
timer.Enabled = true;
|
timer.Enabled = true;
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -140,7 +140,7 @@ namespace GHelper.Peripherals.Mouse
|
|||||||
public abstract class AsusMouse : Device, IPeripheral
|
public abstract class AsusMouse : Device, IPeripheral
|
||||||
{
|
{
|
||||||
private static string[] POLLING_RATES = { "125 Hz", "250 Hz", "500 Hz", "1000 Hz", "2000 Hz", "4000 Hz", "8000 Hz", "16000 Hz" };
|
private static string[] POLLING_RATES = { "125 Hz", "250 Hz", "500 Hz", "1000 Hz", "2000 Hz", "4000 Hz", "8000 Hz", "16000 Hz" };
|
||||||
internal const bool PACKET_LOGGER_ALWAYS_ON = true;
|
internal const bool PACKET_LOGGER_ALWAYS_ON = false;
|
||||||
internal const int ASUS_MOUSE_PACKET_SIZE = 65;
|
internal const int ASUS_MOUSE_PACKET_SIZE = 65;
|
||||||
|
|
||||||
public event EventHandler? Disconnect;
|
public event EventHandler? Disconnect;
|
||||||
@@ -615,6 +615,21 @@ namespace GHelper.Peripherals.Mouse
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public virtual int AngleTuningStep()
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual int AngleTuningMin()
|
||||||
|
{
|
||||||
|
return -20;
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual int AngleTuningMax()
|
||||||
|
{
|
||||||
|
return 20;
|
||||||
|
}
|
||||||
|
|
||||||
public virtual string PollingRateDisplayString(PollingRate pollingRate)
|
public virtual string PollingRateDisplayString(PollingRate pollingRate)
|
||||||
{
|
{
|
||||||
return POLLING_RATES[(int)pollingRate];
|
return POLLING_RATES[(int)pollingRate];
|
||||||
@@ -762,9 +777,10 @@ namespace GHelper.Peripherals.Mouse
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (angleAdjustment < -20 || angleAdjustment > 20)
|
if (angleAdjustment < AngleTuningMin() || angleAdjustment > AngleTuningMax())
|
||||||
{
|
{
|
||||||
Logger.WriteLine(GetDisplayName() + ": Angle Adjustment:" + angleAdjustment + " is outside of range [-20;20].");
|
Logger.WriteLine(GetDisplayName() + ": Angle Adjustment:" + angleAdjustment
|
||||||
|
+ " is outside of range [" + AngleTuningMin() + "; " + AngleTuningMax() + "].");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
112
app/Peripherals/Mouse/Models/TUFM3.cs
Normal file
112
app/Peripherals/Mouse/Models/TUFM3.cs
Normal file
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -194,6 +194,7 @@ namespace GHelper.Peripherals
|
|||||||
DetectMouse(new StrixImpactIIWirelessWired());
|
DetectMouse(new StrixImpactIIWirelessWired());
|
||||||
DetectMouse(new GladiusIII());
|
DetectMouse(new GladiusIII());
|
||||||
DetectMouse(new GladiusIIIWired());
|
DetectMouse(new GladiusIIIWired());
|
||||||
|
DetectMouse(new TUFM3());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void DetectMouse(AsusMouse am)
|
public static void DetectMouse(AsusMouse am)
|
||||||
|
|||||||
Reference in New Issue
Block a user