Compare commits

..

8 Commits
srgb ... gamma

Author SHA1 Message Date
Serge
2939aa4c43 Added OLED model detection 2024-02-24 11:39:50 +01:00
Serge
4fd087b19b Stronger dimming 2024-02-17 14:20:54 +01:00
Serge
062301555c Gamma improvements 2024-02-17 13:45:01 +01:00
Serge
744b304d4b Gamma ramp tweaks 2024-02-17 12:42:32 +01:00
Serge
4863946ca3 Show flicker-free dimming only on supported models 2024-02-17 10:36:42 +01:00
Serge
6f0c92e55d Cleanup 2024-02-16 23:45:37 +01:00
Serge
b3711f005f Merge branch 'main' into gamma 2024-02-16 23:16:17 +01:00
Serge
cf84fa0616 Gamma Init 2024-02-16 15:55:37 +01:00
53 changed files with 1418 additions and 2744 deletions

4
.github/SECURITY.md vendored
View File

@@ -4,8 +4,8 @@
| Version | Supported | | Version | Supported |
| ------- | ------------------ | | ------- | ------------------ |
| 0.151+ | :white_check_mark: | | 0.89+ | :white_check_mark: |
| < 0.151 | :x: | | < 0.89 | :x: |
## Reporting a Vulnerability ## Reporting a Vulnerability

View File

