mirror of
https://github.com/jkocon/g-helper.git
synced 2026-02-23 13:00:52 +01:00
Ally controller wake up tweaks
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
using GHelper.Gpu.AMD;
|
using GHelper.Gpu.AMD;
|
||||||
using GHelper.Input;
|
using GHelper.Input;
|
||||||
using GHelper.USB;
|
using GHelper.USB;
|
||||||
|
using HidSharp;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
|
||||||
namespace GHelper.Ally
|
namespace GHelper.Ally
|
||||||
@@ -35,7 +36,7 @@ namespace GHelper.Ally
|
|||||||
SettingsForm settings;
|
SettingsForm settings;
|
||||||
|
|
||||||
static ControllerMode _mode = ControllerMode.Auto;
|
static ControllerMode _mode = ControllerMode.Auto;
|
||||||
static ControllerMode _applyMode = ControllerMode.Auto;
|
static ControllerMode _applyMode = ControllerMode.Mouse;
|
||||||
static int _autoCount = 0;
|
static int _autoCount = 0;
|
||||||
|
|
||||||
static int fpsLimit = -1;
|
static int fpsLimit = -1;
|
||||||
@@ -241,9 +242,8 @@ namespace GHelper.Ally
|
|||||||
|
|
||||||
if (_autoCount > 2)
|
if (_autoCount > 2)
|
||||||
{
|
{
|
||||||
_applyMode = newMode;
|
|
||||||
_autoCount = 0;
|
_autoCount = 0;
|
||||||
ApplyMode(_applyMode);
|
ApplyMode(newMode);
|
||||||
Logger.WriteLine(fps.ToString());
|
Logger.WriteLine(fps.ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -254,14 +254,10 @@ namespace GHelper.Ally
|
|||||||
if (AppConfig.IsAlly()) settings.VisualiseAlly(true);
|
if (AppConfig.IsAlly()) settings.VisualiseAlly(true);
|
||||||
else return;
|
else return;
|
||||||
|
|
||||||
SetDeadzones();
|
|
||||||
SetMode((ControllerMode)AppConfig.Get("controller_mode", (int)ControllerMode.Auto));
|
SetMode((ControllerMode)AppConfig.Get("controller_mode", (int)ControllerMode.Auto));
|
||||||
|
|
||||||
settings.VisualiseBacklight(InputDispatcher.GetBacklight());
|
settings.VisualiseBacklight(InputDispatcher.GetBacklight());
|
||||||
|
settings.VisualiseFPSLimit(amdControl.GetFPSLimit());
|
||||||
fpsLimit = amdControl.GetFPSLimit();
|
|
||||||
Logger.WriteLine($"FPS Limit: {fpsLimit}");
|
|
||||||
settings.VisualiseFPSLimit(fpsLimit);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -439,37 +435,60 @@ namespace GHelper.Ally
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void ApplyMode(ControllerMode? applyMode = null)
|
public static void ApplyMode(ControllerMode applyMode = ControllerMode.Auto)
|
||||||
{
|
{
|
||||||
|
Task.Run(() => {
|
||||||
|
|
||||||
if (applyMode is not null) _applyMode = (ControllerMode)applyMode;
|
HidStream? input = AsusHid.FindHidStream(AsusHid.INPUT_ID);
|
||||||
|
int count = 0;
|
||||||
|
|
||||||
WakeUp();
|
while (input == null && count++ < 5)
|
||||||
AsusHid.WriteInput(new byte[] { AsusHid.INPUT_ID, 0xd1, 0x01, 0x01, (byte)_applyMode }, "Controller");
|
{
|
||||||
AsusHid.WriteInput(CommandSave, null);
|
input = AsusHid.FindHidStream(AsusHid.INPUT_ID);
|
||||||
|
Thread.Sleep(2000);
|
||||||
|
}
|
||||||
|
|
||||||
BindZone(BindingZone.M1M2);
|
if (input == null)
|
||||||
|
{
|
||||||
|
Logger.WriteLine($"Controller not found");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (_applyMode == ControllerMode.Gamepad)
|
if (applyMode != ControllerMode.Auto) _applyMode = applyMode;
|
||||||
{
|
|
||||||
BindZone(BindingZone.DPadUpDown);
|
|
||||||
BindZone(BindingZone.DPadLeftRight);
|
|
||||||
BindZone(BindingZone.StickClick);
|
|
||||||
BindZone(BindingZone.Bumper);
|
|
||||||
BindZone(BindingZone.AB);
|
|
||||||
BindZone(BindingZone.XY);
|
|
||||||
BindZone(BindingZone.ViewMenu);
|
|
||||||
BindZone(BindingZone.Trigger);
|
|
||||||
}
|
|
||||||
|
|
||||||
AsusHid.WriteInput(CommandSave, null);
|
WakeUp();
|
||||||
|
|
||||||
|
AsusHid.WriteInput(new byte[] { AsusHid.INPUT_ID, 0xd1, 0x01, 0x01, (byte)_applyMode }, "Controller");
|
||||||
|
AsusHid.WriteInput(CommandSave, null);
|
||||||
|
|
||||||
|
BindZone(BindingZone.M1M2);
|
||||||
|
|
||||||
|
if (_applyMode == ControllerMode.Gamepad)
|
||||||
|
{
|
||||||
|
BindZone(BindingZone.DPadUpDown);
|
||||||
|
BindZone(BindingZone.DPadLeftRight);
|
||||||
|
BindZone(BindingZone.StickClick);
|
||||||
|
BindZone(BindingZone.Bumper);
|
||||||
|
BindZone(BindingZone.AB);
|
||||||
|
BindZone(BindingZone.XY);
|
||||||
|
BindZone(BindingZone.ViewMenu);
|
||||||
|
BindZone(BindingZone.Trigger);
|
||||||
|
}
|
||||||
|
|
||||||
|
AsusHid.WriteInput(CommandSave, null);
|
||||||
|
SetDeadzones();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SetMode(ControllerMode mode)
|
private void SetMode(ControllerMode mode)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
_mode = mode;
|
||||||
|
ApplyMode(mode);
|
||||||
|
AppConfig.Set("controller_mode", (int)mode);
|
||||||
|
|
||||||
if (mode == ControllerMode.Auto)
|
if (mode == ControllerMode.Auto)
|
||||||
{
|
{
|
||||||
_applyMode = ControllerMode.Auto;
|
|
||||||
amdControl.StartFPS();
|
amdControl.StartFPS();
|
||||||
timer.Start();
|
timer.Start();
|
||||||
}
|
}
|
||||||
@@ -477,11 +496,8 @@ namespace GHelper.Ally
|
|||||||
{
|
{
|
||||||
timer.Stop();
|
timer.Stop();
|
||||||
amdControl.StopFPS();
|
amdControl.StopFPS();
|
||||||
ApplyMode(mode);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_mode = mode;
|
|
||||||
AppConfig.Set("controller_mode", (int)mode);
|
|
||||||
settings.VisualiseController(mode);
|
settings.VisualiseController(mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -491,17 +507,16 @@ namespace GHelper.Ally
|
|||||||
switch (_mode)
|
switch (_mode)
|
||||||
{
|
{
|
||||||
case ControllerMode.Auto:
|
case ControllerMode.Auto:
|
||||||
_mode = ControllerMode.Gamepad;
|
SetMode(ControllerMode.Gamepad);
|
||||||
break;
|
break;
|
||||||
case ControllerMode.Gamepad:
|
case ControllerMode.Gamepad:
|
||||||
_mode = ControllerMode.Mouse;
|
SetMode(ControllerMode.Mouse);
|
||||||
break;
|
break;
|
||||||
case ControllerMode.Mouse:
|
case ControllerMode.Mouse:
|
||||||
_mode = ControllerMode.Auto;
|
SetMode(ControllerMode.Auto);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
SetMode(_mode);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -168,6 +168,9 @@ public class AmdGpuControl : IGpuControl
|
|||||||
if (_adlContextHandle == nint.Zero || _iGPU == null) return -1;
|
if (_adlContextHandle == nint.Zero || _iGPU == null) return -1;
|
||||||
ADLFPSSettingsOutput settings;
|
ADLFPSSettingsOutput settings;
|
||||||
if (ADL2_FPS_Settings_Get(_adlContextHandle, ((ADLAdapterInfo)_iGPU).AdapterIndex, out settings) != Adl2.ADL_SUCCESS) return -1;
|
if (ADL2_FPS_Settings_Get(_adlContextHandle, ((ADLAdapterInfo)_iGPU).AdapterIndex, out settings) != Adl2.ADL_SUCCESS) return -1;
|
||||||
|
|
||||||
|
Logger.WriteLine($"FPS Limit: {settings.ulACFPSCurrent}");
|
||||||
|
|
||||||
return settings.ulACFPSCurrent;
|
return settings.ulACFPSCurrent;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,6 @@ namespace GHelper.Input
|
|||||||
HidStream? input = AsusHid.FindHidStream(AsusHid.INPUT_ID);
|
HidStream? input = AsusHid.FindHidStream(AsusHid.INPUT_ID);
|
||||||
|
|
||||||
// Fallback
|
// Fallback
|
||||||
|
|
||||||
int count = 0;
|
int count = 0;
|
||||||
|
|
||||||
while (input == null && count++ < 5)
|
while (input == null && count++ < 5)
|
||||||
@@ -39,8 +38,6 @@ namespace GHelper.Input
|
|||||||
|
|
||||||
Logger.WriteLine($"Input: {input.Device.DevicePath}");
|
Logger.WriteLine($"Input: {input.Device.DevicePath}");
|
||||||
|
|
||||||
if (AppConfig.IsAlly()) AllyControl.ApplyMode();
|
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
while (!cancellationTokenSource.Token.IsCancellationRequested)
|
while (!cancellationTokenSource.Token.IsCancellationRequested)
|
||||||
|
|||||||
Reference in New Issue
Block a user