mirror of
https://github.com/jkocon/g-helper.git
synced 2026-02-23 13:00:52 +01:00
Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d26d9c46ad | ||
|
|
a58230fdd2 | ||
|
|
00393ef67d | ||
|
|
a687d074ee | ||
|
|
201ef48cd4 | ||
|
|
7b16adf0f5 |
@@ -1,10 +1,13 @@
|
|||||||
using GHelper.Gpu.AMD;
|
using GHelper.Gpu.AMD;
|
||||||
using GHelper.Helpers;
|
using GHelper.Helpers;
|
||||||
using GHelper.Input;
|
using GHelper.Input;
|
||||||
|
using GHelper.Mode;
|
||||||
using GHelper.USB;
|
using GHelper.USB;
|
||||||
using HidSharp;
|
using HidSharp;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
namespace GHelper.Ally
|
namespace GHelper.Ally
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -32,17 +35,28 @@ namespace GHelper.Ally
|
|||||||
|
|
||||||
public class AllyControl
|
public class AllyControl
|
||||||
{
|
{
|
||||||
System.Timers.Timer timer = default!;
|
static System.Timers.Timer timer = default!;
|
||||||
static AmdGpuControl amdControl = new AmdGpuControl();
|
static AmdGpuControl amdControl = new AmdGpuControl();
|
||||||
|
|
||||||
SettingsForm settings;
|
SettingsForm settings;
|
||||||
|
|
||||||
static ControllerMode _mode = ControllerMode.Auto;
|
static ControllerMode _mode = ControllerMode.Auto;
|
||||||
static ControllerMode _applyMode = ControllerMode.Mouse;
|
static ControllerMode _applyMode = ControllerMode.Mouse;
|
||||||
|
|
||||||
static int _autoCount = 0;
|
static int _autoCount = 0;
|
||||||
|
|
||||||
|
static int _upCount = 0;
|
||||||
|
static int _downCount = 0;
|
||||||
|
|
||||||
|
static int tdpMin = 6;
|
||||||
|
static int tdpStable = tdpMin;
|
||||||
|
static int tdpCurrent = -1;
|
||||||
|
|
||||||
|
static bool autoTDP = false;
|
||||||
|
|
||||||
static int fpsLimit = -1;
|
static int fpsLimit = -1;
|
||||||
|
|
||||||
|
|
||||||
public const string BindA = "01-01";
|
public const string BindA = "01-01";
|
||||||
public const string BindB = "01-02";
|
public const string BindB = "01-02";
|
||||||
public const string BindX = "01-03";
|
public const string BindX = "01-03";
|
||||||
@@ -280,32 +294,116 @@ namespace GHelper.Ally
|
|||||||
public AllyControl(SettingsForm settingsForm)
|
public AllyControl(SettingsForm settingsForm)
|
||||||
{
|
{
|
||||||
if (!AppConfig.IsAlly()) return;
|
if (!AppConfig.IsAlly()) return;
|
||||||
|
|
||||||
settings = settingsForm;
|
settings = settingsForm;
|
||||||
|
|
||||||
timer = new System.Timers.Timer(300);
|
if (timer is null)
|
||||||
timer.Elapsed += Timer_Elapsed;
|
{
|
||||||
|
timer = new System.Timers.Timer(300);
|
||||||
|
timer.Elapsed += Timer_Elapsed;
|
||||||
|
Logger.WriteLine("Ally timer");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private int GetMaxTDP()
|
||||||
|
{
|
||||||
|
int tdp = AppConfig.GetMode("limit_total");
|
||||||
|
if (tdp > 0) return tdp;
|
||||||
|
switch (Modes.GetCurrentBase())
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
return 25;
|
||||||
|
case 2:
|
||||||
|
return 10;
|
||||||
|
default:
|
||||||
|
return 15;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private int GetTDP()
|
||||||
|
{
|
||||||
|
if (tdpCurrent < 0) tdpCurrent = GetMaxTDP();
|
||||||
|
return tdpCurrent;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetTDP(int tdp, string log)
|
||||||
|
{
|
||||||
|
if (tdp < tdpStable) tdp = tdpStable;
|
||||||
|
|
||||||
|
int max = GetMaxTDP();
|
||||||
|
if (tdp > max) tdp = max;
|
||||||
|
|
||||||
|
if (tdp == tdpCurrent) return;
|
||||||
|
if (!autoTDP) return;
|
||||||
|
|
||||||
|
Program.acpi.DeviceSet(AsusACPI.PPT_APUA0, tdp, log);
|
||||||
|
Program.acpi.DeviceSet(AsusACPI.PPT_APUA3, tdp, null);
|
||||||
|
Program.acpi.DeviceSet(AsusACPI.PPT_APUC1, tdp, null);
|
||||||
|
|
||||||
|
tdpCurrent = tdp;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Timer_Elapsed(object? sender, System.Timers.ElapsedEventArgs e)
|
private void Timer_Elapsed(object? sender, System.Timers.ElapsedEventArgs e)
|
||||||
{
|
{
|
||||||
|
if (!autoTDP && _mode != ControllerMode.Auto) return;
|
||||||
|
|
||||||
float fps = amdControl.GetFPS();
|
float fps = amdControl.GetFPS();
|
||||||
|
|
||||||
ControllerMode newMode = (fps > 0) ? ControllerMode.Gamepad : ControllerMode.Mouse;
|
if (autoTDP && fpsLimit > 0 && fpsLimit <= 120)
|
||||||
|
|
||||||
if (_applyMode != newMode) _autoCount++;
|
|
||||||
else _autoCount = 0;
|
|
||||||
|
|
||||||
if (_mode != ControllerMode.Auto) return;
|
|
||||||
|
|
||||||
if (_autoCount > 2)
|
|
||||||
{
|
{
|
||||||
_autoCount = 0;
|
int power = (int)amdControl.GetGpuPower();
|
||||||
ApplyMode(newMode);
|
//Debug.WriteLine($"{power}: {fps}");
|
||||||
Logger.WriteLine(fps.ToString());
|
|
||||||
|
if (fps <= fpsLimit * 0.8) _upCount++;
|
||||||
|
else _upCount = 0;
|
||||||
|
|
||||||
|
if (fps >= fpsLimit * 0.90) _downCount++;
|
||||||
|
else _downCount = 0;
|
||||||
|
|
||||||
|
var tdp = GetTDP();
|
||||||
|
if (_upCount >= 1)
|
||||||
|
{
|
||||||
|
_downCount = 0;
|
||||||
|
_upCount = 0;
|
||||||
|
SetTDP(tdp + 1, $"AutoTDP+ [{power}]{fps}");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (_downCount >= 8 && power < tdp)
|
||||||
|
{
|
||||||
|
_upCount = 0;
|
||||||
|
_downCount--;
|
||||||
|
SetTDP(tdp - 1, $"AutoTDP- [{power}]{fps}");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (_mode == ControllerMode.Auto)
|
||||||
|
{
|
||||||
|
ControllerMode newMode = (fps > 0) ? ControllerMode.Gamepad : ControllerMode.Mouse;
|
||||||
|
|
||||||
|
if (_applyMode != newMode) _autoCount++;
|
||||||
|
else _autoCount = 0;
|
||||||
|
|
||||||
|
if (_autoCount == 3)
|
||||||
|
{
|
||||||
|
_autoCount = 0;
|
||||||
|
ApplyMode(newMode);
|
||||||
|
Logger.WriteLine($"Controller Mode {fps}: {newMode}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public void ToggleAutoTDP()
|
||||||
|
{
|
||||||
|
autoTDP = !autoTDP;
|
||||||
|
tdpCurrent = -1;
|
||||||
|
|
||||||
|
if (!autoTDP)
|
||||||
|
{
|
||||||
|
Program.modeControl.SetPerformanceMode();
|
||||||
|
}
|
||||||
|
|
||||||
|
settings.VisualiseAutoTDP(autoTDP);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Init()
|
public void Init()
|
||||||
@@ -319,7 +417,6 @@ namespace GHelper.Ally
|
|||||||
|
|
||||||
fpsLimit = amdControl.GetFPSLimit();
|
fpsLimit = amdControl.GetFPSLimit();
|
||||||
settings.VisualiseFPSLimit(fpsLimit);
|
settings.VisualiseFPSLimit(fpsLimit);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ToggleFPSLimit()
|
public void ToggleFPSLimit()
|
||||||
@@ -479,7 +576,7 @@ namespace GHelper.Ally
|
|||||||
DecodeBinding(KeyR2).CopyTo(bindings, 38);
|
DecodeBinding(KeyR2).CopyTo(bindings, 38);
|
||||||
|
|
||||||
//AsusHid.WriteInput(CommandReady, null);
|
//AsusHid.WriteInput(CommandReady, null);
|
||||||
AsusHid.WriteInput(bindings, $"B{zone}");
|
AsusHid.WriteInput(bindings, null);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -495,19 +592,19 @@ namespace GHelper.Ally
|
|||||||
(byte)AppConfig.Get("ls_max", 100),
|
(byte)AppConfig.Get("ls_max", 100),
|
||||||
(byte)AppConfig.Get("rs_min", 0),
|
(byte)AppConfig.Get("rs_min", 0),
|
||||||
(byte)AppConfig.Get("rs_max", 100)
|
(byte)AppConfig.Get("rs_max", 100)
|
||||||
}, "StickDeadzone");
|
}, null);
|
||||||
|
|
||||||
AsusHid.WriteInput(new byte[] { AsusHid.INPUT_ID, 0xd1, 5, 4,
|
AsusHid.WriteInput(new byte[] { AsusHid.INPUT_ID, 0xd1, 5, 4,
|
||||||
(byte)AppConfig.Get("lt_min", 0),
|
(byte)AppConfig.Get("lt_min", 0),
|
||||||
(byte)AppConfig.Get("lt_max", 100),
|
(byte)AppConfig.Get("lt_max", 100),
|
||||||
(byte)AppConfig.Get("rt_min", 0),
|
(byte)AppConfig.Get("rt_min", 0),
|
||||||
(byte)AppConfig.Get("rt_max", 100)
|
(byte)AppConfig.Get("rt_max", 100)
|
||||||
}, "TriggerDeadzone");
|
}, null);
|
||||||
|
|
||||||
AsusHid.WriteInput(new byte[] { AsusHid.INPUT_ID, 0xd1, 6, 2,
|
AsusHid.WriteInput(new byte[] { AsusHid.INPUT_ID, 0xd1, 6, 2,
|
||||||
(byte)AppConfig.Get("vibra", 100),
|
(byte)AppConfig.Get("vibra", 100),
|
||||||
(byte)AppConfig.Get("vibra", 100)
|
(byte)AppConfig.Get("vibra", 100)
|
||||||
}, "Vibration");
|
}, null);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -572,18 +669,11 @@ namespace GHelper.Ally
|
|||||||
_mode = mode;
|
_mode = mode;
|
||||||
AppConfig.Set("controller_mode", (int)mode);
|
AppConfig.Set("controller_mode", (int)mode);
|
||||||
|
|
||||||
|
amdControl.StopFPS();
|
||||||
ApplyMode(mode, init);
|
ApplyMode(mode, init);
|
||||||
|
|
||||||
if (mode == ControllerMode.Auto)
|
amdControl.StartFPS();
|
||||||
{
|
timer.Start();
|
||||||
amdControl.StartFPS();
|
|
||||||
timer.Start();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
timer.Stop();
|
|
||||||
amdControl.StopFPS();
|
|
||||||
}
|
|
||||||
|
|
||||||
settings.VisualiseController(mode);
|
settings.VisualiseController(mode);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
<ProduceReferenceAssembly>False</ProduceReferenceAssembly>
|
<ProduceReferenceAssembly>False</ProduceReferenceAssembly>
|
||||||
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
|
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
|
||||||
<AssemblyVersion>0.168</AssemblyVersion>
|
<AssemblyVersion>0.169</AssemblyVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||||
|
|||||||
@@ -119,6 +119,18 @@ public class AmdGpuControl : IGpuControl
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int? GetGpuPower()
|
||||||
|
{
|
||||||
|
if (_adlContextHandle == nint.Zero || _iGPU == null) return null;
|
||||||
|
if (ADL2_New_QueryPMLogData_Get(_adlContextHandle, ((ADLAdapterInfo)_iGPU).AdapterIndex, out ADLPMLogDataOutput adlpmLogDataOutput) != Adl2.ADL_SUCCESS) return null;
|
||||||
|
|
||||||
|
ADLSingleSensorData gpuUsage = adlpmLogDataOutput.Sensors[(int)ADLSensorType.PMLOG_ASIC_POWER];
|
||||||
|
if (gpuUsage.Supported == 0) return null;
|
||||||
|
|
||||||
|
return gpuUsage.Value;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public bool SetVariBright(int enabled)
|
public bool SetVariBright(int enabled)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ public class NvidiaGpuControl : IGpuControl
|
|||||||
public static int MinCoreOffset = AppConfig.Get("min_gpu_core", -250);
|
public static int MinCoreOffset = AppConfig.Get("min_gpu_core", -250);
|
||||||
public static int MinMemoryOffset = AppConfig.Get("min_gpu_memory", -500);
|
public static int MinMemoryOffset = AppConfig.Get("min_gpu_memory", -500);
|
||||||
|
|
||||||
public const int MinClockLimit = 400;
|
public static int MinClockLimit = AppConfig.Get("min_gpu_clock", 400);
|
||||||
public const int MaxClockLimit = 3000;
|
public const int MaxClockLimit = 3000;
|
||||||
|
|
||||||
private static PhysicalGPU? _internalGpu;
|
private static PhysicalGPU? _internalGpu;
|
||||||
|
|||||||
@@ -154,7 +154,7 @@
|
|||||||
<value>Anime Matrix</value>
|
<value>Anime Matrix</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AppAlreadyRunning" xml:space="preserve">
|
<data name="AppAlreadyRunning" xml:space="preserve">
|
||||||
<value>Appen kører allerede</value>
|
<value>App'en kører allerede</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AppAlreadyRunningText" xml:space="preserve">
|
<data name="AppAlreadyRunningText" xml:space="preserve">
|
||||||
<value>G-Helper kører allerede. Tjek systembakken for et ikon.</value>
|
<value>G-Helper kører allerede. Tjek systembakken for et ikon.</value>
|
||||||
@@ -175,7 +175,7 @@
|
|||||||
<value>Hukommelse tildelt til GPU</value>
|
<value>Hukommelse tildelt til GPU</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AsusServicesRunning" xml:space="preserve">
|
<data name="AsusServicesRunning" xml:space="preserve">
|
||||||
<value>Kørende Asus-tjenester</value>
|
<value>Kørende ASUS-tjenester</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AuraBatteryState" xml:space="preserve">
|
<data name="AuraBatteryState" xml:space="preserve">
|
||||||
<value>Batteritilstand</value>
|
<value>Batteritilstand</value>
|
||||||
@@ -301,7 +301,7 @@
|
|||||||
<value>Boot</value>
|
<value>Boot</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BootSound" xml:space="preserve">
|
<data name="BootSound" xml:space="preserve">
|
||||||
<value>Boot-lyd</value>
|
<value>Opstarts-lyd</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Brightness" xml:space="preserve">
|
<data name="Brightness" xml:space="preserve">
|
||||||
<value>Lysstyrke</value>
|
<value>Lysstyrke</value>
|
||||||
@@ -313,7 +313,7 @@
|
|||||||
<value>Lysstyrke op</value>
|
<value>Lysstyrke op</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BWTrayIcon" xml:space="preserve">
|
<data name="BWTrayIcon" xml:space="preserve">
|
||||||
<value>Sort og hvid bakkeikon</value>
|
<value>Sort/hvid bakkeikon</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Calibrate" xml:space="preserve">
|
<data name="Calibrate" xml:space="preserve">
|
||||||
<value>Kalibrer</value>
|
<value>Kalibrer</value>
|
||||||
@@ -349,7 +349,7 @@
|
|||||||
<value>Deaktiver ved lukning af låg</value>
|
<value>Deaktiver ved lukning af låg</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="DisableOverdrive" xml:space="preserve">
|
<data name="DisableOverdrive" xml:space="preserve">
|
||||||
<value>Deaktiver overdrive på skærmen</value>
|
<value>Deaktiver Overdrive på skærmen</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Discharging" xml:space="preserve">
|
<data name="Discharging" xml:space="preserve">
|
||||||
<value>Aflader</value>
|
<value>Aflader</value>
|
||||||
@@ -393,7 +393,7 @@ Vil du stadig fortsætte?</value>
|
|||||||
<value>Ekstra indstillinger</value>
|
<value>Ekstra indstillinger</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FactoryDefaults" xml:space="preserve">
|
<data name="FactoryDefaults" xml:space="preserve">
|
||||||
<value>Standard fabriksindstillinger</value>
|
<value>Gendan standarder</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FanCurves" xml:space="preserve">
|
<data name="FanCurves" xml:space="preserve">
|
||||||
<value>Blæserkurver</value>
|
<value>Blæserkurver</value>
|
||||||
@@ -411,13 +411,13 @@ Vil du stadig fortsætte?</value>
|
|||||||
<value>Blæserprofiler</value>
|
<value>Blæserprofiler</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FansAndPower" xml:space="preserve">
|
<data name="FansAndPower" xml:space="preserve">
|
||||||
<value>Blæsere og kraft</value>
|
<value>Blæsere og strøm</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FanSpeed" xml:space="preserve">
|
<data name="FanSpeed" xml:space="preserve">
|
||||||
<value>Blæser</value>
|
<value>Blæser</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FansPower" xml:space="preserve">
|
<data name="FansPower" xml:space="preserve">
|
||||||
<value>Blæser + Kraft</value>
|
<value>Blæser + Strøm</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FlickerFreeDimming" xml:space="preserve">
|
<data name="FlickerFreeDimming" xml:space="preserve">
|
||||||
<value>Flimmerfri dæmpning</value>
|
<value>Flimmerfri dæmpning</value>
|
||||||
@@ -426,10 +426,10 @@ Vil du stadig fortsætte?</value>
|
|||||||
<value>Aktiver Fn + F genvejstaster uden Fn</value>
|
<value>Aktiver Fn + F genvejstaster uden Fn</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FnLockOff" xml:space="preserve">
|
<data name="FnLockOff" xml:space="preserve">
|
||||||
<value>FN-lås fra</value>
|
<value>Fn-lås fra</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FnLockOn" xml:space="preserve">
|
<data name="FnLockOn" xml:space="preserve">
|
||||||
<value>FN-lås til</value>
|
<value>Fn-lås til</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="GPUBoost" xml:space="preserve">
|
<data name="GPUBoost" xml:space="preserve">
|
||||||
<value>Dynamisk boost</value>
|
<value>Dynamisk boost</value>
|
||||||
@@ -438,13 +438,13 @@ Vil du stadig fortsætte?</value>
|
|||||||
<value>Skifter</value>
|
<value>Skifter</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="GPUCoreClockOffset" xml:space="preserve">
|
<data name="GPUCoreClockOffset" xml:space="preserve">
|
||||||
<value>Core Clock forskydning</value>
|
<value>Core Clock offset</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="GPUMemoryClockOffset" xml:space="preserve">
|
<data name="GPUMemoryClockOffset" xml:space="preserve">
|
||||||
<value>Memory Clock forskydning</value>
|
<value>Memory Clock offset</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="GPUMode" xml:space="preserve">
|
<data name="GPUMode" xml:space="preserve">
|
||||||
<value>GPU- tilstand</value>
|
<value>GPU-tilstand</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="GPUModeEco" xml:space="preserve">
|
<data name="GPUModeEco" xml:space="preserve">
|
||||||
<value>Kun iGPU</value>
|
<value>Kun iGPU</value>
|
||||||
@@ -456,7 +456,7 @@ Vil du stadig fortsætte?</value>
|
|||||||
<value>dGPU eksklusivt</value>
|
<value>dGPU eksklusivt</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="GPUPower" xml:space="preserve">
|
<data name="GPUPower" xml:space="preserve">
|
||||||
<value>GPU- strøm</value>
|
<value>GPU-strøm</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="GPUSettings" xml:space="preserve">
|
<data name="GPUSettings" xml:space="preserve">
|
||||||
<value>GPU-indstillinger</value>
|
<value>GPU-indstillinger</value>
|
||||||
@@ -486,13 +486,13 @@ Vil du stadig fortsætte?</value>
|
|||||||
<value>Stop alle apps der bruger GPU når du skifter til Øko</value>
|
<value>Stop alle apps der bruger GPU når du skifter til Øko</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="LaptopBacklight" xml:space="preserve">
|
<data name="LaptopBacklight" xml:space="preserve">
|
||||||
<value>Bærbar baggrundsbelysning</value>
|
<value>Laptop baggrundsbelysning</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="LaptopKeyboard" xml:space="preserve">
|
<data name="LaptopKeyboard" xml:space="preserve">
|
||||||
<value>Bærbar tastatur</value>
|
<value>Laptop-tastatur</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="LaptopScreen" xml:space="preserve">
|
<data name="LaptopScreen" xml:space="preserve">
|
||||||
<value>Bærbar skærm</value>
|
<value>Laptop-skærm</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="LEDStatusIndicators" xml:space="preserve">
|
<data name="LEDStatusIndicators" xml:space="preserve">
|
||||||
<value>LED statusindikatorer</value>
|
<value>LED statusindikatorer</value>
|
||||||
@@ -561,7 +561,7 @@ Vil du stadig fortsætte?</value>
|
|||||||
<value>minutter</value>
|
<value>minutter</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MouseAngleSnapping" xml:space="preserve">
|
<data name="MouseAngleSnapping" xml:space="preserve">
|
||||||
<value>Vinkel snapping</value>
|
<value>Vinkel-snapping</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MouseAutoPowerOff" xml:space="preserve">
|
<data name="MouseAutoPowerOff" xml:space="preserve">
|
||||||
<value>Automatisk slukning efter</value>
|
<value>Automatisk slukning efter</value>
|
||||||
@@ -627,7 +627,7 @@ Vil du stadig fortsætte?</value>
|
|||||||
<value>Skift til Øko på batteri og til Standard, når tilsluttet strøm</value>
|
<value>Skift til Øko på batteri og til Standard, når tilsluttet strøm</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="OptimizedUSBC" xml:space="preserve">
|
<data name="OptimizedUSBC" xml:space="preserve">
|
||||||
<value>Hold GPU deaktiveret på USB-C-oplader i optimeret tilstand</value>
|
<value>Hold GPU deaktiveret på USB-C oplader i optimeret tilstand</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Other" xml:space="preserve">
|
<data name="Other" xml:space="preserve">
|
||||||
<value>Andet</value>
|
<value>Andet</value>
|
||||||
@@ -651,10 +651,10 @@ Vil du stadig fortsætte?</value>
|
|||||||
<value>Polling Rate</value>
|
<value>Polling Rate</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="PowerLimits" xml:space="preserve">
|
<data name="PowerLimits" xml:space="preserve">
|
||||||
<value>Kraftgrænser</value>
|
<value>Strømgrænser</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="PPTExperimental" xml:space="preserve">
|
<data name="PPTExperimental" xml:space="preserve">
|
||||||
<value>Kraftgrænser er en eksperimentel funktion. Brug omhyggeligt og på egen risiko!</value>
|
<value>Strømgrænser er en eksperimentel funktion. Brug omhyggeligt og på egen risiko!</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="PrintScreen" xml:space="preserve">
|
<data name="PrintScreen" xml:space="preserve">
|
||||||
<value>PrintScreen</value>
|
<value>PrintScreen</value>
|
||||||
@@ -729,10 +729,10 @@ Vil du stadig fortsætte?</value>
|
|||||||
<value>Slå Aura til/fra</value>
|
<value>Slå Aura til/fra</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ToggleClamshellMode" xml:space="preserve">
|
<data name="ToggleClamshellMode" xml:space="preserve">
|
||||||
<value>Automatisk slå Clamshell tilstand til/fra</value>
|
<value>Slå automatisk Clamshell-tilstand til/fra</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ToggleFnLock" xml:space="preserve">
|
<data name="ToggleFnLock" xml:space="preserve">
|
||||||
<value>Slå Fn-Lock til/fra</value>
|
<value>Slå Fn-lås til/fra</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ToggleMiniled" xml:space="preserve">
|
<data name="ToggleMiniled" xml:space="preserve">
|
||||||
<value>Slå MiniLED til/fra (hvis understøttet)</value>
|
<value>Slå MiniLED til/fra (hvis understøttet)</value>
|
||||||
@@ -750,7 +750,7 @@ Vil du stadig fortsætte?</value>
|
|||||||
<value>Deaktiver på batteri</value>
|
<value>Deaktiver på batteri</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="UltimateGPUTooltip" xml:space="preserve">
|
<data name="UltimateGPUTooltip" xml:space="preserve">
|
||||||
<value>Kobler bærbar skærm direkte til dGPU, hvilket maksimerer FPS</value>
|
<value>Kobler laptop-skærmen direkte til dGPU, hvilket maksimerer FPS</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="UltimateMode" xml:space="preserve">
|
<data name="UltimateMode" xml:space="preserve">
|
||||||
<value>Ultimativ</value>
|
<value>Ultimativ</value>
|
||||||
@@ -759,7 +759,7 @@ Vil du stadig fortsætte?</value>
|
|||||||
<value>Undervolting er en eksperimentel og risikabel funktion. Hvis de anvendte værdier er for lave for din hardware, kan det blive ustabilt, lukke ned eller forårsage datakorruption. Hvis du ønsker at prøve - start fra små værdier først, klik på Anvend og test hvad der virker for dig.</value>
|
<value>Undervolting er en eksperimentel og risikabel funktion. Hvis de anvendte værdier er for lave for din hardware, kan det blive ustabilt, lukke ned eller forårsage datakorruption. Hvis du ønsker at prøve - start fra små værdier først, klik på Anvend og test hvad der virker for dig.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Unmuted" xml:space="preserve">
|
<data name="Unmuted" xml:space="preserve">
|
||||||
<value>Ikke muted</value>
|
<value>Ikke lydløs</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Updates" xml:space="preserve">
|
<data name="Updates" xml:space="preserve">
|
||||||
<value>Opdateringer</value>
|
<value>Opdateringer</value>
|
||||||
|
|||||||
@@ -729,7 +729,7 @@ Yine de devam etmek istiyor musunuz?</value>
|
|||||||
<value>Aura'yı Kullan</value>
|
<value>Aura'yı Kullan</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ToggleClamshellMode" xml:space="preserve">
|
<data name="ToggleClamshellMode" xml:space="preserve">
|
||||||
<value>Kapaklı modu otmatik değiştir</value>
|
<value>Otomatik Clamshell Modunu Aç</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ToggleFnLock" xml:space="preserve">
|
<data name="ToggleFnLock" xml:space="preserve">
|
||||||
<value>Fn-Lock'u Aç</value>
|
<value>Fn-Lock'u Aç</value>
|
||||||
|
|||||||
25
app/Settings.Designer.cs
generated
25
app/Settings.Designer.cs
generated
@@ -135,6 +135,7 @@ namespace GHelper
|
|||||||
labelGamma = new Label();
|
labelGamma = new Label();
|
||||||
pictureGamma = new PictureBox();
|
pictureGamma = new PictureBox();
|
||||||
labelGammaTitle = new Label();
|
labelGammaTitle = new Label();
|
||||||
|
buttonAutoTDP = new RButton();
|
||||||
panelMatrix.SuspendLayout();
|
panelMatrix.SuspendLayout();
|
||||||
panelMatrixAuto.SuspendLayout();
|
panelMatrixAuto.SuspendLayout();
|
||||||
tableLayoutMatrix.SuspendLayout();
|
tableLayoutMatrix.SuspendLayout();
|
||||||
@@ -766,6 +767,7 @@ namespace GHelper
|
|||||||
tableAMD.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 33F));
|
tableAMD.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 33F));
|
||||||
tableAMD.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 33F));
|
tableAMD.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 33F));
|
||||||
tableAMD.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 33F));
|
tableAMD.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 33F));
|
||||||
|
tableAMD.Controls.Add(buttonAutoTDP, 0, 0);
|
||||||
tableAMD.Controls.Add(buttonOverlay, 0, 0);
|
tableAMD.Controls.Add(buttonOverlay, 0, 0);
|
||||||
tableAMD.Controls.Add(buttonFPS, 0, 0);
|
tableAMD.Controls.Add(buttonFPS, 0, 0);
|
||||||
tableAMD.Dock = DockStyle.Top;
|
tableAMD.Dock = DockStyle.Top;
|
||||||
@@ -1893,6 +1895,28 @@ namespace GHelper
|
|||||||
labelGammaTitle.TabIndex = 37;
|
labelGammaTitle.TabIndex = 37;
|
||||||
labelGammaTitle.Text = "Flicker-free Dimming";
|
labelGammaTitle.Text = "Flicker-free Dimming";
|
||||||
//
|
//
|
||||||
|
// buttonAutoTDP
|
||||||
|
//
|
||||||
|
buttonAutoTDP.Activated = false;
|
||||||
|
buttonAutoTDP.BackColor = SystemColors.ControlLightLight;
|
||||||
|
buttonAutoTDP.BorderColor = Color.Transparent;
|
||||||
|
buttonAutoTDP.BorderRadius = 5;
|
||||||
|
buttonAutoTDP.Dock = DockStyle.Fill;
|
||||||
|
buttonAutoTDP.FlatAppearance.BorderSize = 0;
|
||||||
|
buttonAutoTDP.FlatStyle = FlatStyle.Flat;
|
||||||
|
buttonAutoTDP.ForeColor = SystemColors.ControlText;
|
||||||
|
buttonAutoTDP.Image = Properties.Resources.icons8_gauge_32;
|
||||||
|
buttonAutoTDP.ImageAlign = ContentAlignment.MiddleRight;
|
||||||
|
buttonAutoTDP.Location = new Point(528, 4);
|
||||||
|
buttonAutoTDP.Margin = new Padding(4);
|
||||||
|
buttonAutoTDP.Name = "buttonAutoTDP";
|
||||||
|
buttonAutoTDP.Secondary = false;
|
||||||
|
buttonAutoTDP.Size = new Size(255, 72);
|
||||||
|
buttonAutoTDP.TabIndex = 13;
|
||||||
|
buttonAutoTDP.Text = "AutoTDP";
|
||||||
|
buttonAutoTDP.TextImageRelation = TextImageRelation.ImageBeforeText;
|
||||||
|
buttonAutoTDP.UseVisualStyleBackColor = false;
|
||||||
|
//
|
||||||
// SettingsForm
|
// SettingsForm
|
||||||
//
|
//
|
||||||
AutoScaleDimensions = new SizeF(192F, 192F);
|
AutoScaleDimensions = new SizeF(192F, 192F);
|
||||||
@@ -2095,5 +2119,6 @@ namespace GHelper
|
|||||||
private RButton buttonInstallColor;
|
private RButton buttonInstallColor;
|
||||||
private Label labelVisual;
|
private Label labelVisual;
|
||||||
private RButton buttonFHD;
|
private RButton buttonFHD;
|
||||||
|
private RButton buttonAutoTDP;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -222,7 +222,9 @@ namespace GHelper
|
|||||||
|
|
||||||
buttonUpdates.Click += ButtonUpdates_Click;
|
buttonUpdates.Click += ButtonUpdates_Click;
|
||||||
|
|
||||||
sliderBattery.ValueChanged += SliderBattery_ValueChanged;
|
sliderBattery.MouseUp += SliderBattery_MouseUp;
|
||||||
|
sliderBattery.KeyUp += SliderBattery_KeyUp;
|
||||||
|
|
||||||
Program.trayIcon.MouseMove += TrayIcon_MouseMove;
|
Program.trayIcon.MouseMove += TrayIcon_MouseMove;
|
||||||
|
|
||||||
sensorTimer = new System.Timers.Timer(AppConfig.Get("sensor_timer", 1000));
|
sensorTimer = new System.Timers.Timer(AppConfig.Get("sensor_timer", 1000));
|
||||||
@@ -249,6 +251,9 @@ namespace GHelper
|
|||||||
|
|
||||||
buttonFPS.Click += ButtonFPS_Click;
|
buttonFPS.Click += ButtonFPS_Click;
|
||||||
buttonOverlay.Click += ButtonOverlay_Click;
|
buttonOverlay.Click += ButtonOverlay_Click;
|
||||||
|
|
||||||
|
buttonAutoTDP.Click += ButtonAutoTDP_Click;
|
||||||
|
buttonAutoTDP.BorderColor = colorTurbo;
|
||||||
|
|
||||||
Text = "G-Helper " + (ProcessHelper.IsUserAdministrator() ? "—" : "-") + " " + AppConfig.GetModelShort();
|
Text = "G-Helper " + (ProcessHelper.IsUserAdministrator() ? "—" : "-") + " " + AppConfig.GetModelShort();
|
||||||
TopMost = AppConfig.Is("topmost");
|
TopMost = AppConfig.Is("topmost");
|
||||||
@@ -272,6 +277,21 @@ namespace GHelper
|
|||||||
screenControl.ToogleFHD();
|
screenControl.ToogleFHD();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void SliderBattery_KeyUp(object? sender, KeyEventArgs e)
|
||||||
|
{
|
||||||
|
BatteryControl.SetBatteryChargeLimit(sliderBattery.Value);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SliderBattery_MouseUp(object? sender, MouseEventArgs e)
|
||||||
|
{
|
||||||
|
BatteryControl.SetBatteryChargeLimit(sliderBattery.Value);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ButtonAutoTDP_Click(object? sender, EventArgs e)
|
||||||
|
{
|
||||||
|
allyControl.ToggleAutoTDP();
|
||||||
|
}
|
||||||
|
|
||||||
private void LabelCharge_Click(object? sender, EventArgs e)
|
private void LabelCharge_Click(object? sender, EventArgs e)
|
||||||
{
|
{
|
||||||
BatteryControl.BatteryReport();
|
BatteryControl.BatteryReport();
|
||||||
@@ -496,6 +516,12 @@ namespace GHelper
|
|||||||
buttonFPS.Text = "FPS Limit " + ((limit > 0 && limit <= 120) ? limit : "OFF");
|
buttonFPS.Text = "FPS Limit " + ((limit > 0 && limit <= 120) ? limit : "OFF");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void VisualiseAutoTDP(bool status)
|
||||||
|
{
|
||||||
|
Logger.WriteLine($"Auto TDP: {status}");
|
||||||
|
buttonAutoTDP.Activated = status;
|
||||||
|
}
|
||||||
|
|
||||||
private void SettingsForm_LostFocus(object? sender, EventArgs e)
|
private void SettingsForm_LostFocus(object? sender, EventArgs e)
|
||||||
{
|
{
|
||||||
lastLostFocus = DateTimeOffset.Now.ToUnixTimeMilliseconds();
|
lastLostFocus = DateTimeOffset.Now.ToUnixTimeMilliseconds();
|
||||||
@@ -736,11 +762,6 @@ namespace GHelper
|
|||||||
gpuControl.ToggleXGM();
|
gpuControl.ToggleXGM();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SliderBattery_ValueChanged(object? sender, EventArgs e)
|
|
||||||
{
|
|
||||||
BatteryControl.SetBatteryChargeLimit(sliderBattery.Value);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public void SetVersionLabel(string label, bool update = false)
|
public void SetVersionLabel(string label, bool update = false)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user