@@ -18,8 +18,6 @@ namespace GHelper.AnimeMatrix
public AnimeMatrixDevice? deviceMatrix; public AnimeMatrixDevice? deviceMatrix;
public SlashDevice? deviceSlash; public SlashDevice? deviceSlash;
public static bool lidClose = false;
double[]? AudioValues; double[]? AudioValues;
WasapiCapture? AudioDevice; WasapiCapture? AudioDevice;
string? AudioDeviceId; string? AudioDeviceId;
@@ -58,15 +56,6 @@ namespace GHelper.AnimeMatrix
if (deviceSlash is not null) SetSlash(wakeUp); if (deviceSlash is not null) SetSlash(wakeUp);
} }
public void SetLidMode(bool force = false)
{
if (AppConfig.Is("matrix_lid") || force)
{
Logger.WriteLine($"Matrix LidClosed: {lidClose}");
SetDevice(true);
}
}
public void SetSlash(bool wakeUp = false) public void SetSlash(bool wakeUp = false)
{ {
@@ -77,7 +66,6 @@ namespace GHelper.AnimeMatrix
int inteval = AppConfig.Get("matrix_interval", 0); int inteval = AppConfig.Get("matrix_interval", 0);
bool auto = AppConfig.Is("matrix_auto"); bool auto = AppConfig.Is("matrix_auto");
bool lid = AppConfig.Is("matrix_lid");
Task.Run(() => Task.Run(() =>
{ {
@@ -93,7 +81,7 @@ namespace GHelper.AnimeMatrix
if (wakeUp) deviceSlash.WakeUp(); if (wakeUp) deviceSlash.WakeUp();
if (brightness == 0 || (auto && SystemInformation.PowerStatus.PowerLineStatus != PowerLineStatus.Online) || (lid && lidClose)) if (brightness == 0 || (auto && SystemInformation.PowerStatus.PowerLineStatus != PowerLineStatus.Online))
{ {
deviceSlash.Init(); deviceSlash.Init();
deviceSlash.SetOptions(false, 0, 0); deviceSlash.SetOptions(false, 0, 0);
@@ -122,7 +110,6 @@ namespace GHelper.AnimeMatrix
int brightness = AppConfig.Get("matrix_brightness", 0); int brightness = AppConfig.Get("matrix_brightness", 0);
int running = AppConfig.Get("matrix_running", 0); int running = AppConfig.Get("matrix_running", 0);
bool auto = AppConfig.Is("matrix_auto"); bool auto = AppConfig.Is("matrix_auto");
bool lid = AppConfig.Is("matrix_lid");
StopMatrixTimer(); StopMatrixTimer();
StopMatrixAudio(); StopMatrixAudio();
@@ -141,7 +128,7 @@ namespace GHelper.AnimeMatrix
if (wakeUp) deviceMatrix.WakeUp(); if (wakeUp) deviceMatrix.WakeUp();
if (brightness == 0 || (auto && SystemInformation.PowerStatus.PowerLineStatus != PowerLineStatus.Online) || (lid && lidClose)) if (brightness == 0 || (auto && SystemInformation.PowerStatus.PowerLineStatus != PowerLineStatus.Online))
{ {
deviceMatrix.SetDisplayState(false); deviceMatrix.SetDisplayState(false);
deviceMatrix.SetDisplayState(false); // some devices are dumb deviceMatrix.SetDisplayState(false); // some devices are dumb

View File

@@ -127,11 +127,6 @@ namespace GHelper.AnimeMatrix
Set(Packet<SlashPacket>(0xD8, 0x01, 0x00, 0x01, status ? (byte)0x80 : (byte)0x00)); Set(Packet<SlashPacket>(0xD8, 0x01, 0x00, 0x01, status ? (byte)0x80 : (byte)0x00));
} }
public void SetLidMode(bool status)
{
Set(Packet<SlashPacket>(0xD8, 0x00, 0x00, 0x02, 0xA5, status ? (byte)0x80 : (byte)0x00));
}
public void Set(Packet packet) public void Set(Packet packet)
{ {
_usbProvider?.Set(packet.Data); _usbProvider?.Set(packet.Data);

View File

@@ -67,17 +67,9 @@ public static class AppConfig
{ {
File.WriteAllText(backup, jsonString); File.WriteAllText(backup, jsonString);
} }
catch (Exception) catch (Exception ex)
{ {
Thread.Sleep(100); Logger.WriteLine(ex.ToString());
try
{
File.WriteAllText(backup, jsonString);
}
catch (Exception ex)
{
Logger.WriteLine(ex.Message);
}
return; return;
} }
@@ -99,19 +91,13 @@ public static class AppConfig
if (_model is null) if (_model is null)
{ {
_model = ""; _model = "";
try using (var searcher = new ManagementObjectSearcher(@"Select * from Win32_ComputerSystem"))
{ {
using (var searcher = new ManagementObjectSearcher(@"Select * from Win32_ComputerSystem")) foreach (var process in searcher.Get())
{ {
foreach (var process in searcher.Get()) _model = process["Model"].ToString();
{ break;
_model = process["Model"].ToString();
break;
}
} }
} catch (Exception ex)
{
Logger.WriteLine(ex.Message);
} }
} }
@@ -365,9 +351,9 @@ public static class AppConfig
return ContainsModel("ProArt"); return ContainsModel("ProArt");
} }
public static bool IsVivoZenbook() public static bool IsVivobook()
{ {
return ContainsModel("Vivobook") || ContainsModel("Zenbook"); return ContainsModel("Vivobook");
} }
// Devices with bugged bios command to change brightness // Devices with bugged bios command to change brightness
@@ -405,7 +391,7 @@ public static class AppConfig
public static bool IsOLED() public static bool IsOLED()
{ {
return ContainsModel("OLED") || IsSlash() || ContainsModel("UX64") || ContainsModel("UX34") || ContainsModel("UX53") || ContainsModel("K360") || ContainsModel("X150"); return ContainsModel("OLED") || IsSlash() || ContainsModel("UX64") || ContainsModel("UX34") || ContainsModel("K360") || ContainsModel("X150");
} }
public static bool IsStrix() public static bool IsStrix()
@@ -418,17 +404,11 @@ public static class AppConfig
return (ContainsModel("G614JV") || ContainsModel("G614JZ") || ContainsModel("G512LI") || ContainsModel("G513R") || ContainsModel("G713PV") || ContainsModel("G513IE") || ContainsModel("G713RC") || ContainsModel("G513QM") || ContainsModel("G531G")) && !Is("per_key_rgb"); return (ContainsModel("G614JV") || ContainsModel("G614JZ") || ContainsModel("G512LI") || ContainsModel("G513R") || ContainsModel("G713PV") || ContainsModel("G513IE") || ContainsModel("G713RC") || ContainsModel("G513QM") || ContainsModel("G531G")) && !Is("per_key_rgb");
} }
public static bool IsNoAirplaneMode() public static bool IsNoAirplaneMode()
{ {
return ContainsModel("FX506"); return ContainsModel("FX506");
} }
public static bool NoWMI()
{
return ContainsModel("GL704G");
}
public static bool IsNoDirectRGB() public static bool IsNoDirectRGB()
{ {
return ContainsModel("GA503") || ContainsModel("G533Q"); return ContainsModel("GA503") || ContainsModel("G533Q");
@@ -476,7 +456,7 @@ public static class AppConfig
public static bool NoAutoUltimate() public static bool NoAutoUltimate()
{ {
return ContainsModel("G614") || ContainsModel("GU604") || ContainsModel("FX507") || ContainsModel("G513") || ContainsModel("FA617") || ContainsModel("G834") || ContainsModel("GA403") || ContainsModel("GU605"); return ContainsModel("G614") || ContainsModel("GU604") || ContainsModel("FX507") || ContainsModel("G513") || ContainsModel("FA617") || ContainsModel("G834");
} }
@@ -514,7 +494,7 @@ public static class AppConfig
try try
{ {
var (bios, model) = GetBiosAndModel(); var (bios, model) = GetBiosAndModel();
return (Int32.Parse(bios) == 317 || Int32.Parse(bios) == 316); return (Int32.Parse(bios) == 317);
} }
catch catch
{ {
@@ -522,19 +502,9 @@ public static class AppConfig
} }
} }
public static bool IsResetRequired()
{
return ContainsModel("GA403");
}
public static bool IsFanRequired() public static bool IsFanRequired()
{ {
return ContainsModel("GA402X") || ContainsModel("G513") || ContainsModel("G713R") || ContainsModel("G713P") || ContainsModel("GU605") || ContainsModel("GA403"); return ContainsModel("GA402X") || ContainsModel("G513") || ContainsModel("G713R") || ContainsModel("G713P");
}
public static bool IsAMDLight()
{
return ContainsModel("GA402X") || ContainsModel("GU605") || ContainsModel("GA403") || ContainsModel("FA507N") || ContainsModel("FA507X") || ContainsModel("FA707N") || ContainsModel("FA707X");
} }
public static bool IsPowerRequired() public static bool IsPowerRequired()

View File

@@ -43,10 +43,6 @@ public class AsusACPI
public const int Brightness_Down = 0x10; public const int Brightness_Down = 0x10;
public const int Brightness_Up = 0x20; public const int Brightness_Up = 0x20;
public const int KB_Sleep = 0x6c; public const int KB_Sleep = 0x6c;
public const int KB_TouchpadToggle = 0x6b;
public const int KB_MuteToggle = 0x7c;
public const int KB_DUO_PgUpDn = 0x4B; public const int KB_DUO_PgUpDn = 0x4B;
public const int KB_DUO_SecondDisplay = 0x6A; public const int KB_DUO_SecondDisplay = 0x6A;
@@ -102,12 +98,6 @@ public class AsusACPI
public const int PPT_APUC1 = 0x001200C1; // fPPT (fast boost limit) public const int PPT_APUC1 = 0x001200C1; // fPPT (fast boost limit)
public const int PPT_GPUC2 = 0x001200C2; // NVIDIA GPU Temp Target (75.. 87 C) public const int PPT_GPUC2 = 0x001200C2; // NVIDIA GPU Temp Target (75.. 87 C)
public const uint CORES_CPU = 0x001200D2; // Intel E-core and P-core configuration in a format 0x0[E]0[P]
public const uint CORES_MAX = 0x001200D3; // Maximum Intel E-core and P-core availability
public const uint GPU_BASE = 0x00120099; // Base part GPU TGP
public const uint GPU_POWER = 0x00120098; // Additonal part of GPU TGP
public const int APU_MEM = 0x000600C1; public const int APU_MEM = 0x000600C1;
public const int TUF_KB_BRIGHTNESS = 0x00050021; public const int TUF_KB_BRIGHTNESS = 0x00050021;
@@ -153,18 +143,9 @@ public class AsusACPI
public const int MinGPUBoost = 5; public const int MinGPUBoost = 5;
public static int MaxGPUBoost = 25; public static int MaxGPUBoost = 25;
public static int MinGPUPower = 0;
public static int MaxGPUPower = 50;
public const int MinGPUTemp = 75; public const int MinGPUTemp = 75;
public const int MaxGPUTemp = 87; public const int MaxGPUTemp = 87;
public const int PCoreMin = 4;
public const int ECoreMin = 0;
public const int PCoreMax = 16;
public const int ECoreMax = 16;
[DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Unicode)] [DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
private static extern IntPtr CreateFile( private static extern IntPtr CreateFile(
@@ -291,12 +272,6 @@ public class AsusACPI
if (AppConfig.IsIntelHX()) if (AppConfig.IsIntelHX())
{ {
MaxTotal = 175; MaxTotal = 175;
MaxGPUPower = 70;
}
if (AppConfig.IsSlash())
{
MaxGPUPower = 25;
} }
if (AppConfig.DynamicBoost5()) if (AppConfig.DynamicBoost5())
@@ -308,14 +283,6 @@ public class AsusACPI
{ {
MaxGPUBoost = 15; MaxGPUBoost = 15;
} }
if (AppConfig.IsAMDLight())
{
MaxTotal = 90;
}
} }
public void Control(uint dwIoControlCode, byte[] lpInBuffer, byte[] lpOutBuffer) public void Control(uint dwIoControlCode, byte[] lpInBuffer, byte[] lpOutBuffer)
@@ -429,16 +396,9 @@ public class AsusACPI
{ {
return null; return null;
} }
} }
public int SetVivoMode(int mode)
{
if (mode == 1) mode = 2;
else if (mode == 2) mode = 1;
return Program.acpi.DeviceSet(VivoBookMode, mode, "VivoMode");
}
public int SetGPUEco(int eco) public int SetGPUEco(int eco)
{ {
int ecoFlag = DeviceGet(GPUEco); int ecoFlag = DeviceGet(GPUEco);
@@ -569,7 +529,7 @@ public class AsusACPI
break; break;
} }
//Logger.WriteLine($"GetFan {device} :" + BitConverter.ToString(result)); Logger.WriteLine($"GetFan {device} :" + BitConverter.ToString(result));
return result; return result;
@@ -714,29 +674,6 @@ public class AsusACPI
} }
} }
public (int, int) GetCores(bool max = false)
{
int value = Program.acpi.DeviceGet(max ? CORES_MAX : CORES_CPU);
//value = max ? 0x406 : 0x605;
if (value < 0) return (-1, -1);
Logger.WriteLine("Cores" + (max ? "Max" : "") + ": 0x" + value.ToString("X4"));
return ((value >> 8) & 0xFF, (value) & 0xFF);
}
public void SetCores(int eCores, int pCores)
{
if (eCores < ECoreMin || eCores > ECoreMax || pCores < PCoreMin || pCores > PCoreMax)
{
Logger.WriteLine($"Incorrect Core config ({eCores}, {pCores})");
return;
};
int value = (eCores << 8) | pCores;
Program.acpi.DeviceSet(CORES_CPU, value, "Cores (0x" + value.ToString("X4") + ")");
}
public string ScanRange() public string ScanRange()
{ {
int value; int value;

File diff suppressed because it is too large Load Diff

View File

@@ -1,56 +1,14 @@
using System.Diagnostics; using System.Runtime.InteropServices;
namespace GHelper.Display namespace GHelper.Display
{ {
enum VisualMode
{
Default,
Racing,
Scenery,
RPG,
FPS,
Cinema,
Eyecare,
Vivid
}
public class ScreenControl public class ScreenControl
{ {
public const int MAX_REFRESH = 1000; public const int MAX_REFRESH = 1000;
public static int activeProfile = 0;
public static DisplayGammaRamp? gammaRamp; public static DisplayGammaRamp? gammaRamp;
private GammaRamp GetGamma(VisualMode mode)
{
ushort[] GammaR, GammaG, GammaB;
switch (mode)
{
case VisualMode.Racing:
GammaR = new ushort[] { 0, 256, 512, 768, 1280, 1536, 1792, 2048, 2304, 2560, 2816, 3072, 3584, 3840, 4096, 4352, 4608, 4864, 5120, 5376, 5888, 6144, 6400, 6656, 6912, 7168, 7424, 7680, 8192, 8448, 8704, 8960, 9216, 9472, 9728, 9984, 10240, 10496, 10496, 10752, 11008, 11264, 11520, 11776, 12032, 12288, 12544, 12800, 13056, 13056, 13312, 13568, 13824, 14080, 14336, 14592, 14848, 15104, 15360, 15360, 15616, 15872, 16128, 16384, 16640, 16896, 17152, 17408, 17664, 17920, 18176, 18432, 18688, 18688, 18944, 19200, 19456, 19712, 19968, 20224, 20480, 20736, 20992, 21248, 21504, 21760, 22016, 22272, 22528, 22528, 22784, 23040, 23296, 23552, 23808, 24064, 24320, 24576, 24832, 25088, 25344, 25600, 25856, 26112, 26368, 26368, 26624, 26880, 27136, 27392, 27648, 27904, 28160, 28416, 28672, 28928, 29184, 29440, 29696, 29952, 30208, 30208, 30464, 30720, 30976, 31232, 31488, 31744, 32000, 32256, 32512, 32768, 33024, 33280, 33536, 33792, 34048, 34304, 34560, 34816, 35072, 35328, 35584, 35840, 36096, 36352, 36608, 36864, 37120, 37376, 37632, 37888, 38144, 38400, 38656, 38912, 39168, 39424, 39680, 39936, 40192, 40448, 40704, 40960, 41216, 41472, 41728, 41984, 42240, 42496, 42752, 43008, 43264, 43520, 43776, 44032, 44288, 44544, 44800, 45056, 45312, 45568, 45824, 46080, 46336, 46592, 46848, 47104, 47360, 47616, 47872, 48128, 48384, 48640, 48896, 49152, 49408, 49664, 49920, 50176, 50432, 50688, 50944, 51200, 51456, 51712, 51968, 52224, 52736, 52992, 53248, 53504, 53760, 54016, 54272, 54528, 54784, 55040, 55296, 55552, 55808, 56064, 56320, 56576, 56832, 57088, 57344, 57600, 57856, 58112, 58368, 58624, 59136, 59392, 59648, 59904, 60160, 60416, 60672, 60928, 61184, 61440, 61696, 61952, 62208, 62464, 62720, 62976, 63488, 63744, 64000, 64256, 64512, 64768, 65024, 65280};
GammaG = new ushort[] { 0, 256, 512, 768, 1280, 1536, 1792, 2048, 2304, 2560, 2816, 3072, 3584, 3840, 4096, 4352, 4608, 4864, 5120, 5376, 5888, 6144, 6400, 6656, 6912, 7168, 7424, 7680, 8192, 8448, 8704, 8960, 9216, 9472, 9728, 9984, 10240, 10496, 10496, 10752, 11008, 11264, 11520, 11776, 12032, 12288, 12544, 12800, 13056, 13056, 13312, 13568, 13824, 14080, 14336, 14592, 14848, 15104, 15360, 15360, 15616, 15872, 16128, 16384, 16640, 16896, 17152, 17408, 17664, 17920, 18176, 18432, 18688, 18688, 18944, 19200, 19456, 19712, 19968, 20224, 20480, 20736, 20992, 21248, 21504, 21760, 22016, 22272, 22528, 22528, 22784, 23040, 23296, 23552, 23808, 24064, 24320, 24576, 24832, 25088, 25344, 25600, 25600, 25856, 26112, 26368, 26624, 26880, 27136, 27392, 27648, 27904, 28160, 28160, 28416, 28672, 28928, 29184, 29440, 29696, 29952, 30208, 30464, 30464, 30720, 30976, 31232, 31488, 31744, 32000, 32256, 32512, 32768, 33024, 33280, 33536, 33792, 34048, 34304, 34560, 34816, 35072, 35328, 35584, 35840, 36096, 36352, 36608, 36864, 37120, 37376, 37632, 37888, 38144, 38400, 38656, 38912, 39168, 39424, 39680, 39936, 40192, 40448, 40704, 40960, 41216, 41472, 41728, 41984, 41984, 42240, 42496, 42752, 43008, 43264, 43520, 43776, 44032, 44288, 44544, 44800, 45056, 45312, 45568, 45824, 45824, 46080, 46336, 46592, 46848, 47104, 47360, 47616, 47872, 48128, 48384, 48640, 48896, 49152, 49408, 49920, 50176, 50432, 50688, 50944, 51200, 51456, 51712, 51968, 52224, 52480, 52736, 52992, 53248, 53504, 53760, 54272, 54528, 54784, 55040, 55296, 55552, 55808, 56064, 56320, 56576, 56832, 57088, 57344, 57600, 57856, 58112, 58368, 58624, 58880, 59136, 59392, 59648, 59904, 60160, 60416, 60672, 60928, 61184, 61440, 61696, 61952, 62208, 62464, 62720, 62976, 63232, 63488, 63744, 64000, 64256};
GammaB = new ushort[] { 0, 256, 512, 768, 1024, 1280, 1536, 1792, 2048, 2304, 2560, 2816, 3072, 3328, 3584, 3840, 4352, 4608, 4864, 5120, 5376, 5632, 5888, 6144, 6400, 6656, 6912, 7168, 7424, 7680, 7936, 8192, 8448, 8704, 8960, 9216, 9216, 9472, 9728, 9984, 10240, 10496, 10496, 10752, 11008, 11264, 11520, 11776, 12032, 12032, 12288, 12544, 12800, 13056, 13312, 13312, 13568, 13824, 14080, 14336, 14592, 14592, 14848, 15104, 15360, 15616, 15872, 16128, 16384, 16640, 16640, 16896, 17152, 17408, 17664, 17920, 18176, 18432, 18688, 18944, 19200, 19200, 19456, 19712, 19968, 20224, 20480, 20736, 20992, 21248, 21504, 21504, 21760, 22016, 22272, 22528, 22784, 23040, 23296, 23552, 23808, 23808, 24064, 24320, 24576, 24832, 25088, 25344, 25600, 25600, 25856, 26112, 26368, 26624, 26880, 27136, 27392, 27392, 27648, 27904, 28160, 28416, 28672, 28928, 29184, 29184, 29440, 29696, 29952, 30208, 30464, 30720, 30976, 31232, 31232, 31488, 31744, 32000, 32256, 32512, 32768, 33024, 33280, 33536, 33792, 33792, 34048, 34304, 34560, 34816, 35072, 35328, 35584, 35840, 36096, 36096, 36352, 36608, 36864, 37120, 37376, 37632, 37888, 38144, 38400, 38656, 38912, 39168, 39424, 39424, 39680, 39936, 40192, 40448, 40704, 40960, 41216, 41472, 41728, 41984, 42240, 42496, 42752, 43008, 43264, 43264, 43520, 43776, 44032, 44288, 44544, 44800, 45056, 45312, 45568, 45824, 46080, 46336, 46592, 46848, 47104, 47104, 47360, 47616, 47872, 48128, 48384, 48640, 48896, 49152, 49408, 49664, 49920, 50176, 50432, 50688, 50944, 50944, 51200, 51456, 51712, 51968, 52224, 52480, 52736, 52992, 53248, 53504, 53760, 54016, 54272, 54528, 54784, 55040, 55296, 55552, 55808, 56064, 56320, 56576, 56576, 56832, 57088, 57344, 57600, 57856, 58112, 58368, 58624, 58880, 59136, 59392, 59648, 59904, 60160, 60416};
break;
case VisualMode.Scenery:
GammaR = new ushort[] { 7424, 7680, 8192, 8448, 8704, 8960, 9216, 9472, 9728, 9984, 10240, 10496, 10496, 10752, 11008, 11264, 11520, 11776, 12032, 12288, 12544, 12800, 13056, 13056, 13312, 13568, 13824, 14080, 14336, 14592, 14848, 15104, 15360, 15360, 15616, 15872, 16128, 16384, 16640, 16896, 17152, 17408, 17664, 17920, 18176, 18432, 18688, 18688, 18944, 19200, 19456, 19712, 19968, 20224, 20480, 20736, 20992, 21248, 21504, 21760, 22016, 22272, 22528, 22528, 22784, 23040, 23296, 23552, 23808, 24064, 24320, 24576, 24832, 25088, 25344, 25600, 25856, 26112, 26368, 26368, 26624, 26880, 27136, 27392, 27648, 27904, 28160, 28416, 28672, 28928, 29184, 29440, 29696, 29952, 30208, 30208, 30464, 30720, 30976, 31232, 31488, 31744, 32000, 32256, 32512, 32768, 33024, 33280, 33536, 33792, 34048, 34304, 34560, 34816, 35072, 35328, 35584, 35840, 36096, 36352, 36608, 36864, 37120, 37376, 37632, 37888, 38144, 38400, 38656, 38912, 39168, 39424, 39680, 39936, 40192, 40448, 40704, 40960, 41216, 41472, 41728, 41984, 42240, 42496, 42752, 43008, 43264, 43520, 43776, 44032, 44288, 44544, 44800, 45056, 45312, 45568, 45824, 46080, 46336, 46592, 46848, 47104, 47360, 47616, 47872, 48128, 48384, 48640, 48896, 49152, 49408, 49664, 49920, 50176, 50432, 50688, 50944, 51200, 51456, 51712, 51968, 52224, 52736, 52992, 53248, 53504, 53760, 54016, 54272, 54528, 54784, 55040, 55296, 55552, 55808, 56064, 56320, 56576, 56832, 57088, 57344, 57600, 57856, 58112, 58624, 59136, 59392, 59648, 59904, 60160, 60416, 60672, 60928, 61184, 61440, 61696, 61952, 62208, 62464, 62720, 62976, 63488, 63744, 64000, 64256, 64512, 64768, 65024, 65280, 65280, 65280, 65280, 65280, 65280, 65280, 65280, 65280, 65280, 65280, 65280, 65280, 65280, 65280, 65280, 65280, 65280, 65280, 65280, 65280, 65280, 65280, 65280, 65280, 65280, 65280, 65280};
GammaG = new ushort[] { 7424, 7680, 8192, 8448, 8704, 8960, 9216, 9472, 9728, 9984, 10240, 10496, 10496, 10752, 11008, 11264, 11520, 11776, 12032, 12288, 12544, 12800, 13056, 13056, 13312, 13568, 13824, 14080, 14336, 14592, 14848, 15104, 15360, 15360, 15616, 15872, 16128, 16384, 16640, 16896, 17152, 17408, 17664, 17920, 18176, 18432, 18688, 18688, 18944, 19200, 19456, 19712, 19968, 20224, 20480, 20736, 20992, 21248, 21504, 21760, 22016, 22272, 22528, 22528, 22784, 23040, 23296, 23552, 23808, 24064, 24320, 24576, 24832, 25088, 25344, 25600, 25600, 25856, 26112, 26368, 26624, 26880, 27136, 27392, 27648, 27904, 28160, 28160, 28416, 28672, 28928, 29184, 29440, 29696, 29952, 30208, 30464, 30464, 30720, 30976, 31232, 31488, 31744, 32000, 32256, 32512, 32768, 33024, 33280, 33536, 33792, 34048, 34304, 34560, 34816, 35072, 35328, 35584, 35840, 36096, 36352, 36608, 36864, 37120, 37376, 37632, 37888, 38144, 38400, 38656, 38912, 39168, 39424, 39680, 39936, 40192, 40448, 40704, 40960, 41216, 41472, 41728, 41984, 42240, 42496, 42752, 43008, 43264, 43520, 43776, 44032, 44032, 44288, 44544, 44800, 45056, 45312, 45568, 45824, 46080, 46336, 46592, 46848, 47104, 47360, 47616, 47872, 48128, 48384, 48640, 48896, 49152, 49408, 49664, 49920, 50176, 50432, 50688, 50944, 51200, 51456, 51712, 52224, 52480, 52736, 52992, 53248, 53504, 53760, 54016, 54272, 54528, 54784, 55040, 55296, 55552, 55808, 56064, 56320, 56576, 56832, 57088, 57344, 57600, 58112, 58368, 58624, 58880, 59136, 59392, 59648, 59904, 60160, 60672, 60928, 61184, 61440, 61696, 61952, 62208, 62464, 62720, 62976, 63232, 63488, 63744, 64000, 64256, 64512, 64512, 64512, 64512, 64512, 64512, 64512, 64512, 64512, 64512, 64512, 64512, 64512, 64512, 64512, 64512, 64512, 64512, 64512, 64512, 64512, 64512, 64512, 64512, 64512, 64512, 64512, 64512};
GammaB = new ushort[] { 6912, 7168, 7424, 7680, 7936, 8192, 8448, 8704, 8960, 9216, 9472, 9472, 9728, 9984, 10240, 10496, 10752, 11008, 11264, 11264, 11520, 11776, 12032, 12288, 12544, 12800, 13056, 13056, 13312, 13568, 13824, 14080, 14336, 14592, 14848, 14848, 15104, 15360, 15616, 15872, 16128, 16384, 16640, 16896, 16896, 17152, 17408, 17664, 17920, 18176, 18432, 18688, 18944, 19200, 19456, 19456, 19712, 19968, 20224, 20480, 20736, 20992, 21248, 21504, 21760, 21760, 22016, 22272, 22528, 22784, 23040, 23296, 23552, 23808, 24064, 24064, 24320, 24576, 24832, 25088, 25344, 25600, 25856, 25856, 26112, 26368, 26624, 26880, 27136, 27392, 27648, 27648, 27904, 28160, 28416, 28672, 28928, 29184, 29440, 29440, 29696, 29952, 30208, 30464, 30720, 30976, 31232, 31488, 31488, 31744, 32000, 32256, 32512, 32768, 33024, 33280, 33536, 33792, 34048, 34048, 34304, 34560, 34816, 35072, 35328, 35584, 35840, 36096, 36352, 36352, 36608, 36864, 37120, 37376, 37632, 37888, 38144, 38400, 38656, 38912, 39168, 39424, 39680, 39936, 40192, 40448, 40704, 40960, 41216, 41472, 41728, 41728, 41984, 42240, 42496, 42752, 43008, 43264, 43520, 43776, 44032, 44288, 44544, 44800, 45056, 45312, 45568, 45824, 46080, 46336, 46592, 46848, 47104, 47360, 47616, 47872, 48128, 48384, 48640, 48896, 49152, 49408, 49664, 49664, 49920, 50176, 50432, 50688, 50944, 51200, 51456, 51712, 51968, 52224, 52480, 52736, 52992, 53248, 53504, 53760, 54016, 54272, 54528, 54784, 55296, 55296, 55552, 55808, 56064, 56320, 56576, 56832, 57088, 57344, 57600, 57856, 58112, 58368, 58624, 58880, 59136, 59136, 59392, 59648, 59904, 60160, 60416, 60672, 60928, 60928, 60928, 60928, 60928, 60928, 60928, 60928, 60928, 60928, 60928, 60928, 60928, 60928, 60928, 60928, 60928, 60928, 60928, 60928, 60928, 60928, 60928, 60928, 60928, 60928, 60928, 60928};
break;
default:
GammaR = new ushort[] { 0, 256, 512, 768, 1280, 1536, 1792, 2048, 2304, 2560, 2816, 3072, 3584, 3840, 4096, 4352, 4608, 4864, 5120, 5376, 5888, 6144, 6400, 6656, 6912, 7168, 7424, 7680, 8192, 8448, 8704, 8960, 9216, 9472, 9728, 9984, 10240, 10496, 10496, 10752, 11008, 11264, 11520, 11776, 12032, 12288, 12544, 12800, 13056, 13056, 13312, 13568, 13824, 14080, 14336, 14592, 14848, 15104, 15360, 15360, 15616, 15872, 16128, 16384, 16640, 16896, 17152, 17408, 17664, 17920, 18176, 18432, 18688, 18688, 18944, 19200, 19456, 19712, 19968, 20224, 20480, 20736, 20992, 21248, 21504, 21760, 22016, 22272, 22528, 22528, 22784, 23040, 23296, 23552, 23808, 24064, 24320, 24576, 24832, 25088, 25344, 25600, 25856, 26112, 26368, 26368, 26624, 26880, 27136, 27392, 27648, 27904, 28160, 28416, 28672, 28928, 29184, 29440, 29696, 29952, 30208, 30208, 30464, 30720, 30976, 31232, 31488, 31744, 32000, 32256, 32512, 32768, 33024, 33280, 33536, 33792, 34048, 34304, 34560, 34816, 35072, 35328, 35584, 35840, 36096, 36352, 36608, 36864, 37120, 37376, 37632, 37888, 38144, 38400, 38656, 38912, 39168, 39424, 39680, 39936, 40192, 40448, 40704, 40960, 41216, 41472, 41728, 41984, 42240, 42496, 42752, 43008, 43264, 43520, 43776, 44032, 44288, 44544, 44800, 45056, 45312, 45568, 45824, 46080, 46336, 46592, 46848, 47104, 47360, 47616, 47872, 48128, 48384, 48640, 48896, 49152, 49408, 49664, 49920, 50176, 50432, 50688, 50944, 51200, 51456, 51712, 51968, 52224, 52736, 52992, 53248, 53504, 53760, 54016, 54272, 54528, 54784, 55040, 55296, 55552, 55808, 56064, 56320, 56576, 56832, 57088, 57344, 57600, 57856, 58112, 58368, 58624, 59136, 59392, 59648, 59904, 60160, 60416, 60672, 60928, 61184, 61440, 61696, 61952, 62208, 62464, 62720, 62976, 63488, 63744, 64000, 64256, 64512, 64768, 65024, 65280 };
GammaG = new ushort[] { 0, 256, 512, 768, 1280, 1536, 1792, 2048, 2304, 2560, 2816, 3072, 3584, 3840, 4096, 4352, 4608, 4864, 5120, 5376, 5888, 6144, 6400, 6656, 6912, 7168, 7424, 7680, 8192, 8448, 8704, 8960, 9216, 9472, 9728, 9984, 10240, 10496, 10496, 10752, 11008, 11264, 11520, 11776, 12032, 12288, 12544, 12800, 13056, 13056, 13312, 13568, 13824, 14080, 14336, 14592, 14848, 15104, 15360, 15360, 15616, 15872, 16128, 16384, 16640, 16896, 17152, 17408, 17664, 17920, 18176, 18432, 18688, 18688, 18944, 19200, 19456, 19712, 19968, 20224, 20480, 20736, 20992, 21248, 21504, 21760, 22016, 22272, 22528, 22528, 22784, 23040, 23296, 23552, 23808, 24064, 24320, 24576, 24832, 25088, 25344, 25600, 25600, 25856, 26112, 26368, 26624, 26880, 27136, 27392, 27648, 27904, 28160, 28160, 28416, 28672, 28928, 29184, 29440, 29696, 29952, 30208, 30464, 30464, 30720, 30976, 31232, 31488, 31744, 32000, 32256, 32512, 32768, 33024, 33280, 33536, 33792, 34048, 34304, 34560, 34816, 35072, 35328, 35584, 35840, 36096, 36352, 36608, 36864, 37120, 37376, 37632, 37888, 38144, 38400, 38656, 38912, 39168, 39424, 39680, 39936, 40192, 40448, 40704, 40960, 41216, 41472, 41728, 41984, 41984, 42240, 42496, 42752, 43008, 43264, 43520, 43776, 44032, 44288, 44544, 44800, 45056, 45312, 45568, 45824, 45824, 46080, 46336, 46592, 46848, 47104, 47360, 47616, 47872, 48128, 48384, 48640, 48896, 49152, 49408, 49920, 50176, 50432, 50688, 50944, 51200, 51456, 51712, 51968, 52224, 52480, 52736, 52992, 53248, 53504, 53760, 54272, 54528, 54784, 55040, 55296, 55552, 55808, 56064, 56320, 56576, 56832, 57088, 57344, 57600, 57856, 58112, 58368, 58624, 58880, 59136, 59392, 59648, 59904, 60160, 60416, 60672, 60928, 61184, 61440, 61696, 61952, 62208, 62464, 62720, 62976, 63232, 63488, 63744, 64000, 64256 };
GammaB = new ushort[] { 0, 256, 512, 768, 1024, 1280, 1536, 1792, 2048, 2304, 2560, 2816, 3072, 3328, 3584, 3840, 4352, 4608, 4864, 5120, 5376, 5632, 5888, 6144, 6400, 6656, 6912, 7168, 7424, 7680, 7936, 8192, 8448, 8704, 8960, 9216, 9216, 9472, 9728, 9984, 10240, 10496, 10496, 10752, 11008, 11264, 11520, 11776, 12032, 12032, 12288, 12544, 12800, 13056, 13312, 13312, 13568, 13824, 14080, 14336, 14592, 14592, 14848, 15104, 15360, 15616, 15872, 16128, 16384, 16640, 16640, 16896, 17152, 17408, 17664, 17920, 18176, 18432, 18688, 18944, 19200, 19200, 19456, 19712, 19968, 20224, 20480, 20736, 20992, 21248, 21504, 21504, 21760, 22016, 22272, 22528, 22784, 23040, 23296, 23552, 23808, 23808, 24064, 24320, 24576, 24832, 25088, 25344, 25600, 25600, 25856, 26112, 26368, 26624, 26880, 27136, 27392, 27392, 27648, 27904, 28160, 28416, 28672, 28928, 29184, 29184, 29440, 29696, 29952, 30208, 30464, 30720, 30976, 31232, 31232, 31488, 31744, 32000, 32256, 32512, 32768, 33024, 33280, 33536, 33792, 33792, 34048, 34304, 34560, 34816, 35072, 35328, 35584, 35840, 36096, 36096, 36352, 36608, 36864, 37120, 37376, 37632, 37888, 38144, 38400, 38656, 38912, 39168, 39424, 39424, 39680, 39936, 40192, 40448, 40704, 40960, 41216, 41472, 41728, 41984, 42240, 42496, 42752, 43008, 43264, 43264, 43520, 43776, 44032, 44288, 44544, 44800, 45056, 45312, 45568, 45824, 46080, 46336, 46592, 46848, 47104, 47104, 47360, 47616, 47872, 48128, 48384, 48640, 48896, 49152, 49408, 49664, 49920, 50176, 50432, 50688, 50944, 50944, 51200, 51456, 51712, 51968, 52224, 52480, 52736, 52992, 53248, 53504, 53760, 54016, 54272, 54528, 54784, 55040, 55296, 55552, 55808, 56064, 56320, 56576, 56576, 56832, 57088, 57344, 57600, 57856, 58112, 58368, 58624, 58880, 59136, 59392, 59648, 59904, 60160, 60416 };
break;
}
return new GammaRamp(GammaR, GammaG, GammaB);
}
public void AutoScreen(bool force = false) public void AutoScreen(bool force = false)
{ {
if (force || AppConfig.Is("screen_auto")) if (force || AppConfig.Is("screen_auto"))
@@ -66,79 +24,29 @@ namespace GHelper.Display
} }
} }
public bool GetSRGB() public void SaveGamma()
{
var screenName = ScreenNative.FindLaptopScreen();
if (screenName is null) return false;
bool userProfiles = CCD.GetUsePerUserDisplayProfiles(screenName);
var defaultProfile = CCD.GetDisplayDefaultColorProfile(screenName);
return defaultProfile is not null && defaultProfile.ToLower().Contains("srgb") && userProfiles;
}
public void ToggleSRGB()
{ {
var screenName = ScreenNative.FindLaptopScreen(); var screenName = ScreenNative.FindLaptopScreen();
if (screenName is null) return; if (screenName is null) return;
bool userProfiles = CCD.GetUsePerUserDisplayProfiles(screenName); try
if (!userProfiles) CCD.SetUsePerUserDisplayProfiles(screenName, true);
var profiles = CCD.GetDisplayColorProfiles(screenName);
var defaultProfile = CCD.GetDisplayDefaultColorProfile(screenName);
Debug.WriteLine($"Default Profile {screenName}: {defaultProfile}");
bool isSRGB = defaultProfile is not null && defaultProfile.ToLower().Contains("srgb") && userProfiles;
bool changed = false;
foreach (var profile in profiles)
{ {
Debug.WriteLine(profile); var handle = ScreenNative.CreateDC(screenName, screenName, null, IntPtr.Zero);
var gammaRamp = new GammaRamp();
if (!changed && !isSRGB && profile.ToLower().Contains("srgb")) if (ScreenNative.GetDeviceGammaRamp(handle, ref gammaRamp))
{ {
CCD.SetDisplayDefaultColorProfile(screenName, profile); var gamma = new DisplayGammaRamp(gammaRamp);
changed = true; Logger.WriteLine("Gamma R: " + string.Join("-", gamma.Red));
} Logger.WriteLine("Gamma G: " + string.Join("-", gamma.Green));
Logger.WriteLine("Gamma B: " + string.Join("-", gamma.Blue));
if (!changed && isSRGB && !profile.ToLower().Contains("srgb"))
{
CCD.SetDisplayDefaultColorProfile(screenName, profile);
changed = true;
} }
} }
catch (Exception ex)
if (!changed)
{ {
if (isSRGB) CCD.SetUsePerUserDisplayProfiles(screenName, false); Logger.WriteLine(ex.ToString());
else
{
var profile = Application.StartupPath + "ASUS_sRGB.icm";
CCD.AddDisplayColorProfile(screenName, profile, true, false);
}
} }
//var colorparams = CCD.GetColorParams(screenName);
//Debug.WriteLine($"{colorparams.MaxLuminance} = {colorparams.RedPointX},{colorparams.RedPointY} {colorparams.GreenPointX},{colorparams.GreenPointY} {colorparams.BluePointX},{colorparams.BluePointY}");
//CCD.SetMinMaxLuminance(0, 0.6, 0.6, screenName);
} }
public void SetBrightness(int brightness = -1)
{
if (!AppConfig.IsOLED()) return;
if (brightness >= 0) AppConfig.Set("brightness", brightness);
else brightness = AppConfig.Get("brightness");
if (brightness >= 0) SetGamma(brightness);
}
public void SetGamma(int brightness = 100) public void SetGamma(int brightness = 100)
{ {
var bright = Math.Round((float)brightness / 200 + 0.5, 2); var bright = Math.Round((float)brightness / 200 + 0.5, 2);
@@ -149,23 +57,21 @@ namespace GHelper.Display
try try
{ {
var handle = ScreenNative.CreateDC(screenName, screenName, null, IntPtr.Zero); var handle = ScreenNative.CreateDC(screenName, screenName, null, IntPtr.Zero);
if (true || gammaRamp is null) if (gammaRamp is null)
{ {
var gammaDump = new GammaRamp(); var gammaDump = new GammaRamp();
if (ScreenNative.GetDeviceGammaRamp(handle, ref gammaDump)) if (ScreenNative.GetDeviceGammaRamp(handle, ref gammaDump))
{ {
gammaRamp = new DisplayGammaRamp(gammaDump); gammaRamp = new DisplayGammaRamp(gammaDump);
Logger.WriteLine("GammaR = {" + string.Join(", ", gammaRamp.Red) + "};"); Logger.WriteLine("Gamma R: " + string.Join("-", gammaRamp.Red));
Logger.WriteLine("GammaG = {" + string.Join(", ", gammaRamp.Green) + "};"); Logger.WriteLine("Gamma G: " + string.Join("-", gammaRamp.Green));
Logger.WriteLine("GammaB = {" + string.Join(", ", gammaRamp.Blue) + "};"); Logger.WriteLine("Gamma B: " + string.Join("-", gammaRamp.Blue));
} }
} }
return;
if (gammaRamp is null || !gammaRamp.IsOriginal()) if (gammaRamp is null || !gammaRamp.IsOriginal())
{ {
Logger.WriteLine("Not default Gamma"); Logger.WriteLine("Default Gamma");
gammaRamp = new DisplayGammaRamp(); gammaRamp = new DisplayGammaRamp();
} }
@@ -174,8 +80,7 @@ namespace GHelper.Display
Logger.WriteLine("Brightness " + bright.ToString() + ": " + result); Logger.WriteLine("Brightness " + bright.ToString() + ": " + result);
} } catch (Exception ex)
catch (Exception ex)
{ {
Logger.WriteLine(ex.ToString()); Logger.WriteLine(ex.ToString());
} }

View File

@@ -339,20 +339,7 @@ namespace GHelper.Display
for (var i = 0; i < modeCount; i++) for (var i = 0; i < modeCount; i++)
if (displayModes[i].infoType == DISPLAYCONFIG_MODE_INFO_TYPE.DISPLAYCONFIG_MODE_INFO_TYPE_TARGET) if (displayModes[i].infoType == DISPLAYCONFIG_MODE_INFO_TYPE.DISPLAYCONFIG_MODE_INFO_TYPE_TARGET)
{ yield return DeviceName(displayModes[i].adapterId, displayModes[i].id);
DISPLAYCONFIG_TARGET_DEVICE_NAME? displayName = null;
try
{
displayName = DeviceName(displayModes[i].adapterId, displayModes[i].id);
} catch (Exception e)
{
Logger.WriteLine(e.Message);
}
if (displayName is not null) yield return (DISPLAYCONFIG_TARGET_DEVICE_NAME)displayName;
}
} }

View File

@@ -42,12 +42,6 @@ namespace GHelper.Display
[DllImport("gdi32")] [DllImport("gdi32")]
internal static extern bool GetDeviceGammaRamp(IntPtr dcHandle, ref GammaRamp ramp); internal static extern bool GetDeviceGammaRamp(IntPtr dcHandle, ref GammaRamp ramp);
[DllImport("gdi32", CharSet = CharSet.Unicode)]
internal static extern bool SetICMProfileW(IntPtr dcHandle, string lpFileName);
[DllImport("gdi32", CharSet = CharSet.Unicode)]
internal static extern bool SetICMMode(IntPtr dcHandle, int mode);
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)] [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
public struct DEVMODE public struct DEVMODE
{ {

240
app/Extra.Designer.cs generated
View File

@@ -99,7 +99,6 @@ namespace GHelper
checkSleepLid = new CheckBox(); checkSleepLid = new CheckBox();
checkShutdownLid = new CheckBox(); checkShutdownLid = new CheckBox();
panelSettingsHeader = new Panel(); panelSettingsHeader = new Panel();
pictureScan = new PictureBox();
pictureLog = new PictureBox(); pictureLog = new PictureBox();
pictureSettings = new PictureBox(); pictureSettings = new PictureBox();
labelSettings = new Label(); labelSettings = new Label();
@@ -121,18 +120,7 @@ namespace GHelper
comboAPU = new RComboBox(); comboAPU = new RComboBox();
pictureAPUMem = new PictureBox(); pictureAPUMem = new PictureBox();
labelAPUMem = new Label(); labelAPUMem = new Label();
panelCores = new Panel(); pictureScan = new PictureBox();
buttonCores = new RButton();
comboCoresP = new RComboBox();
comboCoresE = new RComboBox();
pictureCores = new PictureBox();
label1 = new Label();
panelACPI = new Panel();
textACPIParam = new TextBox();
textACPICommand = new TextBox();
buttonACPISend = new RButton();
pictureDebug = new PictureBox();
labelACPITitle = new Label();
panelServices.SuspendLayout(); panelServices.SuspendLayout();
((System.ComponentModel.ISupportInitialize)pictureService).BeginInit(); ((System.ComponentModel.ISupportInitialize)pictureService).BeginInit();
panelBindingsHeader.SuspendLayout(); panelBindingsHeader.SuspendLayout();
@@ -149,7 +137,6 @@ namespace GHelper
panelXMG.SuspendLayout(); panelXMG.SuspendLayout();
tableBacklight.SuspendLayout(); tableBacklight.SuspendLayout();
panelSettingsHeader.SuspendLayout(); panelSettingsHeader.SuspendLayout();
((System.ComponentModel.ISupportInitialize)pictureScan).BeginInit();
((System.ComponentModel.ISupportInitialize)pictureLog).BeginInit(); ((System.ComponentModel.ISupportInitialize)pictureLog).BeginInit();
((System.ComponentModel.ISupportInitialize)pictureSettings).BeginInit(); ((System.ComponentModel.ISupportInitialize)pictureSettings).BeginInit();
panelSettings.SuspendLayout(); panelSettings.SuspendLayout();
@@ -158,10 +145,7 @@ namespace GHelper
((System.ComponentModel.ISupportInitialize)pictureHibernate).BeginInit(); ((System.ComponentModel.ISupportInitialize)pictureHibernate).BeginInit();
panelAPU.SuspendLayout(); panelAPU.SuspendLayout();
((System.ComponentModel.ISupportInitialize)pictureAPUMem).BeginInit(); ((System.ComponentModel.ISupportInitialize)pictureAPUMem).BeginInit();
panelCores.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)pictureScan).BeginInit();
((System.ComponentModel.ISupportInitialize)pictureCores).BeginInit();
panelACPI.SuspendLayout();
((System.ComponentModel.ISupportInitialize)pictureDebug).BeginInit();
SuspendLayout(); SuspendLayout();
// //
// panelServices // panelServices
@@ -171,7 +155,7 @@ namespace GHelper
panelServices.Controls.Add(labelServices); panelServices.Controls.Add(labelServices);
panelServices.Controls.Add(buttonServices); panelServices.Controls.Add(buttonServices);
panelServices.Dock = DockStyle.Top; panelServices.Dock = DockStyle.Top;
panelServices.Location = new Point(15, 1508); panelServices.Location = new Point(15, 1378);
panelServices.Name = "panelServices"; panelServices.Name = "panelServices";
panelServices.Size = new Size(983, 75); panelServices.Size = new Size(983, 75);
panelServices.TabIndex = 5; panelServices.TabIndex = 5;
@@ -1032,20 +1016,6 @@ namespace GHelper
panelSettingsHeader.Size = new Size(983, 51); panelSettingsHeader.Size = new Size(983, 51);
panelSettingsHeader.TabIndex = 45; panelSettingsHeader.TabIndex = 45;
// //
// pictureScan
//
pictureScan.Anchor = AnchorStyles.Top | AnchorStyles.Right;
pictureScan.BackgroundImage = Resources.icons8_search_32;
pictureScan.BackgroundImageLayout = ImageLayout.Zoom;
pictureScan.Cursor = Cursors.Hand;
pictureScan.Location = new Point(891, 11);
pictureScan.Margin = new Padding(4, 3, 4, 3);
pictureScan.Name = "pictureScan";
pictureScan.Size = new Size(32, 32);
pictureScan.TabIndex = 13;
pictureScan.TabStop = false;
pictureScan.Visible = false;
//
// pictureLog // pictureLog
// //
pictureLog.Anchor = AnchorStyles.Top | AnchorStyles.Right; pictureLog.Anchor = AnchorStyles.Top | AnchorStyles.Right;
@@ -1093,7 +1063,7 @@ namespace GHelper
panelSettings.Controls.Add(checkGpuApps); panelSettings.Controls.Add(checkGpuApps);
panelSettings.Controls.Add(checkGPUFix); panelSettings.Controls.Add(checkGPUFix);
panelSettings.Dock = DockStyle.Top; panelSettings.Dock = DockStyle.Top;
panelSettings.Location = new Point(15, 1108); panelSettings.Location = new Point(15, 978);
panelSettings.Name = "panelSettings"; panelSettings.Name = "panelSettings";
panelSettings.Padding = new Padding(20, 5, 11, 5); panelSettings.Padding = new Padding(20, 5, 11, 5);
panelSettings.Size = new Size(983, 346); panelSettings.Size = new Size(983, 346);
@@ -1208,7 +1178,7 @@ namespace GHelper
panelPower.Controls.Add(labelHibernateAfter); panelPower.Controls.Add(labelHibernateAfter);
panelPower.Controls.Add(pictureHibernate); panelPower.Controls.Add(pictureHibernate);
panelPower.Dock = DockStyle.Top; panelPower.Dock = DockStyle.Top;
panelPower.Location = new Point(15, 1454); panelPower.Location = new Point(15, 1324);
panelPower.Name = "panelPower"; panelPower.Name = "panelPower";
panelPower.Size = new Size(983, 54); panelPower.Size = new Size(983, 54);
panelPower.TabIndex = 4; panelPower.TabIndex = 4;
@@ -1251,7 +1221,7 @@ namespace GHelper
panelAPU.Controls.Add(pictureAPUMem); panelAPU.Controls.Add(pictureAPUMem);
panelAPU.Controls.Add(labelAPUMem); panelAPU.Controls.Add(labelAPUMem);
panelAPU.Dock = DockStyle.Top; panelAPU.Dock = DockStyle.Top;
panelAPU.Location = new Point(15, 1051); panelAPU.Location = new Point(15, 921);
panelAPU.Name = "panelAPU"; panelAPU.Name = "panelAPU";
panelAPU.Padding = new Padding(11, 5, 11, 0); panelAPU.Padding = new Padding(11, 5, 11, 0);
panelAPU.Size = new Size(983, 57); panelAPU.Size = new Size(983, 57);
@@ -1269,10 +1239,10 @@ namespace GHelper
comboAPU.FormattingEnabled = true; comboAPU.FormattingEnabled = true;
comboAPU.ItemHeight = 32; comboAPU.ItemHeight = 32;
comboAPU.Items.AddRange(new object[] { "Auto", "1G", "2G", "3G", "4G", "5G", "6G", "7G", "8G" }); comboAPU.Items.AddRange(new object[] { "Auto", "1G", "2G", "3G", "4G", "5G", "6G", "7G", "8G" });
comboAPU.Location = new Point(654, 8); comboAPU.Location = new Point(663, 8);
comboAPU.Margin = new Padding(4, 12, 4, 9); comboAPU.Margin = new Padding(4, 12, 4, 9);
comboAPU.Name = "comboAPU"; comboAPU.Name = "comboAPU";
comboAPU.Size = new Size(309, 40); comboAPU.Size = new Size(293, 40);
comboAPU.TabIndex = 12; comboAPU.TabIndex = 12;
comboAPU.TabStop = false; comboAPU.TabStop = false;
// //
@@ -1290,169 +1260,25 @@ namespace GHelper
// //
labelAPUMem.AutoSize = true; labelAPUMem.AutoSize = true;
labelAPUMem.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point); labelAPUMem.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
labelAPUMem.Location = new Point(64, 11); labelAPUMem.Location = new Point(56, 11);
labelAPUMem.Name = "labelAPUMem"; labelAPUMem.Name = "labelAPUMem";
labelAPUMem.Size = new Size(309, 32); labelAPUMem.Size = new Size(309, 32);
labelAPUMem.TabIndex = 0; labelAPUMem.TabIndex = 0;
labelAPUMem.Text = "Memory Assigned to GPU"; labelAPUMem.Text = "Memory Assigned to GPU";
// //
// panelCores // pictureScan
// //
panelCores.AutoSize = true; pictureScan.Anchor = AnchorStyles.Top | AnchorStyles.Right;
panelCores.Controls.Add(buttonCores); pictureScan.BackgroundImage = Resources.icons8_heartbeat_32;
panelCores.Controls.Add(comboCoresP); pictureScan.BackgroundImageLayout = ImageLayout.Zoom;
panelCores.Controls.Add(comboCoresE); pictureScan.Cursor = Cursors.Hand;
panelCores.Controls.Add(pictureCores); pictureScan.Location = new Point(891, 11);
panelCores.Controls.Add(label1); pictureScan.Margin = new Padding(4, 3, 4, 3);
panelCores.Dock = DockStyle.Top; pictureScan.Name = "pictureScan";
panelCores.Location = new Point(15, 990); pictureScan.Size = new Size(32, 32);
panelCores.Name = "panelCores"; pictureScan.TabIndex = 13;
panelCores.Padding = new Padding(11, 5, 11, 0); pictureScan.TabStop = false;
panelCores.Size = new Size(983, 61); pictureScan.Visible = false;
panelCores.TabIndex = 47;
panelCores.Visible = false;
//
// buttonCores
//
buttonCores.Activated = false;
buttonCores.Anchor = AnchorStyles.Bottom | AnchorStyles.Left;
buttonCores.BackColor = SystemColors.ButtonHighlight;
buttonCores.BorderColor = Color.Transparent;
buttonCores.BorderRadius = 2;
buttonCores.FlatStyle = FlatStyle.Flat;
buttonCores.Location = new Point(856, 7);
buttonCores.Margin = new Padding(4, 3, 4, 3);
buttonCores.Name = "buttonCores";
buttonCores.Secondary = false;
buttonCores.Size = new Size(106, 46);
buttonCores.TabIndex = 20;
buttonCores.Text = "Apply";
buttonCores.UseVisualStyleBackColor = false;
//
// comboCoresP
//
comboCoresP.Anchor = AnchorStyles.Top | AnchorStyles.Right;
comboCoresP.BorderColor = Color.White;
comboCoresP.ButtonColor = SystemColors.ControlLight;
comboCoresP.FlatStyle = FlatStyle.Flat;
comboCoresP.Font = new Font("Segoe UI", 9F, FontStyle.Regular, GraphicsUnit.Point);
comboCoresP.FormattingEnabled = true;
comboCoresP.ItemHeight = 32;
comboCoresP.Location = new Point(543, 10);
comboCoresP.Margin = new Padding(4, 12, 4, 9);
comboCoresP.Name = "comboCoresP";
comboCoresP.Size = new Size(150, 40);
comboCoresP.TabIndex = 13;
comboCoresP.TabStop = false;
//
// comboCoresE
//
comboCoresE.Anchor = AnchorStyles.Top | AnchorStyles.Right;
comboCoresE.BorderColor = Color.White;
comboCoresE.ButtonColor = SystemColors.ControlLight;
comboCoresE.FlatStyle = FlatStyle.Flat;
comboCoresE.Font = new Font("Segoe UI", 9F, FontStyle.Regular, GraphicsUnit.Point);
comboCoresE.FormattingEnabled = true;
comboCoresE.ItemHeight = 32;
comboCoresE.Location = new Point(702, 10);
comboCoresE.Margin = new Padding(4, 12, 4, 9);
comboCoresE.Name = "comboCoresE";
comboCoresE.Size = new Size(150, 40);
comboCoresE.TabIndex = 12;
comboCoresE.TabStop = false;
//
// pictureCores
//
pictureCores.BackgroundImage = Resources.icons8_processor_32;
pictureCores.BackgroundImageLayout = ImageLayout.Zoom;
pictureCores.Location = new Point(20, 15);
pictureCores.Name = "pictureCores";
pictureCores.Size = new Size(32, 32);
pictureCores.TabIndex = 1;
pictureCores.TabStop = false;
//
// label1
//
label1.AutoSize = true;
label1.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
label1.Location = new Point(64, 14);
label1.Name = "label1";
label1.Size = new Size(299, 32);
label1.TabIndex = 0;
label1.Text = "CPU Cores Configuration";
//
// panelACPI
//
panelACPI.AutoSize = true;
panelACPI.Controls.Add(textACPIParam);
panelACPI.Controls.Add(textACPICommand);
panelACPI.Controls.Add(buttonACPISend);
panelACPI.Controls.Add(pictureDebug);
panelACPI.Controls.Add(labelACPITitle);
panelACPI.Dock = DockStyle.Top;
panelACPI.Location = new Point(15, 921);
panelACPI.Name = "panelACPI";
panelACPI.Padding = new Padding(11, 5, 11, 0);
panelACPI.Size = new Size(983, 69);
panelACPI.TabIndex = 48;
panelACPI.Visible = false;
//
// textACPIParam
//
textACPIParam.Location = new Point(717, 18);
textACPIParam.Margin = new Padding(4, 3, 4, 3);
textACPIParam.Name = "textACPIParam";
textACPIParam.PlaceholderText = "Value";
textACPIParam.Size = new Size(127, 39);
textACPIParam.TabIndex = 22;
textACPIParam.TabStop = false;
//
// textACPICommand
//
textACPICommand.Location = new Point(467, 18);
textACPICommand.Margin = new Padding(4, 3, 4, 3);
textACPICommand.Name = "textACPICommand";
textACPICommand.PlaceholderText = "Address";
textACPICommand.Size = new Size(242, 39);
textACPICommand.TabIndex = 21;
textACPICommand.TabStop = false;
//
// buttonACPISend
//
buttonACPISend.Activated = false;
buttonACPISend.Anchor = AnchorStyles.Bottom | AnchorStyles.Left;
buttonACPISend.BackColor = SystemColors.ButtonHighlight;
buttonACPISend.BorderColor = Color.Transparent;
buttonACPISend.BorderRadius = 2;
buttonACPISend.FlatStyle = FlatStyle.Flat;
buttonACPISend.Location = new Point(854, 13);
buttonACPISend.Margin = new Padding(4, 3, 4, 3);
buttonACPISend.Name = "buttonACPISend";
buttonACPISend.Secondary = false;
buttonACPISend.Size = new Size(106, 46);
buttonACPISend.TabIndex = 20;
buttonACPISend.Text = "Send";
buttonACPISend.UseVisualStyleBackColor = false;
//
// pictureDebug
//
pictureDebug.BackgroundImage = Resources.icons8_heartbeat_32;
pictureDebug.BackgroundImageLayout = ImageLayout.Zoom;
pictureDebug.Location = new Point(20, 20);
pictureDebug.Name = "pictureDebug";
pictureDebug.Size = new Size(32, 32);
pictureDebug.TabIndex = 1;
pictureDebug.TabStop = false;
//
// labelACPITitle
//
labelACPITitle.AutoSize = true;
labelACPITitle.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
labelACPITitle.Location = new Point(57, 20);
labelACPITitle.Name = "labelACPITitle";
labelACPITitle.Size = new Size(188, 32);
labelACPITitle.TabIndex = 0;
labelACPITitle.Text = "ACPI DEVS Test";
// //
// Extra // Extra
// //
@@ -1461,13 +1287,11 @@ namespace GHelper
AutoScroll = true; AutoScroll = true;
AutoSize = true; AutoSize = true;
AutoSizeMode = AutoSizeMode.GrowAndShrink; AutoSizeMode = AutoSizeMode.GrowAndShrink;
ClientSize = new Size(1013, 1612); ClientSize = new Size(1013, 1515);
Controls.Add(panelServices); Controls.Add(panelServices);
Controls.Add(panelPower); Controls.Add(panelPower);
Controls.Add(panelSettings); Controls.Add(panelSettings);
Controls.Add(panelAPU); Controls.Add(panelAPU);
Controls.Add(panelCores);
Controls.Add(panelACPI);
Controls.Add(panelSettingsHeader); Controls.Add(panelSettingsHeader);
Controls.Add(panelBacklight); Controls.Add(panelBacklight);
Controls.Add(panelBacklightHeader); Controls.Add(panelBacklightHeader);
@@ -1508,7 +1332,6 @@ namespace GHelper
tableBacklight.ResumeLayout(false); tableBacklight.ResumeLayout(false);
panelSettingsHeader.ResumeLayout(false); panelSettingsHeader.ResumeLayout(false);
panelSettingsHeader.PerformLayout(); panelSettingsHeader.PerformLayout();
((System.ComponentModel.ISupportInitialize)pictureScan).EndInit();
((System.ComponentModel.ISupportInitialize)pictureLog).EndInit(); ((System.ComponentModel.ISupportInitialize)pictureLog).EndInit();
((System.ComponentModel.ISupportInitialize)pictureSettings).EndInit(); ((System.ComponentModel.ISupportInitialize)pictureSettings).EndInit();
panelSettings.ResumeLayout(false); panelSettings.ResumeLayout(false);
@@ -1520,12 +1343,7 @@ namespace GHelper
panelAPU.ResumeLayout(false); panelAPU.ResumeLayout(false);
panelAPU.PerformLayout(); panelAPU.PerformLayout();
((System.ComponentModel.ISupportInitialize)pictureAPUMem).EndInit(); ((System.ComponentModel.ISupportInitialize)pictureAPUMem).EndInit();
panelCores.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)pictureScan).EndInit();
panelCores.PerformLayout();
((System.ComponentModel.ISupportInitialize)pictureCores).EndInit();
panelACPI.ResumeLayout(false);
panelACPI.PerformLayout();
((System.ComponentModel.ISupportInitialize)pictureDebug).EndInit();
ResumeLayout(false); ResumeLayout(false);
PerformLayout(); PerformLayout();
} }
@@ -1621,17 +1439,5 @@ namespace GHelper
private Label labelAPUMem; private Label labelAPUMem;
private RComboBox comboAPU; private RComboBox comboAPU;
private PictureBox pictureScan; private PictureBox pictureScan;
private Panel panelCores;
private RComboBox comboCoresE;
private PictureBox pictureCores;
private Label label1;
private RComboBox comboCoresP;
private RButton buttonCores;
private Panel panelACPI;
private TextBox textACPIParam;
private TextBox textACPICommand;
private RButton buttonACPISend;
private PictureBox pictureDebug;
private Label labelACPITitle;
} }
} }

View File

@@ -386,6 +386,7 @@ namespace GHelper
buttonServices.Click += ButtonServices_Click; buttonServices.Click += ButtonServices_Click;
pictureLog.Click += PictureLog_Click; pictureLog.Click += PictureLog_Click;
pictureScan.Click += PictureScan_Click;
checkGPUFix.Visible = Program.acpi.IsNVidiaGPU(); checkGPUFix.Visible = Program.acpi.IsNVidiaGPU();
checkGPUFix.Checked = AppConfig.IsGPUFix(); checkGPUFix.Checked = AppConfig.IsGPUFix();
@@ -393,83 +394,11 @@ namespace GHelper
toolTip.SetToolTip(checkAutoToggleClamshellMode, "Disable sleep on lid close when plugged in and external monitor is connected"); toolTip.SetToolTip(checkAutoToggleClamshellMode, "Disable sleep on lid close when plugged in and external monitor is connected");
InitCores();
InitVariBright(); InitVariBright();
InitServices(); InitServices();
InitHibernate(); InitHibernate();
InitACPITesting();
} }
private void InitACPITesting()
{
if (!AppConfig.Is("debug")) return;
pictureScan.Visible = true;
panelACPI.Visible = true;
textACPICommand.Text = "120098";
textACPIParam.Text = "25";
buttonACPISend.Click += ButtonACPISend_Click;
pictureScan.Click += PictureScan_Click;
}
private void ButtonACPISend_Click(object? sender, EventArgs e)
{
try {
int deviceID = Convert.ToInt32(textACPICommand.Text, 16);
int status = Convert.ToInt32(textACPIParam.Text, textACPIParam.Text.Contains("x") ? 16 : 10);
int result = Program.acpi.DeviceSet((uint)deviceID, status, "TestACPI " + deviceID.ToString("X8") + " " + status.ToString("X4"));
labelACPITitle.Text = "ACPI DEVS Test : " + result.ToString();
} catch (Exception ex)
{
Logger.WriteLine(ex.Message);
}
}
private void InitCores()
{
(int eCores, int pCores) = Program.acpi.GetCores();
(int eCoresMax, int pCoresMax) = Program.acpi.GetCores(true);
if (eCores < 0 || pCores < 0 || eCoresMax < 0 || pCoresMax < 0)
{
panelCores.Visible = false;
return;
}
eCoresMax = Math.Max(8, eCoresMax);
pCoresMax = Math.Max(6, pCoresMax);
panelCores.Visible = true;
comboCoresE.DropDownStyle = ComboBoxStyle.DropDownList;
comboCoresP.DropDownStyle = ComboBoxStyle.DropDownList;
for (int i = AsusACPI.PCoreMin; i <= pCoresMax; i++) comboCoresP.Items.Add(i.ToString() + " Pcores");
for (int i = AsusACPI.ECoreMin; i <= eCoresMax; i++) comboCoresE.Items.Add(i.ToString() + " Ecores");
comboCoresP.SelectedIndex = Math.Max(Math.Min(pCores - AsusACPI.PCoreMin, comboCoresP.Items.Count - 1), 0);
comboCoresE.SelectedIndex = Math.Max(Math.Min(eCores - AsusACPI.ECoreMin, comboCoresE.Items.Count - 1), 0);
buttonCores.Click += ButtonCores_Click;
}
private void ButtonCores_Click(object? sender, EventArgs e)
{
DialogResult dialogResult = MessageBox.Show(Properties.Strings.AlertAPUMemoryRestart, Properties.Strings.AlertAPUMemoryRestartTitle, MessageBoxButtons.YesNo);
if (dialogResult == DialogResult.Yes)
{
Program.acpi.SetCores(AsusACPI.ECoreMin + comboCoresE.SelectedIndex, AsusACPI.PCoreMin + comboCoresP.SelectedIndex);
Process.Start("shutdown", "/r /t 1");
}
}
private void PictureScan_Click(object? sender, EventArgs e) private void PictureScan_Click(object? sender, EventArgs e)
{ {
string logFile = Program.acpi.ScanRange(); string logFile = Program.acpi.ScanRange();

View File

@@ -9,7 +9,7 @@ namespace GHelper.Fan
public const int XGM_FAN_MAX = 72; public const int XGM_FAN_MAX = 72;
public const int INADEQUATE_MAX = 104; public const int INADEQUATE_MAX = 92;
const int FAN_COUNT = 3; const int FAN_COUNT = 3;

73
app/Fans.Designer.cs generated
View File

@@ -119,10 +119,6 @@ namespace GHelper
picturePowerMode = new PictureBox(); picturePowerMode = new PictureBox();
labelPowerModeTitle = new Label(); labelPowerModeTitle = new Label();
panelGPU = new Panel(); panelGPU = new Panel();
panelGPUPower = new Panel();
labelGPUPower = new Label();
labelGPUPowerTitle = new Label();
trackGPUPower = new TrackBar();
panelGPUTemp = new Panel(); panelGPUTemp = new Panel();
labelGPUTemp = new Label(); labelGPUTemp = new Label();
labelGPUTempTitle = new Label(); labelGPUTempTitle = new Label();
@@ -194,8 +190,6 @@ namespace GHelper
panelPowerModeTItle.SuspendLayout(); panelPowerModeTItle.SuspendLayout();
((System.ComponentModel.ISupportInitialize)picturePowerMode).BeginInit(); ((System.ComponentModel.ISupportInitialize)picturePowerMode).BeginInit();
panelGPU.SuspendLayout(); panelGPU.SuspendLayout();
panelGPUPower.SuspendLayout();
((System.ComponentModel.ISupportInitialize)trackGPUPower).BeginInit();
panelGPUTemp.SuspendLayout(); panelGPUTemp.SuspendLayout();
((System.ComponentModel.ISupportInitialize)trackGPUTemp).BeginInit(); ((System.ComponentModel.ISupportInitialize)trackGPUTemp).BeginInit();
panelGPUBoost.SuspendLayout(); panelGPUBoost.SuspendLayout();
@@ -539,7 +533,7 @@ namespace GHelper
panelAdvanced.Controls.Add(panelTitleTemp); panelAdvanced.Controls.Add(panelTitleTemp);
panelAdvanced.Controls.Add(panelDownload); panelAdvanced.Controls.Add(panelDownload);
panelAdvanced.Dock = DockStyle.Top; panelAdvanced.Dock = DockStyle.Top;
panelAdvanced.Location = new Point(10, 1768); panelAdvanced.Location = new Point(10, 1644);
panelAdvanced.Name = "panelAdvanced"; panelAdvanced.Name = "panelAdvanced";
panelAdvanced.Size = new Size(520, 992); panelAdvanced.Size = new Size(520, 992);
panelAdvanced.TabIndex = 14; panelAdvanced.TabIndex = 14;
@@ -870,7 +864,7 @@ namespace GHelper
panelPower.Controls.Add(panelPowerMode); panelPower.Controls.Add(panelPowerMode);
panelPower.Controls.Add(panelPowerModeTItle); panelPower.Controls.Add(panelPowerModeTItle);
panelPower.Dock = DockStyle.Top; panelPower.Dock = DockStyle.Top;
panelPower.Location = new Point(10, 888); panelPower.Location = new Point(10, 764);
panelPower.Margin = new Padding(4); panelPower.Margin = new Padding(4);
panelPower.Name = "panelPower"; panelPower.Name = "panelPower";
panelPower.Size = new Size(520, 880); panelPower.Size = new Size(520, 880);
@@ -1243,7 +1237,6 @@ namespace GHelper
panelGPU.AutoSize = true; panelGPU.AutoSize = true;
panelGPU.Controls.Add(panelGPUTemp); panelGPU.Controls.Add(panelGPUTemp);
panelGPU.Controls.Add(panelGPUBoost); panelGPU.Controls.Add(panelGPUBoost);
panelGPU.Controls.Add(panelGPUPower);
panelGPU.Controls.Add(panelGPUMemory); panelGPU.Controls.Add(panelGPUMemory);
panelGPU.Controls.Add(panelGPUCore); panelGPU.Controls.Add(panelGPUCore);
panelGPU.Controls.Add(panelGPUClockLimit); panelGPU.Controls.Add(panelGPUClockLimit);
@@ -1253,59 +1246,10 @@ namespace GHelper
panelGPU.Margin = new Padding(4); panelGPU.Margin = new Padding(4);
panelGPU.Name = "panelGPU"; panelGPU.Name = "panelGPU";
panelGPU.Padding = new Padding(0, 0, 0, 18); panelGPU.Padding = new Padding(0, 0, 0, 18);
panelGPU.Size = new Size(520, 822); panelGPU.Size = new Size(520, 698);
panelGPU.TabIndex = 44; panelGPU.TabIndex = 44;
panelGPU.Visible = false; panelGPU.Visible = false;
// //
// panelGPUPower
//
panelGPUPower.AutoSize = true;
panelGPUPower.AutoSizeMode = AutoSizeMode.GrowAndShrink;
panelGPUPower.Controls.Add(labelGPUPower);
panelGPUPower.Controls.Add(labelGPUPowerTitle);
panelGPUPower.Controls.Add(trackGPUPower);
panelGPUPower.Dock = DockStyle.Top;
panelGPUPower.Location = new Point(0, 432);
panelGPUPower.Margin = new Padding(4);
panelGPUPower.MaximumSize = new Size(0, 124);
panelGPUPower.Name = "panelGPUPower";
panelGPUPower.Size = new Size(520, 124);
panelGPUPower.TabIndex = 49;
//
// labelGPUPower
//
labelGPUPower.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
labelGPUPower.Location = new Point(374, 14);
labelGPUPower.Margin = new Padding(4, 0, 4, 0);
labelGPUPower.Name = "labelGPUPower";
labelGPUPower.Size = new Size(124, 32);
labelGPUPower.TabIndex = 44;
labelGPUPower.Text = "105W";
labelGPUPower.TextAlign = ContentAlignment.TopRight;
//
// labelGPUPowerTitle
//
labelGPUPowerTitle.AutoSize = true;
labelGPUPowerTitle.Location = new Point(10, 14);
labelGPUPowerTitle.Margin = new Padding(4, 0, 4, 0);
labelGPUPowerTitle.Name = "labelGPUPowerTitle";
labelGPUPowerTitle.Size = new Size(130, 32);
labelGPUPowerTitle.TabIndex = 43;
labelGPUPowerTitle.Text = "GPU Power";
//
// trackGPUPower
//
trackGPUPower.Location = new Point(6, 48);
trackGPUPower.Margin = new Padding(4, 2, 4, 2);
trackGPUPower.Maximum = 25;
trackGPUPower.Minimum = 5;
trackGPUPower.Name = "trackGPUPower";
trackGPUPower.Size = new Size(496, 90);
trackGPUPower.TabIndex = 42;
trackGPUPower.TickFrequency = 5;
trackGPUPower.TickStyle = TickStyle.TopLeft;
trackGPUPower.Value = 25;
//
// panelGPUTemp // panelGPUTemp
// //
panelGPUTemp.AutoSize = true; panelGPUTemp.AutoSize = true;
@@ -1314,7 +1258,7 @@ namespace GHelper
panelGPUTemp.Controls.Add(labelGPUTempTitle); panelGPUTemp.Controls.Add(labelGPUTempTitle);
panelGPUTemp.Controls.Add(trackGPUTemp); panelGPUTemp.Controls.Add(trackGPUTemp);
panelGPUTemp.Dock = DockStyle.Top; panelGPUTemp.Dock = DockStyle.Top;
panelGPUTemp.Location = new Point(0, 680); panelGPUTemp.Location = new Point(0, 556);
panelGPUTemp.Margin = new Padding(4); panelGPUTemp.Margin = new Padding(4);
panelGPUTemp.MaximumSize = new Size(0, 124); panelGPUTemp.MaximumSize = new Size(0, 124);
panelGPUTemp.Name = "panelGPUTemp"; panelGPUTemp.Name = "panelGPUTemp";
@@ -1363,7 +1307,7 @@ namespace GHelper
panelGPUBoost.Controls.Add(labelGPUBoostTitle); panelGPUBoost.Controls.Add(labelGPUBoostTitle);
panelGPUBoost.Controls.Add(trackGPUBoost); panelGPUBoost.Controls.Add(trackGPUBoost);
panelGPUBoost.Dock = DockStyle.Top; panelGPUBoost.Dock = DockStyle.Top;
panelGPUBoost.Location = new Point(0, 556); panelGPUBoost.Location = new Point(0, 432);
panelGPUBoost.Margin = new Padding(4); panelGPUBoost.Margin = new Padding(4);
panelGPUBoost.MaximumSize = new Size(0, 124); panelGPUBoost.MaximumSize = new Size(0, 124);
panelGPUBoost.Name = "panelGPUBoost"; panelGPUBoost.Name = "panelGPUBoost";
@@ -1756,9 +1700,6 @@ namespace GHelper
((System.ComponentModel.ISupportInitialize)picturePowerMode).EndInit(); ((System.ComponentModel.ISupportInitialize)picturePowerMode).EndInit();
panelGPU.ResumeLayout(false); panelGPU.ResumeLayout(false);
panelGPU.PerformLayout(); panelGPU.PerformLayout();
panelGPUPower.ResumeLayout(false);
panelGPUPower.PerformLayout();
((System.ComponentModel.ISupportInitialize)trackGPUPower).EndInit();
panelGPUTemp.ResumeLayout(false); panelGPUTemp.ResumeLayout(false);
panelGPUTemp.PerformLayout(); panelGPUTemp.PerformLayout();
((System.ComponentModel.ISupportInitialize)trackGPUTemp).EndInit(); ((System.ComponentModel.ISupportInitialize)trackGPUTemp).EndInit();
@@ -1892,9 +1833,5 @@ namespace GHelper
private TrackBar trackSlow; private TrackBar trackSlow;
private Panel panelDownload; private Panel panelDownload;
private RButton buttonDownload; private RButton buttonDownload;
private Panel panelGPUPower;
private Label labelGPUPower;
private Label labelGPUPowerTitle;
private TrackBar trackGPUPower;
} }
} }

View File

@@ -31,8 +31,6 @@ namespace GHelper
FanSensorControl fanSensorControl; FanSensorControl fanSensorControl;
static int gpuPowerBase = 0;
public Fans() public Fans()
{ {
@@ -146,22 +144,17 @@ namespace GHelper
trackGPUTemp.Minimum = AsusACPI.MinGPUTemp; trackGPUTemp.Minimum = AsusACPI.MinGPUTemp;
trackGPUTemp.Maximum = AsusACPI.MaxGPUTemp; trackGPUTemp.Maximum = AsusACPI.MaxGPUTemp;
trackGPUPower.Minimum = AsusACPI.MinGPUPower;
trackGPUPower.Maximum = AsusACPI.MaxGPUPower;
trackGPUClockLimit.Scroll += trackGPUClockLimit_Scroll; trackGPUClockLimit.Scroll += trackGPUClockLimit_Scroll;
trackGPUCore.Scroll += trackGPU_Scroll; trackGPUCore.Scroll += trackGPU_Scroll;
trackGPUMemory.Scroll += trackGPU_Scroll; trackGPUMemory.Scroll += trackGPU_Scroll;
trackGPUBoost.Scroll += trackGPUPower_Scroll; trackGPUBoost.Scroll += trackGPUPower_Scroll;
trackGPUTemp.Scroll += trackGPUPower_Scroll; trackGPUTemp.Scroll += trackGPUPower_Scroll;
trackGPUPower.Scroll += trackGPUPower_Scroll;
trackGPUCore.MouseUp += TrackGPU_MouseUp; trackGPUCore.MouseUp += TrackGPU_MouseUp;
trackGPUMemory.MouseUp += TrackGPU_MouseUp; trackGPUMemory.MouseUp += TrackGPU_MouseUp;
trackGPUBoost.MouseUp += TrackGPU_MouseUp; trackGPUBoost.MouseUp += TrackGPU_MouseUp;
trackGPUTemp.MouseUp += TrackGPU_MouseUp; trackGPUTemp.MouseUp += TrackGPU_MouseUp;
trackGPUPower.MouseUp += TrackGPU_MouseUp;
trackGPUClockLimit.MouseUp += TrackGPU_MouseUp; trackGPUClockLimit.MouseUp += TrackGPU_MouseUp;
@@ -548,12 +541,8 @@ namespace GHelper
{ {
gpuVisible = buttonGPU.Visible = true; gpuVisible = buttonGPU.Visible = true;
gpuPowerBase = Program.acpi.DeviceGet(AsusACPI.GPU_BASE);
int gpuPowerVar = Program.acpi.DeviceGet(AsusACPI.GPU_POWER);
int gpu_boost = AppConfig.GetMode("gpu_boost"); int gpu_boost = AppConfig.GetMode("gpu_boost");
int gpu_temp = AppConfig.GetMode("gpu_temp"); int gpu_temp = AppConfig.GetMode("gpu_temp");
int gpu_power = AppConfig.GetMode("gpu_power");
int core = AppConfig.GetMode("gpu_core"); int core = AppConfig.GetMode("gpu_core");
int memory = AppConfig.GetMode("gpu_memory"); int memory = AppConfig.GetMode("gpu_memory");
@@ -561,35 +550,32 @@ namespace GHelper
if (gpu_boost < 0) gpu_boost = AsusACPI.MaxGPUBoost; if (gpu_boost < 0) gpu_boost = AsusACPI.MaxGPUBoost;
if (gpu_temp < 0) gpu_temp = AsusACPI.MaxGPUTemp; if (gpu_temp < 0) gpu_temp = AsusACPI.MaxGPUTemp;
if (gpu_power < 0) gpu_power = (gpuPowerVar >= 0) ? gpuPowerVar : AsusACPI.MaxGPUPower;
if (core == -1) core = 0; if (core == -1) core = 0;
if (memory == -1) memory = 0; if (memory == -1) memory = 0;
if (clock_limit == -1) clock_limit = NvidiaGpuControl.MaxClockLimit; if (clock_limit == -1) clock_limit = NvidiaGpuControl.MaxClockLimit;
if (nvControl is not null) if (nvControl.GetClocks(out int current_core, out int current_memory))
{ {
if (nvControl.GetClocks(out int current_core, out int current_memory)) core = current_core;
{ memory = current_memory;
core = current_core;
memory = current_memory;
}
int _clockLimit = nvControl.GetMaxGPUCLock();
if (_clockLimit == 0) clock_limit = NvidiaGpuControl.MaxClockLimit;
else if (_clockLimit > 0) clock_limit = _clockLimit;
try
{
labelGPU.Text = nvControl.FullName;
}
catch
{
}
} }
int _clockLimit = nvControl.GetMaxGPUCLock();
if (_clockLimit == 0) clock_limit = NvidiaGpuControl.MaxClockLimit;
else if (_clockLimit > 0) clock_limit = _clockLimit;
try
{
labelGPU.Text = nvControl.FullName;
}
catch
{
}
//}
trackGPUClockLimit.Value = Math.Max(Math.Min(clock_limit, NvidiaGpuControl.MaxClockLimit), NvidiaGpuControl.MinClockLimit); trackGPUClockLimit.Value = Math.Max(Math.Min(clock_limit, NvidiaGpuControl.MaxClockLimit), NvidiaGpuControl.MinClockLimit);
trackGPUCore.Value = Math.Max(Math.Min(core, NvidiaGpuControl.MaxCoreOffset), NvidiaGpuControl.MinCoreOffset); trackGPUCore.Value = Math.Max(Math.Min(core, NvidiaGpuControl.MaxCoreOffset), NvidiaGpuControl.MinCoreOffset);
@@ -598,13 +584,9 @@ namespace GHelper
trackGPUBoost.Value = Math.Max(Math.Min(gpu_boost, AsusACPI.MaxGPUBoost), AsusACPI.MinGPUBoost); trackGPUBoost.Value = Math.Max(Math.Min(gpu_boost, AsusACPI.MaxGPUBoost), AsusACPI.MinGPUBoost);
trackGPUTemp.Value = Math.Max(Math.Min(gpu_temp, AsusACPI.MaxGPUTemp), AsusACPI.MinGPUTemp); trackGPUTemp.Value = Math.Max(Math.Min(gpu_temp, AsusACPI.MaxGPUTemp), AsusACPI.MinGPUTemp);
trackGPUPower.Value = Math.Max(Math.Min(gpu_power, AsusACPI.MaxGPUPower), AsusACPI.MinGPUPower);
panelGPUBoost.Visible = (Program.acpi.DeviceGet(AsusACPI.PPT_GPUC0) >= 0); panelGPUBoost.Visible = (Program.acpi.DeviceGet(AsusACPI.PPT_GPUC0) >= 0);
panelGPUTemp.Visible = (Program.acpi.DeviceGet(AsusACPI.PPT_GPUC2) >= 0); panelGPUTemp.Visible = (Program.acpi.DeviceGet(AsusACPI.PPT_GPUC2) >= 0);
panelGPUPower.Visible = gpuPowerBase > 0 && gpuPowerVar >= 0;
VisualiseGPUSettings(); VisualiseGPUSettings();
} }
@@ -628,9 +610,6 @@ namespace GHelper
labelGPUClockLimit.Text = "Default"; labelGPUClockLimit.Text = "Default";
else else
labelGPUClockLimit.Text = $"{trackGPUClockLimit.Value} MHz"; labelGPUClockLimit.Text = $"{trackGPUClockLimit.Value} MHz";
labelGPUPower.Text = (gpuPowerBase + trackGPUPower.Value) + "W";
} }
private void trackGPUClockLimit_Scroll(object? sender, EventArgs e) private void trackGPUClockLimit_Scroll(object? sender, EventArgs e)
@@ -661,7 +640,6 @@ namespace GHelper
{ {
AppConfig.SetMode("gpu_boost", trackGPUBoost.Value); AppConfig.SetMode("gpu_boost", trackGPUBoost.Value);
AppConfig.SetMode("gpu_temp", trackGPUTemp.Value); AppConfig.SetMode("gpu_temp", trackGPUTemp.Value);
AppConfig.SetMode("gpu_power", trackGPUPower.Value);
VisualiseGPUSettings(); VisualiseGPUSettings();
} }
@@ -762,10 +740,7 @@ namespace GHelper
private void TrackPower_MouseUp(object? sender, MouseEventArgs e) private void TrackPower_MouseUp(object? sender, MouseEventArgs e)
{ {
Task.Run(() => modeControl.AutoPower();
{
modeControl.AutoPower(true);
});
} }
@@ -1008,7 +983,7 @@ namespace GHelper
try try
{ {
if (chartCount > 2) if (chartCount > 2)
Size = MinimumSize = new Size(Size.Width, Math.Max(MinimumSize.Height, (int)(ControlHelper.GetDpiScale(this).Value * (chartCount * 200 + 100)))); Size = MinimumSize = new Size(Size.Width, (int)(ControlHelper.GetDpiScale(this).Value * (chartCount * 200 + 100)));
} }
catch (Exception ex) catch (Exception ex)
{ {
@@ -1114,25 +1089,19 @@ namespace GHelper
if (gpuVisible) if (gpuVisible)
{ {
int gpuPowerVar = Program.acpi.DeviceGet(AsusACPI.GPU_POWER);
Logger.WriteLine("Default GPU Power: " + gpuPowerVar);
trackGPUClockLimit.Value = NvidiaGpuControl.MaxClockLimit; trackGPUClockLimit.Value = NvidiaGpuControl.MaxClockLimit;
trackGPUCore.Value = 0; trackGPUCore.Value = 0;
trackGPUMemory.Value = 0; trackGPUMemory.Value = 0;
trackGPUBoost.Value = AsusACPI.MaxGPUBoost; trackGPUBoost.Value = AsusACPI.MaxGPUBoost;
trackGPUTemp.Value = AsusACPI.MaxGPUTemp; trackGPUTemp.Value = AsusACPI.MaxGPUTemp;
trackGPUPower.Value = Math.Max(Math.Min((gpuPowerVar >= 0) ? gpuPowerVar : AsusACPI.MaxGPUPower, AsusACPI.MaxGPUPower), AsusACPI.MinGPUPower);
AppConfig.SetMode("gpu_clock_limit", trackGPUClockLimit.Value);
AppConfig.SetMode("gpu_boost", trackGPUBoost.Value); AppConfig.SetMode("gpu_boost", trackGPUBoost.Value);
AppConfig.SetMode("gpu_temp", trackGPUTemp.Value); AppConfig.SetMode("gpu_temp", trackGPUTemp.Value);
AppConfig.RemoveMode("gpu_power"); AppConfig.SetMode("gpu_core", trackGPUCore.Value);
AppConfig.SetMode("gpu_memory", trackGPUMemory.Value);
AppConfig.RemoveMode("gpu_clock_limit");
AppConfig.RemoveMode("gpu_core");
AppConfig.RemoveMode("gpu_memory");
VisualiseGPUSettings(); VisualiseGPUSettings();
modeControl.SetGPUClocks(true); modeControl.SetGPUClocks(true);

View File

@@ -15,7 +15,7 @@
<PlatformTarget>AnyCPU</PlatformTarget> <PlatformTarget>AnyCPU</PlatformTarget>
<ProduceReferenceAssembly>False</ProduceReferenceAssembly> <ProduceReferenceAssembly>False</ProduceReferenceAssembly>
<AllowUnsafeBlocks>True</AllowUnsafeBlocks> <AllowUnsafeBlocks>True</AllowUnsafeBlocks>
<AssemblyVersion>0.156</AssemblyVersion> <AssemblyVersion>0.154</AssemblyVersion>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">

View File

@@ -101,8 +101,6 @@ namespace GHelper.Helpers
if (Program.settingsForm.Visible) if (Program.settingsForm.Visible)
Program.screenControl.InitScreen(); Program.screenControl.InitScreen();
Program.screenControl.SetBrightness();
} }
private static int CheckAndSaveLidAction() private static int CheckAndSaveLidAction()

View File

@@ -85,7 +85,7 @@ namespace GHelper.Input
InitBacklightTimer(); InitBacklightTimer();
if (AppConfig.IsVivoZenbook()) Program.acpi.DeviceSet(AsusACPI.FnLock, AppConfig.Is("fn_lock") ? 1 : 0, "FnLock"); if (AppConfig.ContainsModel("VivoBook")) Program.acpi.DeviceSet(AsusACPI.FnLock, AppConfig.Is("fn_lock") ? 1 : 0, "FnLock");
} }
@@ -151,7 +151,7 @@ namespace GHelper.Input
// FN-Lock group // FN-Lock group
if (AppConfig.Is("fn_lock") && !AppConfig.IsVivoZenbook()) if (AppConfig.Is("fn_lock") && !AppConfig.ContainsModel("VivoBook"))
for (Keys i = Keys.F1; i <= Keys.F11; i++) hook.RegisterHotKey(ModifierKeys.None, i); for (Keys i = Keys.F1; i <= Keys.F11; i++) hook.RegisterHotKey(ModifierKeys.None, i);
// Arrow-lock group // Arrow-lock group
@@ -500,7 +500,7 @@ namespace GHelper.Input
case "micmute": case "micmute":
bool muteStatus = Audio.ToggleMute(); bool muteStatus = Audio.ToggleMute();
Program.toast.RunToast(muteStatus ? "Muted" : "Unmuted", muteStatus ? ToastIcon.MicrophoneMute : ToastIcon.Microphone); Program.toast.RunToast(muteStatus ? "Muted" : "Unmuted", muteStatus ? ToastIcon.MicrophoneMute : ToastIcon.Microphone);
if (AppConfig.IsVivoZenbook()) Program.acpi.DeviceSet(AsusACPI.MicMuteLed, muteStatus ? 1 : 0, "MicmuteLed"); if (AppConfig.IsVivobook()) Program.acpi.DeviceSet(AsusACPI.MicMuteLed, muteStatus ? 1 : 0, "MicmuteLed");
break; break;
case "brightness_up": case "brightness_up":
SetBrightness(+10); SetBrightness(+10);
@@ -568,7 +568,7 @@ namespace GHelper.Input
int fnLock = AppConfig.Is("fn_lock") ? 0 : 1; int fnLock = AppConfig.Is("fn_lock") ? 0 : 1;
AppConfig.Set("fn_lock", fnLock); AppConfig.Set("fn_lock", fnLock);
if (AppConfig.IsVivoZenbook()) if (AppConfig.ContainsModel("VivoBook"))
Program.acpi.DeviceSet(AsusACPI.FnLock, fnLock == 1 ? 1 : 0, "FnLock"); Program.acpi.DeviceSet(AsusACPI.FnLock, fnLock == 1 ? 1 : 0, "FnLock");
else else
Program.settingsForm.BeginInvoke(Program.inputDispatcher.RegisterKeys); Program.settingsForm.BeginInvoke(Program.inputDispatcher.RegisterKeys);
@@ -676,8 +676,7 @@ namespace GHelper.Input
return; return;
case 51: // Fn+F6 on old TUFs case 51: // Fn+F6 on old TUFs
case 53: // Fn+F6 on GA-502DU model case 53: // Fn+F6 on GA-502DU model
SleepEvent(); NativeMethods.TurnOffScreen();
//NativeMethods.TurnOffScreen();
return; return;
} }
} }
@@ -891,7 +890,6 @@ namespace GHelper.Input
if (e.NewEvent is null) return; if (e.NewEvent is null) return;
int EventID = int.Parse(e.NewEvent["EventID"].ToString()); int EventID = int.Parse(e.NewEvent["EventID"].ToString());
Logger.WriteLine("WMI event " + EventID); Logger.WriteLine("WMI event " + EventID);
if (AppConfig.NoWMI()) return;
HandleEvent(EventID); HandleEvent(EventID);
} }
} }

View File

@@ -62,46 +62,33 @@ namespace GHelper.Mode
if (!Modes.Exists(mode)) mode = 0; if (!Modes.Exists(mode)) mode = 0;
customFans = false;
customPower = 0;
settings.ShowMode(mode); settings.ShowMode(mode);
SetModeLabel();
Modes.SetCurrent(mode); Modes.SetCurrent(mode);
int status = Program.acpi.DeviceSet(AsusACPI.PerformanceMode, AppConfig.IsManualModeRequired() ? AsusACPI.PerformanceManual : Modes.GetBase(mode), "Mode");
Task.Run(async () => // Vivobook fallback
if (status != 1)
{ {
bool reset = AppConfig.IsResetRequired() && (Modes.GetBase(oldMode) == Modes.GetBase(mode)) && customPower > 0; int vivoMode = Modes.GetBase(mode);
if (vivoMode == 1) vivoMode = 2;
customFans = false; else if (vivoMode == 2) vivoMode = 1;
customPower = 0; Program.acpi.DeviceSet(AsusACPI.VivoBookMode, vivoMode, "VivoMode");
SetModeLabel(); }
// Workaround for not properly resetting limits on G14 2024
if (reset)
{
Program.acpi.DeviceSet(AsusACPI.PerformanceMode, (Modes.GetBase(oldMode) != 1) ? AsusACPI.PerformanceTurbo : AsusACPI.PerformanceBalanced, "Reset");
await Task.Delay(TimeSpan.FromMilliseconds(1500));
}
int status = Program.acpi.DeviceSet(AsusACPI.PerformanceMode, AppConfig.IsManualModeRequired() ? AsusACPI.PerformanceManual : Modes.GetBase(mode), "Mode");
// Vivobook fallback
if (status != 1) Program.acpi.SetVivoMode(Modes.GetBase(mode));
SetGPUClocks();
AutoFans();
await Task.Delay(TimeSpan.FromMilliseconds(1000));
AutoPower();
});
if (AppConfig.Is("xgm_fan") && Program.acpi.IsXGConnected()) XGM.Reset(); if (AppConfig.Is("xgm_fan") && Program.acpi.IsXGConnected()) XGM.Reset();
if (notify) if (notify)
Program.toast.RunToast(Modes.GetCurrentName(), SystemInformation.PowerStatus.PowerLineStatus == PowerLineStatus.Online ? ToastIcon.Charger : ToastIcon.Battery); Program.toast.RunToast(Modes.GetCurrentName(), SystemInformation.PowerStatus.PowerLineStatus == PowerLineStatus.Online ? ToastIcon.Charger : ToastIcon.Battery);
SetGPUClocks();
AutoFans();
AutoPower(1000);
// Power plan from config or defaulting to balanced // Power plan from config or defaulting to balanced
if (AppConfig.GetModeString("scheme") is not null) if (AppConfig.GetModeString("scheme") is not null)
@@ -158,17 +145,18 @@ namespace GHelper.Mode
Program.acpi.SetFanCurve(AsusFan.Mid, AppConfig.GetFanConfig(AsusFan.Mid)); Program.acpi.SetFanCurve(AsusFan.Mid, AppConfig.GetFanConfig(AsusFan.Mid));
// Alternative way to set fan curve // something went wrong, resetting to default profile
if (cpuResult != 1 || gpuResult != 1) if (cpuResult != 1 || gpuResult != 1)
{ {
cpuResult = Program.acpi.SetFanRange(AsusFan.CPU, AppConfig.GetFanConfig(AsusFan.CPU)); cpuResult = Program.acpi.SetFanRange(AsusFan.CPU, AppConfig.GetFanConfig(AsusFan.CPU));
gpuResult = Program.acpi.SetFanRange(AsusFan.GPU, AppConfig.GetFanConfig(AsusFan.GPU)); gpuResult = Program.acpi.SetFanRange(AsusFan.GPU, AppConfig.GetFanConfig(AsusFan.GPU));
// Something went wrong, resetting to default profile
if (cpuResult != 1 || gpuResult != 1) if (cpuResult != 1 || gpuResult != 1)
{ {
Program.acpi.DeviceSet(AsusACPI.PerformanceMode, Modes.GetCurrentBase(), "Reset Mode"); int mode = Modes.GetCurrentBase();
settings.LabelFansResult("Model doesn't support custom fan curves"); Logger.WriteLine("ASUS BIOS rejected fan curve, resetting mode to " + mode);
Program.acpi.DeviceSet(AsusACPI.PerformanceMode, mode, "Reset Mode");
settings.LabelFansResult("ASUS BIOS rejected fan curve");
} }
} }
else else
@@ -194,25 +182,52 @@ namespace GHelper.Mode
} }
public void AutoPower(bool launchAsAdmin = false) public void AutoPower(int delay = 0)
{ {
customPower = 0; customPower = 0;
bool applyPower = AppConfig.IsMode("auto_apply_power"); bool applyPower = AppConfig.IsMode("auto_apply_power");
bool applyFans = AppConfig.IsMode("auto_apply"); bool applyFans = AppConfig.IsMode("auto_apply");
//bool applyGPU = true;
if (applyPower && !applyFans && (AppConfig.IsFanRequired() || AppConfig.IsManualModeRequired())) if (applyPower && !applyFans)
{ {
AutoFans(true); // force fan curve for misbehaving bios PPTs on some models
Thread.Sleep(500); if (AppConfig.IsFanRequired())
{
delay = 500;
AutoFans(true);
}
// Fix for models that don't support PPT settings in all modes, setting a "manual" mode for them
if (AppConfig.IsManualModeRequired())
{
AutoFans(true);
}
} }
if (applyPower) SetPower(launchAsAdmin); if (delay > 0)
{
var timer = new System.Timers.Timer(delay);
timer.Elapsed += delegate
{
timer.Stop();
timer.Dispose();
Thread.Sleep(500); if (applyPower) SetPower();
SetGPUPower(); Thread.Sleep(500);
AutoRyzen(); SetGPUPower();
AutoRyzen();
};
timer.Start();
}
else
{
if (applyPower) SetPower(true);
SetGPUPower();
AutoRyzen();
}
} }
@@ -331,20 +346,18 @@ namespace GHelper.Mode
int gpu_boost = AppConfig.GetMode("gpu_boost"); int gpu_boost = AppConfig.GetMode("gpu_boost");
int gpu_temp = AppConfig.GetMode("gpu_temp"); int gpu_temp = AppConfig.GetMode("gpu_temp");
int gpu_power = AppConfig.GetMode("gpu_power");
int boostResult = -1; int boostResult = -1;
if (gpu_power >= AsusACPI.MinGPUPower && gpu_power <= AsusACPI.MaxGPUPower && Program.acpi.DeviceGet(AsusACPI.GPU_POWER) >= 0) if (gpu_boost < AsusACPI.MinGPUBoost || gpu_boost > AsusACPI.MaxGPUBoost) return;
Program.acpi.DeviceSet(AsusACPI.GPU_POWER, gpu_power, "PowerLimit TGP (GPU VAR)"); if (gpu_temp < AsusACPI.MinGPUTemp || gpu_temp > AsusACPI.MaxGPUTemp) return;
if (gpu_boost >= AsusACPI.MinGPUBoost && gpu_boost <= AsusACPI.MaxGPUBoost && Program.acpi.DeviceGet(AsusACPI.PPT_GPUC0) >= 0) if (Program.acpi.DeviceGet(AsusACPI.PPT_GPUC0) >= 0)
boostResult = Program.acpi.DeviceSet(AsusACPI.PPT_GPUC0, gpu_boost, "PowerLimit C0 (GPU BOOST)"); boostResult = Program.acpi.DeviceSet(AsusACPI.PPT_GPUC0, gpu_boost, "PowerLimit C0");
if (gpu_temp >= AsusACPI.MinGPUTemp && gpu_temp <= AsusACPI.MaxGPUTemp && Program.acpi.DeviceGet(AsusACPI.PPT_GPUC2) >= 0) if (Program.acpi.DeviceGet(AsusACPI.PPT_GPUC2) >= 0)
Program.acpi.DeviceSet(AsusACPI.PPT_GPUC2, gpu_temp, "PowerLimit C2 (GPU TEMP)"); Program.acpi.DeviceSet(AsusACPI.PPT_GPUC2, gpu_temp, "PowerLimit C2");
// Fallback
if (boostResult == 0) if (boostResult == 0)
Program.acpi.DeviceSet(AsusACPI.PPT_GPUC0, gpu_boost, "PowerLimit C0"); Program.acpi.DeviceSet(AsusACPI.PPT_GPUC0, gpu_boost, "PowerLimit C0");

View File

@@ -163,7 +163,7 @@ namespace GHelper.Mode
if (status != 0 || activeScheme != guidScheme) if (status != 0 || activeScheme != guidScheme)
{ {
status = PowerSetActiveOverlayScheme(guidScheme); status = PowerSetActiveOverlayScheme(guidScheme);
Logger.WriteLine("Power Mode " + activeScheme + " -> " + scheme + ":" + (status == 0 ? "OK" : status)); Logger.WriteLine("Power Mode " + scheme + ":" + (status == 0 ? "OK" : status));
} }
} }

View File

@@ -37,12 +37,7 @@
} }
public override int DPIIncrements() public override int DPIIncrements()
{ {
return 50; return 100;
}
public override int MinDPI()
{
return 50;
} }
public override bool HasDebounceSetting() public override bool HasDebounceSetting()

View File

@@ -1,247 +0,0 @@
namespace GHelper.Peripherals.Mouse.Models
{
//P303
public class StrixImpact : AsusMouse
{
public StrixImpact() : base(0x0B05, 0x1847, "mi_02", false)
{
}
public StrixImpact(ushort productId, string path) : base(0x0B05, productId, path, false)
{
}
public override int DPIProfileCount()
{
return 2;
}
public override string GetDisplayName()
{
return "Strix Impact";
}
public override PollingRate[] SupportedPollingrates()
{
return new PollingRate[] {
PollingRate.PR125Hz,
PollingRate.PR250Hz,
PollingRate.PR500Hz,
PollingRate.PR1000Hz
};
}
public override int ProfileCount()
{
return 1;
}
public override int MaxDPI()
{
return 5_000;
}
public override bool HasRGB()
{
return true;
}
public override bool HasAutoPowerOff()
{
return false;
}
public override bool HasDebounceSetting()
{
return true;
}
public override bool HasLowBatteryWarning()
{
return false;
}
public override bool HasBattery()
{
return false;
}
public override bool HasDPIColors()
{
return false;
}
public override bool IsLightingModeSupported(LightingMode lightingMode)
{
return lightingMode == LightingMode.Static
|| lightingMode == LightingMode.Breathing
|| lightingMode == LightingMode.ColorCycle
|| lightingMode == LightingMode.React;
}
public override LightingZone[] SupportedLightingZones()
{
return new LightingZone[] { LightingZone.Logo };
}
public override int DPIIncrements()
{
return 100;
}
public override int MinDPI()
{
return 200;
}
public override bool CanChangeDPIProfile()
{
return true;
}
public override int MaxBrightness()
{
return 4;
}
protected override byte[] GetUpdateLightingModePacket(LightingSetting lightingSetting, LightingZone zone)
{
/*
* 51 28 00 00 [00] [04] [35 04 FF] 00 00 00 00 00 00 00
*/
return new byte[] { reportId, 0x51, 0x28, 0x00, 0x00,
IndexForLightingMode(lightingSetting.LightingMode),
(byte)lightingSetting.Brightness,
lightingSetting.RGBColor.R, lightingSetting.RGBColor.G, lightingSetting.RGBColor.B
};
}
protected override byte[] GetReadLightingModePacket(LightingZone zone)
{
return new byte[] { 0x00, 0x12, 0x03, 0x00 };
}
protected LightingSetting? ParseLightingSetting(byte[] packet, LightingZone zone)
{
if (packet[1] != 0x12 || packet[2] != 0x03)
{
return null;
}
int offset = 5 + (((int)zone) * 5);
LightingSetting setting = new LightingSetting();
setting.LightingMode = LightingModeForIndex(packet[offset + 0]);
setting.Brightness = packet[offset + 1];
setting.RGBColor = Color.FromArgb(packet[offset + 2], packet[offset + 3], packet[offset + 4]);
return setting;
}
public override void ReadLightingSetting()
{
if (!HasRGB())
{
return;
}
//Mouse sends all lighting zones in one response Direction, Random col, Speed
//00 12 03 00 00 [00 04 ff 00 80] [00 04 00 ff ff] [00 04 ff ff ff] 00 [00] [00] [00] 00 00
//00 12 03 00 00 [03 04 00 00 00] [03 04 00 00 00] [03 04 00 00 00] 00 [00] [00] [07] 00 00
byte[]? response = WriteForResponse(GetReadLightingModePacket(LightingZone.All));
if (response is null) return;
LightingZone[] lz = SupportedLightingZones();
for (int i = 0; i < lz.Length; ++i)
{
LightingSetting? ls = ParseLightingSetting(response, lz[i]);
if (ls is null)
{
Logger.WriteLine(GetDisplayName() + ": Failed to read RGB Setting for Zone " + lz[i].ToString());
continue;
}
ls.AnimationDirection = SupportsAnimationDirection(ls.LightingMode)
? (AnimationDirection)response[21]
: AnimationDirection.Clockwise;
ls.RandomColor = SupportsRandomColor(ls.LightingMode) && response[22] == 0x01;
ls.AnimationSpeed = SupportsAnimationSpeed(ls.LightingMode)
? (AnimationSpeed)response[23]
: AnimationSpeed.Medium;
if (ls.AnimationSpeed != AnimationSpeed.Fast
&& ls.AnimationSpeed != AnimationSpeed.Medium
&& ls.AnimationSpeed != AnimationSpeed.Slow)
{
ls.AnimationSpeed = AnimationSpeed.Medium;
}
Logger.WriteLine(GetDisplayName() + ": Read RGB Setting for Zone " + lz[i].ToString() + ": " + ls.ToString());
LightingSetting[i] = ls;
}
}
protected override PollingRate ParsePollingRate(byte[] packet)
{
if (packet[1] == 0x12 && packet[2] == 0x04 && packet[3] == 0x00)
{
return (PollingRate)packet[9];
}
return PollingRate.PR125Hz;
}
protected override byte[] GetUpdatePollingRatePacket(PollingRate pollingRate)
{
return new byte[] { reportId, 0x51, 0x31, 0x02, 0x00, (byte)pollingRate };
}
protected override bool ParseAngleSnapping(byte[] packet)
{
if (packet[1] == 0x12 && packet[2] == 0x04 && packet[3] == 0x00)
{
return packet[13] == 0x01;
}
return false;
}
protected override byte[] GetUpdateAngleSnappingPacket(bool angleSnapping)
{
return new byte[] { reportId, 0x51, 0x31, 0x04, 0x00, (byte)(angleSnapping ? 0x01 : 0x00) };
}
protected override DebounceTime ParseDebounce(byte[] packet)
{
if (packet[1] != 0x12 || packet[2] != 0x04 || packet[3] != 0x00)
{
return DebounceTime.MS12;
}
if (packet[11] < 0x02)
{
return DebounceTime.MS12;
}
if (packet[11] > 0x07)
{
return DebounceTime.MS32;
}
return (DebounceTime)packet[11];
}
protected override byte[] GetUpdateDebouncePacket(DebounceTime debounce)
{
return new byte[] { reportId, 0x51, 0x31, 0x03, 0x00, ((byte)debounce) };
}
}
}

View File

@@ -7,10 +7,6 @@
{ {
} }
public StrixImpactII(ushort pid) : base(0x0B05, pid, "mi_00", false)
{
}
public override int DPIProfileCount() public override int DPIProfileCount()
{ {
return 4; return 4;
@@ -178,19 +174,4 @@
} }
} }
} }
public class StrixImpactIIElectroPunk : StrixImpactII
{
public StrixImpactIIElectroPunk() : base(0x1956)
{
}
public override string GetDisplayName()
{
return "ROG Strix Impact II Electro Punk";
}
}
} }

View File

@@ -209,14 +209,12 @@ namespace GHelper.Peripherals
DetectMouse(new PugioII()); DetectMouse(new PugioII());
DetectMouse(new PugioIIWired()); DetectMouse(new PugioIIWired());
DetectMouse(new StrixImpactII()); DetectMouse(new StrixImpactII());
DetectMouse(new StrixImpactIIElectroPunk());
DetectMouse(new Chakram()); DetectMouse(new Chakram());
DetectMouse(new ChakramWired()); DetectMouse(new ChakramWired());
DetectMouse(new ChakramCore()); DetectMouse(new ChakramCore());
DetectMouse(new SpathaX()); DetectMouse(new SpathaX());
DetectMouse(new StrixCarry()); DetectMouse(new StrixCarry());
DetectMouse(new StrixImpactIII()); DetectMouse(new StrixImpactIII());
DetectMouse(new StrixImpact());
} }
public static void DetectMouse(AsusMouse am) public static void DetectMouse(AsusMouse am)

View File

@@ -600,16 +600,6 @@ namespace GHelper.Properties {
} }
} }
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap icons8_search_32 {
get {
object obj = ResourceManager.GetObject("icons8-search-32", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary> /// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap. /// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary> /// </summary>

View File

@@ -136,6 +136,9 @@
<data name="icons8-bicycle-48 (1)" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="icons8-bicycle-48 (1)" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-bicycle-48 (1).png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\icons8-bicycle-48 (1).png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="standard" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\standard.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="eco" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="eco" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\eco.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\eco.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
@@ -163,6 +166,9 @@
<data name="icons8-automation-32" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="icons8-automation-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-automation-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\icons8-automation-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="icons8-settings-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-settings-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="brightness_up" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="brightness_up" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\brightness-up.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\brightness-up.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
@@ -172,8 +178,8 @@
<data name="icons8_processor_32" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="icons8_processor_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-processor-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\icons8-processor-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="MFont" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="icons8-fiat-500-48" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Font.otf;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>..\Resources\icons8-fiat-500-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="icons8_touchpad_96" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="icons8_touchpad_96" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-touchpad-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\icons8-touchpad-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -193,9 +199,6 @@
<data name="icons8_remove_64" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="icons8_remove_64" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-remove-64.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\icons8-remove-64.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="icons8_share_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-share-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icons8_function" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="icons8_function" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-function-mac-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\icons8-function-mac-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
@@ -214,9 +217,6 @@
<data name="backlight" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="backlight" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\backlight.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\backlight.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="icons8-brightness-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-brightness-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icons8-refresh-32" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="icons8-refresh-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-refresh-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\icons8-refresh-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
@@ -232,14 +232,11 @@
<data name="icons8-xbox-rt-32" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="icons8-xbox-rt-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-xbox-rt-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\icons8-xbox-rt-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="icons8_controller_96" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-controller-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icons8-fan-48" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="icons8-fan-48" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-fan-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\icons8-fan-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="icons8-settings-32" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="icons8_controller_96" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-settings-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\icons8-controller-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="icons8_maus_32" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="icons8_maus_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-maus-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\icons8-maus-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -289,8 +286,8 @@
<data name="icons8_video_48" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="icons8_video_48" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-video-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\icons8-video-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="icons8-fiat-500-48" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="MFont" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-fiat-500-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\Font.otf;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data> </data>
<data name="dot_eco" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="dot_eco" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\dot-eco.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\dot-eco.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -325,8 +322,8 @@
<data name="icons8_software_32" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="icons8_software_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-software-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\icons8-software-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="standard" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="icons8_share_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\standard.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\icons8-share-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="icons8-soonvibes-32" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="icons8-soonvibes-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-soonvibes-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\icons8-soonvibes-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -337,7 +334,7 @@
<data name="icons8-charging-battery-32" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="icons8-charging-battery-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-charging-battery-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\icons8-charging-battery-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="icons8-search-32" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="icons8-brightness-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-search-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\icons8-brightness-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
</root> </root>

View File

@@ -699,15 +699,6 @@ namespace GHelper.Properties {
} }
} }
/// <summary>
/// Looks up a localized string similar to Disable on lid close.
/// </summary>
internal static string DisableOnLidClose {
get {
return ResourceManager.GetString("DisableOnLidClose", resourceCulture);
}
}
/// <summary> /// <summary>
/// Looks up a localized string similar to Disable screen overdrive. /// Looks up a localized string similar to Disable screen overdrive.
/// </summary> /// </summary>
@@ -799,9 +790,9 @@ namespace GHelper.Properties {
return ResourceManager.GetString("EnergySettings", resourceCulture); return ResourceManager.GetString("EnergySettings", resourceCulture);
} }
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Export Profile. /// Looks up a localized string similar to Export.
/// </summary> /// </summary>
internal static string Export { internal static string Export {
get { get {
@@ -1033,9 +1024,9 @@ namespace GHelper.Properties {
return ResourceManager.GetString("ImageRotation", resourceCulture); return ResourceManager.GetString("ImageRotation", resourceCulture);
} }
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Import Profile. /// Looks up a localized string similar to Import.
/// </summary> /// </summary>
internal static string Import { internal static string Import {
get { get {
@@ -1303,9 +1294,9 @@ namespace GHelper.Properties {
return ResourceManager.GetString("MouseButtonResponse", resourceCulture); return ResourceManager.GetString("MouseButtonResponse", resourceCulture);
} }
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Import failed. Selected file is not a valid mouse profile or corrutpted.. /// Looks up a localized string similar to Import failed. Selected file is not a valid mouse profile or corrutpted.
/// </summary> /// </summary>
internal static string MouseImportFailed { internal static string MouseImportFailed {
get { get {
@@ -1809,7 +1800,7 @@ namespace GHelper.Properties {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Disable on battery. /// Looks up a localized string similar to Turn off on battery.
/// </summary> /// </summary>
internal static string TurnOffOnBattery { internal static string TurnOffOnBattery {
get { get {

View File

@@ -124,10 +124,10 @@
<value>Verbindung zu ASUS ACPI fehlgeschlagen. G-Helper kann nicht ausgeführt werden. Bitte installiere ASUS System Control Interface.</value> <value>Verbindung zu ASUS ACPI fehlgeschlagen. G-Helper kann nicht ausgeführt werden. Bitte installiere ASUS System Control Interface.</value>
</data> </data>
<data name="AlertAPUMemoryRestart" xml:space="preserve"> <data name="AlertAPUMemoryRestart" xml:space="preserve">
<value>Gerät neu starten, um Änderungen anzuwenden</value> <value>Restart your device to apply changes</value>
</data> </data>
<data name="AlertAPUMemoryRestartTitle" xml:space="preserve"> <data name="AlertAPUMemoryRestartTitle" xml:space="preserve">
<value>Jetzt neu starten?</value> <value>Restart now?</value>
</data> </data>
<data name="AlertDGPU" xml:space="preserve"> <data name="AlertDGPU" xml:space="preserve">
<value>Die GPU wird gerade verwendet. Trotzdem deaktivieren?</value> <value>Die GPU wird gerade verwendet. Trotzdem deaktivieren?</value>
@@ -250,7 +250,7 @@
<value>Im Betrieb</value> <value>Im Betrieb</value>
</data> </data>
<data name="BacklightTimeout" xml:space="preserve"> <data name="BacklightTimeout" xml:space="preserve">
<value>Timeout angeschlossen / bei Akku (0 = An)</value> <value>Timeout angeschlossen / bei Akku (0 - AN)</value>
</data> </data>
<data name="BacklightTimeoutBattery" xml:space="preserve"> <data name="BacklightTimeoutBattery" xml:space="preserve">
<value>Backlight Timeout when on battery</value> <value>Backlight Timeout when on battery</value>
@@ -289,7 +289,7 @@
<value>Hochfahren</value> <value>Hochfahren</value>
</data> </data>
<data name="BootSound" xml:space="preserve"> <data name="BootSound" xml:space="preserve">
<value>Boot-Sound</value> <value>Boot Sound</value>
</data> </data>
<data name="Brightness" xml:space="preserve"> <data name="Brightness" xml:space="preserve">
<value>Helligkeit</value> <value>Helligkeit</value>
@@ -310,7 +310,7 @@
<value>Farbe</value> <value>Farbe</value>
</data> </data>
<data name="Contrast" xml:space="preserve"> <data name="Contrast" xml:space="preserve">
<value>Kontrast</value> <value>Contrast</value>
</data> </data>
<data name="Controller" xml:space="preserve"> <data name="Controller" xml:space="preserve">
<value>Controller</value> <value>Controller</value>
@@ -328,10 +328,7 @@
<value>Standard</value> <value>Standard</value>
</data> </data>
<data name="DisableController" xml:space="preserve"> <data name="DisableController" xml:space="preserve">
<value>Controller deaktivieren</value> <value>Disable Controller</value>
</data>
<data name="DisableOnLidClose" xml:space="preserve">
<value>Disable on lid close</value>
</data> </data>
<data name="DisableOverdrive" xml:space="preserve"> <data name="DisableOverdrive" xml:space="preserve">
<value>Bildschirm: Overdrive abschalten</value> <value>Bildschirm: Overdrive abschalten</value>
@@ -352,7 +349,7 @@
<value>Eco</value> <value>Eco</value>
</data> </data>
<data name="EnableGPUOnShutdown" xml:space="preserve"> <data name="EnableGPUOnShutdown" xml:space="preserve">
<value>Aktiviere GPU beim Herunterfahren (verhindert Problem im Eco-Modus)</value> <value>Enable GPU on shutdown (prevents issue with Eco mode)</value>
</data> </data>
<data name="EnableOptimusText" xml:space="preserve"> <data name="EnableOptimusText" xml:space="preserve">
<value>Die dGPU zu deaktivieren, indem Sie in den Eco-Modus wechseln während der Anzeigemodus nicht auf Optimus eingestellt ist, kann zu Problemen mit der Helligkeitseinstellung führen. <value>Die dGPU zu deaktivieren, indem Sie in den Eco-Modus wechseln während der Anzeigemodus nicht auf Optimus eingestellt ist, kann zu Problemen mit der Helligkeitseinstellung führen.
@@ -366,7 +363,7 @@ Trotzdem fortfahren?</value>
<value>Energieeinstellungen</value> <value>Energieeinstellungen</value>
</data> </data>
<data name="Export" xml:space="preserve"> <data name="Export" xml:space="preserve">
<value>Profil exportieren</value> <value>Export Profile</value>
</data> </data>
<data name="Extra" xml:space="preserve"> <data name="Extra" xml:space="preserve">
<value>Extra</value> <value>Extra</value>
@@ -441,10 +438,10 @@ Trotzdem fortfahren?</value>
<value>Hoch</value> <value>Hoch</value>
</data> </data>
<data name="ImageRotation" xml:space="preserve"> <data name="ImageRotation" xml:space="preserve">
<value>Bilddrehung</value> <value>Image Rotation</value>
</data> </data>
<data name="Import" xml:space="preserve"> <data name="Import" xml:space="preserve">
<value>Profil importieren</value> <value>Import Profile</value>
</data> </data>
<data name="KeyBindings" xml:space="preserve"> <data name="KeyBindings" xml:space="preserve">
<value>Tastenbelegung</value> <value>Tastenbelegung</value>
@@ -534,7 +531,7 @@ Trotzdem fortfahren?</value>
<value>Tastenreaktionsgeschwindigkeit</value> <value>Tastenreaktionsgeschwindigkeit</value>
</data> </data>
<data name="MouseImportFailed" xml:space="preserve"> <data name="MouseImportFailed" xml:space="preserve">
<value>Import fehlgeschlagen. Die ausgewählte Datei ist kein gültiges Mausprofil oder beschädigt.</value> <value>Import failed. Selected file is not a valid mouse profile or corrutpted.</value>
</data> </data>
<data name="MouseLiftOffDistance" xml:space="preserve"> <data name="MouseLiftOffDistance" xml:space="preserve">
<value>Lift Off Distance</value> <value>Lift Off Distance</value>
@@ -621,7 +618,7 @@ Trotzdem fortfahren?</value>
<value>Schließen</value> <value>Schließen</value>
</data> </data>
<data name="Reset" xml:space="preserve"> <data name="Reset" xml:space="preserve">
<value>Zurücksetzen</value> <value>Reset</value>
</data> </data>
<data name="RestartGPU" xml:space="preserve"> <data name="RestartGPU" xml:space="preserve">
<value>Ein Prozess verhindert den Wechsel in den Eco-Modus. dGPU neu starten? Fortfahren auf eigene Gefahr.</value> <value>Ein Prozess verhindert den Wechsel in den Eco-Modus. dGPU neu starten? Fortfahren auf eigene Gefahr.</value>
@@ -639,7 +636,7 @@ Trotzdem fortfahren?</value>
<value>Beim Start ausführen</value> <value>Beim Start ausführen</value>
</data> </data>
<data name="ScalingQuality" xml:space="preserve"> <data name="ScalingQuality" xml:space="preserve">
<value>Skalierungsqualität</value> <value>Scaling Quality</value>
</data> </data>
<data name="ScreenPadDown" xml:space="preserve"> <data name="ScreenPadDown" xml:space="preserve">
<value>Screenpad Helligkeit verringern</value> <value>Screenpad Helligkeit verringern</value>
@@ -720,7 +717,7 @@ Trotzdem fortfahren?</value>
<value>Version</value> <value>Version</value>
</data> </data>
<data name="VibrationStrength" xml:space="preserve"> <data name="VibrationStrength" xml:space="preserve">
<value>Vibrationsstärke</value> <value>Vibration Strength</value>
</data> </data>
<data name="VolumeDown" xml:space="preserve"> <data name="VolumeDown" xml:space="preserve">
<value>Lautstärke verringern</value> <value>Lautstärke verringern</value>

View File

@@ -330,9 +330,6 @@
<data name="DisableController" xml:space="preserve"> <data name="DisableController" xml:space="preserve">
<value>Deshabilitar mando</value> <value>Deshabilitar mando</value>
</data> </data>
<data name="DisableOnLidClose" xml:space="preserve">
<value>Desactivar al cerrar la tapa</value>
</data>
<data name="DisableOverdrive" xml:space="preserve"> <data name="DisableOverdrive" xml:space="preserve">
<value>Desactivar Overdrive</value> <value>Desactivar Overdrive</value>
</data> </data>

View File

@@ -330,9 +330,6 @@
<data name="DisableController" xml:space="preserve"> <data name="DisableController" xml:space="preserve">
<value>Désactiver le contrôleur</value> <value>Désactiver le contrôleur</value>
</data> </data>
<data name="DisableOnLidClose" xml:space="preserve">
<value>Disable on lid close</value>
</data>
<data name="DisableOverdrive" xml:space="preserve"> <data name="DisableOverdrive" xml:space="preserve">
<value>Désactiver l'overdrive de l'écran</value> <value>Désactiver l'overdrive de l'écran</value>
</data> </data>
@@ -459,10 +456,10 @@ Voulez-vous continuer ?</value>
<value>Rétroéclairage du clavier</value> <value>Rétroéclairage du clavier</value>
</data> </data>
<data name="LaptopKeyboard" xml:space="preserve"> <data name="LaptopKeyboard" xml:space="preserve">
<value>Clavier</value> <value>Clavier de l'ordinateur</value>
</data> </data>
<data name="LaptopScreen" xml:space="preserve"> <data name="LaptopScreen" xml:space="preserve">
<value>Écran</value> <value>Écran de l'ordinateur </value>
</data> </data>
<data name="Lid" xml:space="preserve"> <data name="Lid" xml:space="preserve">
<value>Capot</value> <value>Capot</value>
@@ -591,7 +588,7 @@ Voulez-vous continuer ?</value>
<value>Overdrive</value> <value>Overdrive</value>
</data> </data>
<data name="PerformanceMode" xml:space="preserve"> <data name="PerformanceMode" xml:space="preserve">
<value>Mode</value> <value>Mode Performance</value>
</data> </data>
<data name="Peripherals" xml:space="preserve"> <data name="Peripherals" xml:space="preserve">
<value>Périphériques</value> <value>Périphériques</value>

View File

@@ -330,9 +330,6 @@
<data name="DisableController" xml:space="preserve"> <data name="DisableController" xml:space="preserve">
<value>Disable Controller</value> <value>Disable Controller</value>
</data> </data>
<data name="DisableOnLidClose" xml:space="preserve">
<value>Disable on lid close</value>
</data>
<data name="DisableOverdrive" xml:space="preserve"> <data name="DisableOverdrive" xml:space="preserve">
<value>Képernyőtúlhajtás letiltása</value> <value>Képernyőtúlhajtás letiltása</value>
</data> </data>

View File

@@ -330,9 +330,6 @@
<data name="DisableController" xml:space="preserve"> <data name="DisableController" xml:space="preserve">
<value>Disable Controller</value> <value>Disable Controller</value>
</data> </data>
<data name="DisableOnLidClose" xml:space="preserve">
<value>Disable on lid close</value>
</data>
<data name="DisableOverdrive" xml:space="preserve"> <data name="DisableOverdrive" xml:space="preserve">
<value>Nonaktifkan screen overdrive</value> <value>Nonaktifkan screen overdrive</value>
</data> </data>

View File

@@ -330,9 +330,6 @@
<data name="DisableController" xml:space="preserve"> <data name="DisableController" xml:space="preserve">
<value>Disable Controller</value> <value>Disable Controller</value>
</data> </data>
<data name="DisableOnLidClose" xml:space="preserve">
<value>Disable on lid close</value>
</data>
<data name="DisableOverdrive" xml:space="preserve"> <data name="DisableOverdrive" xml:space="preserve">
<value>Disabilita Overdrive Schermo</value> <value>Disabilita Overdrive Schermo</value>
</data> </data>

View File

@@ -330,9 +330,6 @@
<data name="DisableController" xml:space="preserve"> <data name="DisableController" xml:space="preserve">
<value>Disable Controller</value> <value>Disable Controller</value>
</data> </data>
<data name="DisableOnLidClose" xml:space="preserve">
<value>Disable on lid close</value>
</data>
<data name="DisableOverdrive" xml:space="preserve"> <data name="DisableOverdrive" xml:space="preserve">
<value>화면 OD 끄기</value> <value>화면 OD 끄기</value>
</data> </data>

View File

@@ -330,9 +330,6 @@
<data name="DisableController" xml:space="preserve"> <data name="DisableController" xml:space="preserve">
<value>Disable Controller</value> <value>Disable Controller</value>
</data> </data>
<data name="DisableOnLidClose" xml:space="preserve">
<value>Disable on lid close</value>
</data>
<data name="DisableOverdrive" xml:space="preserve"> <data name="DisableOverdrive" xml:space="preserve">
<value>Išjungti ekrano pikselių spartinimą</value> <value>Išjungti ekrano pikselių spartinimą</value>
</data> </data>

View File

@@ -330,9 +330,6 @@
<data name="DisableController" xml:space="preserve"> <data name="DisableController" xml:space="preserve">
<value>Disable Controller</value> <value>Disable Controller</value>
</data> </data>
<data name="DisableOnLidClose" xml:space="preserve">
<value>Disable on lid close</value>
</data>
<data name="DisableOverdrive" xml:space="preserve"> <data name="DisableOverdrive" xml:space="preserve">
<value>Wyłącz funkcję Overdrive monitora</value> <value>Wyłącz funkcję Overdrive monitora</value>
</data> </data>

View File

@@ -330,9 +330,6 @@
<data name="DisableController" xml:space="preserve"> <data name="DisableController" xml:space="preserve">
<value>Disable Controller</value> <value>Disable Controller</value>
</data> </data>
<data name="DisableOnLidClose" xml:space="preserve">
<value>Disable on lid close</value>
</data>
<data name="DisableOverdrive" xml:space="preserve"> <data name="DisableOverdrive" xml:space="preserve">
<value>Desativar o overdrive da tela</value> <value>Desativar o overdrive da tela</value>
</data> </data>

View File

@@ -330,9 +330,6 @@
<data name="DisableController" xml:space="preserve"> <data name="DisableController" xml:space="preserve">
<value>Disable Controller</value> <value>Disable Controller</value>
</data> </data>
<data name="DisableOnLidClose" xml:space="preserve">
<value>Disable on lid close</value>
</data>
<data name="DisableOverdrive" xml:space="preserve"> <data name="DisableOverdrive" xml:space="preserve">
<value>Desativar o overdrive do ecrã</value> <value>Desativar o overdrive do ecrã</value>
</data> </data>

View File

@@ -330,9 +330,6 @@
<data name="DisableController" xml:space="preserve"> <data name="DisableController" xml:space="preserve">
<value>Disable Controller</value> <value>Disable Controller</value>
</data> </data>
<data name="DisableOnLidClose" xml:space="preserve">
<value>Disable on lid close</value>
</data>
<data name="DisableOverdrive" xml:space="preserve"> <data name="DisableOverdrive" xml:space="preserve">
<value>Disable screen overdrive</value> <value>Disable screen overdrive</value>
</data> </data>
@@ -702,7 +699,7 @@ Do you still want to continue?</value>
<value>Turned off</value> <value>Turned off</value>
</data> </data>
<data name="TurnOffOnBattery" xml:space="preserve"> <data name="TurnOffOnBattery" xml:space="preserve">
<value>Disable on battery</value> <value>Turn off on battery</value>
</data> </data>
<data name="UltimateGPUTooltip" xml:space="preserve"> <data name="UltimateGPUTooltip" xml:space="preserve">
<value>Routes laptop screen to dGPU, maximizing FPS</value> <value>Routes laptop screen to dGPU, maximizing FPS</value>

View File

@@ -330,9 +330,6 @@
<data name="DisableController" xml:space="preserve"> <data name="DisableController" xml:space="preserve">
<value>Disable Controller</value> <value>Disable Controller</value>
</data> </data>
<data name="DisableOnLidClose" xml:space="preserve">
<value>Disable on lid close</value>
</data>
<data name="DisableOverdrive" xml:space="preserve"> <data name="DisableOverdrive" xml:space="preserve">
<value>Dezactivează screen overdrive</value> <value>Dezactivează screen overdrive</value>
</data> </data>

View File

@@ -330,9 +330,6 @@
<data name="DisableController" xml:space="preserve"> <data name="DisableController" xml:space="preserve">
<value>Disable Controller</value> <value>Disable Controller</value>
</data> </data>
<data name="DisableOnLidClose" xml:space="preserve">
<value>Disable on lid close</value>
</data>
<data name="DisableOverdrive" xml:space="preserve"> <data name="DisableOverdrive" xml:space="preserve">
<value>Ekran overdrive özelliğini devre dışı bırak</value> <value>Ekran overdrive özelliğini devre dışı bırak</value>
</data> </data>

View File

@@ -330,9 +330,6 @@
<data name="DisableController" xml:space="preserve"> <data name="DisableController" xml:space="preserve">
<value>Вимкнути контролер</value> <value>Вимкнути контролер</value>
</data> </data>
<data name="DisableOnLidClose" xml:space="preserve">
<value>Вимкнути при закритті</value>
</data>
<data name="DisableOverdrive" xml:space="preserve"> <data name="DisableOverdrive" xml:space="preserve">
<value>Вимкнути овердрайв дисплею</value> <value>Вимкнути овердрайв дисплею</value>
</data> </data>
@@ -702,7 +699,7 @@
<value>Вимкнений</value> <value>Вимкнений</value>
</data> </data>
<data name="TurnOffOnBattery" xml:space="preserve"> <data name="TurnOffOnBattery" xml:space="preserve">
<value>Вимкнути на батареї</value> <value>Вимикати на батареї</value>
</data> </data>
<data name="UltimateGPUTooltip" xml:space="preserve"> <data name="UltimateGPUTooltip" xml:space="preserve">
<value>Підключає екран лептопу до dGPU, щоб підвищити FPS</value> <value>Підключає екран лептопу до dGPU, щоб підвищити FPS</value>

View File

@@ -330,9 +330,6 @@
<data name="DisableController" xml:space="preserve"> <data name="DisableController" xml:space="preserve">
<value>Disable Controller</value> <value>Disable Controller</value>
</data> </data>
<data name="DisableOnLidClose" xml:space="preserve">
<value>Disable on lid close</value>
</data>
<data name="DisableOverdrive" xml:space="preserve"> <data name="DisableOverdrive" xml:space="preserve">
<value>Tắt Overdrive</value> <value>Tắt Overdrive</value>
</data> </data>

View File

@@ -330,9 +330,6 @@
<data name="DisableController" xml:space="preserve"> <data name="DisableController" xml:space="preserve">
<value>Disable Controller</value> <value>Disable Controller</value>
</data> </data>
<data name="DisableOnLidClose" xml:space="preserve">
<value>Disable on lid close</value>
</data>
<data name="DisableOverdrive" xml:space="preserve"> <data name="DisableOverdrive" xml:space="preserve">
<value>禁用屏幕快速显示(OD)</value> <value>禁用屏幕快速显示(OD)</value>
</data> </data>

View File

@@ -145,7 +145,7 @@
<value>現在重新啟動嗎?</value> <value>現在重新啟動嗎?</value>
</data> </data>
<data name="AllyController" xml:space="preserve"> <data name="AllyController" xml:space="preserve">
<value>Ally控制器</value> <value>Ally Controller</value>
</data> </data>
<data name="AnimationSpeed" xml:space="preserve"> <data name="AnimationSpeed" xml:space="preserve">
<value>動畫速度</value> <value>動畫速度</value>
@@ -277,10 +277,10 @@
<value>Binding</value> <value>Binding</value>
</data> </data>
<data name="BindingPrimary" xml:space="preserve"> <data name="BindingPrimary" xml:space="preserve">
<value>主要</value> <value>Primary</value>
</data> </data>
<data name="BindingSecondary" xml:space="preserve"> <data name="BindingSecondary" xml:space="preserve">
<value>次要</value> <value>Secondary</value>
</data> </data>
<data name="BiosAndDriverUpdates" xml:space="preserve"> <data name="BiosAndDriverUpdates" xml:space="preserve">
<value>BIOS與驅動程式更新</value> <value>BIOS與驅動程式更新</value>
@@ -313,7 +313,7 @@
<value>Contrast</value> <value>Contrast</value>
</data> </data>
<data name="Controller" xml:space="preserve"> <data name="Controller" xml:space="preserve">
<value>控制器</value> <value>Controller</value>
</data> </data>
<data name="CPUBoost" xml:space="preserve"> <data name="CPUBoost" xml:space="preserve">
<value>CPU 加速</value> <value>CPU 加速</value>
@@ -328,10 +328,7 @@
<value>預設</value> <value>預設</value>
</data> </data>
<data name="DisableController" xml:space="preserve"> <data name="DisableController" xml:space="preserve">
<value>停用控制器</value> <value>Disable Controller</value>
</data>
<data name="DisableOnLidClose" xml:space="preserve">
<value>Disable on lid close</value>
</data> </data>
<data name="DisableOverdrive" xml:space="preserve"> <data name="DisableOverdrive" xml:space="preserve">
<value>禁用螢幕加速OD</value> <value>禁用螢幕加速OD</value>
@@ -366,7 +363,7 @@
<value>電源設定</value> <value>電源設定</value>
</data> </data>
<data name="Export" xml:space="preserve"> <data name="Export" xml:space="preserve">
<value>匯出設定檔</value> <value>Export Profile</value>
</data> </data>
<data name="Extra" xml:space="preserve"> <data name="Extra" xml:space="preserve">
<value>更多</value> <value>更多</value>
@@ -444,7 +441,7 @@
<value>Image Rotation</value> <value>Image Rotation</value>
</data> </data>
<data name="Import" xml:space="preserve"> <data name="Import" xml:space="preserve">
<value>匯入設定檔</value> <value>Import Profile</value>
</data> </data>
<data name="KeyBindings" xml:space="preserve"> <data name="KeyBindings" xml:space="preserve">
<value>按鍵綁定</value> <value>按鍵綁定</value>
@@ -534,7 +531,7 @@
<value>按鍵回應</value> <value>按鍵回應</value>
</data> </data>
<data name="MouseImportFailed" xml:space="preserve"> <data name="MouseImportFailed" xml:space="preserve">
<value>匯入失敗,所選檔案並非有效的滑鼠設定檔或該檔已毀損</value> <value>Import failed. Selected file is not a valid mouse profile or corrutpted.</value>
</data> </data>
<data name="MouseLiftOffDistance" xml:space="preserve"> <data name="MouseLiftOffDistance" xml:space="preserve">
<value>響應高度(LOD)</value> <value>響應高度(LOD)</value>
@@ -621,7 +618,7 @@
<value>退出</value> <value>退出</value>
</data> </data>
<data name="Reset" xml:space="preserve"> <data name="Reset" xml:space="preserve">
<value>重設</value> <value>Reset</value>
</data> </data>
<data name="RestartGPU" xml:space="preserve"> <data name="RestartGPU" xml:space="preserve">
<value>有其他程式正在使用獨顯導致無法切換至節能模式. 是否讓G-Helper重新啟動獨顯? * 請自行評估風險</value> <value>有其他程式正在使用獨顯導致無法切換至節能模式. 是否讓G-Helper重新啟動獨顯? * 請自行評估風險</value>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 448 B

View File

@@ -13,7 +13,7 @@ namespace Ryzen
internal class RyzenControl internal class RyzenControl
{ {
public static int MinCPUUV => AppConfig.Get("min_uv", -40); public static int MinCPUUV => AppConfig.Get("min_uv", -30);
public const int MaxCPUUV = 0; public const int MaxCPUUV = 0;
public const int MinIGPUUV = -20; public const int MinIGPUUV = -20;

File diff suppressed because it is too large Load Diff

568
app/Settings.Designer.cs generated

File diff suppressed because it is too large Load Diff

View File

@@ -85,7 +85,6 @@ namespace GHelper
labelPeripherals.Text = Properties.Strings.Peripherals; labelPeripherals.Text = Properties.Strings.Peripherals;
checkMatrix.Text = Properties.Strings.TurnOffOnBattery; checkMatrix.Text = Properties.Strings.TurnOffOnBattery;
checkMatrixLid.Text = Properties.Strings.DisableOnLidClose;
checkStartup.Text = Properties.Strings.RunOnStartup; checkStartup.Text = Properties.Strings.RunOnStartup;
buttonMatrix.Text = Properties.Strings.PictureGif; buttonMatrix.Text = Properties.Strings.PictureGif;
@@ -219,7 +218,7 @@ namespace GHelper
sliderBattery.ValueChanged += SliderBattery_ValueChanged; sliderBattery.ValueChanged += SliderBattery_ValueChanged;
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(1000);
sensorTimer.Elapsed += OnTimedEvent; sensorTimer.Elapsed += OnTimedEvent;
sensorTimer.Enabled = true; sensorTimer.Enabled = true;
@@ -254,37 +253,16 @@ namespace GHelper
VisualiseFnLock(); VisualiseFnLock();
buttonFnLock.Click += ButtonFnLock_Click; buttonFnLock.Click += ButtonFnLock_Click;
panelPerformance.Focus(); panelGamma.Visible = AppConfig.IsOLED();
InitBrightness();
checkSRGB.Checked = screenControl.GetSRGB();
checkSRGB.CheckedChanged += CheckSRGB_CheckedChanged;
}
private void CheckSRGB_CheckedChanged(object? sender, EventArgs e)
{
screenControl.ToggleSRGB();
}
public void InitBrightness()
{
if (!AppConfig.IsOLED()) return;
panelGamma.Visible = true;
int brightness = AppConfig.Get("brightness");
if (brightness >= 0) sliderGamma.Value = brightness;
sliderGamma.ValueChanged += SliderGamma_ValueChanged; sliderGamma.ValueChanged += SliderGamma_ValueChanged;
labelGamma.Text = sliderGamma.Value + "%"; labelGamma.Text = "100%";
}
panelPerformance.Focus();
}
private void SliderGamma_ValueChanged(object? sender, EventArgs e) private void SliderGamma_ValueChanged(object? sender, EventArgs e)
{ {
screenControl.SetBrightness(sliderGamma.Value); screenControl.SetGamma(sliderGamma.Value);
labelGamma.Text = sliderGamma.Value + "%"; labelGamma.Text = sliderGamma.Value + "%";
} }
@@ -477,14 +455,10 @@ namespace GHelper
case 0: case 0:
Logger.WriteLine("Lid Closed"); Logger.WriteLine("Lid Closed");
Aura.ApplyBrightness(0, "Lid"); Aura.ApplyBrightness(0, "Lid");
AniMatrixControl.lidClose = true;
matrixControl.SetLidMode();
break; break;
case 1: case 1:
Logger.WriteLine("Lid Open"); Logger.WriteLine("Lid Open");
Aura.ApplyBrightness(InputDispatcher.GetBacklight(), "Lid"); Aura.ApplyBrightness(InputDispatcher.GetBacklight(), "Lid");
AniMatrixControl.lidClose = false;
matrixControl.SetLidMode();
break; break;
} }
@@ -727,11 +701,6 @@ namespace GHelper
matrixControl.SetBatteryAuto(); matrixControl.SetBatteryAuto();
} }
private void CheckMatrixLid_CheckedChanged(object? sender, EventArgs e)
{
AppConfig.Set("matrix_lid", checkMatrixLid.Checked ? 1 : 0);
matrixControl.SetLidMode(true);
}
private void ButtonMatrix_Click(object? sender, EventArgs e) private void ButtonMatrix_Click(object? sender, EventArgs e)
@@ -960,8 +929,7 @@ namespace GHelper
for (int i = 1; i <= 5; i++) comboInterval.Items.Add($"Interval {i}s"); for (int i = 1; i <= 5; i++) comboInterval.Items.Add($"Interval {i}s");
buttonMatrix.Visible = false; buttonMatrix.Visible = false;
checkMatrixLid.Visible = true; }
}
comboMatrix.SelectedIndex = Math.Min(AppConfig.Get("matrix_brightness", 0), comboMatrix.Items.Count - 1); comboMatrix.SelectedIndex = Math.Min(AppConfig.Get("matrix_brightness", 0), comboMatrix.Items.Count - 1);
comboMatrixRunning.SelectedIndex = Math.Min(AppConfig.Get("matrix_running", 0), comboMatrixRunning.Items.Count - 1); comboMatrixRunning.SelectedIndex = Math.Min(AppConfig.Get("matrix_running", 0), comboMatrixRunning.Items.Count - 1);
@@ -970,10 +938,6 @@ namespace GHelper
checkMatrix.Checked = AppConfig.Is("matrix_auto"); checkMatrix.Checked = AppConfig.Is("matrix_auto");
checkMatrix.CheckedChanged += CheckMatrix_CheckedChanged; checkMatrix.CheckedChanged += CheckMatrix_CheckedChanged;
checkMatrixLid.Checked = AppConfig.Is("matrix_lid");
checkMatrixLid.CheckedChanged += CheckMatrixLid_CheckedChanged;
} }

View File

@@ -79,7 +79,7 @@ namespace GHelper.USB
public static Color Color1 = Color.White; public static Color Color1 = Color.White;
public static Color Color2 = Color.Black; public static Color Color2 = Color.Black;
static bool isACPI = AppConfig.IsTUF() || AppConfig.IsVivoZenbook() || AppConfig.IsProArt(); static bool isACPI = AppConfig.IsTUF() || AppConfig.IsVivobook() || AppConfig.IsProArt();
static bool isStrix = AppConfig.IsStrix() && !AppConfig.IsNoDirectRGB(); static bool isStrix = AppConfig.IsStrix() && !AppConfig.IsNoDirectRGB();
static bool isStrix4Zone = AppConfig.IsStrixLimitedRGB(); static bool isStrix4Zone = AppConfig.IsStrixLimitedRGB();

View File

@@ -36,7 +36,7 @@ namespace GHelper
(bios, model) = AppConfig.GetBiosAndModel(); (bios, model) = AppConfig.GetBiosAndModel();
buttonRefresh.TabStop = false; buttonRefresh.TabStop = false;
updatesCount = 0; updatesCount = 0;
labelUpdates.ForeColor = colorEco; labelUpdates.ForeColor = colorEco;
labelUpdates.Text = Properties.Strings.NoNewUpdates; labelUpdates.Text = Properties.Strings.NoNewUpdates;
@@ -83,12 +83,13 @@ namespace GHelper
InitializeComponent(); InitializeComponent();
InitTheme(true); InitTheme(true);
LoadUpdates(true);
//buttonRefresh.Visible = false; //buttonRefresh.Visible = false;
buttonRefresh.Click += ButtonRefresh_Click; buttonRefresh.Click += ButtonRefresh_Click;
Shown += Updates_Shown; Shown += Updates_Shown;
} }
private void ButtonRefresh_Click(object? sender, EventArgs e) private void ButtonRefresh_Click(object? sender, EventArgs e)
{ {
LoadUpdates(); LoadUpdates();
@@ -99,9 +100,7 @@ namespace GHelper
Height = Program.settingsForm.Height; Height = Program.settingsForm.Height;
Top = Program.settingsForm.Top; Top = Program.settingsForm.Top;
Left = Program.settingsForm.Left - Width - 5; Left = Program.settingsForm.Left - Width - 5;
LoadUpdates(true);
} }
private Dictionary<string, string> GetDeviceVersions() private Dictionary<string, string> GetDeviceVersions()
{ {
using (ManagementObjectSearcher objSearcher = new ManagementObjectSearcher("Select * from Win32_PnPSignedDriver")) using (ManagementObjectSearcher objSearcher = new ManagementObjectSearcher("Select * from Win32_PnPSignedDriver"))
@@ -161,36 +160,24 @@ namespace GHelper
}); });
} }
private void _VisualiseNewDriver(int position, int newer, TableLayoutPanel table) public void VisualiseNewDriver(int position, int newer, TableLayoutPanel table)
{ {
var label = table.GetControlFromPosition(3, position) as LinkLabel; var label = table.GetControlFromPosition(3, position) as LinkLabel;
if (label != null) if (label != null)
{
if (newer == DRIVER_NEWER)
{
label.AccessibleName = label.AccessibleName + Properties.Strings.NewUpdates;
label.Font = new Font(label.Font, FontStyle.Underline | FontStyle.Bold);
label.LinkColor = colorTurbo;
}
if (newer == DRIVER_NOT_FOUND) label.LinkColor = Color.Gray;
}
}
public void VisualiseNewDriver(int position, int newer, TableLayoutPanel table)
{
if (InvokeRequired)
{ {
Invoke(delegate Invoke(delegate
{ {
_VisualiseNewDriver(position, newer, table); if (newer == DRIVER_NEWER)
}); {
} else label.AccessibleName = label.AccessibleName + Properties.Strings.NewUpdates;
{ label.Font = new Font(label.Font, FontStyle.Underline | FontStyle.Bold);
_VisualiseNewDriver(position, newer, table); label.LinkColor = colorTurbo;
} }
if (newer == DRIVER_NOT_FOUND) label.LinkColor = Color.Gray;
});
}
} }
public void VisualiseNewCount(int updatesCount, TableLayoutPanel table) public void VisualiseNewCount(int updatesCount, TableLayoutPanel table)
@@ -206,7 +193,7 @@ namespace GHelper
}); });
} }
public async void DriversAsync(string url, int type, TableLayoutPanel table) public async void DriversAsync(string url, int type, TableLayoutPanel table)
{ {
try try
@@ -279,7 +266,7 @@ namespace GHelper
foreach (var localVersion in localVersions) foreach (var localVersion in localVersions)
{ {
newer = Math.Min(newer, new Version(driver.version).CompareTo(new Version(localVersion))); newer = Math.Min(newer, new Version(driver.version).CompareTo(new Version(localVersion)));
Logger.WriteLine(driver.title + " " + deviceID + " " + driver.version + " vs " + localVersion + " = " + newer); Logger.WriteLine(driver.title + " " + deviceID + " "+ driver.version + " vs " + localVersion + " = " + newer);
} }
} }

View File

@@ -1,5 +1,5 @@
{ {
"sdk": { "sdk": {
"version": "7.0.406" "version": "7.0.400"
} }
} }

View File

@@ -1,10 +1,10 @@
# G-Helper - Lightweight control tool for Asus laptops # G-Helper - Lightweight control tool for Asus laptops
[![United24](https://raw.githubusercontent.com/seerge/g-helper/main/docs/ua.png)](https://u24.gov.ua/) [![United24](https://raw.githubusercontent.com/seerge/g-helper/main/docs/ua.png)](https://u24.gov.ua/)
[![GitHub release](https://img.shields.io/github/release/seerge/g-helper)](https://GitHub.com/seerge/g-helper/releases/) [![GitHub release](https://img.shields.io/github/release/seerge/g-helper.svg?style=flat-square)](https://GitHub.com/seerge/g-helper/releases/)
[![Github all releases](https://img.shields.io/github/downloads/seerge/g-helper/total)](https://GitHub.com/seerge/g-helper/releases/) [![GitHub stars](https://img.shields.io/github/stars/seerge/g-helper.svg?style=social)](https://GitHub.com/seerge/g-helper/stargazers/) [![Github all releases](https://img.shields.io/github/downloads/seerge/g-helper/total.svg?style=flat-square)](https://GitHub.com/seerge/g-helper/releases/) [![GitHub stars](https://img.shields.io/github/stars/seerge/g-helper.svg?style=social)](https://GitHub.com/seerge/g-helper/stargazers/)
Small and lightweight Armoury Crate alternative for Asus laptops offering almost same functionality without extra bloat and unnecessary services. Small and lightweight Armoury Crate alternative for Asus laptops offering almost same functionality without extra bloat and unnecessary services.
Works with all popular models, such as ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, Flow Z13, TUF Series, Strix / Scar Series, ProArt, VivoBook, Ally and many more! Works with all popular models, such as ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, Flow Z13, TUF Series, Strix / Scar Series, ProArt, VivoBook and many more!
# [:floppy_disk:Download](https://github.com/seerge/g-helper/releases/latest/download/GHelper.zip) # [:floppy_disk:Download](https://github.com/seerge/g-helper/releases/latest/download/GHelper.zip)
@@ -124,14 +124,6 @@ Huge thanks to [@IceStormNG](https://github.com/IceStormNG) 👑 for contributio
- ``Ctrl + Shift + Alt + F20`` - Custom 2 (if exists) - ``Ctrl + Shift + Alt + F20`` - Custom 2 (if exists)
- [Custom keybindings / hotkeys](https://github.com/seerge/g-helper/wiki/Power-user-settings#custom-hotkey-actions) - [Custom keybindings / hotkeys](https://github.com/seerge/g-helper/wiki/Power-user-settings#custom-hotkey-actions)
### 🎮ROG Ally Bindings
- ``M + DPad Left / Right`` - Display Brightness
- ``M + DPad Up`` - Touch keyboard
- ``M + DPad Down`` - Show desktop
- ``M + Y`` - Toggle AMD overay
- ``M + X`` - Screenshot
- ``M + Right Stick Click`` - Controller Mode
------------------ ------------------
#### If you like the app you can make a Donation #### If you like the app you can make a Donation