mirror of
https://github.com/jkocon/g-helper.git
synced 2026-02-23 13:00:52 +01:00
Compare commits
110 Commits
v0.152
...
visual_mod
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
274c773a8b | ||
|
|
93399288bf | ||
|
|
f42b91b408 | ||
|
|
9bf7400f69 | ||
|
|
dff69d48ce | ||
|
|
816988eb6c | ||
|
|
312028f97c | ||
|
|
211b855e8a | ||
|
|
d3d2f3189f | ||
|
|
4120113cbe | ||
|
|
1191208f70 | ||
|
|
c7db5a403c | ||
|
|
35ceea878f | ||
|
|
06378162c8 | ||
|
|
a688275ca2 | ||
|
|
4c5e05d6f8 | ||
|
|
d77acfd97a | ||
|
|
092ecc7ede | ||
|
|
0b3d52fc0e | ||
|
|
2797807d7b | ||
|
|
6075676372 | ||
|
|
0705edd83d | ||
|
|
6dcfff704e | ||
|
|
abc9acd3a8 | ||
|
|
53d7382417 | ||
|
|
64f4572113 | ||
|
|
8ab1f1fc81 | ||
|
|
251d32e115 | ||
|
|
947e32b97c | ||
|
|
091303d90f | ||
|
|
c8b929310a | ||
|
|
c32fa46991 | ||
|
|
b94e20a3fc | ||
|
|
2d0defd484 | ||
|
|
6f49af19ed | ||
|
|
097d91b5a4 | ||
|
|
f36a55f086 | ||
|
|
c1a6019d57 | ||
|
|
63b357a71b | ||
|
|
c337103806 | ||
|
|
268e55d47a | ||
|
|
3cc4955dd7 | ||
|
|
db8e4b9c5e | ||
|
|
c517f340dc | ||
|
|
f0da110a83 | ||
|
|
88ab4f396e | ||
|
|
4378118951 | ||
|
|
df71595b45 | ||
|
|
e7bb9c81d2 | ||
|
|
3b54e89d8e | ||
|
|
aa07a39c35 | ||
|
|
48e65dea97 | ||
|
|
b3e4578c02 | ||
|
|
76f29c5934 | ||
|
|
c57a60079c | ||
|
|
25470ed579 | ||
|
|
95b9a833c1 | ||
|
|
d156d8ace9 | ||
|
|
6d696c5c77 | ||
|
|
b644402155 | ||
|
|
0e4422f103 | ||
|
|
a9c6033c35 | ||
|
|
4889f0277f | ||
|
|
267662e15b | ||
|
|
34d2273ff5 | ||
|
|
61cc54b709 | ||
|
|
4ee93775f5 | ||
|
|
285cd81509 | ||
|
|
034b46e557 | ||
|
|
4697c37cad | ||
|
|
2a4e1f41f6 | ||
|
|
4196ccf33f | ||
|
|
c24dac2e4f | ||
|
|
555a6f4ed7 | ||
|
|
f10dee4e47 | ||
|
|
c82bc874cf | ||
|
|
a6a453704a | ||
|
|
c33edac4b4 | ||
|
|
16e30598e9 | ||
|
|
970de2adef | ||
|
|
293b261b37 | ||
|
|
03bff51850 | ||
|
|
42a598f177 | ||
|
|
ebfb9b3875 | ||
|
|
60c4e08347 | ||
|
|
e98cd2f5c1 | ||
|
|
697b5f0d2f | ||
|
|
b638382799 | ||
|
|
5f6afc0c6e | ||
|
|
8de06ce5ad | ||
|
|
85725fb782 | ||
|
|
d2cb6965e0 | ||
|
|
3f8083be50 | ||
|
|
1d30699fa2 | ||
|
|
060e3b7f7d | ||
|
|
2785bc6267 | ||
|
|
094fce0117 | ||
|
|
af9d3eb50e | ||
|
|
03f7d717b6 | ||
|
|
833b750227 | ||
|
|
b6dbc1ed25 | ||
|
|
103c65a43d | ||
|
|
d19ff265ab | ||
|
|
5d71a40987 | ||
|
|
9b33a43b49 | ||
|
|
df5bcbc376 | ||
|
|
71b74801ba | ||
|
|
6bab2fc9cb | ||
|
|
428b624ec6 | ||
|
|
af001b056a |
4
.github/SECURITY.md
vendored
4
.github/SECURITY.md
vendored
@@ -4,8 +4,8 @@
|
|||||||
|
|
||||||
| Version | Supported |
|
| Version | Supported |
|
||||||
| ------- | ------------------ |
|
| ------- | ------------------ |
|
||||||
| 0.89+ | :white_check_mark: |
|
| 0.151+ | :white_check_mark: |
|
||||||
| < 0.89 | :x: |
|
| < 0.151 | :x: |
|
||||||
|
|
||||||
## Reporting a Vulnerability
|
## Reporting a Vulnerability
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
using NAudio.CoreAudioApi;
|
using NAudio.CoreAudioApi;
|
||||||
using NAudio.Wave;
|
using NAudio.Wave;
|
||||||
using Starlight.AnimeMatrix;
|
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Drawing.Drawing2D;
|
using System.Drawing.Drawing2D;
|
||||||
using System.Drawing.Imaging;
|
using System.Drawing.Imaging;
|
||||||
@@ -15,14 +14,19 @@ namespace GHelper.AnimeMatrix
|
|||||||
SettingsForm settings;
|
SettingsForm settings;
|
||||||
|
|
||||||
System.Timers.Timer matrixTimer = default!;
|
System.Timers.Timer matrixTimer = default!;
|
||||||
public AnimeMatrixDevice? device;
|
|
||||||
|
public AnimeMatrixDevice? deviceMatrix;
|
||||||
|
public SlashDevice? deviceSlash;
|
||||||
|
|
||||||
|
public static bool lidClose = false;
|
||||||
|
|
||||||
double[]? AudioValues;
|
double[]? AudioValues;
|
||||||
WasapiCapture? AudioDevice;
|
WasapiCapture? AudioDevice;
|
||||||
string? AudioDeviceId;
|
string? AudioDeviceId;
|
||||||
private MMDeviceEnumerator? AudioDeviceEnum;
|
private MMDeviceEnumerator? AudioDeviceEnum;
|
||||||
|
|
||||||
public bool IsValid => device != null;
|
public bool IsValid => deviceMatrix != null || deviceSlash != null;
|
||||||
|
public bool IsSlash => deviceSlash != null;
|
||||||
|
|
||||||
private long lastPresent;
|
private long lastPresent;
|
||||||
private List<double> maxes = new List<double>();
|
private List<double> maxes = new List<double>();
|
||||||
@@ -33,37 +37,92 @@ namespace GHelper.AnimeMatrix
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
device = new AnimeMatrixDevice();
|
if (AppConfig.IsSlash())
|
||||||
Task.Run(device.WakeUp);
|
deviceSlash = new SlashDevice();
|
||||||
|
else
|
||||||
|
deviceMatrix = new AnimeMatrixDevice();
|
||||||
|
|
||||||
matrixTimer = new System.Timers.Timer(100);
|
matrixTimer = new System.Timers.Timer(100);
|
||||||
matrixTimer.Elapsed += MatrixTimer_Elapsed;
|
matrixTimer.Elapsed += MatrixTimer_Elapsed;
|
||||||
}
|
}
|
||||||
catch
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
device = null;
|
Logger.WriteLine(ex.Message);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void SetDevice(bool wakeUp = false)
|
||||||
|
{
|
||||||
|
if (deviceMatrix is not null) SetMatrix(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)
|
||||||
|
{
|
||||||
|
if (deviceSlash is null) return;
|
||||||
|
|
||||||
|
int brightness = AppConfig.Get("matrix_brightness", 0);
|
||||||
|
int running = AppConfig.Get("matrix_running", 0);
|
||||||
|
int inteval = AppConfig.Get("matrix_interval", 0);
|
||||||
|
|
||||||
|
bool auto = AppConfig.Is("matrix_auto");
|
||||||
|
bool lid = AppConfig.Is("matrix_lid");
|
||||||
|
|
||||||
|
Task.Run(() =>
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
deviceSlash.SetProvider();
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Logger.WriteLine(ex.Message);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (wakeUp) deviceSlash.WakeUp();
|
||||||
|
|
||||||
|
if (brightness == 0 || (auto && SystemInformation.PowerStatus.PowerLineStatus != PowerLineStatus.Online) || (lid && lidClose))
|
||||||
|
{
|
||||||
|
deviceSlash.Init();
|
||||||
|
deviceSlash.SetOptions(false, 0, 0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
deviceSlash.Init();
|
||||||
|
deviceSlash.SetMode((SlashMode)running);
|
||||||
|
deviceSlash.SetOptions(true, brightness, inteval);
|
||||||
|
deviceSlash.Save();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetBatteryAuto()
|
||||||
|
{
|
||||||
|
if (deviceSlash is not null) deviceSlash.SetBatterySaver(AppConfig.Is("matrix_auto"));
|
||||||
|
if (deviceMatrix is not null) SetMatrix();
|
||||||
|
}
|
||||||
|
|
||||||
public void SetMatrix(bool wakeUp = false)
|
public void SetMatrix(bool wakeUp = false)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (!IsValid) return;
|
if (deviceMatrix is null) return;
|
||||||
|
|
||||||
int brightness = AppConfig.Get("matrix_brightness");
|
|
||||||
int running = AppConfig.Get("matrix_running");
|
|
||||||
|
|
||||||
|
int brightness = AppConfig.Get("matrix_brightness", 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");
|
||||||
if (brightness < 0) brightness = 0;
|
|
||||||
if (running < 0) running = 0;
|
|
||||||
|
|
||||||
BuiltInAnimation animation = new BuiltInAnimation(
|
|
||||||
(BuiltInAnimation.Running)running,
|
|
||||||
BuiltInAnimation.Sleeping.Starfield,
|
|
||||||
BuiltInAnimation.Shutdown.SeeYa,
|
|
||||||
BuiltInAnimation.Startup.StaticEmergence
|
|
||||||
);
|
|
||||||
|
|
||||||
StopMatrixTimer();
|
StopMatrixTimer();
|
||||||
StopMatrixAudio();
|
StopMatrixAudio();
|
||||||
@@ -72,7 +131,7 @@ namespace GHelper.AnimeMatrix
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
device.SetProvider();
|
deviceMatrix.SetProvider();
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
@@ -80,18 +139,18 @@ namespace GHelper.AnimeMatrix
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (wakeUp && AppConfig.ContainsModel("401")) device.WakeUp();
|
if (wakeUp) deviceMatrix.WakeUp();
|
||||||
|
|
||||||
if (brightness == 0 || (auto && SystemInformation.PowerStatus.PowerLineStatus != PowerLineStatus.Online))
|
if (brightness == 0 || (auto && SystemInformation.PowerStatus.PowerLineStatus != PowerLineStatus.Online) || (lid && lidClose))
|
||||||
{
|
{
|
||||||
device.SetDisplayState(false);
|
deviceMatrix.SetDisplayState(false);
|
||||||
device.SetDisplayState(false); // some devices are dumb
|
deviceMatrix.SetDisplayState(false); // some devices are dumb
|
||||||
Logger.WriteLine("Matrix Off");
|
Logger.WriteLine("Matrix Off");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
device.SetDisplayState(true);
|
deviceMatrix.SetDisplayState(true);
|
||||||
device.SetBrightness((BrightnessMode)brightness);
|
deviceMatrix.SetBrightness((BrightnessMode)brightness);
|
||||||
|
|
||||||
switch (running)
|
switch (running)
|
||||||
{
|
{
|
||||||
@@ -105,8 +164,7 @@ namespace GHelper.AnimeMatrix
|
|||||||
SetMatrixAudio();
|
SetMatrixAudio();
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
device.SetBuiltInAnimation(true, animation);
|
SetBuiltIn(running);
|
||||||
Logger.WriteLine("Matrix builtin " + animation.AsByte);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -115,6 +173,19 @@ namespace GHelper.AnimeMatrix
|
|||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void SetBuiltIn(int running)
|
||||||
|
{
|
||||||
|
BuiltInAnimation animation = new BuiltInAnimation(
|
||||||
|
(BuiltInAnimation.Running)running,
|
||||||
|
BuiltInAnimation.Sleeping.Starfield,
|
||||||
|
BuiltInAnimation.Shutdown.SeeYa,
|
||||||
|
BuiltInAnimation.Startup.StaticEmergence
|
||||||
|
);
|
||||||
|
deviceMatrix.SetBuiltInAnimation(true, animation);
|
||||||
|
Logger.WriteLine("Matrix builtin: " + animation.AsByte);
|
||||||
|
}
|
||||||
|
|
||||||
private void StartMatrixTimer(int interval = 100)
|
private void StartMatrixTimer(int interval = 100)
|
||||||
{
|
{
|
||||||
matrixTimer.Interval = interval;
|
matrixTimer.Interval = interval;
|
||||||
@@ -129,15 +200,16 @@ namespace GHelper.AnimeMatrix
|
|||||||
|
|
||||||
private void MatrixTimer_Elapsed(object? sender, ElapsedEventArgs e)
|
private void MatrixTimer_Elapsed(object? sender, ElapsedEventArgs e)
|
||||||
{
|
{
|
||||||
//if (!IsValid) return;
|
|
||||||
|
if (deviceMatrix is null) return;
|
||||||
|
|
||||||
switch (AppConfig.Get("matrix_running"))
|
switch (AppConfig.Get("matrix_running"))
|
||||||
{
|
{
|
||||||
case 2:
|
case 2:
|
||||||
device.PresentNextFrame();
|
deviceMatrix.PresentNextFrame();
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
device.PresentClock();
|
deviceMatrix.PresentClock();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -146,7 +218,7 @@ namespace GHelper.AnimeMatrix
|
|||||||
|
|
||||||
public void SetMatrixClock()
|
public void SetMatrixClock()
|
||||||
{
|
{
|
||||||
device.SetBuiltInAnimation(false);
|
deviceMatrix.SetBuiltInAnimation(false);
|
||||||
StartMatrixTimer(1000);
|
StartMatrixTimer(1000);
|
||||||
Logger.WriteLine("Matrix Clock");
|
Logger.WriteLine("Matrix Clock");
|
||||||
}
|
}
|
||||||
@@ -177,9 +249,9 @@ namespace GHelper.AnimeMatrix
|
|||||||
|
|
||||||
void SetMatrixAudio()
|
void SetMatrixAudio()
|
||||||
{
|
{
|
||||||
if (!IsValid) return;
|
if (deviceMatrix is null) return;
|
||||||
|
|
||||||
device.SetBuiltInAnimation(false);
|
deviceMatrix.SetBuiltInAnimation(false);
|
||||||
StopMatrixTimer();
|
StopMatrixTimer();
|
||||||
StopMatrixAudio();
|
StopMatrixAudio();
|
||||||
|
|
||||||
@@ -251,18 +323,20 @@ namespace GHelper.AnimeMatrix
|
|||||||
for (int x = 0; x < 2 - (y % 2); x++)
|
for (int x = 0; x < 2 - (y % 2); x++)
|
||||||
{
|
{
|
||||||
//color = (byte)(Math.Min(1,(h - y - 2)*2) * 255);
|
//color = (byte)(Math.Min(1,(h - y - 2)*2) * 255);
|
||||||
device.SetLedPlanar(x + dx, dy + y, (byte)(h * 255 / 30));
|
deviceMatrix.SetLedPlanar(x + dx, dy + y, (byte)(h * 255 / 30));
|
||||||
device.SetLedPlanar(x + dx, dy - y, 255);
|
deviceMatrix.SetLedPlanar(x + dx, dy - y, 255);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void PresentAudio(double[] audio)
|
void PresentAudio(double[] audio)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
if (deviceMatrix is null) return;
|
||||||
|
|
||||||
if (Math.Abs(DateTimeOffset.Now.ToUnixTimeMilliseconds() - lastPresent) < 70) return;
|
if (Math.Abs(DateTimeOffset.Now.ToUnixTimeMilliseconds() - lastPresent) < 70) return;
|
||||||
lastPresent = DateTimeOffset.Now.ToUnixTimeMilliseconds();
|
lastPresent = DateTimeOffset.Now.ToUnixTimeMilliseconds();
|
||||||
|
|
||||||
device.Clear();
|
deviceMatrix.Clear();
|
||||||
|
|
||||||
int size = 20;
|
int size = 20;
|
||||||
double[] bars = new double[size];
|
double[] bars = new double[size];
|
||||||
@@ -280,7 +354,7 @@ namespace GHelper.AnimeMatrix
|
|||||||
|
|
||||||
for (int i = 0; i < size; i++) DrawBar(20 - i, bars[i] * 20 / maxAverage);
|
for (int i = 0; i < size; i++) DrawBar(20 - i, bars[i] * 20 / maxAverage);
|
||||||
|
|
||||||
device.Present();
|
deviceMatrix.Present();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -309,7 +383,7 @@ namespace GHelper.AnimeMatrix
|
|||||||
AppConfig.Set("matrix_running", 2);
|
AppConfig.Set("matrix_running", 2);
|
||||||
|
|
||||||
SetMatrixPicture(fileName);
|
SetMatrixPicture(fileName);
|
||||||
settings.SetMatrixRunning(2);
|
settings.VisualiseMatrixRunning(2);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -318,7 +392,8 @@ namespace GHelper.AnimeMatrix
|
|||||||
public void SetMatrixPicture(string fileName, bool visualise = true)
|
public void SetMatrixPicture(string fileName, bool visualise = true)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (!IsValid) return;
|
if (deviceMatrix is null) return;
|
||||||
|
|
||||||
StopMatrixTimer();
|
StopMatrixTimer();
|
||||||
|
|
||||||
try
|
try
|
||||||
@@ -338,7 +413,7 @@ namespace GHelper.AnimeMatrix
|
|||||||
}
|
}
|
||||||
|
|
||||||
fs.Close();
|
fs.Close();
|
||||||
if (visualise) settings.VisualiseMatrix(fileName);
|
if (visualise) settings.VisualiseMatrixPicture(fileName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
@@ -351,8 +426,8 @@ namespace GHelper.AnimeMatrix
|
|||||||
|
|
||||||
protected void ProcessPicture(Image image)
|
protected void ProcessPicture(Image image)
|
||||||
{
|
{
|
||||||
device.SetBuiltInAnimation(false);
|
deviceMatrix.SetBuiltInAnimation(false);
|
||||||
device.ClearFrames();
|
deviceMatrix.ClearFrames();
|
||||||
|
|
||||||
int matrixX = AppConfig.Get("matrix_x", 0);
|
int matrixX = AppConfig.Get("matrix_x", 0);
|
||||||
int matrixY = AppConfig.Get("matrix_y", 0);
|
int matrixY = AppConfig.Get("matrix_y", 0);
|
||||||
@@ -380,11 +455,11 @@ namespace GHelper.AnimeMatrix
|
|||||||
image.SelectActiveFrame(dimension, i);
|
image.SelectActiveFrame(dimension, i);
|
||||||
|
|
||||||
if (rotation == MatrixRotation.Planar)
|
if (rotation == MatrixRotation.Planar)
|
||||||
device.GenerateFrame(image, matrixZoom, matrixX, matrixY, matrixQuality, matrixContrast);
|
deviceMatrix.GenerateFrame(image, matrixZoom, matrixX, matrixY, matrixQuality, matrixContrast);
|
||||||
else
|
else
|
||||||
device.GenerateFrameDiagonal(image, matrixZoom, matrixX, matrixY, matrixQuality, matrixContrast);
|
deviceMatrix.GenerateFrameDiagonal(image, matrixZoom, matrixX, matrixY, matrixQuality, matrixContrast);
|
||||||
|
|
||||||
device.AddFrame();
|
deviceMatrix.AddFrame();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -397,11 +472,11 @@ namespace GHelper.AnimeMatrix
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (rotation == MatrixRotation.Planar)
|
if (rotation == MatrixRotation.Planar)
|
||||||
device.GenerateFrame(image, matrixZoom, matrixX, matrixY, matrixQuality, matrixContrast);
|
deviceMatrix.GenerateFrame(image, matrixZoom, matrixX, matrixY, matrixQuality, matrixContrast);
|
||||||
else
|
else
|
||||||
device.GenerateFrameDiagonal(image, matrixZoom, matrixX, matrixY, matrixQuality, matrixContrast);
|
deviceMatrix.GenerateFrameDiagonal(image, matrixZoom, matrixX, matrixY, matrixQuality, matrixContrast);
|
||||||
|
|
||||||
device.Present();
|
deviceMatrix.Present();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ using System.Drawing.Drawing2D;
|
|||||||
using System.Drawing.Text;
|
using System.Drawing.Text;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
|
||||||
namespace Starlight.AnimeMatrix
|
namespace GHelper.AnimeMatrix
|
||||||
{
|
{
|
||||||
public class BuiltInAnimation
|
public class BuiltInAnimation
|
||||||
{
|
{
|
||||||
@@ -71,7 +71,6 @@ namespace Starlight.AnimeMatrix
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public enum BrightnessMode : byte
|
public enum BrightnessMode : byte
|
||||||
{
|
{
|
||||||
Off = 0,
|
Off = 0,
|
||||||
@@ -81,7 +80,6 @@ namespace Starlight.AnimeMatrix
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public class AnimeMatrixDevice : Device
|
public class AnimeMatrixDevice : Device
|
||||||
{
|
{
|
||||||
int UpdatePageLength = 490;
|
int UpdatePageLength = 490;
|
||||||
@@ -93,7 +91,6 @@ namespace Starlight.AnimeMatrix
|
|||||||
public int MaxRows = 61;
|
public int MaxRows = 61;
|
||||||
public int MaxColumns = 34;
|
public int MaxColumns = 34;
|
||||||
public int LedStart = 0;
|
public int LedStart = 0;
|
||||||
|
|
||||||
public int FullRows = 11;
|
public int FullRows = 11;
|
||||||
|
|
||||||
private int frameIndex = 0;
|
private int frameIndex = 0;
|
||||||
@@ -139,6 +136,56 @@ namespace Starlight.AnimeMatrix
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void WakeUp()
|
||||||
|
{
|
||||||
|
Set(Packet<AnimeMatrixPacket>(Encoding.ASCII.GetBytes("ASUS Tech.Inc.")));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetBrightness(BrightnessMode mode)
|
||||||
|
{
|
||||||
|
Set(Packet<AnimeMatrixPacket>(0xC0, 0x04, (byte)mode));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetDisplayState(bool enable)
|
||||||
|
{
|
||||||
|
Set(Packet<AnimeMatrixPacket>(0xC3, 0x01, enable ? (byte)0x00 : (byte)0x80));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetBuiltInAnimation(bool enable)
|
||||||
|
{
|
||||||
|
Set(Packet<AnimeMatrixPacket>(0xC4, 0x01, enable ? (byte)0x00 : (byte)0x80));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetBuiltInAnimation(bool enable, BuiltInAnimation animation)
|
||||||
|
{
|
||||||
|
SetBuiltInAnimation(enable);
|
||||||
|
Set(Packet<AnimeMatrixPacket>(0xC5, animation.AsByte));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Present()
|
||||||
|
{
|
||||||
|
|
||||||
|
int page = 0;
|
||||||
|
int start, end;
|
||||||
|
|
||||||
|
while (page * UpdatePageLength < LedCount)
|
||||||
|
{
|
||||||
|
start = page * UpdatePageLength;
|
||||||
|
end = Math.Min(LedCount, (page + 1) * UpdatePageLength);
|
||||||
|
|
||||||
|
Set(Packet<AnimeMatrixPacket>(0xC0, 0x02)
|
||||||
|
.AppendData(BitConverter.GetBytes((ushort)(start + 1)))
|
||||||
|
.AppendData(BitConverter.GetBytes((ushort)(end - start)))
|
||||||
|
.AppendData(_displayBuffer[start..end])
|
||||||
|
);
|
||||||
|
|
||||||
|
page++;
|
||||||
|
}
|
||||||
|
|
||||||
|
Set(Packet<AnimeMatrixPacket>(0xC0, 0x03));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private void LoadMFont()
|
private void LoadMFont()
|
||||||
{
|
{
|
||||||
byte[] fontData = GHelper.Properties.Resources.MFont;
|
byte[] fontData = GHelper.Properties.Resources.MFont;
|
||||||
@@ -151,10 +198,6 @@ namespace Starlight.AnimeMatrix
|
|||||||
System.Runtime.InteropServices.Marshal.FreeCoTaskMem(fontPtr);
|
System.Runtime.InteropServices.Marshal.FreeCoTaskMem(fontPtr);
|
||||||
}
|
}
|
||||||
|
|
||||||
public byte[] GetBuffer()
|
|
||||||
{
|
|
||||||
return _displayBuffer;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void PresentNextFrame()
|
public void PresentNextFrame()
|
||||||
{
|
{
|
||||||
@@ -175,12 +218,6 @@ namespace Starlight.AnimeMatrix
|
|||||||
frames.Add(_displayBuffer.ToArray());
|
frames.Add(_displayBuffer.ToArray());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SendRaw(params byte[] data)
|
|
||||||
{
|
|
||||||
Set(Packet<AnimeMatrixPacket>(data));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public int Width()
|
public int Width()
|
||||||
{
|
{
|
||||||
switch (_model)
|
switch (_model)
|
||||||
@@ -294,99 +331,19 @@ namespace Starlight.AnimeMatrix
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void WakeUp()
|
|
||||||
{
|
|
||||||
Set(Packet<AnimeMatrixPacket>(Encoding.ASCII.GetBytes("ASUS Tech.Inc.")));
|
|
||||||
}
|
|
||||||
|
|
||||||
public void SetLedLinear(int address, byte value)
|
public void SetLedLinear(int address, byte value)
|
||||||
{
|
{
|
||||||
if (!IsAddressableLed(address)) return;
|
if (!IsAddressableLed(address)) return;
|
||||||
_displayBuffer[address] = value;
|
_displayBuffer[address] = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetLedLinearImmediate(int address, byte value)
|
|
||||||
{
|
|
||||||
if (!IsAddressableLed(address)) return;
|
|
||||||
_displayBuffer[address] = value;
|
|
||||||
|
|
||||||
Set(Packet<AnimeMatrixPacket>(0xC0, 0x02)
|
|
||||||
.AppendData(BitConverter.GetBytes((ushort)(address + 1)))
|
|
||||||
.AppendData(BitConverter.GetBytes((ushort)0x0001))
|
|
||||||
.AppendData(value)
|
|
||||||
);
|
|
||||||
|
|
||||||
Set(Packet<AnimeMatrixPacket>(0xC0, 0x03));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void Clear(bool present = false)
|
public void Clear(bool present = false)
|
||||||
{
|
{
|
||||||
for (var i = 0; i < _displayBuffer.Length; i++)
|
for (var i = 0; i < _displayBuffer.Length; i++) _displayBuffer[i] = 0;
|
||||||
_displayBuffer[i] = 0;
|
if (present) Present();
|
||||||
|
|
||||||
if (present)
|
|
||||||
Present();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Present()
|
|
||||||
{
|
|
||||||
|
|
||||||
int page = 0;
|
|
||||||
int start, end;
|
|
||||||
|
|
||||||
while (page * UpdatePageLength < LedCount)
|
|
||||||
{
|
|
||||||
start = page * UpdatePageLength;
|
|
||||||
end = Math.Min(LedCount, (page + 1) * UpdatePageLength);
|
|
||||||
|
|
||||||
Set(Packet<AnimeMatrixPacket>(0xC0, 0x02)
|
|
||||||
.AppendData(BitConverter.GetBytes((ushort)(start + 1)))
|
|
||||||
.AppendData(BitConverter.GetBytes((ushort)(end - start)))
|
|
||||||
.AppendData(_displayBuffer[start..end])
|
|
||||||
);
|
|
||||||
|
|
||||||
page++;
|
|
||||||
}
|
|
||||||
|
|
||||||
Set(Packet<AnimeMatrixPacket>(0xC0, 0x03));
|
|
||||||
}
|
|
||||||
|
|
||||||
public void SetDisplayState(bool enable)
|
|
||||||
{
|
|
||||||
if (enable)
|
|
||||||
{
|
|
||||||
Set(Packet<AnimeMatrixPacket>(0xC3, 0x01)
|
|
||||||
.AppendData(0x00));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Set(Packet<AnimeMatrixPacket>(0xC3, 0x01)
|
|
||||||
.AppendData(0x80));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void SetBrightness(BrightnessMode mode)
|
|
||||||
{
|
|
||||||
Set(Packet<AnimeMatrixPacket>(0xC0, 0x04)
|
|
||||||
.AppendData((byte)mode)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void SetBuiltInAnimation(bool enable)
|
|
||||||
{
|
|
||||||
var enabled = enable ? (byte)0x00 : (byte)0x80;
|
|
||||||
Set(Packet<AnimeMatrixPacket>(0xC4, 0x01, enabled));
|
|
||||||
}
|
|
||||||
|
|
||||||
public void SetBuiltInAnimation(bool enable, BuiltInAnimation animation)
|
|
||||||
{
|
|
||||||
SetBuiltInAnimation(enable);
|
|
||||||
Set(Packet<AnimeMatrixPacket>(0xC5, animation.AsByte));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private void SetBitmapDiagonal(Bitmap bmp, int deltaX = 0, int deltaY = 0, int contrast = 100)
|
private void SetBitmapDiagonal(Bitmap bmp, int deltaX = 0, int deltaY = 0, int contrast = 100)
|
||||||
{
|
{
|
||||||
for (int y = 0; y < bmp.Height; y++)
|
for (int y = 0; y < bmp.Height; y++)
|
||||||
|
|||||||
@@ -36,11 +36,12 @@ namespace GHelper.AnimeMatrix.Communication.Platform
|
|||||||
{
|
{
|
||||||
HidDevice = DeviceList.Local
|
HidDevice = DeviceList.Local
|
||||||
.GetHidDevices(vendorId, productId)
|
.GetHidDevices(vendorId, productId)
|
||||||
.First(x => x.GetMaxFeatureReportLength() == maxFeatureReportLength);
|
.First(x => x.GetMaxFeatureReportLength() >= maxFeatureReportLength);
|
||||||
|
Logger.WriteLine("Matrix Device: " + HidDevice.DevicePath + " " + HidDevice.GetMaxFeatureReportLength());
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
throw new IOException("AniMe Matrix control device was not found on your machine.");
|
throw new IOException("Matrix control device was not found on your machine.");
|
||||||
}
|
}
|
||||||
|
|
||||||
var config = new OpenConfiguration();
|
var config = new OpenConfiguration();
|
||||||
|
|||||||
143
app/AnimeMatrix/SlashDevice.cs
Normal file
143
app/AnimeMatrix/SlashDevice.cs
Normal file
@@ -0,0 +1,143 @@
|
|||||||
|
using GHelper.AnimeMatrix.Communication;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace GHelper.AnimeMatrix
|
||||||
|
{
|
||||||
|
public enum SlashMode
|
||||||
|
{
|
||||||
|
Bounce,
|
||||||
|
Slash,
|
||||||
|
Loading,
|
||||||
|
BitStream,
|
||||||
|
Transmission,
|
||||||
|
Flow,
|
||||||
|
Flux,
|
||||||
|
Phantom,
|
||||||
|
Spectrum,
|
||||||
|
Hazard,
|
||||||
|
Interfacing,
|
||||||
|
Ramp,
|
||||||
|
GameOver,
|
||||||
|
Start,
|
||||||
|
Buzzer
|
||||||
|
}
|
||||||
|
|
||||||
|
internal class SlashPacket : Packet
|
||||||
|
{
|
||||||
|
public SlashPacket(byte[] command) : base(0x5E, 128, command)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class SlashDevice : Device
|
||||||
|
{
|
||||||
|
|
||||||
|
public static Dictionary<SlashMode, string> Modes = new Dictionary<SlashMode, string>
|
||||||
|
{
|
||||||
|
{ SlashMode.Bounce, "Bounce"},
|
||||||
|
{ SlashMode.Slash, "Slash"},
|
||||||
|
{ SlashMode.Loading, "Loading"},
|
||||||
|
|
||||||
|
{ SlashMode.BitStream, "Bit Stream"},
|
||||||
|
{ SlashMode.Transmission, "Transmission"},
|
||||||
|
|
||||||
|
{ SlashMode.Flow, "Flow"},
|
||||||
|
{ SlashMode.Flux, "Flux"},
|
||||||
|
{ SlashMode.Phantom, "Phantom"},
|
||||||
|
{ SlashMode.Spectrum, "Spectrum"},
|
||||||
|
|
||||||
|
{ SlashMode.Hazard, "Hazard"},
|
||||||
|
{ SlashMode.Interfacing, "Interfacing"},
|
||||||
|
{ SlashMode.Ramp, "Ramp"},
|
||||||
|
|
||||||
|
{ SlashMode.GameOver, "Game Over"},
|
||||||
|
{ SlashMode.Start, "Start"},
|
||||||
|
{ SlashMode.Buzzer, "Buzzer"},
|
||||||
|
};
|
||||||
|
|
||||||
|
private static Dictionary<SlashMode, byte> modeCodes = new Dictionary<SlashMode, byte>
|
||||||
|
{
|
||||||
|
{ SlashMode.Bounce, 0x10},
|
||||||
|
{ SlashMode.Slash, 0x12},
|
||||||
|
{ SlashMode.Loading, 0x13},
|
||||||
|
|
||||||
|
{ SlashMode.BitStream, 0x1D},
|
||||||
|
{ SlashMode.Transmission, 0x1A},
|
||||||
|
|
||||||
|
{ SlashMode.Flow, 0x19},
|
||||||
|
{ SlashMode.Flux, 0x25},
|
||||||
|
{ SlashMode.Phantom, 0x24},
|
||||||
|
{ SlashMode.Spectrum, 0x26},
|
||||||
|
|
||||||
|
{ SlashMode.Hazard, 0x32},
|
||||||
|
{ SlashMode.Interfacing, 0x33},
|
||||||
|
{ SlashMode.Ramp, 0x34},
|
||||||
|
|
||||||
|
{ SlashMode.GameOver, 0x42},
|
||||||
|
{ SlashMode.Start, 0x43},
|
||||||
|
{ SlashMode.Buzzer, 0x44},
|
||||||
|
};
|
||||||
|
|
||||||
|
public SlashDevice() : base(0x0B05, 0x193B, 128)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public void WakeUp()
|
||||||
|
{
|
||||||
|
Set(Packet<SlashPacket>(Encoding.ASCII.GetBytes("ASUS Tech.Inc.")));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Init()
|
||||||
|
{
|
||||||
|
Set(Packet<SlashPacket>(0xD7, 0x00, 0x00, 0x01, 0xAC));
|
||||||
|
Set(Packet<SlashPacket>(0xD2, 0x02, 0x01, 0x08, 0xAB));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Save()
|
||||||
|
{
|
||||||
|
Set(Packet<SlashPacket>(0xD4, 0x00, 0x00, 0x01, 0xAB));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetMode(SlashMode mode)
|
||||||
|
{
|
||||||
|
byte modeByte;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
modeByte = modeCodes[mode];
|
||||||
|
}
|
||||||
|
catch (Exception)
|
||||||
|
{
|
||||||
|
modeByte = 0x00;
|
||||||
|
}
|
||||||
|
|
||||||
|
Set(Packet<SlashPacket>(0xD2, 0x03, 0x00, 0x0C));
|
||||||
|
Set(Packet<SlashPacket>(0xD3, 0x04, 0x00, 0x0C, 0x01, modeByte, 0x02, 0x19, 0x03, 0x13, 0x04, 0x11, 0x05, 0x12, 0x06, 0x13));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetOptions(bool status, int brightness = 0, int interval = 0)
|
||||||
|
{
|
||||||
|
byte brightnessByte = (byte)(brightness * 85.333);
|
||||||
|
|
||||||
|
Set(Packet<SlashPacket>(0xD3, 0x03, 0x01, 0x08, 0xAB, 0xFF, 0x01, status ? (byte)0x01 : (byte)0x00, 0x06, brightnessByte, 0xFF, (byte)interval));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetBatterySaver(bool status)
|
||||||
|
{
|
||||||
|
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)
|
||||||
|
{
|
||||||
|
_usbProvider?.Set(packet.Data);
|
||||||
|
Logger.WriteLine("Slash:" + BitConverter.ToString(packet.Data));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -67,9 +67,17 @@ public static class AppConfig
|
|||||||
{
|
{
|
||||||
File.WriteAllText(backup, jsonString);
|
File.WriteAllText(backup, jsonString);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception)
|
||||||
{
|
{
|
||||||
Logger.WriteLine(ex.ToString());
|
Thread.Sleep(100);
|
||||||
|
try
|
||||||
|
{
|
||||||
|
File.WriteAllText(backup, jsonString);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Logger.WriteLine(ex.Message);
|
||||||
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -91,16 +99,24 @@ public static class AppConfig
|
|||||||
if (_model is null)
|
if (_model is null)
|
||||||
{
|
{
|
||||||
_model = "";
|
_model = "";
|
||||||
using (var searcher = new ManagementObjectSearcher(@"Select * from Win32_ComputerSystem"))
|
try
|
||||||
{
|
{
|
||||||
foreach (var process in searcher.Get())
|
using (var searcher = new ManagementObjectSearcher(@"Select * from Win32_ComputerSystem"))
|
||||||
{
|
{
|
||||||
_model = process["Model"].ToString();
|
foreach (var process in searcher.Get())
|
||||||
break;
|
{
|
||||||
|
_model = process["Model"].ToString();
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
} catch (Exception ex)
|
||||||
|
{
|
||||||
|
Logger.WriteLine(ex.Message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//if (_model.Contains("GA402RK")) _model = "ROG Zephyrus G14 GA403UI"; // Debug Purposes
|
||||||
|
|
||||||
return _model;
|
return _model;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -349,9 +365,9 @@ public static class AppConfig
|
|||||||
return ContainsModel("ProArt");
|
return ContainsModel("ProArt");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool IsVivobook()
|
public static bool IsVivoZenbook()
|
||||||
{
|
{
|
||||||
return ContainsModel("Vivobook");
|
return ContainsModel("Vivobook") || ContainsModel("Zenbook");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Devices with bugged bios command to change brightness
|
// Devices with bugged bios command to change brightness
|
||||||
@@ -377,6 +393,26 @@ public static class AppConfig
|
|||||||
return ContainsModel("GA401") || ContainsModel("FX517Z") || ContainsModel("FX516P") || ContainsModel("X13") || IsARCNM() || ContainsModel("GA502IU");
|
return ContainsModel("GA401") || ContainsModel("FX517Z") || ContainsModel("FX516P") || ContainsModel("X13") || IsARCNM() || ContainsModel("GA502IU");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static bool IsSlash()
|
||||||
|
{
|
||||||
|
return ContainsModel("GA403") || ContainsModel("GU605");
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool IsInputBacklight()
|
||||||
|
{
|
||||||
|
return ContainsModel("GA503") || IsSlash();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool IsOLED()
|
||||||
|
{
|
||||||
|
return ContainsModel("OLED") || IsSlash() || ContainsModel("UX64") || ContainsModel("UX34") || ContainsModel("UX53") || ContainsModel("K360") || ContainsModel("X150") || ContainsModel("M3500") || ContainsModel("K650");
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool IsNoOverdrive()
|
||||||
|
{
|
||||||
|
return Is("no_overdrive") || IsOLED();
|
||||||
|
}
|
||||||
|
|
||||||
public static bool IsStrix()
|
public static bool IsStrix()
|
||||||
{
|
{
|
||||||
return ContainsModel("Strix") || ContainsModel("Scar") || ContainsModel("G703G");
|
return ContainsModel("Strix") || ContainsModel("Scar") || ContainsModel("G703G");
|
||||||
@@ -387,9 +423,20 @@ 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()
|
||||||
|
{
|
||||||
|
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") || IsSlash();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool IsStrixNumpad()
|
public static bool IsStrixNumpad()
|
||||||
@@ -434,7 +481,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");
|
return ContainsModel("G614") || ContainsModel("GU604") || ContainsModel("FX507") || ContainsModel("G513") || ContainsModel("FA617") || ContainsModel("G834") || ContainsModel("GA403") || ContainsModel("GU605");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -465,9 +512,34 @@ public static class AppConfig
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static bool IsSwappedFans()
|
||||||
|
{
|
||||||
|
if (!ContainsModel("GA503R")) return false;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var (bios, model) = GetBiosAndModel();
|
||||||
|
return (Int32.Parse(bios) == 317 || Int32.Parse(bios) == 316);
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool IsResetRequired()
|
||||||
|
{
|
||||||
|
return ContainsModel("GA403");
|
||||||
|
}
|
||||||
|
|
||||||
public static bool IsFanRequired()
|
public static bool IsFanRequired()
|
||||||
{
|
{
|
||||||
return ContainsModel("GA402X") || ContainsModel("G513") || ContainsModel("G713R") || ContainsModel("G713P");
|
return ContainsModel("GA402X") || ContainsModel("G513") || ContainsModel("G713R") || ContainsModel("G713P") || ContainsModel("GU605") || ContainsModel("GA403");
|
||||||
|
}
|
||||||
|
|
||||||
|
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()
|
||||||
@@ -505,6 +577,10 @@ public static class AppConfig
|
|||||||
return ContainsModel("G834") || ContainsModel("G614") || ContainsModel("G834") || ContainsModel("G634");
|
return ContainsModel("G834") || ContainsModel("G614") || ContainsModel("G834") || ContainsModel("G634");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static bool IsROG()
|
||||||
|
{
|
||||||
|
return ContainsModel("ROG");
|
||||||
|
}
|
||||||
public static bool IsASUS()
|
public static bool IsASUS()
|
||||||
{
|
{
|
||||||
return ContainsModel("ROG") || ContainsModel("TUF") || ContainsModel("Vivobook") || ContainsModel("Zenbook");
|
return ContainsModel("ROG") || ContainsModel("TUF") || ContainsModel("Vivobook") || ContainsModel("Zenbook");
|
||||||
|
|||||||
117
app/AsusACPI.cs
117
app/AsusACPI.cs
@@ -43,10 +43,13 @@ 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;
|
||||||
|
|
||||||
|
|
||||||
public const int Touchpad_Toggle = 0x6B;
|
public const int Touchpad_Toggle = 0x6B;
|
||||||
|
|
||||||
public const int ChargerMode = 0x0012006C;
|
public const int ChargerMode = 0x0012006C;
|
||||||
@@ -99,6 +102,12 @@ 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;
|
||||||
@@ -106,7 +115,7 @@ public class AsusACPI
|
|||||||
public const int TUF_KB2 = 0x0010005a;
|
public const int TUF_KB2 = 0x0010005a;
|
||||||
public const int TUF_KB_STATE = 0x00100057;
|
public const int TUF_KB_STATE = 0x00100057;
|
||||||
|
|
||||||
public const int MICMUTE_LED = 0x00040017;
|
public const int MicMuteLed = 0x00040017;
|
||||||
|
|
||||||
public const int TabletState = 0x00060077;
|
public const int TabletState = 0x00060077;
|
||||||
public const int FnLock = 0x00100023;
|
public const int FnLock = 0x00100023;
|
||||||
@@ -114,6 +123,8 @@ public class AsusACPI
|
|||||||
public const int ScreenPadToggle = 0x00050031;
|
public const int ScreenPadToggle = 0x00050031;
|
||||||
public const int ScreenPadBrightness = 0x00050032;
|
public const int ScreenPadBrightness = 0x00050032;
|
||||||
|
|
||||||
|
public const int CameraLed = 0x00060079;
|
||||||
|
|
||||||
public const int BootSound = 0x00130022;
|
public const int BootSound = 0x00130022;
|
||||||
|
|
||||||
public const int Tablet_Notebook = 0;
|
public const int Tablet_Notebook = 0;
|
||||||
@@ -142,9 +153,18 @@ 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(
|
||||||
@@ -271,6 +291,12 @@ public class AsusACPI
|
|||||||
if (AppConfig.IsIntelHX())
|
if (AppConfig.IsIntelHX())
|
||||||
{
|
{
|
||||||
MaxTotal = 175;
|
MaxTotal = 175;
|
||||||
|
MaxGPUPower = 70;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (AppConfig.IsSlash())
|
||||||
|
{
|
||||||
|
MaxGPUPower = AppConfig.Get("max_gpu_power", 25);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (AppConfig.DynamicBoost5())
|
if (AppConfig.DynamicBoost5())
|
||||||
@@ -282,6 +308,14 @@ 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)
|
||||||
@@ -395,9 +429,16 @@ 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);
|
||||||
@@ -477,7 +518,11 @@ public class AsusACPI
|
|||||||
|
|
||||||
if (fanScale != 100 && device == AsusFan.CPU) Logger.WriteLine("Custom fan scale: " + fanScale);
|
if (fanScale != 100 && device == AsusFan.CPU) Logger.WriteLine("Custom fan scale: " + fanScale);
|
||||||
|
|
||||||
// it seems to be a bug, when some old model's bios can go nuts if fan is set to 100%
|
if (AppConfig.IsSwappedFans())
|
||||||
|
{
|
||||||
|
device = (device == AsusFan.CPU) ? AsusFan.GPU : AsusFan.CPU;
|
||||||
|
Logger.WriteLine("Swapped fan fix");
|
||||||
|
}
|
||||||
|
|
||||||
for (int i = 8; i < curve.Length; i++) curve[i] = (byte)(Math.Max((byte)0, Math.Min((byte)100, curve[i])) * fanScale / 100);
|
for (int i = 8; i < curve.Length; i++) curve[i] = (byte)(Math.Max((byte)0, Math.Min((byte)100, curve[i])) * fanScale / 100);
|
||||||
|
|
||||||
@@ -509,16 +554,25 @@ public class AsusACPI
|
|||||||
default: fan_mode = 0; break;
|
default: fan_mode = 0; break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
byte[] result;
|
||||||
|
|
||||||
switch (device)
|
switch (device)
|
||||||
{
|
{
|
||||||
case AsusFan.GPU:
|
case AsusFan.GPU:
|
||||||
return DeviceGetBuffer(DevsGPUFanCurve, fan_mode);
|
result = DeviceGetBuffer(DevsGPUFanCurve, fan_mode);
|
||||||
|
break;
|
||||||
case AsusFan.Mid:
|
case AsusFan.Mid:
|
||||||
return DeviceGetBuffer(DevsMidFanCurve, fan_mode);
|
result = DeviceGetBuffer(DevsMidFanCurve, fan_mode);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
return DeviceGetBuffer(DevsCPUFanCurve, fan_mode);
|
result = DeviceGetBuffer(DevsCPUFanCurve, fan_mode);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Logger.WriteLine($"GetFan {device} :" + BitConverter.ToString(result));
|
||||||
|
|
||||||
|
return result;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool IsInvalidCurve(byte[] curve)
|
public static bool IsInvalidCurve(byte[] curve)
|
||||||
@@ -660,22 +714,55 @@ public class AsusACPI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ScanRange()
|
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()
|
||||||
{
|
{
|
||||||
int value;
|
int value;
|
||||||
string appPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\GHelper";
|
string appPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\GHelper";
|
||||||
string logFile = appPath + "\\scan.txt";
|
string logFile = appPath + "\\scan.txt";
|
||||||
for (uint i = 0x00000000; i <= 0x00160000; i++)
|
using (StreamWriter w = File.AppendText(logFile))
|
||||||
{
|
{
|
||||||
value = DeviceGet(i);
|
w.WriteLine($"Scan started {DateTime.Now}");
|
||||||
if (value >= 0)
|
for (uint i = 0x00000000; i <= 0x00160000; i += 0x10000)
|
||||||
using (StreamWriter w = File.AppendText(logFile))
|
{
|
||||||
|
for (uint j = 0x00; j <= 0xFF; j++)
|
||||||
{
|
{
|
||||||
w.WriteLine(i.ToString("X8") + ": " + value.ToString("X4") + " (" + value + ")");
|
uint id = i + j;
|
||||||
w.Close();
|
value = DeviceGet(id);
|
||||||
|
if (value >= 0)
|
||||||
|
{
|
||||||
|
w.WriteLine(id.ToString("X8") + ": " + value.ToString("X4") + " (" + value + ")");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
w.WriteLine($"---------------------");
|
||||||
|
w.Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return logFile;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void TUFKeyboardBrightness(int brightness)
|
public void TUFKeyboardBrightness(int brightness)
|
||||||
|
|||||||
122
app/AsusMouseSettings.Designer.cs
generated
122
app/AsusMouseSettings.Designer.cs
generated
@@ -152,7 +152,7 @@
|
|||||||
//
|
//
|
||||||
panelProfiles.Controls.Add(comboProfile);
|
panelProfiles.Controls.Add(comboProfile);
|
||||||
panelProfiles.Controls.Add(labelProfile);
|
panelProfiles.Controls.Add(labelProfile);
|
||||||
panelProfiles.Location = new Point(212, 2);
|
panelProfiles.Location = new Point(220, 2);
|
||||||
panelProfiles.Margin = new Padding(2);
|
panelProfiles.Margin = new Padding(2);
|
||||||
panelProfiles.MinimumSize = new Size(227, 0);
|
panelProfiles.MinimumSize = new Size(227, 0);
|
||||||
panelProfiles.Name = "panelProfiles";
|
panelProfiles.Name = "panelProfiles";
|
||||||
@@ -197,7 +197,7 @@
|
|||||||
panelPerformance.Margin = new Padding(2);
|
panelPerformance.Margin = new Padding(2);
|
||||||
panelPerformance.Name = "panelPerformance";
|
panelPerformance.Name = "panelPerformance";
|
||||||
panelPerformance.Padding = new Padding(0, 7, 0, 17);
|
panelPerformance.Padding = new Padding(0, 7, 0, 17);
|
||||||
panelPerformance.Size = new Size(420, 370);
|
panelPerformance.Size = new Size(437, 370);
|
||||||
panelPerformance.TabIndex = 1;
|
panelPerformance.TabIndex = 1;
|
||||||
//
|
//
|
||||||
// panelPerformanceOther
|
// panelPerformanceOther
|
||||||
@@ -215,7 +215,7 @@
|
|||||||
panelPerformanceOther.Margin = new Padding(2);
|
panelPerformanceOther.Margin = new Padding(2);
|
||||||
panelPerformanceOther.Name = "panelPerformanceOther";
|
panelPerformanceOther.Name = "panelPerformanceOther";
|
||||||
panelPerformanceOther.Padding = new Padding(0, 7, 0, 7);
|
panelPerformanceOther.Padding = new Padding(0, 7, 0, 7);
|
||||||
panelPerformanceOther.Size = new Size(420, 192);
|
panelPerformanceOther.Size = new Size(437, 192);
|
||||||
panelPerformanceOther.TabIndex = 49;
|
panelPerformanceOther.TabIndex = 49;
|
||||||
//
|
//
|
||||||
// panelDeceleration
|
// panelDeceleration
|
||||||
@@ -230,7 +230,7 @@
|
|||||||
panelDeceleration.Margin = new Padding(2);
|
panelDeceleration.Margin = new Padding(2);
|
||||||
panelDeceleration.Name = "panelDeceleration";
|
panelDeceleration.Name = "panelDeceleration";
|
||||||
panelDeceleration.Padding = new Padding(3);
|
panelDeceleration.Padding = new Padding(3);
|
||||||
panelDeceleration.Size = new Size(420, 31);
|
panelDeceleration.Size = new Size(437, 31);
|
||||||
panelDeceleration.TabIndex = 58;
|
panelDeceleration.TabIndex = 58;
|
||||||
//
|
//
|
||||||
// labelDeceleration
|
// labelDeceleration
|
||||||
@@ -279,7 +279,7 @@
|
|||||||
panelAcceleration.Margin = new Padding(2);
|
panelAcceleration.Margin = new Padding(2);
|
||||||
panelAcceleration.Name = "panelAcceleration";
|
panelAcceleration.Name = "panelAcceleration";
|
||||||
panelAcceleration.Padding = new Padding(3);
|
panelAcceleration.Padding = new Padding(3);
|
||||||
panelAcceleration.Size = new Size(420, 31);
|
panelAcceleration.Size = new Size(437, 31);
|
||||||
panelAcceleration.TabIndex = 57;
|
panelAcceleration.TabIndex = 57;
|
||||||
//
|
//
|
||||||
// labelAcceleration
|
// labelAcceleration
|
||||||
@@ -327,7 +327,7 @@
|
|||||||
panelLiftOffDistance.Margin = new Padding(2);
|
panelLiftOffDistance.Margin = new Padding(2);
|
||||||
panelLiftOffDistance.Name = "panelLiftOffDistance";
|
panelLiftOffDistance.Name = "panelLiftOffDistance";
|
||||||
panelLiftOffDistance.Padding = new Padding(3);
|
panelLiftOffDistance.Padding = new Padding(3);
|
||||||
panelLiftOffDistance.Size = new Size(420, 29);
|
panelLiftOffDistance.Size = new Size(437, 29);
|
||||||
panelLiftOffDistance.TabIndex = 56;
|
panelLiftOffDistance.TabIndex = 56;
|
||||||
//
|
//
|
||||||
// labelLiftOffDistance
|
// labelLiftOffDistance
|
||||||
@@ -364,7 +364,7 @@
|
|||||||
panelDebounce.Margin = new Padding(2);
|
panelDebounce.Margin = new Padding(2);
|
||||||
panelDebounce.Name = "panelDebounce";
|
panelDebounce.Name = "panelDebounce";
|
||||||
panelDebounce.Padding = new Padding(3);
|
panelDebounce.Padding = new Padding(3);
|
||||||
panelDebounce.Size = new Size(420, 31);
|
panelDebounce.Size = new Size(437, 31);
|
||||||
panelDebounce.TabIndex = 55;
|
panelDebounce.TabIndex = 55;
|
||||||
//
|
//
|
||||||
// labelButtonDebounce
|
// labelButtonDebounce
|
||||||
@@ -413,7 +413,7 @@
|
|||||||
panelAngleSnapping.Margin = new Padding(2);
|
panelAngleSnapping.Margin = new Padding(2);
|
||||||
panelAngleSnapping.Name = "panelAngleSnapping";
|
panelAngleSnapping.Name = "panelAngleSnapping";
|
||||||
panelAngleSnapping.Padding = new Padding(3);
|
panelAngleSnapping.Padding = new Padding(3);
|
||||||
panelAngleSnapping.Size = new Size(420, 29);
|
panelAngleSnapping.Size = new Size(437, 29);
|
||||||
panelAngleSnapping.TabIndex = 54;
|
panelAngleSnapping.TabIndex = 54;
|
||||||
//
|
//
|
||||||
// sliderAngleAdjustment
|
// sliderAngleAdjustment
|
||||||
@@ -464,7 +464,7 @@
|
|||||||
panelPollingRate.Margin = new Padding(2);
|
panelPollingRate.Margin = new Padding(2);
|
||||||
panelPollingRate.Name = "panelPollingRate";
|
panelPollingRate.Name = "panelPollingRate";
|
||||||
panelPollingRate.Padding = new Padding(3);
|
panelPollingRate.Padding = new Padding(3);
|
||||||
panelPollingRate.Size = new Size(420, 27);
|
panelPollingRate.Size = new Size(437, 27);
|
||||||
panelPollingRate.TabIndex = 53;
|
panelPollingRate.TabIndex = 53;
|
||||||
//
|
//
|
||||||
// labelPollingRate
|
// labelPollingRate
|
||||||
@@ -500,7 +500,7 @@
|
|||||||
panelDPISettings.Location = new Point(0, 91);
|
panelDPISettings.Location = new Point(0, 91);
|
||||||
panelDPISettings.Margin = new Padding(2);
|
panelDPISettings.Margin = new Padding(2);
|
||||||
panelDPISettings.Name = "panelDPISettings";
|
panelDPISettings.Name = "panelDPISettings";
|
||||||
panelDPISettings.Size = new Size(420, 70);
|
panelDPISettings.Size = new Size(437, 70);
|
||||||
panelDPISettings.TabIndex = 44;
|
panelDPISettings.TabIndex = 44;
|
||||||
//
|
//
|
||||||
// sliderDPI
|
// sliderDPI
|
||||||
@@ -512,7 +512,7 @@
|
|||||||
sliderDPI.Max = 35000;
|
sliderDPI.Max = 35000;
|
||||||
sliderDPI.Min = 100;
|
sliderDPI.Min = 100;
|
||||||
sliderDPI.Name = "sliderDPI";
|
sliderDPI.Name = "sliderDPI";
|
||||||
sliderDPI.Size = new Size(420, 20);
|
sliderDPI.Size = new Size(437, 20);
|
||||||
sliderDPI.Step = 50;
|
sliderDPI.Step = 50;
|
||||||
sliderDPI.TabIndex = 43;
|
sliderDPI.TabIndex = 43;
|
||||||
sliderDPI.TabStop = false;
|
sliderDPI.TabStop = false;
|
||||||
@@ -537,7 +537,7 @@
|
|||||||
tableLayoutPanel1.Name = "tableLayoutPanel1";
|
tableLayoutPanel1.Name = "tableLayoutPanel1";
|
||||||
tableLayoutPanel1.RowCount = 1;
|
tableLayoutPanel1.RowCount = 1;
|
||||||
tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
|
tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
|
||||||
tableLayoutPanel1.Size = new Size(420, 23);
|
tableLayoutPanel1.Size = new Size(437, 23);
|
||||||
tableLayoutPanel1.TabIndex = 47;
|
tableLayoutPanel1.TabIndex = 47;
|
||||||
//
|
//
|
||||||
// labelMinDPI
|
// labelMinDPI
|
||||||
@@ -547,7 +547,7 @@
|
|||||||
labelMinDPI.Location = new Point(4, 0);
|
labelMinDPI.Location = new Point(4, 0);
|
||||||
labelMinDPI.Margin = new Padding(4, 0, 4, 0);
|
labelMinDPI.Margin = new Padding(4, 0, 4, 0);
|
||||||
labelMinDPI.Name = "labelMinDPI";
|
labelMinDPI.Name = "labelMinDPI";
|
||||||
labelMinDPI.Size = new Size(151, 23);
|
labelMinDPI.Size = new Size(158, 23);
|
||||||
labelMinDPI.TabIndex = 45;
|
labelMinDPI.TabIndex = 45;
|
||||||
labelMinDPI.Text = "100";
|
labelMinDPI.Text = "100";
|
||||||
//
|
//
|
||||||
@@ -555,10 +555,10 @@
|
|||||||
//
|
//
|
||||||
labelMaxDPI.Dock = DockStyle.Fill;
|
labelMaxDPI.Dock = DockStyle.Fill;
|
||||||
labelMaxDPI.ForeColor = SystemColors.GrayText;
|
labelMaxDPI.ForeColor = SystemColors.GrayText;
|
||||||
labelMaxDPI.Location = new Point(263, 0);
|
labelMaxDPI.Location = new Point(274, 0);
|
||||||
labelMaxDPI.Margin = new Padding(4, 0, 4, 0);
|
labelMaxDPI.Margin = new Padding(4, 0, 4, 0);
|
||||||
labelMaxDPI.Name = "labelMaxDPI";
|
labelMaxDPI.Name = "labelMaxDPI";
|
||||||
labelMaxDPI.Size = new Size(153, 23);
|
labelMaxDPI.Size = new Size(159, 23);
|
||||||
labelMaxDPI.TabIndex = 46;
|
labelMaxDPI.TabIndex = 46;
|
||||||
labelMaxDPI.Text = " 35000";
|
labelMaxDPI.Text = " 35000";
|
||||||
labelMaxDPI.TextAlign = ContentAlignment.TopRight;
|
labelMaxDPI.TextAlign = ContentAlignment.TopRight;
|
||||||
@@ -568,12 +568,12 @@
|
|||||||
numericUpDownCurrentDPI.BorderStyle = BorderStyle.None;
|
numericUpDownCurrentDPI.BorderStyle = BorderStyle.None;
|
||||||
numericUpDownCurrentDPI.Dock = DockStyle.Fill;
|
numericUpDownCurrentDPI.Dock = DockStyle.Fill;
|
||||||
numericUpDownCurrentDPI.Increment = new decimal(new int[] { 50, 0, 0, 0 });
|
numericUpDownCurrentDPI.Increment = new decimal(new int[] { 50, 0, 0, 0 });
|
||||||
numericUpDownCurrentDPI.Location = new Point(161, 2);
|
numericUpDownCurrentDPI.Location = new Point(168, 2);
|
||||||
numericUpDownCurrentDPI.Margin = new Padding(2);
|
numericUpDownCurrentDPI.Margin = new Padding(2);
|
||||||
numericUpDownCurrentDPI.Maximum = new decimal(new int[] { 35000, 0, 0, 0 });
|
numericUpDownCurrentDPI.Maximum = new decimal(new int[] { 35000, 0, 0, 0 });
|
||||||
numericUpDownCurrentDPI.Minimum = new decimal(new int[] { 100, 0, 0, 0 });
|
numericUpDownCurrentDPI.Minimum = new decimal(new int[] { 100, 0, 0, 0 });
|
||||||
numericUpDownCurrentDPI.Name = "numericUpDownCurrentDPI";
|
numericUpDownCurrentDPI.Name = "numericUpDownCurrentDPI";
|
||||||
numericUpDownCurrentDPI.Size = new Size(96, 19);
|
numericUpDownCurrentDPI.Size = new Size(100, 19);
|
||||||
numericUpDownCurrentDPI.TabIndex = 47;
|
numericUpDownCurrentDPI.TabIndex = 47;
|
||||||
numericUpDownCurrentDPI.TextAlign = HorizontalAlignment.Center;
|
numericUpDownCurrentDPI.TextAlign = HorizontalAlignment.Center;
|
||||||
numericUpDownCurrentDPI.Value = new decimal(new int[] { 2000, 0, 0, 0 });
|
numericUpDownCurrentDPI.Value = new decimal(new int[] { 2000, 0, 0, 0 });
|
||||||
@@ -588,13 +588,13 @@
|
|||||||
panelDPITile.Margin = new Padding(2);
|
panelDPITile.Margin = new Padding(2);
|
||||||
panelDPITile.Name = "panelDPITile";
|
panelDPITile.Name = "panelDPITile";
|
||||||
panelDPITile.Padding = new Padding(0, 3, 0, 3);
|
panelDPITile.Padding = new Padding(0, 3, 0, 3);
|
||||||
panelDPITile.Size = new Size(420, 27);
|
panelDPITile.Size = new Size(437, 27);
|
||||||
panelDPITile.TabIndex = 48;
|
panelDPITile.TabIndex = 48;
|
||||||
//
|
//
|
||||||
// pictureDPIColor
|
// pictureDPIColor
|
||||||
//
|
//
|
||||||
pictureDPIColor.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
pictureDPIColor.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||||
pictureDPIColor.Location = new Point(395, 7);
|
pictureDPIColor.Location = new Point(412, 7);
|
||||||
pictureDPIColor.Margin = new Padding(4);
|
pictureDPIColor.Margin = new Padding(4);
|
||||||
pictureDPIColor.Name = "pictureDPIColor";
|
pictureDPIColor.Name = "pictureDPIColor";
|
||||||
pictureDPIColor.Size = new Size(10, 10);
|
pictureDPIColor.Size = new Size(10, 10);
|
||||||
@@ -612,7 +612,7 @@
|
|||||||
buttonDPIColor.BorderRadius = 2;
|
buttonDPIColor.BorderRadius = 2;
|
||||||
buttonDPIColor.FlatStyle = FlatStyle.Flat;
|
buttonDPIColor.FlatStyle = FlatStyle.Flat;
|
||||||
buttonDPIColor.ForeColor = SystemColors.ControlText;
|
buttonDPIColor.ForeColor = SystemColors.ControlText;
|
||||||
buttonDPIColor.Location = new Point(291, 1);
|
buttonDPIColor.Location = new Point(308, 1);
|
||||||
buttonDPIColor.Margin = new Padding(2, 4, 2, 4);
|
buttonDPIColor.Margin = new Padding(2, 4, 2, 4);
|
||||||
buttonDPIColor.Name = "buttonDPIColor";
|
buttonDPIColor.Name = "buttonDPIColor";
|
||||||
buttonDPIColor.Secondary = false;
|
buttonDPIColor.Secondary = false;
|
||||||
@@ -653,7 +653,7 @@
|
|||||||
tableDPI.RowCount = 1;
|
tableDPI.RowCount = 1;
|
||||||
tableDPI.RowStyles.Add(new RowStyle(SizeType.Absolute, 64F));
|
tableDPI.RowStyles.Add(new RowStyle(SizeType.Absolute, 64F));
|
||||||
tableDPI.RowStyles.Add(new RowStyle(SizeType.Absolute, 64F));
|
tableDPI.RowStyles.Add(new RowStyle(SizeType.Absolute, 64F));
|
||||||
tableDPI.Size = new Size(420, 64);
|
tableDPI.Size = new Size(437, 64);
|
||||||
tableDPI.TabIndex = 42;
|
tableDPI.TabIndex = 42;
|
||||||
//
|
//
|
||||||
// buttonDPI2
|
// buttonDPI2
|
||||||
@@ -669,11 +669,11 @@
|
|||||||
buttonDPI2.ForeColor = SystemColors.ControlText;
|
buttonDPI2.ForeColor = SystemColors.ControlText;
|
||||||
buttonDPI2.Image = Properties.Resources.lighting_dot_32;
|
buttonDPI2.Image = Properties.Resources.lighting_dot_32;
|
||||||
buttonDPI2.ImageAlign = ContentAlignment.BottomCenter;
|
buttonDPI2.ImageAlign = ContentAlignment.BottomCenter;
|
||||||
buttonDPI2.Location = new Point(107, 2);
|
buttonDPI2.Location = new Point(111, 2);
|
||||||
buttonDPI2.Margin = new Padding(2);
|
buttonDPI2.Margin = new Padding(2);
|
||||||
buttonDPI2.Name = "buttonDPI2";
|
buttonDPI2.Name = "buttonDPI2";
|
||||||
buttonDPI2.Secondary = false;
|
buttonDPI2.Secondary = false;
|
||||||
buttonDPI2.Size = new Size(101, 60);
|
buttonDPI2.Size = new Size(105, 60);
|
||||||
buttonDPI2.TabIndex = 4;
|
buttonDPI2.TabIndex = 4;
|
||||||
buttonDPI2.Text = "DPI 2\r\n1000";
|
buttonDPI2.Text = "DPI 2\r\n1000";
|
||||||
buttonDPI2.TextImageRelation = TextImageRelation.ImageAboveText;
|
buttonDPI2.TextImageRelation = TextImageRelation.ImageAboveText;
|
||||||
@@ -696,7 +696,7 @@
|
|||||||
buttonDPI1.Margin = new Padding(2);
|
buttonDPI1.Margin = new Padding(2);
|
||||||
buttonDPI1.Name = "buttonDPI1";
|
buttonDPI1.Name = "buttonDPI1";
|
||||||
buttonDPI1.Secondary = false;
|
buttonDPI1.Secondary = false;
|
||||||
buttonDPI1.Size = new Size(101, 60);
|
buttonDPI1.Size = new Size(105, 60);
|
||||||
buttonDPI1.TabIndex = 4;
|
buttonDPI1.TabIndex = 4;
|
||||||
buttonDPI1.Text = "DPI 1\r\n800";
|
buttonDPI1.Text = "DPI 1\r\n800";
|
||||||
buttonDPI1.TextImageRelation = TextImageRelation.ImageAboveText;
|
buttonDPI1.TextImageRelation = TextImageRelation.ImageAboveText;
|
||||||
@@ -715,11 +715,11 @@
|
|||||||
buttonDPI3.ForeColor = SystemColors.ControlText;
|
buttonDPI3.ForeColor = SystemColors.ControlText;
|
||||||
buttonDPI3.Image = Properties.Resources.lighting_dot_32;
|
buttonDPI3.Image = Properties.Resources.lighting_dot_32;
|
||||||
buttonDPI3.ImageAlign = ContentAlignment.BottomCenter;
|
buttonDPI3.ImageAlign = ContentAlignment.BottomCenter;
|
||||||
buttonDPI3.Location = new Point(212, 2);
|
buttonDPI3.Location = new Point(220, 2);
|
||||||
buttonDPI3.Margin = new Padding(2);
|
buttonDPI3.Margin = new Padding(2);
|
||||||
buttonDPI3.Name = "buttonDPI3";
|
buttonDPI3.Name = "buttonDPI3";
|
||||||
buttonDPI3.Secondary = false;
|
buttonDPI3.Secondary = false;
|
||||||
buttonDPI3.Size = new Size(101, 60);
|
buttonDPI3.Size = new Size(105, 60);
|
||||||
buttonDPI3.TabIndex = 5;
|
buttonDPI3.TabIndex = 5;
|
||||||
buttonDPI3.Text = "DPI 3\r\n1200";
|
buttonDPI3.Text = "DPI 3\r\n1200";
|
||||||
buttonDPI3.TextImageRelation = TextImageRelation.ImageAboveText;
|
buttonDPI3.TextImageRelation = TextImageRelation.ImageAboveText;
|
||||||
@@ -738,11 +738,11 @@
|
|||||||
buttonDPI4.ForeColor = SystemColors.ControlText;
|
buttonDPI4.ForeColor = SystemColors.ControlText;
|
||||||
buttonDPI4.Image = Properties.Resources.lighting_dot_32;
|
buttonDPI4.Image = Properties.Resources.lighting_dot_32;
|
||||||
buttonDPI4.ImageAlign = ContentAlignment.BottomCenter;
|
buttonDPI4.ImageAlign = ContentAlignment.BottomCenter;
|
||||||
buttonDPI4.Location = new Point(317, 2);
|
buttonDPI4.Location = new Point(329, 2);
|
||||||
buttonDPI4.Margin = new Padding(2);
|
buttonDPI4.Margin = new Padding(2);
|
||||||
buttonDPI4.Name = "buttonDPI4";
|
buttonDPI4.Name = "buttonDPI4";
|
||||||
buttonDPI4.Secondary = false;
|
buttonDPI4.Secondary = false;
|
||||||
buttonDPI4.Size = new Size(101, 60);
|
buttonDPI4.Size = new Size(106, 60);
|
||||||
buttonDPI4.TabIndex = 6;
|
buttonDPI4.TabIndex = 6;
|
||||||
buttonDPI4.Text = "DPI 4\r\n1400";
|
buttonDPI4.Text = "DPI 4\r\n1400";
|
||||||
buttonDPI4.TextImageRelation = TextImageRelation.ImageAboveText;
|
buttonDPI4.TextImageRelation = TextImageRelation.ImageAboveText;
|
||||||
@@ -757,7 +757,7 @@
|
|||||||
panelPerformanceHeader.Location = new Point(0, 7);
|
panelPerformanceHeader.Location = new Point(0, 7);
|
||||||
panelPerformanceHeader.Margin = new Padding(2);
|
panelPerformanceHeader.Margin = new Padding(2);
|
||||||
panelPerformanceHeader.Name = "panelPerformanceHeader";
|
panelPerformanceHeader.Name = "panelPerformanceHeader";
|
||||||
panelPerformanceHeader.Size = new Size(420, 20);
|
panelPerformanceHeader.Size = new Size(437, 20);
|
||||||
panelPerformanceHeader.TabIndex = 41;
|
panelPerformanceHeader.TabIndex = 41;
|
||||||
//
|
//
|
||||||
// pictureKeyboard
|
// pictureKeyboard
|
||||||
@@ -793,7 +793,7 @@
|
|||||||
panelLighting.Margin = new Padding(2);
|
panelLighting.Margin = new Padding(2);
|
||||||
panelLighting.Name = "panelLighting";
|
panelLighting.Name = "panelLighting";
|
||||||
panelLighting.Padding = new Padding(0, 0, 0, 17);
|
panelLighting.Padding = new Padding(0, 0, 0, 17);
|
||||||
panelLighting.Size = new Size(420, 220);
|
panelLighting.Size = new Size(437, 220);
|
||||||
panelLighting.TabIndex = 42;
|
panelLighting.TabIndex = 42;
|
||||||
//
|
//
|
||||||
// panelLightingContent
|
// panelLightingContent
|
||||||
@@ -814,7 +814,7 @@
|
|||||||
panelLightingContent.Margin = new Padding(2);
|
panelLightingContent.Margin = new Padding(2);
|
||||||
panelLightingContent.Name = "panelLightingContent";
|
panelLightingContent.Name = "panelLightingContent";
|
||||||
panelLightingContent.Padding = new Padding(0, 0, 0, 7);
|
panelLightingContent.Padding = new Padding(0, 0, 0, 7);
|
||||||
panelLightingContent.Size = new Size(420, 183);
|
panelLightingContent.Size = new Size(437, 183);
|
||||||
panelLightingContent.TabIndex = 42;
|
panelLightingContent.TabIndex = 42;
|
||||||
//
|
//
|
||||||
// tableLayoutLightingZones
|
// tableLayoutLightingZones
|
||||||
@@ -838,7 +838,7 @@
|
|||||||
tableLayoutLightingZones.Name = "tableLayoutLightingZones";
|
tableLayoutLightingZones.Name = "tableLayoutLightingZones";
|
||||||
tableLayoutLightingZones.RowCount = 1;
|
tableLayoutLightingZones.RowCount = 1;
|
||||||
tableLayoutLightingZones.RowStyles.Add(new RowStyle(SizeType.Absolute, 40F));
|
tableLayoutLightingZones.RowStyles.Add(new RowStyle(SizeType.Absolute, 40F));
|
||||||
tableLayoutLightingZones.Size = new Size(420, 40);
|
tableLayoutLightingZones.Size = new Size(437, 40);
|
||||||
tableLayoutLightingZones.TabIndex = 56;
|
tableLayoutLightingZones.TabIndex = 56;
|
||||||
//
|
//
|
||||||
// buttonLightingZoneScroll
|
// buttonLightingZoneScroll
|
||||||
@@ -855,11 +855,11 @@
|
|||||||
buttonLightingZoneScroll.FlatStyle = FlatStyle.Flat;
|
buttonLightingZoneScroll.FlatStyle = FlatStyle.Flat;
|
||||||
buttonLightingZoneScroll.ForeColor = SystemColors.ControlText;
|
buttonLightingZoneScroll.ForeColor = SystemColors.ControlText;
|
||||||
buttonLightingZoneScroll.ImageAlign = ContentAlignment.BottomCenter;
|
buttonLightingZoneScroll.ImageAlign = ContentAlignment.BottomCenter;
|
||||||
buttonLightingZoneScroll.Location = new Point(170, 2);
|
buttonLightingZoneScroll.Location = new Point(176, 2);
|
||||||
buttonLightingZoneScroll.Margin = new Padding(2);
|
buttonLightingZoneScroll.Margin = new Padding(2);
|
||||||
buttonLightingZoneScroll.Name = "buttonLightingZoneScroll";
|
buttonLightingZoneScroll.Name = "buttonLightingZoneScroll";
|
||||||
buttonLightingZoneScroll.Secondary = false;
|
buttonLightingZoneScroll.Secondary = false;
|
||||||
buttonLightingZoneScroll.Size = new Size(80, 36);
|
buttonLightingZoneScroll.Size = new Size(83, 36);
|
||||||
buttonLightingZoneScroll.TabIndex = 7;
|
buttonLightingZoneScroll.TabIndex = 7;
|
||||||
buttonLightingZoneScroll.Text = "Scrollwheel";
|
buttonLightingZoneScroll.Text = "Scrollwheel";
|
||||||
buttonLightingZoneScroll.TextImageRelation = TextImageRelation.ImageAboveText;
|
buttonLightingZoneScroll.TextImageRelation = TextImageRelation.ImageAboveText;
|
||||||
@@ -879,11 +879,11 @@
|
|||||||
buttonLightingZoneLogo.FlatStyle = FlatStyle.Flat;
|
buttonLightingZoneLogo.FlatStyle = FlatStyle.Flat;
|
||||||
buttonLightingZoneLogo.ForeColor = SystemColors.ControlText;
|
buttonLightingZoneLogo.ForeColor = SystemColors.ControlText;
|
||||||
buttonLightingZoneLogo.ImageAlign = ContentAlignment.BottomCenter;
|
buttonLightingZoneLogo.ImageAlign = ContentAlignment.BottomCenter;
|
||||||
buttonLightingZoneLogo.Location = new Point(86, 2);
|
buttonLightingZoneLogo.Location = new Point(89, 2);
|
||||||
buttonLightingZoneLogo.Margin = new Padding(2);
|
buttonLightingZoneLogo.Margin = new Padding(2);
|
||||||
buttonLightingZoneLogo.Name = "buttonLightingZoneLogo";
|
buttonLightingZoneLogo.Name = "buttonLightingZoneLogo";
|
||||||
buttonLightingZoneLogo.Secondary = false;
|
buttonLightingZoneLogo.Secondary = false;
|
||||||
buttonLightingZoneLogo.Size = new Size(80, 36);
|
buttonLightingZoneLogo.Size = new Size(83, 36);
|
||||||
buttonLightingZoneLogo.TabIndex = 4;
|
buttonLightingZoneLogo.TabIndex = 4;
|
||||||
buttonLightingZoneLogo.Text = "Logo";
|
buttonLightingZoneLogo.Text = "Logo";
|
||||||
buttonLightingZoneLogo.TextImageRelation = TextImageRelation.ImageAboveText;
|
buttonLightingZoneLogo.TextImageRelation = TextImageRelation.ImageAboveText;
|
||||||
@@ -907,7 +907,7 @@
|
|||||||
buttonLightingZoneAll.Margin = new Padding(2);
|
buttonLightingZoneAll.Margin = new Padding(2);
|
||||||
buttonLightingZoneAll.Name = "buttonLightingZoneAll";
|
buttonLightingZoneAll.Name = "buttonLightingZoneAll";
|
||||||
buttonLightingZoneAll.Secondary = false;
|
buttonLightingZoneAll.Secondary = false;
|
||||||
buttonLightingZoneAll.Size = new Size(80, 36);
|
buttonLightingZoneAll.Size = new Size(83, 36);
|
||||||
buttonLightingZoneAll.TabIndex = 4;
|
buttonLightingZoneAll.TabIndex = 4;
|
||||||
buttonLightingZoneAll.Text = "All";
|
buttonLightingZoneAll.Text = "All";
|
||||||
buttonLightingZoneAll.TextImageRelation = TextImageRelation.ImageAboveText;
|
buttonLightingZoneAll.TextImageRelation = TextImageRelation.ImageAboveText;
|
||||||
@@ -927,11 +927,11 @@
|
|||||||
buttonLightingZoneUnderglow.FlatStyle = FlatStyle.Flat;
|
buttonLightingZoneUnderglow.FlatStyle = FlatStyle.Flat;
|
||||||
buttonLightingZoneUnderglow.ForeColor = SystemColors.ControlText;
|
buttonLightingZoneUnderglow.ForeColor = SystemColors.ControlText;
|
||||||
buttonLightingZoneUnderglow.ImageAlign = ContentAlignment.BottomCenter;
|
buttonLightingZoneUnderglow.ImageAlign = ContentAlignment.BottomCenter;
|
||||||
buttonLightingZoneUnderglow.Location = new Point(254, 2);
|
buttonLightingZoneUnderglow.Location = new Point(263, 2);
|
||||||
buttonLightingZoneUnderglow.Margin = new Padding(2);
|
buttonLightingZoneUnderglow.Margin = new Padding(2);
|
||||||
buttonLightingZoneUnderglow.Name = "buttonLightingZoneUnderglow";
|
buttonLightingZoneUnderglow.Name = "buttonLightingZoneUnderglow";
|
||||||
buttonLightingZoneUnderglow.Secondary = false;
|
buttonLightingZoneUnderglow.Secondary = false;
|
||||||
buttonLightingZoneUnderglow.Size = new Size(80, 36);
|
buttonLightingZoneUnderglow.Size = new Size(83, 36);
|
||||||
buttonLightingZoneUnderglow.TabIndex = 5;
|
buttonLightingZoneUnderglow.TabIndex = 5;
|
||||||
buttonLightingZoneUnderglow.Text = "Underglow";
|
buttonLightingZoneUnderglow.Text = "Underglow";
|
||||||
buttonLightingZoneUnderglow.TextImageRelation = TextImageRelation.ImageAboveText;
|
buttonLightingZoneUnderglow.TextImageRelation = TextImageRelation.ImageAboveText;
|
||||||
@@ -951,11 +951,11 @@
|
|||||||
buttonLightingZoneDock.FlatStyle = FlatStyle.Flat;
|
buttonLightingZoneDock.FlatStyle = FlatStyle.Flat;
|
||||||
buttonLightingZoneDock.ForeColor = SystemColors.ControlText;
|
buttonLightingZoneDock.ForeColor = SystemColors.ControlText;
|
||||||
buttonLightingZoneDock.ImageAlign = ContentAlignment.BottomCenter;
|
buttonLightingZoneDock.ImageAlign = ContentAlignment.BottomCenter;
|
||||||
buttonLightingZoneDock.Location = new Point(338, 2);
|
buttonLightingZoneDock.Location = new Point(350, 2);
|
||||||
buttonLightingZoneDock.Margin = new Padding(2);
|
buttonLightingZoneDock.Margin = new Padding(2);
|
||||||
buttonLightingZoneDock.Name = "buttonLightingZoneDock";
|
buttonLightingZoneDock.Name = "buttonLightingZoneDock";
|
||||||
buttonLightingZoneDock.Secondary = false;
|
buttonLightingZoneDock.Secondary = false;
|
||||||
buttonLightingZoneDock.Size = new Size(80, 36);
|
buttonLightingZoneDock.Size = new Size(85, 36);
|
||||||
buttonLightingZoneDock.TabIndex = 6;
|
buttonLightingZoneDock.TabIndex = 6;
|
||||||
buttonLightingZoneDock.Text = "Dock";
|
buttonLightingZoneDock.Text = "Dock";
|
||||||
buttonLightingZoneDock.TextImageRelation = TextImageRelation.ImageAboveText;
|
buttonLightingZoneDock.TextImageRelation = TextImageRelation.ImageAboveText;
|
||||||
@@ -968,10 +968,10 @@
|
|||||||
comboBoxAnimationDirection.DropDownStyle = ComboBoxStyle.DropDownList;
|
comboBoxAnimationDirection.DropDownStyle = ComboBoxStyle.DropDownList;
|
||||||
comboBoxAnimationDirection.FlatStyle = FlatStyle.Flat;
|
comboBoxAnimationDirection.FlatStyle = FlatStyle.Flat;
|
||||||
comboBoxAnimationDirection.FormattingEnabled = true;
|
comboBoxAnimationDirection.FormattingEnabled = true;
|
||||||
comboBoxAnimationDirection.Location = new Point(244, 153);
|
comboBoxAnimationDirection.Location = new Point(245, 153);
|
||||||
comboBoxAnimationDirection.Margin = new Padding(11, 0, 11, 0);
|
comboBoxAnimationDirection.Margin = new Padding(11, 0, 11, 0);
|
||||||
comboBoxAnimationDirection.Name = "comboBoxAnimationDirection";
|
comboBoxAnimationDirection.Name = "comboBoxAnimationDirection";
|
||||||
comboBoxAnimationDirection.Size = new Size(191, 23);
|
comboBoxAnimationDirection.Size = new Size(190, 23);
|
||||||
comboBoxAnimationDirection.TabIndex = 54;
|
comboBoxAnimationDirection.TabIndex = 54;
|
||||||
//
|
//
|
||||||
// labelAnimationDirection
|
// labelAnimationDirection
|
||||||
@@ -1000,10 +1000,10 @@
|
|||||||
comboBoxAnimationSpeed.DropDownStyle = ComboBoxStyle.DropDownList;
|
comboBoxAnimationSpeed.DropDownStyle = ComboBoxStyle.DropDownList;
|
||||||
comboBoxAnimationSpeed.FlatStyle = FlatStyle.Flat;
|
comboBoxAnimationSpeed.FlatStyle = FlatStyle.Flat;
|
||||||
comboBoxAnimationSpeed.FormattingEnabled = true;
|
comboBoxAnimationSpeed.FormattingEnabled = true;
|
||||||
comboBoxAnimationSpeed.Location = new Point(244, 125);
|
comboBoxAnimationSpeed.Location = new Point(245, 125);
|
||||||
comboBoxAnimationSpeed.Margin = new Padding(11, 0, 11, 0);
|
comboBoxAnimationSpeed.Margin = new Padding(11, 0, 11, 0);
|
||||||
comboBoxAnimationSpeed.Name = "comboBoxAnimationSpeed";
|
comboBoxAnimationSpeed.Name = "comboBoxAnimationSpeed";
|
||||||
comboBoxAnimationSpeed.Size = new Size(191, 23);
|
comboBoxAnimationSpeed.Size = new Size(190, 23);
|
||||||
comboBoxAnimationSpeed.TabIndex = 51;
|
comboBoxAnimationSpeed.TabIndex = 51;
|
||||||
//
|
//
|
||||||
// labelAnimationSpeed
|
// labelAnimationSpeed
|
||||||
@@ -1018,7 +1018,7 @@
|
|||||||
// pictureBoxLightingColor
|
// pictureBoxLightingColor
|
||||||
//
|
//
|
||||||
pictureBoxLightingColor.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
pictureBoxLightingColor.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||||
pictureBoxLightingColor.Location = new Point(304, 80);
|
pictureBoxLightingColor.Location = new Point(321, 80);
|
||||||
pictureBoxLightingColor.Margin = new Padding(4);
|
pictureBoxLightingColor.Margin = new Padding(4);
|
||||||
pictureBoxLightingColor.Name = "pictureBoxLightingColor";
|
pictureBoxLightingColor.Name = "pictureBoxLightingColor";
|
||||||
pictureBoxLightingColor.Size = new Size(13, 13);
|
pictureBoxLightingColor.Size = new Size(13, 13);
|
||||||
@@ -1035,11 +1035,11 @@
|
|||||||
buttonLightingColor.BorderRadius = 2;
|
buttonLightingColor.BorderRadius = 2;
|
||||||
buttonLightingColor.FlatStyle = FlatStyle.Flat;
|
buttonLightingColor.FlatStyle = FlatStyle.Flat;
|
||||||
buttonLightingColor.ForeColor = SystemColors.ControlText;
|
buttonLightingColor.ForeColor = SystemColors.ControlText;
|
||||||
buttonLightingColor.Location = new Point(233, 74);
|
buttonLightingColor.Location = new Point(252, 74);
|
||||||
buttonLightingColor.Margin = new Padding(2, 4, 2, 4);
|
buttonLightingColor.Margin = new Padding(2, 4, 2, 4);
|
||||||
buttonLightingColor.Name = "buttonLightingColor";
|
buttonLightingColor.Name = "buttonLightingColor";
|
||||||
buttonLightingColor.Secondary = false;
|
buttonLightingColor.Secondary = false;
|
||||||
buttonLightingColor.Size = new Size(94, 25);
|
buttonLightingColor.Size = new Size(90, 25);
|
||||||
buttonLightingColor.TabIndex = 49;
|
buttonLightingColor.TabIndex = 49;
|
||||||
buttonLightingColor.Text = Properties.Strings.Color;
|
buttonLightingColor.Text = Properties.Strings.Color;
|
||||||
buttonLightingColor.TextAlign = ContentAlignment.MiddleLeft;
|
buttonLightingColor.TextAlign = ContentAlignment.MiddleLeft;
|
||||||
@@ -1077,13 +1077,13 @@
|
|||||||
panelLightingHeader.Location = new Point(0, 0);
|
panelLightingHeader.Location = new Point(0, 0);
|
||||||
panelLightingHeader.Margin = new Padding(2);
|
panelLightingHeader.Margin = new Padding(2);
|
||||||
panelLightingHeader.Name = "panelLightingHeader";
|
panelLightingHeader.Name = "panelLightingHeader";
|
||||||
panelLightingHeader.Size = new Size(420, 20);
|
panelLightingHeader.Size = new Size(437, 20);
|
||||||
panelLightingHeader.TabIndex = 41;
|
panelLightingHeader.TabIndex = 41;
|
||||||
//
|
//
|
||||||
// sliderBrightness
|
// sliderBrightness
|
||||||
//
|
//
|
||||||
sliderBrightness.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Right;
|
sliderBrightness.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Right;
|
||||||
sliderBrightness.Location = new Point(229, 1);
|
sliderBrightness.Location = new Point(246, 1);
|
||||||
sliderBrightness.Margin = new Padding(1);
|
sliderBrightness.Margin = new Padding(1);
|
||||||
sliderBrightness.Max = 100;
|
sliderBrightness.Max = 100;
|
||||||
sliderBrightness.Min = 0;
|
sliderBrightness.Min = 0;
|
||||||
@@ -1131,7 +1131,7 @@
|
|||||||
panelEnergy.Margin = new Padding(2);
|
panelEnergy.Margin = new Padding(2);
|
||||||
panelEnergy.Name = "panelEnergy";
|
panelEnergy.Name = "panelEnergy";
|
||||||
panelEnergy.Padding = new Padding(0, 0, 0, 17);
|
panelEnergy.Padding = new Padding(0, 0, 0, 17);
|
||||||
panelEnergy.Size = new Size(420, 96);
|
panelEnergy.Size = new Size(437, 96);
|
||||||
panelEnergy.TabIndex = 43;
|
panelEnergy.TabIndex = 43;
|
||||||
//
|
//
|
||||||
// labelLowBatteryWarningValue
|
// labelLowBatteryWarningValue
|
||||||
@@ -1199,7 +1199,7 @@
|
|||||||
panelEnergyHeader.Location = new Point(0, 0);
|
panelEnergyHeader.Location = new Point(0, 0);
|
||||||
panelEnergyHeader.Margin = new Padding(2);
|
panelEnergyHeader.Margin = new Padding(2);
|
||||||
panelEnergyHeader.Name = "panelEnergyHeader";
|
panelEnergyHeader.Name = "panelEnergyHeader";
|
||||||
panelEnergyHeader.Size = new Size(420, 20);
|
panelEnergyHeader.Size = new Size(437, 20);
|
||||||
panelEnergyHeader.TabIndex = 41;
|
panelEnergyHeader.TabIndex = 41;
|
||||||
//
|
//
|
||||||
// pictureBoxEnergy
|
// pictureBoxEnergy
|
||||||
@@ -1240,7 +1240,7 @@
|
|||||||
tableLayoutProfiles.RowCount = 1;
|
tableLayoutProfiles.RowCount = 1;
|
||||||
tableLayoutProfiles.RowStyles.Add(new RowStyle(SizeType.Percent, 50F));
|
tableLayoutProfiles.RowStyles.Add(new RowStyle(SizeType.Percent, 50F));
|
||||||
tableLayoutProfiles.RowStyles.Add(new RowStyle(SizeType.Percent, 50F));
|
tableLayoutProfiles.RowStyles.Add(new RowStyle(SizeType.Percent, 50F));
|
||||||
tableLayoutProfiles.Size = new Size(420, 38);
|
tableLayoutProfiles.Size = new Size(437, 38);
|
||||||
tableLayoutProfiles.TabIndex = 44;
|
tableLayoutProfiles.TabIndex = 44;
|
||||||
//
|
//
|
||||||
// panelBatteryState
|
// panelBatteryState
|
||||||
@@ -1302,11 +1302,11 @@
|
|||||||
buttonSync.BorderRadius = 2;
|
buttonSync.BorderRadius = 2;
|
||||||
buttonSync.FlatStyle = FlatStyle.Flat;
|
buttonSync.FlatStyle = FlatStyle.Flat;
|
||||||
buttonSync.ForeColor = SystemColors.ControlText;
|
buttonSync.ForeColor = SystemColors.ControlText;
|
||||||
buttonSync.Location = new Point(223, 5);
|
buttonSync.Location = new Point(5, 37);
|
||||||
buttonSync.Margin = new Padding(2, 4, 2, 4);
|
buttonSync.Margin = new Padding(2, 4, 2, 4);
|
||||||
buttonSync.Name = "buttonSync";
|
buttonSync.Name = "buttonSync";
|
||||||
buttonSync.Secondary = false;
|
buttonSync.Secondary = false;
|
||||||
buttonSync.Size = new Size(195, 25);
|
buttonSync.Size = new Size(431, 25);
|
||||||
buttonSync.TabIndex = 46;
|
buttonSync.TabIndex = 46;
|
||||||
buttonSync.Text = "Synchronize with Mouse";
|
buttonSync.Text = "Synchronize with Mouse";
|
||||||
buttonSync.UseVisualStyleBackColor = false;
|
buttonSync.UseVisualStyleBackColor = false;
|
||||||
@@ -1322,7 +1322,7 @@
|
|||||||
panelBottomButtons.Location = new Point(7, 731);
|
panelBottomButtons.Location = new Point(7, 731);
|
||||||
panelBottomButtons.Margin = new Padding(2);
|
panelBottomButtons.Margin = new Padding(2);
|
||||||
panelBottomButtons.Name = "panelBottomButtons";
|
panelBottomButtons.Name = "panelBottomButtons";
|
||||||
panelBottomButtons.Size = new Size(420, 45);
|
panelBottomButtons.Size = new Size(437, 66);
|
||||||
panelBottomButtons.TabIndex = 47;
|
panelBottomButtons.TabIndex = 47;
|
||||||
//
|
//
|
||||||
// buttonImport
|
// buttonImport
|
||||||
@@ -1335,11 +1335,11 @@
|
|||||||
buttonImport.BorderRadius = 2;
|
buttonImport.BorderRadius = 2;
|
||||||
buttonImport.FlatStyle = FlatStyle.Flat;
|
buttonImport.FlatStyle = FlatStyle.Flat;
|
||||||
buttonImport.ForeColor = SystemColors.ControlText;
|
buttonImport.ForeColor = SystemColors.ControlText;
|
||||||
buttonImport.Location = new Point(106, 6);
|
buttonImport.Location = new Point(222, 6);
|
||||||
buttonImport.Margin = new Padding(2, 4, 2, 4);
|
buttonImport.Margin = new Padding(2, 4, 2, 4);
|
||||||
buttonImport.Name = "buttonImport";
|
buttonImport.Name = "buttonImport";
|
||||||
buttonImport.Secondary = false;
|
buttonImport.Secondary = false;
|
||||||
buttonImport.Size = new Size(102, 25);
|
buttonImport.Size = new Size(214, 25);
|
||||||
buttonImport.TabIndex = 48;
|
buttonImport.TabIndex = 48;
|
||||||
buttonImport.Text = "Import Profile";
|
buttonImport.Text = "Import Profile";
|
||||||
buttonImport.UseVisualStyleBackColor = false;
|
buttonImport.UseVisualStyleBackColor = false;
|
||||||
@@ -1355,11 +1355,11 @@
|
|||||||
buttonExport.BorderRadius = 2;
|
buttonExport.BorderRadius = 2;
|
||||||
buttonExport.FlatStyle = FlatStyle.Flat;
|
buttonExport.FlatStyle = FlatStyle.Flat;
|
||||||
buttonExport.ForeColor = SystemColors.ControlText;
|
buttonExport.ForeColor = SystemColors.ControlText;
|
||||||
buttonExport.Location = new Point(2, 6);
|
buttonExport.Location = new Point(5, 6);
|
||||||
buttonExport.Margin = new Padding(2, 4, 2, 4);
|
buttonExport.Margin = new Padding(2, 4, 2, 4);
|
||||||
buttonExport.Name = "buttonExport";
|
buttonExport.Name = "buttonExport";
|
||||||
buttonExport.Secondary = false;
|
buttonExport.Secondary = false;
|
||||||
buttonExport.Size = new Size(103, 25);
|
buttonExport.Size = new Size(197, 25);
|
||||||
buttonExport.TabIndex = 47;
|
buttonExport.TabIndex = 47;
|
||||||
buttonExport.Text = "Export Profile";
|
buttonExport.Text = "Export Profile";
|
||||||
buttonExport.UseVisualStyleBackColor = false;
|
buttonExport.UseVisualStyleBackColor = false;
|
||||||
@@ -1433,7 +1433,7 @@
|
|||||||
AutoScroll = true;
|
AutoScroll = true;
|
||||||
AutoSize = true;
|
AutoSize = true;
|
||||||
AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
||||||
ClientSize = new Size(451, 699);
|
ClientSize = new Size(451, 803);
|
||||||
Controls.Add(panelBottomButtons);
|
Controls.Add(panelBottomButtons);
|
||||||
Controls.Add(panelEnergy);
|
Controls.Add(panelEnergy);
|
||||||
Controls.Add(panelLighting);
|
Controls.Add(panelLighting);
|
||||||
|
|||||||
112
app/Display/DisplayGammaRamp.cs
Normal file
112
app/Display/DisplayGammaRamp.cs
Normal file
@@ -0,0 +1,112 @@
|
|||||||
|
namespace GHelper.Display
|
||||||
|
{
|
||||||
|
|
||||||
|
public class DisplayGammaRamp
|
||||||
|
{
|
||||||
|
|
||||||
|
public DisplayGammaRamp(ushort[] red, ushort[] green, ushort[] blue)
|
||||||
|
{
|
||||||
|
if (red?.Length != GammaRamp.DataPoints)
|
||||||
|
{
|
||||||
|
throw new ArgumentOutOfRangeException(nameof(red));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (green?.Length != GammaRamp.DataPoints)
|
||||||
|
{
|
||||||
|
throw new ArgumentOutOfRangeException(nameof(green));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (blue?.Length != GammaRamp.DataPoints)
|
||||||
|
{
|
||||||
|
throw new ArgumentOutOfRangeException(nameof(blue));
|
||||||
|
}
|
||||||
|
|
||||||
|
Red = red;
|
||||||
|
Green = green;
|
||||||
|
Blue = blue;
|
||||||
|
}
|
||||||
|
|
||||||
|
public DisplayGammaRamp(double brightness = 1, double contrast = 1, double gamma = 1)
|
||||||
|
: this(
|
||||||
|
CalculateLUT(brightness, contrast, gamma),
|
||||||
|
CalculateLUT(brightness, contrast, gamma),
|
||||||
|
CalculateLUT(brightness, contrast, gamma)
|
||||||
|
)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public DisplayGammaRamp(
|
||||||
|
double redBrightness,
|
||||||
|
double redContrast,
|
||||||
|
double redGamma,
|
||||||
|
double greenBrightness,
|
||||||
|
double greenContrast,
|
||||||
|
double greenGamma,
|
||||||
|
double blueBrightness,
|
||||||
|
double blueContrast,
|
||||||
|
double blueGamma
|
||||||
|
)
|
||||||
|
: this(
|
||||||
|
CalculateLUT(redBrightness, redContrast, redGamma),
|
||||||
|
CalculateLUT(greenBrightness, greenContrast, greenGamma),
|
||||||
|
CalculateLUT(blueBrightness, blueContrast, blueGamma)
|
||||||
|
)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
internal DisplayGammaRamp(GammaRamp ramp) :
|
||||||
|
this(ramp.Red, ramp.Green, ramp.Blue)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public ushort[] Blue { get; }
|
||||||
|
public ushort[] Green { get; }
|
||||||
|
public ushort[] Red { get; }
|
||||||
|
private static ushort[] CalculateLUT(double brightness, double contrast, double gamma)
|
||||||
|
{
|
||||||
|
brightness = 0.5 + brightness / 2;
|
||||||
|
var result = new ushort[GammaRamp.DataPoints];
|
||||||
|
for (var i = 0; i < result.Length; i++)
|
||||||
|
{
|
||||||
|
result[i] = (ushort)(brightness * ushort.MaxValue * i / (float)(result.Length - 1));
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool IsOriginal()
|
||||||
|
{
|
||||||
|
int MaxRed = Red[Red.Length - 1];
|
||||||
|
int MaxGreen = Green[Green.Length - 1];
|
||||||
|
int MaxBlue = Blue[Blue.Length - 1];
|
||||||
|
return (Math.Abs((MaxRed + MaxGreen + MaxBlue) / 3 - ushort.MaxValue) < 256);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static ushort[] Brightness(ushort[] data, double brightness)
|
||||||
|
{
|
||||||
|
var result = new ushort[GammaRamp.DataPoints];
|
||||||
|
for (var i = 0; i < result.Length; i++)
|
||||||
|
{
|
||||||
|
if (brightness < 0.5)
|
||||||
|
result[i] = (ushort)(0.5 * ushort.MaxValue * Math.Pow((float)i/(result.Length - 1), 2 - brightness*2));
|
||||||
|
else
|
||||||
|
result[i] = (ushort)(data[i] * brightness);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
internal GammaRamp AsBrightnessRamp(double brightness)
|
||||||
|
{
|
||||||
|
return new GammaRamp(
|
||||||
|
Brightness(Red, brightness),
|
||||||
|
Brightness(Green, brightness),
|
||||||
|
Brightness(Blue, brightness)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
internal GammaRamp AsRamp()
|
||||||
|
{
|
||||||
|
return new GammaRamp(Red, Green, Blue);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
56
app/Display/GammaRamp.cs
Normal file
56
app/Display/GammaRamp.cs
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
namespace GHelper.Display
|
||||||
|
{
|
||||||
|
|
||||||
|
[StructLayout(LayoutKind.Sequential)]
|
||||||
|
internal struct GammaRamp
|
||||||
|
{
|
||||||
|
public const int DataPoints = 256;
|
||||||
|
|
||||||
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = DataPoints)]
|
||||||
|
public readonly ushort[] Red;
|
||||||
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = DataPoints)]
|
||||||
|
public readonly ushort[] Green;
|
||||||
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = DataPoints)]
|
||||||
|
public readonly ushort[] Blue;
|
||||||
|
|
||||||
|
public GammaRamp(ushort[] red, ushort[] green, ushort[] blue)
|
||||||
|
{
|
||||||
|
if (red == null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(red));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (green == null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(green));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (blue == null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(blue));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (red.Length != DataPoints)
|
||||||
|
{
|
||||||
|
throw new ArgumentOutOfRangeException(nameof(red));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (green.Length != DataPoints)
|
||||||
|
{
|
||||||
|
throw new ArgumentOutOfRangeException(nameof(green));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (blue.Length != DataPoints)
|
||||||
|
{
|
||||||
|
throw new ArgumentOutOfRangeException(nameof(blue));
|
||||||
|
}
|
||||||
|
|
||||||
|
Red = red;
|
||||||
|
Green = green;
|
||||||
|
Blue = blue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,13 +1,174 @@
|
|||||||
using System.Diagnostics;
|
using GHelper.Helpers;
|
||||||
|
using GHelper.Mode;
|
||||||
|
using GHelper.USB;
|
||||||
|
using System.Management;
|
||||||
|
|
||||||
namespace GHelper.Display
|
namespace GHelper.Display
|
||||||
{
|
{
|
||||||
public class ScreenControl
|
public enum SplendidGamut : int
|
||||||
|
{
|
||||||
|
Native = 50,
|
||||||
|
sRGB = 51,
|
||||||
|
DCIP3 = 53,
|
||||||
|
DisplayP3 = 54
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum SplendidCommand: int
|
||||||
|
{
|
||||||
|
Init = 10,
|
||||||
|
DimmingAsus = 9,
|
||||||
|
DimmingVisual = 19,
|
||||||
|
GamutMode = 200,
|
||||||
|
|
||||||
|
Default = 11,
|
||||||
|
Racing = 21,
|
||||||
|
Scenery = 22,
|
||||||
|
RTS = 23,
|
||||||
|
FPS = 24,
|
||||||
|
Cinema = 25,
|
||||||
|
Vivid = 13,
|
||||||
|
Eyecare = 17,
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class ScreenControl
|
||||||
{
|
{
|
||||||
|
|
||||||
public const int MAX_REFRESH = 1000;
|
public const int MAX_REFRESH = 1000;
|
||||||
|
|
||||||
public void AutoScreen(bool force = false)
|
public static DisplayGammaRamp? gammaRamp;
|
||||||
|
|
||||||
|
private static int _brightness = 100;
|
||||||
|
private static bool _init = true;
|
||||||
|
private static string? _splendidPath = null;
|
||||||
|
|
||||||
|
private static System.Timers.Timer brightnessTimer = new System.Timers.Timer(100);
|
||||||
|
|
||||||
|
|
||||||
|
static ScreenControl () {
|
||||||
|
brightnessTimer.Elapsed += BrightnessTimerTimer_Elapsed;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static Dictionary<SplendidGamut, string> GetGamutModes ()
|
||||||
|
{
|
||||||
|
Dictionary<SplendidGamut, string> _modes = new Dictionary<SplendidGamut, string>();
|
||||||
|
|
||||||
|
DirectoryInfo d = new DirectoryInfo("C:\\ProgramData\\ASUS\\GameVisual");
|
||||||
|
FileInfo[] icms = d.GetFiles("*.icm");
|
||||||
|
|
||||||
|
if (icms.Length == 0) return _modes;
|
||||||
|
|
||||||
|
_modes.Add(SplendidGamut.Native, "Gamut - Native");
|
||||||
|
foreach (FileInfo icm in icms)
|
||||||
|
{
|
||||||
|
if (icm.Name.Contains("sRGB")) _modes.Add(SplendidGamut.sRGB, "Gamut - sRGB");
|
||||||
|
if (icm.Name.Contains("DCIP3")) _modes.Add(SplendidGamut.DCIP3, "Gamut - DCIP3");
|
||||||
|
if (icm.Name.Contains("DisplayP3")) _modes.Add(SplendidGamut.DisplayP3, "Gamut - DisplayP3");
|
||||||
|
}
|
||||||
|
return _modes;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Dictionary<SplendidCommand, string> GetVisualModes()
|
||||||
|
{
|
||||||
|
return new Dictionary<SplendidCommand, string>
|
||||||
|
{
|
||||||
|
{ SplendidCommand.Default, "Default"},
|
||||||
|
{ SplendidCommand.Racing, "Racing"},
|
||||||
|
{ SplendidCommand.Scenery, "Scenery"},
|
||||||
|
{ SplendidCommand.RTS, "RTS/RPG"},
|
||||||
|
{ SplendidCommand.FPS, "FPS"},
|
||||||
|
{ SplendidCommand.Cinema, "Cinema"},
|
||||||
|
{ SplendidCommand.Vivid, "Vivid" },
|
||||||
|
{ SplendidCommand.Eyecare, "Eyecare"}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void SetGamut(int mode = 50)
|
||||||
|
{
|
||||||
|
if (RunSplendid(SplendidCommand.GamutMode, 0, mode)) return;
|
||||||
|
|
||||||
|
if (_init)
|
||||||
|
{
|
||||||
|
_init = false;
|
||||||
|
RunSplendid(SplendidCommand.Init);
|
||||||
|
RunSplendid(SplendidCommand.GamutMode, 0, mode);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void SetVisual(SplendidCommand mode = SplendidCommand.Default, int whiteBalance = 50)
|
||||||
|
{
|
||||||
|
int balance = mode == SplendidCommand.Eyecare ? 2 : whiteBalance;
|
||||||
|
RunSplendid(mode, 0, balance);
|
||||||
|
|
||||||
|
if (_init)
|
||||||
|
{
|
||||||
|
_init = false;
|
||||||
|
RunSplendid(SplendidCommand.Init);
|
||||||
|
RunSplendid(mode, 0, balance);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static string GetSplendidPath()
|
||||||
|
{
|
||||||
|
if (_splendidPath == null)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
using (var searcher = new ManagementObjectSearcher(@"Select * from Win32_SystemDriver WHERE Name='ATKWMIACPIIO'"))
|
||||||
|
{
|
||||||
|
foreach (var driver in searcher.Get())
|
||||||
|
{
|
||||||
|
string path = driver["PathName"].ToString();
|
||||||
|
_splendidPath = Path.GetDirectoryName(path) + "\\AsusSplendid.exe";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Logger.WriteLine(ex.Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return _splendidPath;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static bool RunSplendid(SplendidCommand command, int? param1 = null, int? param2 = null)
|
||||||
|
{
|
||||||
|
var splendid = GetSplendidPath();
|
||||||
|
bool isGameVisual = Directory.Exists("C:\\ProgramData\\ASUS\\GameVisual");
|
||||||
|
bool isSplenddid = File.Exists(splendid);
|
||||||
|
|
||||||
|
if (isSplenddid)
|
||||||
|
{
|
||||||
|
if (command == SplendidCommand.DimmingVisual && !isGameVisual) command = SplendidCommand.DimmingAsus;
|
||||||
|
var result = ProcessHelper.RunCMD(splendid, (int)command + " " + param1 + " " + param2);
|
||||||
|
if (result.Contains("file not exist") || (result.Length == 0 && isGameVisual)) return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void BrightnessTimerTimer_Elapsed(object? sender, System.Timers.ElapsedEventArgs e)
|
||||||
|
{
|
||||||
|
brightnessTimer.Stop();
|
||||||
|
|
||||||
|
|
||||||
|
if (RunSplendid(SplendidCommand.DimmingVisual, 0, (int)(40 + _brightness * 0.6))) return;
|
||||||
|
|
||||||
|
if (_init)
|
||||||
|
{
|
||||||
|
_init = false;
|
||||||
|
RunSplendid(SplendidCommand.Init);
|
||||||
|
RunSplendid(SplendidCommand.Init, 4);
|
||||||
|
if (RunSplendid(SplendidCommand.DimmingVisual, 0, (int)(40 + _brightness * 0.6))) return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// GammaRamp Fallback
|
||||||
|
SetGamma(_brightness);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void AutoScreen(bool force = false)
|
||||||
{
|
{
|
||||||
if (force || AppConfig.Is("screen_auto"))
|
if (force || AppConfig.Is("screen_auto"))
|
||||||
{
|
{
|
||||||
@@ -22,7 +183,67 @@ namespace GHelper.Display
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetScreen(int frequency = -1, int overdrive = -1, int miniled = -1)
|
public static int SetBrightness(int brightness = -1, int delta = 0)
|
||||||
|
{
|
||||||
|
if (!AppConfig.IsOLED()) return -1;
|
||||||
|
|
||||||
|
if (brightness < 0) brightness = AppConfig.Get("brightness", 100);
|
||||||
|
|
||||||
|
_brightness = Math.Max(0, Math.Min(100, brightness + delta));
|
||||||
|
AppConfig.Set("brightness", _brightness);
|
||||||
|
|
||||||
|
brightnessTimer.Start();
|
||||||
|
|
||||||
|
Program.settingsForm.VisualiseBrightness();
|
||||||
|
|
||||||
|
return _brightness;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public static void SetGamma(int brightness = 100)
|
||||||
|
{
|
||||||
|
var bright = Math.Round((float)brightness / 200 + 0.5, 2);
|
||||||
|
|
||||||
|
var screenName = ScreenNative.FindLaptopScreen();
|
||||||
|
if (screenName is null) return;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var handle = ScreenNative.CreateDC(screenName, screenName, null, IntPtr.Zero);
|
||||||
|
if (gammaRamp is null)
|
||||||
|
{
|
||||||
|
var gammaDump = new GammaRamp();
|
||||||
|
if (ScreenNative.GetDeviceGammaRamp(handle, ref gammaDump))
|
||||||
|
{
|
||||||
|
gammaRamp = new DisplayGammaRamp(gammaDump);
|
||||||
|
//Logger.WriteLine("Gamma R: " + string.Join("-", gammaRamp.Red));
|
||||||
|
//Logger.WriteLine("Gamma G: " + string.Join("-", gammaRamp.Green));
|
||||||
|
//Logger.WriteLine("Gamma B: " + string.Join("-", gammaRamp.Blue));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (gammaRamp is null || !gammaRamp.IsOriginal())
|
||||||
|
{
|
||||||
|
Logger.WriteLine("Not default Gamma");
|
||||||
|
gammaRamp = new DisplayGammaRamp();
|
||||||
|
}
|
||||||
|
|
||||||
|
var ramp = gammaRamp.AsBrightnessRamp(bright);
|
||||||
|
bool result = ScreenNative.SetDeviceGammaRamp(handle, ref ramp);
|
||||||
|
|
||||||
|
Logger.WriteLine("Gamma " + bright.ToString() + ": " + result);
|
||||||
|
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Logger.WriteLine(ex.ToString());
|
||||||
|
}
|
||||||
|
|
||||||
|
//ScreenBrightness.Set(60 + (int)(40 * bright));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void SetScreen(int frequency = -1, int overdrive = -1, int miniled = -1)
|
||||||
{
|
{
|
||||||
var laptopScreen = ScreenNative.FindLaptopScreen(true);
|
var laptopScreen = ScreenNative.FindLaptopScreen(true);
|
||||||
|
|
||||||
@@ -42,8 +263,8 @@ namespace GHelper.Display
|
|||||||
|
|
||||||
if (overdrive >= 0)
|
if (overdrive >= 0)
|
||||||
{
|
{
|
||||||
if (AppConfig.Get("no_overdrive") == 1) overdrive = 0;
|
if (AppConfig.IsNoOverdrive()) overdrive = 0;
|
||||||
Program.acpi.DeviceSet(AsusACPI.ScreenOverdrive, overdrive, "ScreenOverdrive");
|
if (!AppConfig.IsOLED()) Program.acpi.DeviceSet(AsusACPI.ScreenOverdrive, overdrive, "ScreenOverdrive");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -59,7 +280,7 @@ namespace GHelper.Display
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public int ToogleMiniled()
|
public static int ToogleMiniled()
|
||||||
{
|
{
|
||||||
int miniled1 = Program.acpi.DeviceGet(AsusACPI.ScreenMiniled1);
|
int miniled1 = Program.acpi.DeviceGet(AsusACPI.ScreenMiniled1);
|
||||||
int miniled2 = Program.acpi.DeviceGet(AsusACPI.ScreenMiniled2);
|
int miniled2 = Program.acpi.DeviceGet(AsusACPI.ScreenMiniled2);
|
||||||
@@ -71,7 +292,8 @@ namespace GHelper.Display
|
|||||||
if (miniled1 >= 0)
|
if (miniled1 >= 0)
|
||||||
{
|
{
|
||||||
miniled = (miniled1 == 1) ? 0 : 1;
|
miniled = (miniled1 == 1) ? 0 : 1;
|
||||||
} else
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
switch (miniled2)
|
switch (miniled2)
|
||||||
{
|
{
|
||||||
@@ -86,7 +308,7 @@ namespace GHelper.Display
|
|||||||
return miniled;
|
return miniled;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void InitScreen()
|
public static void InitScreen()
|
||||||
{
|
{
|
||||||
var laptopScreen = ScreenNative.FindLaptopScreen();
|
var laptopScreen = ScreenNative.FindLaptopScreen();
|
||||||
|
|
||||||
@@ -94,9 +316,9 @@ namespace GHelper.Display
|
|||||||
int maxFrequency = ScreenNative.GetMaxRefreshRate(laptopScreen);
|
int maxFrequency = ScreenNative.GetMaxRefreshRate(laptopScreen);
|
||||||
|
|
||||||
bool screenAuto = AppConfig.Is("screen_auto");
|
bool screenAuto = AppConfig.Is("screen_auto");
|
||||||
bool overdriveSetting = !AppConfig.Is("no_overdrive");
|
bool overdriveSetting = !AppConfig.IsNoOverdrive();
|
||||||
|
|
||||||
int overdrive = Program.acpi.DeviceGet(AsusACPI.ScreenOverdrive);
|
int overdrive = AppConfig.IsNoOverdrive() ? 0 : Program.acpi.DeviceGet(AsusACPI.ScreenOverdrive);
|
||||||
|
|
||||||
int miniled1 = Program.acpi.DeviceGet(AsusACPI.ScreenMiniled1);
|
int miniled1 = Program.acpi.DeviceGet(AsusACPI.ScreenMiniled1);
|
||||||
int miniled2 = Program.acpi.DeviceGet(AsusACPI.ScreenMiniled2);
|
int miniled2 = Program.acpi.DeviceGet(AsusACPI.ScreenMiniled2);
|
||||||
|
|||||||
@@ -339,7 +339,20 @@ 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;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -32,6 +32,22 @@ namespace GHelper.Display
|
|||||||
}
|
}
|
||||||
internal class ScreenNative
|
internal class ScreenNative
|
||||||
{
|
{
|
||||||
|
|
||||||
|
[DllImport("gdi32", CharSet = CharSet.Unicode)]
|
||||||
|
internal static extern IntPtr CreateDC(string driver, string device, string port, IntPtr deviceMode);
|
||||||
|
|
||||||
|
[DllImport("gdi32")]
|
||||||
|
internal static extern bool SetDeviceGammaRamp(IntPtr dcHandle, ref GammaRamp ramp);
|
||||||
|
|
||||||
|
[DllImport("gdi32")]
|
||||||
|
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
|
||||||
{
|
{
|
||||||
@@ -146,7 +162,7 @@ namespace GHelper.Display
|
|||||||
public const string defaultDevice = @"\\.\DISPLAY1";
|
public const string defaultDevice = @"\\.\DISPLAY1";
|
||||||
|
|
||||||
|
|
||||||
private static string? FindInternalName(bool log = false)
|
public static string? FindInternalName(bool log = false)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
|||||||
229
app/Extra.Designer.cs
generated
229
app/Extra.Designer.cs
generated
@@ -99,6 +99,7 @@ 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();
|
||||||
@@ -120,6 +121,18 @@ namespace GHelper
|
|||||||
comboAPU = new RComboBox();
|
comboAPU = new RComboBox();
|
||||||
pictureAPUMem = new PictureBox();
|
pictureAPUMem = new PictureBox();
|
||||||
labelAPUMem = new Label();
|
labelAPUMem = new Label();
|
||||||
|
panelCores = new Panel();
|
||||||
|
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();
|
||||||
@@ -136,6 +149,7 @@ 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();
|
||||||
@@ -144,6 +158,10 @@ 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)pictureCores).BeginInit();
|
||||||
|
panelACPI.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)pictureDebug).BeginInit();
|
||||||
SuspendLayout();
|
SuspendLayout();
|
||||||
//
|
//
|
||||||
// panelServices
|
// panelServices
|
||||||
@@ -153,7 +171,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, 1378);
|
panelServices.Location = new Point(15, 1508);
|
||||||
panelServices.Name = "panelServices";
|
panelServices.Name = "panelServices";
|
||||||
panelServices.Size = new Size(983, 75);
|
panelServices.Size = new Size(983, 75);
|
||||||
panelServices.TabIndex = 5;
|
panelServices.TabIndex = 5;
|
||||||
@@ -1003,6 +1021,7 @@ namespace GHelper
|
|||||||
//
|
//
|
||||||
panelSettingsHeader.AutoSize = true;
|
panelSettingsHeader.AutoSize = true;
|
||||||
panelSettingsHeader.BackColor = SystemColors.ControlLight;
|
panelSettingsHeader.BackColor = SystemColors.ControlLight;
|
||||||
|
panelSettingsHeader.Controls.Add(pictureScan);
|
||||||
panelSettingsHeader.Controls.Add(pictureLog);
|
panelSettingsHeader.Controls.Add(pictureLog);
|
||||||
panelSettingsHeader.Controls.Add(pictureSettings);
|
panelSettingsHeader.Controls.Add(pictureSettings);
|
||||||
panelSettingsHeader.Controls.Add(labelSettings);
|
panelSettingsHeader.Controls.Add(labelSettings);
|
||||||
@@ -1013,6 +1032,20 @@ 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;
|
||||||
@@ -1060,7 +1093,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, 978);
|
panelSettings.Location = new Point(15, 1108);
|
||||||
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);
|
||||||
@@ -1175,7 +1208,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, 1324);
|
panelPower.Location = new Point(15, 1454);
|
||||||
panelPower.Name = "panelPower";
|
panelPower.Name = "panelPower";
|
||||||
panelPower.Size = new Size(983, 54);
|
panelPower.Size = new Size(983, 54);
|
||||||
panelPower.TabIndex = 4;
|
panelPower.TabIndex = 4;
|
||||||
@@ -1218,7 +1251,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, 921);
|
panelAPU.Location = new Point(15, 1051);
|
||||||
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);
|
||||||
@@ -1236,10 +1269,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(663, 8);
|
comboAPU.Location = new Point(654, 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(293, 40);
|
comboAPU.Size = new Size(309, 40);
|
||||||
comboAPU.TabIndex = 12;
|
comboAPU.TabIndex = 12;
|
||||||
comboAPU.TabStop = false;
|
comboAPU.TabStop = false;
|
||||||
//
|
//
|
||||||
@@ -1257,12 +1290,170 @@ 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(56, 11);
|
labelAPUMem.Location = new Point(64, 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
|
||||||
|
//
|
||||||
|
panelCores.AutoSize = true;
|
||||||
|
panelCores.Controls.Add(buttonCores);
|
||||||
|
panelCores.Controls.Add(comboCoresP);
|
||||||
|
panelCores.Controls.Add(comboCoresE);
|
||||||
|
panelCores.Controls.Add(pictureCores);
|
||||||
|
panelCores.Controls.Add(label1);
|
||||||
|
panelCores.Dock = DockStyle.Top;
|
||||||
|
panelCores.Location = new Point(15, 990);
|
||||||
|
panelCores.Name = "panelCores";
|
||||||
|
panelCores.Padding = new Padding(11, 5, 11, 0);
|
||||||
|
panelCores.Size = new Size(983, 61);
|
||||||
|
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
|
||||||
//
|
//
|
||||||
AutoScaleDimensions = new SizeF(192F, 192F);
|
AutoScaleDimensions = new SizeF(192F, 192F);
|
||||||
@@ -1270,11 +1461,13 @@ namespace GHelper
|
|||||||
AutoScroll = true;
|
AutoScroll = true;
|
||||||
AutoSize = true;
|
AutoSize = true;
|
||||||
AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
||||||
ClientSize = new Size(1013, 1515);
|
ClientSize = new Size(1013, 1612);
|
||||||
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);
|
||||||
@@ -1315,6 +1508,7 @@ 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);
|
||||||
@@ -1326,6 +1520,12 @@ 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);
|
||||||
|
panelCores.PerformLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)pictureCores).EndInit();
|
||||||
|
panelACPI.ResumeLayout(false);
|
||||||
|
panelACPI.PerformLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)pictureDebug).EndInit();
|
||||||
ResumeLayout(false);
|
ResumeLayout(false);
|
||||||
PerformLayout();
|
PerformLayout();
|
||||||
}
|
}
|
||||||
@@ -1420,5 +1620,18 @@ namespace GHelper
|
|||||||
private PictureBox pictureAPUMem;
|
private PictureBox pictureAPUMem;
|
||||||
private Label labelAPUMem;
|
private Label labelAPUMem;
|
||||||
private RComboBox comboAPU;
|
private RComboBox comboAPU;
|
||||||
|
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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
94
app/Extra.cs
94
app/Extra.cs
@@ -12,7 +12,6 @@ namespace GHelper
|
|||||||
public partial class Extra : RForm
|
public partial class Extra : RForm
|
||||||
{
|
{
|
||||||
|
|
||||||
ScreenControl screenControl = new ScreenControl();
|
|
||||||
ClamshellModeControl clamshellControl = new ClamshellModeControl();
|
ClamshellModeControl clamshellControl = new ClamshellModeControl();
|
||||||
|
|
||||||
const string EMPTY = "--------------";
|
const string EMPTY = "--------------";
|
||||||
@@ -210,6 +209,11 @@ namespace GHelper
|
|||||||
checkUSBC.Visible = false;
|
checkUSBC.Visible = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (AppConfig.IsOLED())
|
||||||
|
{
|
||||||
|
checkNoOverdrive.Visible = false;
|
||||||
|
}
|
||||||
|
|
||||||
// Change text and hide irrelevant options on the ROG Ally,
|
// Change text and hide irrelevant options on the ROG Ally,
|
||||||
// which is a bit of a special case piece of hardware.
|
// which is a bit of a special case piece of hardware.
|
||||||
if (AppConfig.IsAlly())
|
if (AppConfig.IsAlly())
|
||||||
@@ -357,7 +361,7 @@ namespace GHelper
|
|||||||
checkTopmost.Checked = AppConfig.Is("topmost");
|
checkTopmost.Checked = AppConfig.Is("topmost");
|
||||||
checkTopmost.CheckedChanged += CheckTopmost_CheckedChanged; ;
|
checkTopmost.CheckedChanged += CheckTopmost_CheckedChanged; ;
|
||||||
|
|
||||||
checkNoOverdrive.Checked = AppConfig.Is("no_overdrive");
|
checkNoOverdrive.Checked = AppConfig.IsNoOverdrive();
|
||||||
checkNoOverdrive.CheckedChanged += CheckNoOverdrive_CheckedChanged;
|
checkNoOverdrive.CheckedChanged += CheckNoOverdrive_CheckedChanged;
|
||||||
|
|
||||||
checkUSBC.Checked = AppConfig.Is("optimized_usbc");
|
checkUSBC.Checked = AppConfig.Is("optimized_usbc");
|
||||||
@@ -393,9 +397,93 @@ 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)
|
||||||
|
{
|
||||||
|
string logFile = Program.acpi.ScanRange();
|
||||||
|
new Process
|
||||||
|
{
|
||||||
|
StartInfo = new ProcessStartInfo(logFile)
|
||||||
|
{
|
||||||
|
UseShellExecute = true
|
||||||
|
}
|
||||||
|
}.Start();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ComboAPU_SelectedIndexChanged(object? sender, EventArgs e)
|
private void ComboAPU_SelectedIndexChanged(object? sender, EventArgs e)
|
||||||
@@ -595,7 +683,7 @@ namespace GHelper
|
|||||||
private void CheckNoOverdrive_CheckedChanged(object? sender, EventArgs e)
|
private void CheckNoOverdrive_CheckedChanged(object? sender, EventArgs e)
|
||||||
{
|
{
|
||||||
AppConfig.Set("no_overdrive", (checkNoOverdrive.Checked ? 1 : 0));
|
AppConfig.Set("no_overdrive", (checkNoOverdrive.Checked ? 1 : 0));
|
||||||
screenControl.AutoScreen(true);
|
ScreenControl.AutoScreen(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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 = 92;
|
public const int INADEQUATE_MAX = 104;
|
||||||
|
|
||||||
const int FAN_COUNT = 3;
|
const int FAN_COUNT = 3;
|
||||||
|
|
||||||
|
|||||||
73
app/Fans.Designer.cs
generated
73
app/Fans.Designer.cs
generated
@@ -119,6 +119,10 @@ 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();
|
||||||
@@ -190,6 +194,8 @@ 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();
|
||||||
@@ -533,7 +539,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, 1644);
|
panelAdvanced.Location = new Point(10, 1768);
|
||||||
panelAdvanced.Name = "panelAdvanced";
|
panelAdvanced.Name = "panelAdvanced";
|
||||||
panelAdvanced.Size = new Size(520, 992);
|
panelAdvanced.Size = new Size(520, 992);
|
||||||
panelAdvanced.TabIndex = 14;
|
panelAdvanced.TabIndex = 14;
|
||||||
@@ -864,7 +870,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, 764);
|
panelPower.Location = new Point(10, 888);
|
||||||
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);
|
||||||
@@ -1237,6 +1243,7 @@ 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);
|
||||||
@@ -1246,10 +1253,59 @@ 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, 698);
|
panelGPU.Size = new Size(520, 822);
|
||||||
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;
|
||||||
@@ -1258,7 +1314,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, 556);
|
panelGPUTemp.Location = new Point(0, 680);
|
||||||
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";
|
||||||
@@ -1307,7 +1363,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, 432);
|
panelGPUBoost.Location = new Point(0, 556);
|
||||||
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";
|
||||||
@@ -1700,6 +1756,9 @@ 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();
|
||||||
@@ -1833,5 +1892,9 @@ 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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
83
app/Fans.cs
83
app/Fans.cs
@@ -31,6 +31,8 @@ namespace GHelper
|
|||||||
|
|
||||||
FanSensorControl fanSensorControl;
|
FanSensorControl fanSensorControl;
|
||||||
|
|
||||||
|
static int gpuPowerBase = 0;
|
||||||
|
|
||||||
public Fans()
|
public Fans()
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -46,7 +48,7 @@ namespace GHelper
|
|||||||
labelPowerLimits.Text = Properties.Strings.PowerLimits;
|
labelPowerLimits.Text = Properties.Strings.PowerLimits;
|
||||||
checkApplyPower.Text = Properties.Strings.ApplyPowerLimits;
|
checkApplyPower.Text = Properties.Strings.ApplyPowerLimits;
|
||||||
|
|
||||||
labelFans.Text = Properties.Strings.FanCurves;
|
labelFans.Text = "BIOS " + Properties.Strings.FanCurves;
|
||||||
labelBoost.Text = Properties.Strings.CPUBoost;
|
labelBoost.Text = Properties.Strings.CPUBoost;
|
||||||
buttonReset.Text = Properties.Strings.FactoryDefaults;
|
buttonReset.Text = Properties.Strings.FactoryDefaults;
|
||||||
checkApplyFans.Text = Properties.Strings.ApplyFanCurve;
|
checkApplyFans.Text = Properties.Strings.ApplyFanCurve;
|
||||||
@@ -144,17 +146,22 @@ 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;
|
||||||
|
|
||||||
@@ -541,8 +548,12 @@ 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");
|
||||||
@@ -550,32 +561,35 @@ 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.GetClocks(out int current_core, out int current_memory))
|
if (nvControl is not null)
|
||||||
{
|
{
|
||||||
core = current_core;
|
if (nvControl.GetClocks(out int current_core, out int current_memory))
|
||||||
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);
|
||||||
@@ -584,9 +598,13 @@ 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();
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -610,6 +628,9 @@ 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)
|
||||||
@@ -640,6 +661,7 @@ 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();
|
||||||
}
|
}
|
||||||
@@ -740,7 +762,10 @@ namespace GHelper
|
|||||||
|
|
||||||
private void TrackPower_MouseUp(object? sender, MouseEventArgs e)
|
private void TrackPower_MouseUp(object? sender, MouseEventArgs e)
|
||||||
{
|
{
|
||||||
modeControl.AutoPower();
|
Task.Run(() =>
|
||||||
|
{
|
||||||
|
modeControl.AutoPower(true);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -953,7 +978,7 @@ namespace GHelper
|
|||||||
int chartCount = 2;
|
int chartCount = 2;
|
||||||
|
|
||||||
// Middle / system fan check
|
// Middle / system fan check
|
||||||
if (!AsusACPI.IsEmptyCurve(Program.acpi.GetFanCurve(AsusFan.Mid)))
|
if (!AsusACPI.IsEmptyCurve(Program.acpi.GetFanCurve(AsusFan.Mid)) || Program.acpi.GetFan(AsusFan.Mid) >= 0)
|
||||||
{
|
{
|
||||||
AppConfig.Set("mid_fan", 1);
|
AppConfig.Set("mid_fan", 1);
|
||||||
chartCount++;
|
chartCount++;
|
||||||
@@ -983,7 +1008,7 @@ namespace GHelper
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
if (chartCount > 2)
|
if (chartCount > 2)
|
||||||
Size = MinimumSize = new Size(Size.Width, (int)(ControlHelper.GetDpiScale(this).Value * (chartCount * 200 + 100)));
|
Size = MinimumSize = new Size(Size.Width, Math.Max(MinimumSize.Height, (int)(ControlHelper.GetDpiScale(this).Value * (chartCount * 200 + 100))));
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
@@ -1089,19 +1114,25 @@ 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.SetMode("gpu_core", trackGPUCore.Value);
|
AppConfig.RemoveMode("gpu_power");
|
||||||
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);
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
<ProduceReferenceAssembly>False</ProduceReferenceAssembly>
|
<ProduceReferenceAssembly>False</ProduceReferenceAssembly>
|
||||||
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
|
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
|
||||||
<AssemblyVersion>0.152</AssemblyVersion>
|
<AssemblyVersion>0.157</AssemblyVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||||
|
|||||||
@@ -9,7 +9,6 @@ namespace GHelper.Gpu
|
|||||||
public class GPUModeControl
|
public class GPUModeControl
|
||||||
{
|
{
|
||||||
SettingsForm settings;
|
SettingsForm settings;
|
||||||
ScreenControl screenControl = new ScreenControl();
|
|
||||||
|
|
||||||
public static int gpuMode;
|
public static int gpuMode;
|
||||||
public static bool? gpuExists = null;
|
public static bool? gpuExists = null;
|
||||||
@@ -159,7 +158,7 @@ namespace GHelper.Gpu
|
|||||||
settings.Invoke(delegate
|
settings.Invoke(delegate
|
||||||
{
|
{
|
||||||
InitGPUMode();
|
InitGPUMode();
|
||||||
screenControl.AutoScreen();
|
ScreenControl.AutoScreen();
|
||||||
});
|
});
|
||||||
|
|
||||||
if (eco == 0)
|
if (eco == 0)
|
||||||
|
|||||||
@@ -99,7 +99,7 @@ namespace GHelper.Helpers
|
|||||||
ToggleLidAction();
|
ToggleLidAction();
|
||||||
|
|
||||||
if (Program.settingsForm.Visible)
|
if (Program.settingsForm.Visible)
|
||||||
Program.screenControl.InitScreen();
|
ScreenControl.InitScreen();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ public static class Logger
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
var file = File.ReadAllLines(logFile);
|
var file = File.ReadAllLines(logFile);
|
||||||
int skip = Math.Max(0, file.Count() - 1000);
|
int skip = Math.Max(0, file.Count() - 2000);
|
||||||
File.WriteAllLines(logFile, file.Skip(skip).ToArray());
|
File.WriteAllLines(logFile, file.Skip(skip).ToArray());
|
||||||
}
|
}
|
||||||
catch { }
|
catch { }
|
||||||
|
|||||||
@@ -122,7 +122,7 @@ namespace GHelper.Helpers
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void RunCMD(string name, string args)
|
public static string RunCMD(string name, string args)
|
||||||
{
|
{
|
||||||
var cmd = new Process();
|
var cmd = new Process();
|
||||||
cmd.StartInfo.UseShellExecute = false;
|
cmd.StartInfo.UseShellExecute = false;
|
||||||
@@ -133,13 +133,13 @@ namespace GHelper.Helpers
|
|||||||
cmd.StartInfo.Arguments = args;
|
cmd.StartInfo.Arguments = args;
|
||||||
cmd.Start();
|
cmd.Start();
|
||||||
|
|
||||||
Logger.WriteLine(args);
|
Logger.WriteLine(name + " " + args);
|
||||||
|
|
||||||
string result = cmd.StandardOutput.ReadToEnd().Replace(Environment.NewLine, " ").Trim(' ');
|
string result = cmd.StandardOutput.ReadToEnd().Replace(Environment.NewLine, " ").Trim(' ');
|
||||||
|
|
||||||
Logger.WriteLine(result);
|
Logger.WriteLine(result);
|
||||||
|
|
||||||
cmd.WaitForExit();
|
cmd.WaitForExit();
|
||||||
|
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -19,8 +19,7 @@ namespace GHelper.Input
|
|||||||
public static Keys keyApp = Keys.F12;
|
public static Keys keyApp = Keys.F12;
|
||||||
|
|
||||||
static ModeControl modeControl = Program.modeControl;
|
static ModeControl modeControl = Program.modeControl;
|
||||||
static ScreenControl screenControl = new ScreenControl();
|
|
||||||
|
|
||||||
static bool isTUF = AppConfig.IsTUF();
|
static bool isTUF = AppConfig.IsTUF();
|
||||||
|
|
||||||
KeyboardListener listener;
|
KeyboardListener listener;
|
||||||
@@ -85,7 +84,7 @@ namespace GHelper.Input
|
|||||||
|
|
||||||
InitBacklightTimer();
|
InitBacklightTimer();
|
||||||
|
|
||||||
if (AppConfig.ContainsModel("VivoBook")) Program.acpi.DeviceSet(AsusACPI.FnLock, AppConfig.Is("fn_lock") ? 1 : 0, "FnLock");
|
if (AppConfig.IsVivoZenbook()) Program.acpi.DeviceSet(AsusACPI.FnLock, AppConfig.Is("fn_lock") ? 1 : 0, "FnLock");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -151,7 +150,7 @@ namespace GHelper.Input
|
|||||||
|
|
||||||
// FN-Lock group
|
// FN-Lock group
|
||||||
|
|
||||||
if (AppConfig.Is("fn_lock") && !AppConfig.ContainsModel("VivoBook"))
|
if (AppConfig.Is("fn_lock") && !AppConfig.IsVivoZenbook())
|
||||||
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
|
||||||
@@ -244,6 +243,13 @@ namespace GHelper.Input
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void SetBrightnessDimming(int delta)
|
||||||
|
{
|
||||||
|
int brightness = ScreenControl.SetBrightness(delta: delta);
|
||||||
|
if (brightness >= 0)
|
||||||
|
Program.toast.RunToast(brightness + "%", (delta < 0) ? ToastIcon.BrightnessDown : ToastIcon.BrightnessUp);
|
||||||
|
}
|
||||||
|
|
||||||
public void KeyPressed(object sender, KeyPressedEventArgs e)
|
public void KeyPressed(object sender, KeyPressedEventArgs e)
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -472,7 +478,7 @@ namespace GHelper.Input
|
|||||||
break;
|
break;
|
||||||
case "miniled":
|
case "miniled":
|
||||||
if (ScreenCCD.GetHDRStatus()) return;
|
if (ScreenCCD.GetHDRStatus()) return;
|
||||||
int miniled = screenControl.ToogleMiniled();
|
int miniled = ScreenControl.ToogleMiniled();
|
||||||
Program.toast.RunToast(miniled == 1 ? "Multi-Zone" : "Single-Zone", miniled == 1 ? ToastIcon.BrightnessUp : ToastIcon.BrightnessDown);
|
Program.toast.RunToast(miniled == 1 ? "Multi-Zone" : "Single-Zone", miniled == 1 ? ToastIcon.BrightnessUp : ToastIcon.BrightnessDown);
|
||||||
break;
|
break;
|
||||||
case "aura":
|
case "aura":
|
||||||
@@ -500,7 +506,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.IsVivobook()) Program.acpi.DeviceSet(AsusACPI.MICMUTE_LED, muteStatus ? 1 : 0, "MicmuteLed");
|
if (AppConfig.IsVivoZenbook()) Program.acpi.DeviceSet(AsusACPI.MicMuteLed, muteStatus ? 1 : 0, "MicmuteLed");
|
||||||
break;
|
break;
|
||||||
case "brightness_up":
|
case "brightness_up":
|
||||||
SetBrightness(+10);
|
SetBrightness(+10);
|
||||||
@@ -568,7 +574,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.ContainsModel("VivoBook"))
|
if (AppConfig.IsVivoZenbook())
|
||||||
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);
|
||||||
@@ -628,6 +634,9 @@ namespace GHelper.Input
|
|||||||
{
|
{
|
||||||
switch (EventID)
|
switch (EventID)
|
||||||
{
|
{
|
||||||
|
case 134: // FN + F12 ON OLD DEVICES
|
||||||
|
KeyProcess("m4");
|
||||||
|
return;
|
||||||
case 124: // M3
|
case 124: // M3
|
||||||
KeyProcess("m3");
|
KeyProcess("m3");
|
||||||
return;
|
return;
|
||||||
@@ -638,7 +647,7 @@ namespace GHelper.Input
|
|||||||
KeyProcess("m6");
|
KeyProcess("m6");
|
||||||
return;
|
return;
|
||||||
case 136: // FN + F12
|
case 136: // FN + F12
|
||||||
Program.acpi.DeviceSet(AsusACPI.UniversalControl, AsusACPI.Airplane, "Airplane");
|
if (!AppConfig.IsNoAirplaneMode()) Program.acpi.DeviceSet(AsusACPI.UniversalControl, AsusACPI.Airplane, "Airplane");
|
||||||
return;
|
return;
|
||||||
case 181: // FN + Numpad Enter
|
case 181: // FN + Numpad Enter
|
||||||
KeyProcess("fne");
|
KeyProcess("fne");
|
||||||
@@ -673,7 +682,8 @@ 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
|
||||||
NativeMethods.TurnOffScreen();
|
SleepEvent();
|
||||||
|
//NativeMethods.TurnOffScreen();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -694,8 +704,14 @@ namespace GHelper.Input
|
|||||||
if (AppConfig.IsDUO()) SetScreenpad(-10);
|
if (AppConfig.IsDUO()) SetScreenpad(-10);
|
||||||
else Program.settingsForm.BeginInvoke(Program.settingsForm.CycleMatrix, -1);
|
else Program.settingsForm.BeginInvoke(Program.settingsForm.CycleMatrix, -1);
|
||||||
}
|
}
|
||||||
|
else if (Control.ModifierKeys == Keys.Control && AppConfig.IsOLED())
|
||||||
|
{
|
||||||
|
SetBrightnessDimming(-10);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
Program.acpi.DeviceSet(AsusACPI.UniversalControl, AsusACPI.Brightness_Down, "Brightness");
|
Program.acpi.DeviceSet(AsusACPI.UniversalControl, AsusACPI.Brightness_Down, "Brightness");
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case 32: // FN+F8
|
case 32: // FN+F8
|
||||||
if (Control.ModifierKeys == Keys.Shift)
|
if (Control.ModifierKeys == Keys.Shift)
|
||||||
@@ -703,8 +719,17 @@ namespace GHelper.Input
|
|||||||
if (AppConfig.IsDUO()) SetScreenpad(10);
|
if (AppConfig.IsDUO()) SetScreenpad(10);
|
||||||
else Program.settingsForm.BeginInvoke(Program.settingsForm.CycleMatrix, 1);
|
else Program.settingsForm.BeginInvoke(Program.settingsForm.CycleMatrix, 1);
|
||||||
}
|
}
|
||||||
|
else if (Control.ModifierKeys == Keys.Control && AppConfig.IsOLED())
|
||||||
|
{
|
||||||
|
SetBrightnessDimming(10);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
Program.acpi.DeviceSet(AsusACPI.UniversalControl, AsusACPI.Brightness_Up, "Brightness");
|
Program.acpi.DeviceSet(AsusACPI.UniversalControl, AsusACPI.Brightness_Up, "Brightness");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 133: // Camera Toggle
|
||||||
|
ToggleCamera();
|
||||||
break;
|
break;
|
||||||
case 107: // FN+F10
|
case 107: // FN+F10
|
||||||
ToggleTouchpadEvent();
|
ToggleTouchpadEvent();
|
||||||
@@ -784,6 +809,36 @@ namespace GHelper.Input
|
|||||||
Program.toast.RunToast($"Screen Pad " + (toggle == 1 ? "On" : "Off"), toggle > 0 ? ToastIcon.BrightnessUp : ToastIcon.BrightnessDown);
|
Program.toast.RunToast($"Screen Pad " + (toggle == 1 ? "On" : "Off"), toggle > 0 ? ToastIcon.BrightnessUp : ToastIcon.BrightnessDown);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void ToggleCamera()
|
||||||
|
{
|
||||||
|
if (!ProcessHelper.IsUserAdministrator()) return;
|
||||||
|
|
||||||
|
string CameraRegistryKeyPath = @"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\webcam";
|
||||||
|
string CameraRegistryValueName = "Value";
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var status = (string?)Registry.GetValue(CameraRegistryKeyPath, CameraRegistryValueName, "");
|
||||||
|
|
||||||
|
if (status == "Allow") status = "Deny";
|
||||||
|
else if (status == "Deny") status = "Allow";
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Logger.WriteLine("Unknown camera status");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Registry.SetValue(CameraRegistryKeyPath, CameraRegistryValueName, status, RegistryValueKind.String);
|
||||||
|
Program.acpi.DeviceSet(AsusACPI.CameraLed, (status == "Deny" ? 1 : 0), "Camera");
|
||||||
|
Program.toast.RunToast($"Camera " + (status == "Deny" ? "Off" : "On"));
|
||||||
|
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Logger.WriteLine(ex.ToString());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public static void SetScreenpad(int delta)
|
public static void SetScreenpad(int delta)
|
||||||
{
|
{
|
||||||
@@ -854,6 +909,7 @@ 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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,26 +24,30 @@ public sealed class KeyboardHook : IDisposable
|
|||||||
public static void KeyPress(Keys key)
|
public static void KeyPress(Keys key)
|
||||||
{
|
{
|
||||||
keybd_event((byte)key, 0, KEYEVENTF_EXTENDEDKEY, IntPtr.Zero);
|
keybd_event((byte)key, 0, KEYEVENTF_EXTENDEDKEY, IntPtr.Zero);
|
||||||
|
|
||||||
|
Thread.Sleep(1);
|
||||||
|
|
||||||
|
keybd_event((byte)key, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, IntPtr.Zero);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void KeyKeyPress(Keys key, Keys key2)
|
public static void KeyKeyPress(Keys key, Keys key2)
|
||||||
{
|
{
|
||||||
keybd_event((byte)key, 0, KEYEVENTF_EXTENDEDKEY, IntPtr.Zero);
|
keybd_event((byte)key, 0, KEYEVENTF_EXTENDEDKEY, IntPtr.Zero);
|
||||||
keybd_event((byte)key2, 0, KEYEVENTF_EXTENDEDKEY, IntPtr.Zero);
|
keybd_event((byte)key2, 0, KEYEVENTF_EXTENDEDKEY, IntPtr.Zero);
|
||||||
|
|
||||||
|
Thread.Sleep(1);
|
||||||
|
|
||||||
keybd_event((byte)key2, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, IntPtr.Zero);
|
keybd_event((byte)key2, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, IntPtr.Zero);
|
||||||
keybd_event((byte)key, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, IntPtr.Zero);
|
keybd_event((byte)key, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, IntPtr.Zero);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void KeyKeyKeyPress(Keys key, Keys key2, Keys key3, int sleep = 0)
|
public static void KeyKeyKeyPress(Keys key, Keys key2, Keys key3, int sleep = 1)
|
||||||
{
|
{
|
||||||
keybd_event((byte)key, 0, KEYEVENTF_EXTENDEDKEY, IntPtr.Zero);
|
keybd_event((byte)key, 0, KEYEVENTF_EXTENDEDKEY, IntPtr.Zero);
|
||||||
keybd_event((byte)key2, 0, KEYEVENTF_EXTENDEDKEY, IntPtr.Zero);
|
keybd_event((byte)key2, 0, KEYEVENTF_EXTENDEDKEY, IntPtr.Zero);
|
||||||
keybd_event((byte)key3, 0, KEYEVENTF_EXTENDEDKEY, IntPtr.Zero);
|
keybd_event((byte)key3, 0, KEYEVENTF_EXTENDEDKEY, IntPtr.Zero);
|
||||||
|
|
||||||
if (sleep > 0)
|
Thread.Sleep(sleep);
|
||||||
{
|
|
||||||
Thread.Sleep(sleep);
|
|
||||||
}
|
|
||||||
|
|
||||||
keybd_event((byte)key3, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, IntPtr.Zero);
|
keybd_event((byte)key3, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, IntPtr.Zero);
|
||||||
keybd_event((byte)key2, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, IntPtr.Zero);
|
keybd_event((byte)key2, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, IntPtr.Zero);
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ namespace GHelper.Input
|
|||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Logger.WriteLine(ex.ToString());
|
Logger.WriteLine($"Listener exited: {ex.Message}");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -62,8 +62,8 @@ namespace GHelper
|
|||||||
comboRotation.SelectedValueChanged += ComboRotation_SelectedValueChanged; ;
|
comboRotation.SelectedValueChanged += ComboRotation_SelectedValueChanged; ;
|
||||||
|
|
||||||
|
|
||||||
uiScale = panelPicture.Width / matrixControl.device.MaxColumns / 3;
|
uiScale = panelPicture.Width / matrixControl.deviceMatrix.MaxColumns / 3;
|
||||||
panelPicture.Height = (int)(matrixControl.device.MaxRows * uiScale);
|
panelPicture.Height = (int)(matrixControl.deviceMatrix.MaxRows * uiScale);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -62,33 +62,46 @@ 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");
|
|
||||||
|
|
||||||
// Vivobook fallback
|
Task.Run(async () =>
|
||||||
if (status != 1)
|
|
||||||
{
|
{
|
||||||
int vivoMode = Modes.GetBase(mode);
|
bool reset = AppConfig.IsResetRequired() && (Modes.GetBase(oldMode) == Modes.GetBase(mode)) && customPower > 0;
|
||||||
if (vivoMode == 1) vivoMode = 2;
|
|
||||||
else if (vivoMode == 2) vivoMode = 1;
|
customFans = false;
|
||||||
Program.acpi.DeviceSet(AsusACPI.VivoBookMode, vivoMode, "VivoMode");
|
customPower = 0;
|
||||||
}
|
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)
|
||||||
@@ -145,18 +158,17 @@ namespace GHelper.Mode
|
|||||||
Program.acpi.SetFanCurve(AsusFan.Mid, AppConfig.GetFanConfig(AsusFan.Mid));
|
Program.acpi.SetFanCurve(AsusFan.Mid, AppConfig.GetFanConfig(AsusFan.Mid));
|
||||||
|
|
||||||
|
|
||||||
// something went wrong, resetting to default profile
|
// Alternative way to set fan curve
|
||||||
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)
|
||||||
{
|
{
|
||||||
int mode = Modes.GetCurrentBase();
|
Program.acpi.DeviceSet(AsusACPI.PerformanceMode, Modes.GetCurrentBase(), "Reset Mode");
|
||||||
Logger.WriteLine("ASUS BIOS rejected fan curve, resetting mode to " + mode);
|
settings.LabelFansResult("Model doesn't support custom fan curves");
|
||||||
Program.acpi.DeviceSet(AsusACPI.PerformanceMode, mode, "Reset Mode");
|
|
||||||
settings.LabelFansResult("ASUS BIOS rejected fan curve");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -182,52 +194,25 @@ namespace GHelper.Mode
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void AutoPower(int delay = 0)
|
public void AutoPower(bool launchAsAdmin = false)
|
||||||
{
|
{
|
||||||
|
|
||||||
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)
|
if (applyPower && !applyFans && (AppConfig.IsFanRequired() || AppConfig.IsManualModeRequired()))
|
||||||
{
|
{
|
||||||
// force fan curve for misbehaving bios PPTs on some models
|
AutoFans(true);
|
||||||
if (AppConfig.IsFanRequired())
|
Thread.Sleep(500);
|
||||||
{
|
|
||||||
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 (delay > 0)
|
if (applyPower) SetPower(launchAsAdmin);
|
||||||
{
|
|
||||||
var timer = new System.Timers.Timer(delay);
|
|
||||||
timer.Elapsed += delegate
|
|
||||||
{
|
|
||||||
timer.Stop();
|
|
||||||
timer.Dispose();
|
|
||||||
|
|
||||||
if (applyPower) SetPower();
|
Thread.Sleep(500);
|
||||||
Thread.Sleep(500);
|
SetGPUPower();
|
||||||
SetGPUPower();
|
AutoRyzen();
|
||||||
AutoRyzen();
|
|
||||||
};
|
|
||||||
timer.Start();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (applyPower) SetPower(true);
|
|
||||||
SetGPUPower();
|
|
||||||
AutoRyzen();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -346,18 +331,20 @@ 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_boost < AsusACPI.MinGPUBoost || gpu_boost > AsusACPI.MaxGPUBoost) return;
|
if (gpu_power >= AsusACPI.MinGPUPower && gpu_power <= AsusACPI.MaxGPUPower && Program.acpi.DeviceGet(AsusACPI.GPU_POWER) >= 0)
|
||||||
if (gpu_temp < AsusACPI.MinGPUTemp || gpu_temp > AsusACPI.MaxGPUTemp) return;
|
Program.acpi.DeviceSet(AsusACPI.GPU_POWER, gpu_power, "PowerLimit TGP (GPU VAR)");
|
||||||
|
|
||||||
if (Program.acpi.DeviceGet(AsusACPI.PPT_GPUC0) >= 0)
|
if (gpu_boost >= AsusACPI.MinGPUBoost && gpu_boost <= AsusACPI.MaxGPUBoost && Program.acpi.DeviceGet(AsusACPI.PPT_GPUC0) >= 0)
|
||||||
boostResult = Program.acpi.DeviceSet(AsusACPI.PPT_GPUC0, gpu_boost, "PowerLimit C0");
|
boostResult = Program.acpi.DeviceSet(AsusACPI.PPT_GPUC0, gpu_boost, "PowerLimit C0 (GPU BOOST)");
|
||||||
|
|
||||||
if (Program.acpi.DeviceGet(AsusACPI.PPT_GPUC2) >= 0)
|
if (gpu_temp >= AsusACPI.MinGPUTemp && gpu_temp <= AsusACPI.MaxGPUTemp && Program.acpi.DeviceGet(AsusACPI.PPT_GPUC2) >= 0)
|
||||||
Program.acpi.DeviceSet(AsusACPI.PPT_GPUC2, gpu_temp, "PowerLimit C2");
|
Program.acpi.DeviceSet(AsusACPI.PPT_GPUC2, gpu_temp, "PowerLimit C2 (GPU TEMP)");
|
||||||
|
|
||||||
|
// 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");
|
||||||
|
|
||||||
|
|||||||
@@ -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 " + scheme + ":" + (status == 0 ? "OK" : status));
|
Logger.WriteLine("Power Mode " + activeScheme + " -> " + scheme + ":" + (status == 0 ? "OK" : status));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,7 +37,12 @@
|
|||||||
}
|
}
|
||||||
public override int DPIIncrements()
|
public override int DPIIncrements()
|
||||||
{
|
{
|
||||||
return 100;
|
return 50;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override int MinDPI()
|
||||||
|
{
|
||||||
|
return 50;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool HasDebounceSetting()
|
public override bool HasDebounceSetting()
|
||||||
|
|||||||
247
app/Peripherals/Mouse/Models/StrixImpact.cs
Normal file
247
app/Peripherals/Mouse/Models/StrixImpact.cs
Normal file
@@ -0,0 +1,247 @@
|
|||||||
|
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) };
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -7,6 +7,10 @@
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public StrixImpactII(ushort pid) : base(0x0B05, pid, "mi_00", false)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
public override int DPIProfileCount()
|
public override int DPIProfileCount()
|
||||||
{
|
{
|
||||||
return 4;
|
return 4;
|
||||||
@@ -174,4 +178,19 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class StrixImpactIIElectroPunk : StrixImpactII
|
||||||
|
{
|
||||||
|
|
||||||
|
public StrixImpactIIElectroPunk() : base(0x1956)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public override string GetDisplayName()
|
||||||
|
{
|
||||||
|
return "ROG Strix Impact II Electro Punk";
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -209,12 +209,14 @@ 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)
|
||||||
|
|||||||
@@ -32,7 +32,6 @@ namespace GHelper
|
|||||||
public static ModeControl modeControl = new ModeControl();
|
public static ModeControl modeControl = new ModeControl();
|
||||||
public static GPUModeControl gpuControl = new GPUModeControl(settingsForm);
|
public static GPUModeControl gpuControl = new GPUModeControl(settingsForm);
|
||||||
public static AllyControl allyControl = new AllyControl(settingsForm);
|
public static AllyControl allyControl = new AllyControl(settingsForm);
|
||||||
public static ScreenControl screenControl = new ScreenControl();
|
|
||||||
public static ClamshellModeControl clamshellControl = new ClamshellModeControl();
|
public static ClamshellModeControl clamshellControl = new ClamshellModeControl();
|
||||||
|
|
||||||
public static ToastForm toast = new ToastForm();
|
public static ToastForm toast = new ToastForm();
|
||||||
@@ -166,7 +165,7 @@ namespace GHelper
|
|||||||
if (e.Reason == SessionSwitchReason.SessionLogon || e.Reason == SessionSwitchReason.SessionUnlock)
|
if (e.Reason == SessionSwitchReason.SessionLogon || e.Reason == SessionSwitchReason.SessionUnlock)
|
||||||
{
|
{
|
||||||
Logger.WriteLine("Session:" + e.Reason.ToString());
|
Logger.WriteLine("Session:" + e.Reason.ToString());
|
||||||
screenControl.AutoScreen();
|
ScreenControl.AutoScreen();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -224,12 +223,12 @@ namespace GHelper
|
|||||||
if (!switched)
|
if (!switched)
|
||||||
{
|
{
|
||||||
gpuControl.InitGPUMode();
|
gpuControl.InitGPUMode();
|
||||||
screenControl.AutoScreen();
|
ScreenControl.AutoScreen();
|
||||||
}
|
}
|
||||||
|
|
||||||
BatteryControl.AutoBattery(init);
|
BatteryControl.AutoBattery(init);
|
||||||
|
|
||||||
settingsForm.matrixControl.SetMatrix(true);
|
settingsForm.matrixControl.SetDevice(true);
|
||||||
|
|
||||||
if (AppConfig.IsAlly())
|
if (AppConfig.IsAlly())
|
||||||
{
|
{
|
||||||
@@ -266,7 +265,7 @@ namespace GHelper
|
|||||||
{
|
{
|
||||||
// If helper window is not on top, this just focuses on the app again
|
// If helper window is not on top, this just focuses on the app again
|
||||||
// Pressing the ghelper button again will hide the app
|
// Pressing the ghelper button again will hide the app
|
||||||
if (checkForFocus && !settingsForm.HasAnyFocus(trayClick))
|
if (checkForFocus && !settingsForm.HasAnyFocus(trayClick) && !AppConfig.Is("topmost"))
|
||||||
{
|
{
|
||||||
settingsForm.ShowAll();
|
settingsForm.ShowAll();
|
||||||
}
|
}
|
||||||
|
|||||||
20
app/Properties/Resources.Designer.cs
generated
20
app/Properties/Resources.Designer.cs
generated
@@ -210,6 +210,16 @@ namespace GHelper.Properties {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap icons8_brightness_32 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("icons8-brightness-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>
|
||||||
@@ -590,6 +600,16 @@ 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>
|
||||||
|
|||||||
@@ -166,11 +166,14 @@
|
|||||||
<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>
|
||||||
|
<data name="brightness_down" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\brightness-down.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
<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="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="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>
|
||||||
@@ -187,9 +190,6 @@
|
|||||||
<data name="icons8-laptop-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icons8-laptop-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icons8-laptop-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icons8-laptop-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ally" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\ally.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<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>
|
||||||
@@ -214,6 +214,9 @@
|
|||||||
<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>
|
||||||
@@ -250,8 +253,11 @@
|
|||||||
<data name="dot_ultimate" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="dot_ultimate" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\dot-ultimate.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\dot-ultimate.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="brightness_down" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icons8-heartbeat-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\brightness-down.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icons8-heartbeat-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="ally" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\ally.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="backlight_up" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="backlight_up" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\backlight-up.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\backlight-up.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
@@ -283,8 +289,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="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="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>
|
||||||
@@ -331,7 +337,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-heartbeat-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icons8-search-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icons8-heartbeat-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icons8-search-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
</root>
|
</root>
|
||||||
23
app/Properties/Strings.Designer.cs
generated
23
app/Properties/Strings.Designer.cs
generated
@@ -699,6 +699,15 @@ 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>
|
||||||
@@ -790,9 +799,9 @@ namespace GHelper.Properties {
|
|||||||
return ResourceManager.GetString("EnergySettings", resourceCulture);
|
return ResourceManager.GetString("EnergySettings", resourceCulture);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Export.
|
/// Looks up a localized string similar to Export Profile.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
internal static string Export {
|
internal static string Export {
|
||||||
get {
|
get {
|
||||||
@@ -1024,9 +1033,9 @@ namespace GHelper.Properties {
|
|||||||
return ResourceManager.GetString("ImageRotation", resourceCulture);
|
return ResourceManager.GetString("ImageRotation", resourceCulture);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Import.
|
/// Looks up a localized string similar to Import Profile.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
internal static string Import {
|
internal static string Import {
|
||||||
get {
|
get {
|
||||||
@@ -1294,9 +1303,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 {
|
||||||
@@ -1800,7 +1809,7 @@ namespace GHelper.Properties {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Turn off on battery.
|
/// Looks up a localized string similar to Disable on battery.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
internal static string TurnOffOnBattery {
|
internal static string TurnOffOnBattery {
|
||||||
get {
|
get {
|
||||||
|
|||||||
@@ -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>Restart your device to apply changes</value>
|
<value>Gerät neu starten, um Änderungen anzuwenden</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AlertAPUMemoryRestartTitle" xml:space="preserve">
|
<data name="AlertAPUMemoryRestartTitle" xml:space="preserve">
|
||||||
<value>Restart now?</value>
|
<value>Jetzt neu starten?</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>Contrast</value>
|
<value>Kontrast</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Controller" xml:space="preserve">
|
<data name="Controller" xml:space="preserve">
|
||||||
<value>Controller</value>
|
<value>Controller</value>
|
||||||
@@ -328,7 +328,10 @@
|
|||||||
<value>Standard</value>
|
<value>Standard</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="DisableController" xml:space="preserve">
|
<data name="DisableController" xml:space="preserve">
|
||||||
<value>Disable Controller</value>
|
<value>Controller deaktivieren</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>
|
||||||
@@ -349,7 +352,7 @@
|
|||||||
<value>Eco</value>
|
<value>Eco</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="EnableGPUOnShutdown" xml:space="preserve">
|
<data name="EnableGPUOnShutdown" xml:space="preserve">
|
||||||
<value>Enable GPU on shutdown (prevents issue with Eco mode)</value>
|
<value>Aktiviere GPU beim Herunterfahren (verhindert Problem im Eco-Modus)</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.
|
||||||
@@ -363,7 +366,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>Export Profile</value>
|
<value>Profil exportieren</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Extra" xml:space="preserve">
|
<data name="Extra" xml:space="preserve">
|
||||||
<value>Extra</value>
|
<value>Extra</value>
|
||||||
@@ -438,10 +441,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>Image Rotation</value>
|
<value>Bilddrehung</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Import" xml:space="preserve">
|
<data name="Import" xml:space="preserve">
|
||||||
<value>Import Profile</value>
|
<value>Profil importieren</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="KeyBindings" xml:space="preserve">
|
<data name="KeyBindings" xml:space="preserve">
|
||||||
<value>Tastenbelegung</value>
|
<value>Tastenbelegung</value>
|
||||||
@@ -531,7 +534,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 failed. Selected file is not a valid mouse profile or corrutpted.</value>
|
<value>Import fehlgeschlagen. Die ausgewählte Datei ist kein gültiges Mausprofil oder beschädigt.</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>
|
||||||
@@ -618,7 +621,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>Reset</value>
|
<value>Zurücksetzen</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>
|
||||||
@@ -636,7 +639,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>Scaling Quality</value>
|
<value>Skalierungsqualität</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>
|
||||||
@@ -717,7 +720,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>Vibration Strength</value>
|
<value>Vibrationsstärke</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>
|
||||||
|
|||||||
@@ -145,7 +145,7 @@
|
|||||||
<value>¿Reiniciar ahora?</value>
|
<value>¿Reiniciar ahora?</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AllyController" xml:space="preserve">
|
<data name="AllyController" xml:space="preserve">
|
||||||
<value>Ally Controller</value>
|
<value>Mando Ally</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AnimationSpeed" xml:space="preserve">
|
<data name="AnimationSpeed" xml:space="preserve">
|
||||||
<value>Velocidad</value>
|
<value>Velocidad</value>
|
||||||
@@ -274,13 +274,13 @@
|
|||||||
<value>Cargar una vez al 100%</value>
|
<value>Cargar una vez al 100%</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Binding" xml:space="preserve">
|
<data name="Binding" xml:space="preserve">
|
||||||
<value>Binding</value>
|
<value>Emparejado</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BindingPrimary" xml:space="preserve">
|
<data name="BindingPrimary" xml:space="preserve">
|
||||||
<value>Primary</value>
|
<value>Primario</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BindingSecondary" xml:space="preserve">
|
<data name="BindingSecondary" xml:space="preserve">
|
||||||
<value>Secondary</value>
|
<value>Secundario</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BiosAndDriverUpdates" xml:space="preserve">
|
<data name="BiosAndDriverUpdates" xml:space="preserve">
|
||||||
<value>Actualizaciones de BIOS y Drivers</value>
|
<value>Actualizaciones de BIOS y Drivers</value>
|
||||||
@@ -310,10 +310,10 @@
|
|||||||
<value>Color</value>
|
<value>Color</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Contrast" xml:space="preserve">
|
<data name="Contrast" xml:space="preserve">
|
||||||
<value>Contrast</value>
|
<value>Contraste</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Controller" xml:space="preserve">
|
<data name="Controller" xml:space="preserve">
|
||||||
<value>Controller</value>
|
<value>Mando</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="CPUBoost" xml:space="preserve">
|
<data name="CPUBoost" xml:space="preserve">
|
||||||
<value>CPU Boost</value>
|
<value>CPU Boost</value>
|
||||||
@@ -328,7 +328,10 @@
|
|||||||
<value>Por defecto</value>
|
<value>Por defecto</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="DisableController" xml:space="preserve">
|
<data name="DisableController" xml:space="preserve">
|
||||||
<value>Disable Controller</value>
|
<value>Deshabilitar mando</value>
|
||||||
|
</data>
|
||||||
|
<data name="DisableOnLidClose" xml:space="preserve">
|
||||||
|
<value>Desactivar al cerrar la tapa</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="DisableOverdrive" xml:space="preserve">
|
<data name="DisableOverdrive" xml:space="preserve">
|
||||||
<value>Desactivar Overdrive</value>
|
<value>Desactivar Overdrive</value>
|
||||||
@@ -349,7 +352,7 @@
|
|||||||
<value>Eco</value>
|
<value>Eco</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="EnableGPUOnShutdown" xml:space="preserve">
|
<data name="EnableGPUOnShutdown" xml:space="preserve">
|
||||||
<value>Enable GPU on shutdown (prevents issue with Eco mode)</value>
|
<value>Habilitar GPU al apagar (evita problemas con el modo Eco)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="EnableOptimusText" xml:space="preserve">
|
<data name="EnableOptimusText" xml:space="preserve">
|
||||||
<value>Deshabilitar la dGPU cambiando a modo Eco mientras el Modo de Pantalla en el Panel de Control de NVIDIA no está configurado en Optimus puede causar problemas con el control del brillo hasta después del próximo reinicio.
|
<value>Deshabilitar la dGPU cambiando a modo Eco mientras el Modo de Pantalla en el Panel de Control de NVIDIA no está configurado en Optimus puede causar problemas con el control del brillo hasta después del próximo reinicio.
|
||||||
@@ -363,7 +366,7 @@
|
|||||||
<value>Ajustes de energía</value>
|
<value>Ajustes de energía</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Export" xml:space="preserve">
|
<data name="Export" xml:space="preserve">
|
||||||
<value>Export Profile</value>
|
<value>Exportar perfil</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Extra" xml:space="preserve">
|
<data name="Extra" xml:space="preserve">
|
||||||
<value>Adicional</value>
|
<value>Adicional</value>
|
||||||
@@ -438,10 +441,10 @@
|
|||||||
<value>Alto</value>
|
<value>Alto</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ImageRotation" xml:space="preserve">
|
<data name="ImageRotation" xml:space="preserve">
|
||||||
<value>Image Rotation</value>
|
<value>Rotación de imagen</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Import" xml:space="preserve">
|
<data name="Import" xml:space="preserve">
|
||||||
<value>Import Profile</value>
|
<value>Importar perfil</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="KeyBindings" xml:space="preserve">
|
<data name="KeyBindings" xml:space="preserve">
|
||||||
<value>Atajos de teclado</value>
|
<value>Atajos de teclado</value>
|
||||||
@@ -477,10 +480,10 @@
|
|||||||
<value>Bajo</value>
|
<value>Bajo</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="LSDeadzones" xml:space="preserve">
|
<data name="LSDeadzones" xml:space="preserve">
|
||||||
<value>Left Stick Deadzones</value>
|
<value>Punto muerto stick izquierdo</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="LTDeadzones" xml:space="preserve">
|
<data name="LTDeadzones" xml:space="preserve">
|
||||||
<value>Left Trigger Deadzones</value>
|
<value>Punto muerto gatillo izquierdo</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MatrixAudio" xml:space="preserve">
|
<data name="MatrixAudio" xml:space="preserve">
|
||||||
<value>Visualizador de audio</value>
|
<value>Visualizador de audio</value>
|
||||||
@@ -531,7 +534,7 @@
|
|||||||
<value>Respuesta del botón</value>
|
<value>Respuesta del botón</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MouseImportFailed" xml:space="preserve">
|
<data name="MouseImportFailed" xml:space="preserve">
|
||||||
<value>Import failed. Selected file is not a valid mouse profile or corrutpted.</value>
|
<value>Importación fallida. El archivo seleccionado no es un perfil válido o está corrupto.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MouseLiftOffDistance" xml:space="preserve">
|
<data name="MouseLiftOffDistance" xml:space="preserve">
|
||||||
<value>Distancia de despegue (LOD)</value>
|
<value>Distancia de despegue (LOD)</value>
|
||||||
@@ -618,7 +621,7 @@
|
|||||||
<value>Quitar</value>
|
<value>Quitar</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Reset" xml:space="preserve">
|
<data name="Reset" xml:space="preserve">
|
||||||
<value>Reset</value>
|
<value>Reiniciar</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="RestartGPU" xml:space="preserve">
|
<data name="RestartGPU" xml:space="preserve">
|
||||||
<value>Algo está usando la dGPU e impide el modo Eco. ¿Reiniciar dGPU en el administrador de dispositivos? (Proceda bajo su propio riesgo)</value>
|
<value>Algo está usando la dGPU e impide el modo Eco. ¿Reiniciar dGPU en el administrador de dispositivos? (Proceda bajo su propio riesgo)</value>
|
||||||
@@ -627,16 +630,16 @@
|
|||||||
<value>RPM</value>
|
<value>RPM</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="RSDeadzones" xml:space="preserve">
|
<data name="RSDeadzones" xml:space="preserve">
|
||||||
<value>Right Stick Deadzones</value>
|
<value>Punto muerto stick derecho</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="RTDeadzones" xml:space="preserve">
|
<data name="RTDeadzones" xml:space="preserve">
|
||||||
<value>Right Trigger Deadzones</value>
|
<value>Punto muerto gatillo derecho</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="RunOnStartup" xml:space="preserve">
|
<data name="RunOnStartup" xml:space="preserve">
|
||||||
<value>Ejecutar al inicio</value>
|
<value>Ejecutar al inicio</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ScalingQuality" xml:space="preserve">
|
<data name="ScalingQuality" xml:space="preserve">
|
||||||
<value>Scaling Quality</value>
|
<value>Calidad del escalado</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ScreenPadDown" xml:space="preserve">
|
<data name="ScreenPadDown" xml:space="preserve">
|
||||||
<value>Bajar brillo ScreenPad</value>
|
<value>Bajar brillo ScreenPad</value>
|
||||||
@@ -717,7 +720,7 @@
|
|||||||
<value>Versión</value>
|
<value>Versión</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="VibrationStrength" xml:space="preserve">
|
<data name="VibrationStrength" xml:space="preserve">
|
||||||
<value>Vibration Strength</value>
|
<value>Intensidad de vibración</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="VolumeDown" xml:space="preserve">
|
<data name="VolumeDown" xml:space="preserve">
|
||||||
<value>Bajar volumen</value>
|
<value>Bajar volumen</value>
|
||||||
|
|||||||
@@ -199,7 +199,7 @@
|
|||||||
<value>Rapide</value>
|
<value>Rapide</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AuraLightingMode" xml:space="preserve">
|
<data name="AuraLightingMode" xml:space="preserve">
|
||||||
<value>Mode d’Éclairage</value>
|
<value>Effets d'éclairage</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AuraNormal" xml:space="preserve">
|
<data name="AuraNormal" xml:space="preserve">
|
||||||
<value>Normal</value>
|
<value>Normal</value>
|
||||||
@@ -235,7 +235,7 @@
|
|||||||
<value>Molette</value>
|
<value>Molette</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AuraZoneUnderglow" xml:space="preserve">
|
<data name="AuraZoneUnderglow" xml:space="preserve">
|
||||||
<value>Underglow</value>
|
<value>Led ROG</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AutoApply" xml:space="preserve">
|
<data name="AutoApply" xml:space="preserve">
|
||||||
<value>Appliquer automatiquement</value>
|
<value>Appliquer automatiquement</value>
|
||||||
@@ -330,6 +330,9 @@
|
|||||||
<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>
|
||||||
@@ -363,7 +366,7 @@ Voulez-vous continuer ?</value>
|
|||||||
<value>Paramètres d'énergie</value>
|
<value>Paramètres d'énergie</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Export" xml:space="preserve">
|
<data name="Export" xml:space="preserve">
|
||||||
<value>Exporter un profil</value>
|
<value>Exporter profil</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Extra" xml:space="preserve">
|
<data name="Extra" xml:space="preserve">
|
||||||
<value>+ d'options</value>
|
<value>+ d'options</value>
|
||||||
@@ -441,7 +444,7 @@ Voulez-vous continuer ?</value>
|
|||||||
<value>Rotation de l'image</value>
|
<value>Rotation de l'image</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Import" xml:space="preserve">
|
<data name="Import" xml:space="preserve">
|
||||||
<value>Importer un profil</value>
|
<value>Importer profil</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="KeyBindings" xml:space="preserve">
|
<data name="KeyBindings" xml:space="preserve">
|
||||||
<value>Raccourcis clavier</value>
|
<value>Raccourcis clavier</value>
|
||||||
@@ -456,10 +459,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 de l'ordinateur</value>
|
<value>Clavier</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="LaptopScreen" xml:space="preserve">
|
<data name="LaptopScreen" xml:space="preserve">
|
||||||
<value>Écran de l'ordinateur </value>
|
<value>Écran</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Lid" xml:space="preserve">
|
<data name="Lid" xml:space="preserve">
|
||||||
<value>Capot</value>
|
<value>Capot</value>
|
||||||
@@ -522,7 +525,7 @@ Voulez-vous continuer ?</value>
|
|||||||
<value>Minutes</value>
|
<value>Minutes</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MouseAngleSnapping" xml:space="preserve">
|
<data name="MouseAngleSnapping" xml:space="preserve">
|
||||||
<value>Angle Snapping</value>
|
<value>Correction d'angle</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MouseAutoPowerOff" xml:space="preserve">
|
<data name="MouseAutoPowerOff" xml:space="preserve">
|
||||||
<value>Arrêt automatique après</value>
|
<value>Arrêt automatique après</value>
|
||||||
@@ -534,7 +537,7 @@ Voulez-vous continuer ?</value>
|
|||||||
<value>Échec de l'importation. Le fichier sélectionné n'est pas un profil de souris valide ou corrompu.</value>
|
<value>Échec de l'importation. Le fichier sélectionné n'est pas un profil de souris valide ou corrompu.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MouseLiftOffDistance" xml:space="preserve">
|
<data name="MouseLiftOffDistance" xml:space="preserve">
|
||||||
<value>Lift Off Distance</value>
|
<value>Hauteur de détection</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MouseLowBatteryWarning" xml:space="preserve">
|
<data name="MouseLowBatteryWarning" xml:space="preserve">
|
||||||
<value>Avertissement de batterie faible à</value>
|
<value>Avertissement de batterie faible à</value>
|
||||||
@@ -588,7 +591,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 Performance</value>
|
<value>Mode</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>
|
||||||
|
|||||||
@@ -330,6 +330,9 @@
|
|||||||
<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>
|
||||||
|
|||||||
@@ -330,6 +330,9 @@
|
|||||||
<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>
|
||||||
|
|||||||
@@ -330,6 +330,9 @@
|
|||||||
<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>
|
||||||
|
|||||||
@@ -330,6 +330,9 @@
|
|||||||
<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>
|
||||||
|
|||||||
@@ -330,6 +330,9 @@
|
|||||||
<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>
|
||||||
|
|||||||
@@ -330,6 +330,9 @@
|
|||||||
<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>
|
||||||
|
|||||||
@@ -330,6 +330,9 @@
|
|||||||
<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>
|
||||||
|
|||||||
@@ -330,6 +330,9 @@
|
|||||||
<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>
|
||||||
|
|||||||
@@ -330,6 +330,9 @@
|
|||||||
<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>
|
||||||
@@ -699,7 +702,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>Turn off on battery</value>
|
<value>Disable 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>
|
||||||
|
|||||||
@@ -330,6 +330,9 @@
|
|||||||
<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>
|
||||||
|
|||||||
@@ -330,6 +330,9 @@
|
|||||||
<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>
|
||||||
|
|||||||
@@ -330,6 +330,9 @@
|
|||||||
<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>
|
||||||
@@ -699,7 +702,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>
|
||||||
|
|||||||
@@ -330,6 +330,9 @@
|
|||||||
<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>
|
||||||
|
|||||||
@@ -330,6 +330,9 @@
|
|||||||
<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>
|
||||||
|
|||||||
@@ -145,7 +145,7 @@
|
|||||||
<value>現在重新啟動嗎?</value>
|
<value>現在重新啟動嗎?</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AllyController" xml:space="preserve">
|
<data name="AllyController" xml:space="preserve">
|
||||||
<value>Ally Controller</value>
|
<value>Ally控制器</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>Primary</value>
|
<value>主要</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BindingSecondary" xml:space="preserve">
|
<data name="BindingSecondary" xml:space="preserve">
|
||||||
<value>Secondary</value>
|
<value>次要</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>Controller</value>
|
<value>控制器</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="CPUBoost" xml:space="preserve">
|
<data name="CPUBoost" xml:space="preserve">
|
||||||
<value>CPU 加速</value>
|
<value>CPU 加速</value>
|
||||||
@@ -328,7 +328,10 @@
|
|||||||
<value>預設</value>
|
<value>預設</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="DisableController" xml:space="preserve">
|
<data name="DisableController" xml:space="preserve">
|
||||||
<value>Disable Controller</value>
|
<value>停用控制器</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>
|
||||||
@@ -363,7 +366,7 @@
|
|||||||
<value>電源設定</value>
|
<value>電源設定</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Export" xml:space="preserve">
|
<data name="Export" xml:space="preserve">
|
||||||
<value>Export Profile</value>
|
<value>匯出設定檔</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Extra" xml:space="preserve">
|
<data name="Extra" xml:space="preserve">
|
||||||
<value>更多</value>
|
<value>更多</value>
|
||||||
@@ -441,7 +444,7 @@
|
|||||||
<value>Image Rotation</value>
|
<value>Image Rotation</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Import" xml:space="preserve">
|
<data name="Import" xml:space="preserve">
|
||||||
<value>Import Profile</value>
|
<value>匯入設定檔</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="KeyBindings" xml:space="preserve">
|
<data name="KeyBindings" xml:space="preserve">
|
||||||
<value>按鍵綁定</value>
|
<value>按鍵綁定</value>
|
||||||
@@ -531,7 +534,7 @@
|
|||||||
<value>按鍵回應</value>
|
<value>按鍵回應</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MouseImportFailed" xml:space="preserve">
|
<data name="MouseImportFailed" xml:space="preserve">
|
||||||
<value>Import failed. Selected file is not a valid mouse profile or corrutpted.</value>
|
<value>匯入失敗,所選檔案並非有效的滑鼠設定檔或該檔已毀損</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MouseLiftOffDistance" xml:space="preserve">
|
<data name="MouseLiftOffDistance" xml:space="preserve">
|
||||||
<value>響應高度(LOD)</value>
|
<value>響應高度(LOD)</value>
|
||||||
@@ -618,7 +621,7 @@
|
|||||||
<value>退出</value>
|
<value>退出</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Reset" xml:space="preserve">
|
<data name="Reset" xml:space="preserve">
|
||||||
<value>Reset</value>
|
<value>重設</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="RestartGPU" xml:space="preserve">
|
<data name="RestartGPU" xml:space="preserve">
|
||||||
<value>有其他程式正在使用獨顯導致無法切換至節能模式. 是否讓G-Helper重新啟動獨顯? * 請自行評估風險</value>
|
<value>有其他程式正在使用獨顯導致無法切換至節能模式. 是否讓G-Helper重新啟動獨顯? * 請自行評估風險</value>
|
||||||
|
|||||||
BIN
app/Resources/icons8-brightness-32.png
Normal file
BIN
app/Resources/icons8-brightness-32.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 420 B |
BIN
app/Resources/icons8-search-32.png
Normal file
BIN
app/Resources/icons8-search-32.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 448 B |
@@ -7,14 +7,13 @@
|
|||||||
using GHelper.Helpers;
|
using GHelper.Helpers;
|
||||||
using System.Management;
|
using System.Management;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Reflection;
|
|
||||||
|
|
||||||
namespace Ryzen
|
namespace Ryzen
|
||||||
{
|
{
|
||||||
internal class RyzenControl
|
internal class RyzenControl
|
||||||
{
|
{
|
||||||
|
|
||||||
public static int MinCPUUV => AppConfig.Get("min_uv", -30);
|
public static int MinCPUUV => AppConfig.Get("min_uv", -40);
|
||||||
public const int MaxCPUUV = 0;
|
public const int MaxCPUUV = 0;
|
||||||
|
|
||||||
public const int MinIGPUUV = -20;
|
public const int MinIGPUUV = -20;
|
||||||
@@ -23,7 +22,6 @@ namespace Ryzen
|
|||||||
public static int MinTemp => AppConfig.Get("min_temp", 75);
|
public static int MinTemp => AppConfig.Get("min_temp", 75);
|
||||||
public const int MaxTemp = 98;
|
public const int MaxTemp = 98;
|
||||||
|
|
||||||
public static string[] FAM = { "RAVEN", "PICASSO", "DALI", "RENOIR/LUCIENNE", "MATISSE", "VANGOGH", "VERMEER", "CEZANNE/BARCELO", "REMBRANDT", "PHOENIX", "RAPHAEL/DRAGON RANGE" };
|
|
||||||
public static int FAMID { get; protected set; }
|
public static int FAMID { get; protected set; }
|
||||||
|
|
||||||
public static string CPUModel = "";
|
public static string CPUModel = "";
|
||||||
@@ -42,6 +40,7 @@ namespace Ryzen
|
|||||||
//PHEONIX - 9
|
//PHEONIX - 9
|
||||||
//RAPHAEL/DRAGON RANGE - 10
|
//RAPHAEL/DRAGON RANGE - 10
|
||||||
//MENDOCINO - 11
|
//MENDOCINO - 11
|
||||||
|
//HAWKPOINT - 12
|
||||||
|
|
||||||
public static void Init()
|
public static void Init()
|
||||||
{
|
{
|
||||||
@@ -108,7 +107,7 @@ namespace Ryzen
|
|||||||
FAMID = 8; //REMBRANDT
|
FAMID = 8; //REMBRANDT
|
||||||
}
|
}
|
||||||
|
|
||||||
if (CPUModel.Contains("Model " + Convert.ToString(116)))
|
if (CPUModel.Contains("Model " + Convert.ToString(116)) || CPUModel.Contains("Model " + Convert.ToString(120)))
|
||||||
{
|
{
|
||||||
FAMID = 9; //PHEONIX
|
FAMID = 9; //PHEONIX
|
||||||
}
|
}
|
||||||
@@ -123,6 +122,11 @@ namespace Ryzen
|
|||||||
FAMID = 11; //MENDOCINO
|
FAMID = 11; //MENDOCINO
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (CPUModel.Contains("Model " + Convert.ToString(117)))
|
||||||
|
{
|
||||||
|
FAMID = 12; //HAWKPOINT
|
||||||
|
}
|
||||||
|
|
||||||
Logger.WriteLine($"CPU: {FAMID} - {CPUName} - {CPUModel}");
|
Logger.WriteLine($"CPU: {FAMID} - {CPUName} - {CPUModel}");
|
||||||
|
|
||||||
SetAddresses();
|
SetAddresses();
|
||||||
@@ -224,7 +228,7 @@ namespace Ryzen
|
|||||||
Smu.PSMU_ADDR_RSP = 0x3B10A80;
|
Smu.PSMU_ADDR_RSP = 0x3B10A80;
|
||||||
Smu.PSMU_ADDR_ARG = 0x3B10A88;
|
Smu.PSMU_ADDR_ARG = 0x3B10A88;
|
||||||
}
|
}
|
||||||
else if (FAMID == 5 || FAMID == 8 || FAMID == 9 || FAMID == 11)
|
else if (FAMID == 5 || FAMID == 8 || FAMID == 9 || FAMID == 11 || FAMID == 12)
|
||||||
{
|
{
|
||||||
Smu.MP1_ADDR_MSG = 0x3B10528;
|
Smu.MP1_ADDR_MSG = 0x3B10528;
|
||||||
Smu.MP1_ADDR_RSP = 0x3B10578;
|
Smu.MP1_ADDR_RSP = 0x3B10578;
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
302
app/Settings.Designer.cs
generated
302
app/Settings.Designer.cs
generated
@@ -31,14 +31,17 @@ namespace GHelper
|
|||||||
private void InitializeComponent()
|
private void InitializeComponent()
|
||||||
{
|
{
|
||||||
panelMatrix = new Panel();
|
panelMatrix = new Panel();
|
||||||
|
panelMatrixAuto = new Panel();
|
||||||
|
checkMatrixLid = new CheckBox();
|
||||||
|
checkMatrix = new CheckBox();
|
||||||
tableLayoutMatrix = new TableLayoutPanel();
|
tableLayoutMatrix = new TableLayoutPanel();
|
||||||
comboMatrix = new RComboBox();
|
comboMatrix = new RComboBox();
|
||||||
comboMatrixRunning = new RComboBox();
|
comboMatrixRunning = new RComboBox();
|
||||||
|
comboInterval = new RComboBox();
|
||||||
buttonMatrix = new RButton();
|
buttonMatrix = new RButton();
|
||||||
panelMatrixTitle = new Panel();
|
panelMatrixTitle = new Panel();
|
||||||
pictureMatrix = new PictureBox();
|
pictureMatrix = new PictureBox();
|
||||||
labelMatrix = new Label();
|
labelMatrix = new Label();
|
||||||
checkMatrix = new CheckBox();
|
|
||||||
panelBattery = new Panel();
|
panelBattery = new Panel();
|
||||||
buttonBatteryFull = new RButton();
|
buttonBatteryFull = new RButton();
|
||||||
sliderBattery = new Slider();
|
sliderBattery = new Slider();
|
||||||
@@ -65,6 +68,7 @@ namespace GHelper
|
|||||||
panelGPU = new Panel();
|
panelGPU = new Panel();
|
||||||
labelTipGPU = new Label();
|
labelTipGPU = new Label();
|
||||||
tableAMD = new TableLayoutPanel();
|
tableAMD = new TableLayoutPanel();
|
||||||
|
buttonOverlay = new RButton();
|
||||||
buttonFPS = new RButton();
|
buttonFPS = new RButton();
|
||||||
tableGPU = new TableLayoutPanel();
|
tableGPU = new TableLayoutPanel();
|
||||||
buttonStopGPU = new RButton();
|
buttonStopGPU = new RButton();
|
||||||
@@ -118,8 +122,17 @@ namespace GHelper
|
|||||||
panelAllyTitle = new Panel();
|
panelAllyTitle = new Panel();
|
||||||
pictureAlly = new PictureBox();
|
pictureAlly = new PictureBox();
|
||||||
labelAlly = new Label();
|
labelAlly = new Label();
|
||||||
buttonOverlay = new RButton();
|
panelGamma = new Panel();
|
||||||
|
tableVisual = new TableLayoutPanel();
|
||||||
|
comboVisual = new RComboBox();
|
||||||
|
comboGamut = new RComboBox();
|
||||||
|
sliderGamma = new Slider();
|
||||||
|
panelGammaTitle = new Panel();
|
||||||
|
labelGamma = new Label();
|
||||||
|
pictureGamma = new PictureBox();
|
||||||
|
labelGammaTitle = new Label();
|
||||||
panelMatrix.SuspendLayout();
|
panelMatrix.SuspendLayout();
|
||||||
|
panelMatrixAuto.SuspendLayout();
|
||||||
tableLayoutMatrix.SuspendLayout();
|
tableLayoutMatrix.SuspendLayout();
|
||||||
panelMatrixTitle.SuspendLayout();
|
panelMatrixTitle.SuspendLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)pictureMatrix).BeginInit();
|
((System.ComponentModel.ISupportInitialize)pictureMatrix).BeginInit();
|
||||||
@@ -157,6 +170,10 @@ namespace GHelper
|
|||||||
tableLayoutAlly.SuspendLayout();
|
tableLayoutAlly.SuspendLayout();
|
||||||
panelAllyTitle.SuspendLayout();
|
panelAllyTitle.SuspendLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)pictureAlly).BeginInit();
|
((System.ComponentModel.ISupportInitialize)pictureAlly).BeginInit();
|
||||||
|
panelGamma.SuspendLayout();
|
||||||
|
tableVisual.SuspendLayout();
|
||||||
|
panelGammaTitle.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)pictureGamma).BeginInit();
|
||||||
SuspendLayout();
|
SuspendLayout();
|
||||||
//
|
//
|
||||||
// panelMatrix
|
// panelMatrix
|
||||||
@@ -164,18 +181,58 @@ namespace GHelper
|
|||||||
panelMatrix.AccessibleRole = AccessibleRole.Grouping;
|
panelMatrix.AccessibleRole = AccessibleRole.Grouping;
|
||||||
panelMatrix.AutoSize = true;
|
panelMatrix.AutoSize = true;
|
||||||
panelMatrix.AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
panelMatrix.AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
||||||
|
panelMatrix.Controls.Add(panelMatrixAuto);
|
||||||
panelMatrix.Controls.Add(tableLayoutMatrix);
|
panelMatrix.Controls.Add(tableLayoutMatrix);
|
||||||
panelMatrix.Controls.Add(panelMatrixTitle);
|
panelMatrix.Controls.Add(panelMatrixTitle);
|
||||||
panelMatrix.Controls.Add(checkMatrix);
|
|
||||||
panelMatrix.Dock = DockStyle.Top;
|
panelMatrix.Dock = DockStyle.Top;
|
||||||
panelMatrix.Location = new Point(11, 827);
|
panelMatrix.Location = new Point(11, 1000);
|
||||||
panelMatrix.Margin = new Padding(0);
|
panelMatrix.Margin = new Padding(0);
|
||||||
panelMatrix.Name = "panelMatrix";
|
panelMatrix.Name = "panelMatrix";
|
||||||
panelMatrix.Padding = new Padding(20, 20, 20, 10);
|
panelMatrix.Padding = new Padding(20, 20, 20, 10);
|
||||||
panelMatrix.Size = new Size(827, 176);
|
panelMatrix.Size = new Size(827, 194);
|
||||||
panelMatrix.TabIndex = 3;
|
panelMatrix.TabIndex = 3;
|
||||||
panelMatrix.TabStop = true;
|
panelMatrix.TabStop = true;
|
||||||
//
|
//
|
||||||
|
// panelMatrixAuto
|
||||||
|
//
|
||||||
|
panelMatrixAuto.Controls.Add(checkMatrixLid);
|
||||||
|
panelMatrixAuto.Controls.Add(checkMatrix);
|
||||||
|
panelMatrixAuto.Dock = DockStyle.Top;
|
||||||
|
panelMatrixAuto.Location = new Point(20, 144);
|
||||||
|
panelMatrixAuto.Margin = new Padding(4);
|
||||||
|
panelMatrixAuto.Name = "panelMatrixAuto";
|
||||||
|
panelMatrixAuto.Padding = new Padding(5, 0, 0, 0);
|
||||||
|
panelMatrixAuto.Size = new Size(787, 40);
|
||||||
|
panelMatrixAuto.TabIndex = 47;
|
||||||
|
//
|
||||||
|
// checkMatrixLid
|
||||||
|
//
|
||||||
|
checkMatrixLid.AutoSize = true;
|
||||||
|
checkMatrixLid.Dock = DockStyle.Left;
|
||||||
|
checkMatrixLid.ForeColor = SystemColors.GrayText;
|
||||||
|
checkMatrixLid.Location = new Point(256, 0);
|
||||||
|
checkMatrixLid.Margin = new Padding(8, 4, 8, 4);
|
||||||
|
checkMatrixLid.Name = "checkMatrixLid";
|
||||||
|
checkMatrixLid.Size = new Size(253, 40);
|
||||||
|
checkMatrixLid.TabIndex = 46;
|
||||||
|
checkMatrixLid.Text = "Disable on lid close";
|
||||||
|
checkMatrixLid.UseVisualStyleBackColor = true;
|
||||||
|
checkMatrixLid.Visible = false;
|
||||||
|
//
|
||||||
|
// checkMatrix
|
||||||
|
//
|
||||||
|
checkMatrix.AutoSize = true;
|
||||||
|
checkMatrix.Dock = DockStyle.Left;
|
||||||
|
checkMatrix.ForeColor = SystemColors.GrayText;
|
||||||
|
checkMatrix.Location = new Point(5, 0);
|
||||||
|
checkMatrix.Margin = new Padding(8, 4, 8, 4);
|
||||||
|
checkMatrix.Name = "checkMatrix";
|
||||||
|
checkMatrix.Padding = new Padding(0, 0, 10, 0);
|
||||||
|
checkMatrix.Size = new Size(251, 40);
|
||||||
|
checkMatrix.TabIndex = 19;
|
||||||
|
checkMatrix.Text = Properties.Strings.TurnOffOnBattery;
|
||||||
|
checkMatrix.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
// tableLayoutMatrix
|
// tableLayoutMatrix
|
||||||
//
|
//
|
||||||
tableLayoutMatrix.AutoSize = true;
|
tableLayoutMatrix.AutoSize = true;
|
||||||
@@ -187,6 +244,7 @@ namespace GHelper
|
|||||||
tableLayoutMatrix.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 25F));
|
tableLayoutMatrix.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 25F));
|
||||||
tableLayoutMatrix.Controls.Add(comboMatrix, 0, 0);
|
tableLayoutMatrix.Controls.Add(comboMatrix, 0, 0);
|
||||||
tableLayoutMatrix.Controls.Add(comboMatrixRunning, 1, 0);
|
tableLayoutMatrix.Controls.Add(comboMatrixRunning, 1, 0);
|
||||||
|
tableLayoutMatrix.Controls.Add(comboInterval, 2, 0);
|
||||||
tableLayoutMatrix.Controls.Add(buttonMatrix, 2, 0);
|
tableLayoutMatrix.Controls.Add(buttonMatrix, 2, 0);
|
||||||
tableLayoutMatrix.Dock = DockStyle.Top;
|
tableLayoutMatrix.Dock = DockStyle.Top;
|
||||||
tableLayoutMatrix.Location = new Point(20, 60);
|
tableLayoutMatrix.Location = new Point(20, 60);
|
||||||
@@ -194,7 +252,8 @@ namespace GHelper
|
|||||||
tableLayoutMatrix.Name = "tableLayoutMatrix";
|
tableLayoutMatrix.Name = "tableLayoutMatrix";
|
||||||
tableLayoutMatrix.RowCount = 1;
|
tableLayoutMatrix.RowCount = 1;
|
||||||
tableLayoutMatrix.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
|
tableLayoutMatrix.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
|
||||||
tableLayoutMatrix.Size = new Size(787, 64);
|
tableLayoutMatrix.RowStyles.Add(new RowStyle(SizeType.Absolute, 20F));
|
||||||
|
tableLayoutMatrix.Size = new Size(787, 84);
|
||||||
tableLayoutMatrix.TabIndex = 43;
|
tableLayoutMatrix.TabIndex = 43;
|
||||||
//
|
//
|
||||||
// comboMatrix
|
// comboMatrix
|
||||||
@@ -227,6 +286,21 @@ namespace GHelper
|
|||||||
comboMatrixRunning.Size = new Size(248, 40);
|
comboMatrixRunning.Size = new Size(248, 40);
|
||||||
comboMatrixRunning.TabIndex = 17;
|
comboMatrixRunning.TabIndex = 17;
|
||||||
//
|
//
|
||||||
|
// comboInterval
|
||||||
|
//
|
||||||
|
comboInterval.BorderColor = Color.White;
|
||||||
|
comboInterval.ButtonColor = Color.FromArgb(255, 255, 255);
|
||||||
|
comboInterval.Dock = DockStyle.Top;
|
||||||
|
comboInterval.Font = new Font("Segoe UI", 9F, FontStyle.Regular, GraphicsUnit.Point);
|
||||||
|
comboInterval.FormattingEnabled = true;
|
||||||
|
comboInterval.ItemHeight = 32;
|
||||||
|
comboInterval.Location = new Point(7, 75);
|
||||||
|
comboInterval.Margin = new Padding(7, 11, 7, 8);
|
||||||
|
comboInterval.Name = "comboInterval";
|
||||||
|
comboInterval.Size = new Size(248, 40);
|
||||||
|
comboInterval.TabIndex = 19;
|
||||||
|
comboInterval.Visible = false;
|
||||||
|
//
|
||||||
// buttonMatrix
|
// buttonMatrix
|
||||||
//
|
//
|
||||||
buttonMatrix.Activated = false;
|
buttonMatrix.Activated = false;
|
||||||
@@ -278,18 +352,6 @@ namespace GHelper
|
|||||||
labelMatrix.TabIndex = 40;
|
labelMatrix.TabIndex = 40;
|
||||||
labelMatrix.Text = "Anime Matrix";
|
labelMatrix.Text = "Anime Matrix";
|
||||||
//
|
//
|
||||||
// checkMatrix
|
|
||||||
//
|
|
||||||
checkMatrix.AutoSize = true;
|
|
||||||
checkMatrix.ForeColor = SystemColors.GrayText;
|
|
||||||
checkMatrix.Location = new Point(27, 126);
|
|
||||||
checkMatrix.Margin = new Padding(8, 4, 8, 4);
|
|
||||||
checkMatrix.Name = "checkMatrix";
|
|
||||||
checkMatrix.Size = new Size(249, 36);
|
|
||||||
checkMatrix.TabIndex = 19;
|
|
||||||
checkMatrix.Text = Properties.Strings.TurnOffOnBattery;
|
|
||||||
checkMatrix.UseVisualStyleBackColor = true;
|
|
||||||
//
|
|
||||||
// panelBattery
|
// panelBattery
|
||||||
//
|
//
|
||||||
panelBattery.AutoSize = true;
|
panelBattery.AutoSize = true;
|
||||||
@@ -298,7 +360,7 @@ namespace GHelper
|
|||||||
panelBattery.Controls.Add(sliderBattery);
|
panelBattery.Controls.Add(sliderBattery);
|
||||||
panelBattery.Controls.Add(panelBatteryTitle);
|
panelBattery.Controls.Add(panelBatteryTitle);
|
||||||
panelBattery.Dock = DockStyle.Top;
|
panelBattery.Dock = DockStyle.Top;
|
||||||
panelBattery.Location = new Point(11, 1485);
|
panelBattery.Location = new Point(11, 1676);
|
||||||
panelBattery.Margin = new Padding(0);
|
panelBattery.Margin = new Padding(0);
|
||||||
panelBattery.Name = "panelBattery";
|
panelBattery.Name = "panelBattery";
|
||||||
panelBattery.Padding = new Padding(20, 20, 20, 10);
|
panelBattery.Padding = new Padding(20, 20, 20, 10);
|
||||||
@@ -390,7 +452,7 @@ namespace GHelper
|
|||||||
panelFooter.AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
panelFooter.AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
||||||
panelFooter.Controls.Add(tableButtons);
|
panelFooter.Controls.Add(tableButtons);
|
||||||
panelFooter.Dock = DockStyle.Top;
|
panelFooter.Dock = DockStyle.Top;
|
||||||
panelFooter.Location = new Point(11, 1660);
|
panelFooter.Location = new Point(11, 1851);
|
||||||
panelFooter.Margin = new Padding(0);
|
panelFooter.Margin = new Padding(0);
|
||||||
panelFooter.Name = "panelFooter";
|
panelFooter.Name = "panelFooter";
|
||||||
panelFooter.Padding = new Padding(20);
|
panelFooter.Padding = new Padding(20);
|
||||||
@@ -707,6 +769,28 @@ namespace GHelper
|
|||||||
tableAMD.TabIndex = 24;
|
tableAMD.TabIndex = 24;
|
||||||
tableAMD.Visible = false;
|
tableAMD.Visible = false;
|
||||||
//
|
//
|
||||||
|
// buttonOverlay
|
||||||
|
//
|
||||||
|
buttonOverlay.Activated = false;
|
||||||
|
buttonOverlay.BackColor = SystemColors.ControlLightLight;
|
||||||
|
buttonOverlay.BorderColor = Color.Transparent;
|
||||||
|
buttonOverlay.BorderRadius = 5;
|
||||||
|
buttonOverlay.Dock = DockStyle.Fill;
|
||||||
|
buttonOverlay.FlatAppearance.BorderSize = 0;
|
||||||
|
buttonOverlay.FlatStyle = FlatStyle.Flat;
|
||||||
|
buttonOverlay.ForeColor = SystemColors.ControlText;
|
||||||
|
buttonOverlay.Image = Properties.Resources.icons8_heartbeat_32;
|
||||||
|
buttonOverlay.ImageAlign = ContentAlignment.MiddleRight;
|
||||||
|
buttonOverlay.Location = new Point(266, 4);
|
||||||
|
buttonOverlay.Margin = new Padding(4);
|
||||||
|
buttonOverlay.Name = "buttonOverlay";
|
||||||
|
buttonOverlay.Secondary = false;
|
||||||
|
buttonOverlay.Size = new Size(254, 72);
|
||||||
|
buttonOverlay.TabIndex = 12;
|
||||||
|
buttonOverlay.Text = "AMD Overlay";
|
||||||
|
buttonOverlay.TextImageRelation = TextImageRelation.ImageBeforeText;
|
||||||
|
buttonOverlay.UseVisualStyleBackColor = false;
|
||||||
|
//
|
||||||
// buttonFPS
|
// buttonFPS
|
||||||
//
|
//
|
||||||
buttonFPS.Activated = false;
|
buttonFPS.Activated = false;
|
||||||
@@ -1115,7 +1199,7 @@ namespace GHelper
|
|||||||
panelKeyboard.Controls.Add(tableLayoutKeyboard);
|
panelKeyboard.Controls.Add(tableLayoutKeyboard);
|
||||||
panelKeyboard.Controls.Add(panelKeyboardTitle);
|
panelKeyboard.Controls.Add(panelKeyboardTitle);
|
||||||
panelKeyboard.Dock = DockStyle.Top;
|
panelKeyboard.Dock = DockStyle.Top;
|
||||||
panelKeyboard.Location = new Point(11, 1143);
|
panelKeyboard.Location = new Point(11, 1334);
|
||||||
panelKeyboard.Margin = new Padding(0);
|
panelKeyboard.Margin = new Padding(0);
|
||||||
panelKeyboard.Name = "panelKeyboard";
|
panelKeyboard.Name = "panelKeyboard";
|
||||||
panelKeyboard.Padding = new Padding(20);
|
panelKeyboard.Padding = new Padding(20);
|
||||||
@@ -1291,7 +1375,7 @@ namespace GHelper
|
|||||||
panelVersion.Controls.Add(labelCharge);
|
panelVersion.Controls.Add(labelCharge);
|
||||||
panelVersion.Controls.Add(checkStartup);
|
panelVersion.Controls.Add(checkStartup);
|
||||||
panelVersion.Dock = DockStyle.Top;
|
panelVersion.Dock = DockStyle.Top;
|
||||||
panelVersion.Location = new Point(11, 1604);
|
panelVersion.Location = new Point(11, 1795);
|
||||||
panelVersion.Margin = new Padding(4);
|
panelVersion.Margin = new Padding(4);
|
||||||
panelVersion.Name = "panelVersion";
|
panelVersion.Name = "panelVersion";
|
||||||
panelVersion.Size = new Size(827, 56);
|
panelVersion.Size = new Size(827, 56);
|
||||||
@@ -1316,7 +1400,7 @@ namespace GHelper
|
|||||||
panelPeripherals.Controls.Add(tableLayoutPeripherals);
|
panelPeripherals.Controls.Add(tableLayoutPeripherals);
|
||||||
panelPeripherals.Controls.Add(panelPeripheralsTile);
|
panelPeripherals.Controls.Add(panelPeripheralsTile);
|
||||||
panelPeripherals.Dock = DockStyle.Top;
|
panelPeripherals.Dock = DockStyle.Top;
|
||||||
panelPeripherals.Location = new Point(11, 1287);
|
panelPeripherals.Location = new Point(11, 1478);
|
||||||
panelPeripherals.Margin = new Padding(0);
|
panelPeripherals.Margin = new Padding(0);
|
||||||
panelPeripherals.Name = "panelPeripherals";
|
panelPeripherals.Name = "panelPeripherals";
|
||||||
panelPeripherals.Padding = new Padding(20, 20, 20, 10);
|
panelPeripherals.Padding = new Padding(20, 20, 20, 10);
|
||||||
@@ -1458,7 +1542,7 @@ namespace GHelper
|
|||||||
panelAlly.Controls.Add(tableLayoutAlly);
|
panelAlly.Controls.Add(tableLayoutAlly);
|
||||||
panelAlly.Controls.Add(panelAllyTitle);
|
panelAlly.Controls.Add(panelAllyTitle);
|
||||||
panelAlly.Dock = DockStyle.Top;
|
panelAlly.Dock = DockStyle.Top;
|
||||||
panelAlly.Location = new Point(11, 1003);
|
panelAlly.Location = new Point(11, 1194);
|
||||||
panelAlly.Margin = new Padding(0);
|
panelAlly.Margin = new Padding(0);
|
||||||
panelAlly.Name = "panelAlly";
|
panelAlly.Name = "panelAlly";
|
||||||
panelAlly.Padding = new Padding(20, 20, 20, 0);
|
panelAlly.Padding = new Padding(20, 20, 20, 0);
|
||||||
@@ -1586,27 +1670,135 @@ namespace GHelper
|
|||||||
labelAlly.TabIndex = 26;
|
labelAlly.TabIndex = 26;
|
||||||
labelAlly.Text = "Ally Controller";
|
labelAlly.Text = "Ally Controller";
|
||||||
//
|
//
|
||||||
// buttonOverlay
|
// panelGamma
|
||||||
//
|
//
|
||||||
buttonOverlay.Activated = false;
|
panelGamma.AutoSize = true;
|
||||||
buttonOverlay.BackColor = SystemColors.ControlLightLight;
|
panelGamma.AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
||||||
buttonOverlay.BorderColor = Color.Transparent;
|
panelGamma.Controls.Add(tableVisual);
|
||||||
buttonOverlay.BorderRadius = 5;
|
panelGamma.Controls.Add(sliderGamma);
|
||||||
buttonOverlay.Dock = DockStyle.Fill;
|
panelGamma.Controls.Add(panelGammaTitle);
|
||||||
buttonOverlay.FlatAppearance.BorderSize = 0;
|
panelGamma.Dock = DockStyle.Top;
|
||||||
buttonOverlay.FlatStyle = FlatStyle.Flat;
|
panelGamma.Location = new Point(11, 827);
|
||||||
buttonOverlay.ForeColor = SystemColors.ControlText;
|
panelGamma.Margin = new Padding(0);
|
||||||
buttonOverlay.Image = Properties.Resources.icons8_heartbeat_32;
|
panelGamma.Name = "panelGamma";
|
||||||
buttonOverlay.ImageAlign = ContentAlignment.MiddleRight;
|
panelGamma.Padding = new Padding(20, 20, 20, 10);
|
||||||
buttonOverlay.Location = new Point(266, 4);
|
panelGamma.Size = new Size(827, 173);
|
||||||
buttonOverlay.Margin = new Padding(4);
|
panelGamma.TabIndex = 9;
|
||||||
buttonOverlay.Name = "buttonOverlay";
|
panelGamma.Visible = false;
|
||||||
buttonOverlay.Secondary = false;
|
//
|
||||||
buttonOverlay.Size = new Size(254, 72);
|
// tableVisual
|
||||||
buttonOverlay.TabIndex = 12;
|
//
|
||||||
buttonOverlay.Text = "AMD Overlay";
|
tableVisual.AutoSize = true;
|
||||||
buttonOverlay.TextImageRelation = TextImageRelation.ImageBeforeText;
|
tableVisual.AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
||||||
buttonOverlay.UseVisualStyleBackColor = false;
|
tableVisual.ColumnCount = 3;
|
||||||
|
tableVisual.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 33F));
|
||||||
|
tableVisual.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 33F));
|
||||||
|
tableVisual.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 33F));
|
||||||
|
tableVisual.Controls.Add(comboVisual, 0, 0);
|
||||||
|
tableVisual.Controls.Add(comboGamut, 0, 0);
|
||||||
|
tableVisual.Dock = DockStyle.Top;
|
||||||
|
tableVisual.Location = new Point(20, 104);
|
||||||
|
tableVisual.Margin = new Padding(8);
|
||||||
|
tableVisual.Name = "tableVisual";
|
||||||
|
tableVisual.RowCount = 1;
|
||||||
|
tableVisual.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
|
||||||
|
tableVisual.Size = new Size(787, 59);
|
||||||
|
tableVisual.TabIndex = 41;
|
||||||
|
tableVisual.Visible = false;
|
||||||
|
//
|
||||||
|
// comboVisual
|
||||||
|
//
|
||||||
|
comboVisual.BorderColor = Color.White;
|
||||||
|
comboVisual.ButtonColor = Color.FromArgb(255, 255, 255);
|
||||||
|
comboVisual.Dock = DockStyle.Top;
|
||||||
|
comboVisual.FlatStyle = FlatStyle.Flat;
|
||||||
|
comboVisual.Font = new Font("Segoe UI", 9F, FontStyle.Regular, GraphicsUnit.Point);
|
||||||
|
comboVisual.FormattingEnabled = true;
|
||||||
|
comboVisual.ItemHeight = 32;
|
||||||
|
comboVisual.Items.AddRange(new object[] { "Static", "Breathe", "Rainbow", "Strobe" });
|
||||||
|
comboVisual.Location = new Point(266, 11);
|
||||||
|
comboVisual.Margin = new Padding(4, 11, 4, 8);
|
||||||
|
comboVisual.Name = "comboVisual";
|
||||||
|
comboVisual.Size = new Size(254, 40);
|
||||||
|
comboVisual.TabIndex = 14;
|
||||||
|
comboVisual.Visible = false;
|
||||||
|
//
|
||||||
|
// comboGamut
|
||||||
|
//
|
||||||
|
comboGamut.BorderColor = Color.White;
|
||||||
|
comboGamut.ButtonColor = Color.FromArgb(255, 255, 255);
|
||||||
|
comboGamut.Dock = DockStyle.Top;
|
||||||
|
comboGamut.FlatStyle = FlatStyle.Flat;
|
||||||
|
comboGamut.Font = new Font("Segoe UI", 9F, FontStyle.Regular, GraphicsUnit.Point);
|
||||||
|
comboGamut.FormattingEnabled = true;
|
||||||
|
comboGamut.ItemHeight = 32;
|
||||||
|
comboGamut.Items.AddRange(new object[] { "Static", "Breathe", "Rainbow", "Strobe" });
|
||||||
|
comboGamut.Location = new Point(4, 11);
|
||||||
|
comboGamut.Margin = new Padding(4, 11, 4, 8);
|
||||||
|
comboGamut.Name = "comboGamut";
|
||||||
|
comboGamut.Size = new Size(254, 40);
|
||||||
|
comboGamut.TabIndex = 13;
|
||||||
|
comboGamut.Visible = false;
|
||||||
|
//
|
||||||
|
// sliderGamma
|
||||||
|
//
|
||||||
|
sliderGamma.Dock = DockStyle.Top;
|
||||||
|
sliderGamma.Location = new Point(20, 64);
|
||||||
|
sliderGamma.Margin = new Padding(4);
|
||||||
|
sliderGamma.Max = 100;
|
||||||
|
sliderGamma.Min = 0;
|
||||||
|
sliderGamma.Name = "sliderGamma";
|
||||||
|
sliderGamma.Size = new Size(787, 40);
|
||||||
|
sliderGamma.Step = 10;
|
||||||
|
sliderGamma.TabIndex = 20;
|
||||||
|
sliderGamma.Text = "sliderGamma";
|
||||||
|
sliderGamma.Value = 100;
|
||||||
|
sliderGamma.Visible = false;
|
||||||
|
//
|
||||||
|
// panelGammaTitle
|
||||||
|
//
|
||||||
|
panelGammaTitle.Controls.Add(labelGamma);
|
||||||
|
panelGammaTitle.Controls.Add(pictureGamma);
|
||||||
|
panelGammaTitle.Controls.Add(labelGammaTitle);
|
||||||
|
panelGammaTitle.Dock = DockStyle.Top;
|
||||||
|
panelGammaTitle.Location = new Point(20, 20);
|
||||||
|
panelGammaTitle.Margin = new Padding(4);
|
||||||
|
panelGammaTitle.Name = "panelGammaTitle";
|
||||||
|
panelGammaTitle.Padding = new Padding(0, 0, 0, 4);
|
||||||
|
panelGammaTitle.Size = new Size(787, 44);
|
||||||
|
panelGammaTitle.TabIndex = 40;
|
||||||
|
//
|
||||||
|
// labelGamma
|
||||||
|
//
|
||||||
|
labelGamma.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||||
|
labelGamma.Location = new Point(675, 4);
|
||||||
|
labelGamma.Margin = new Padding(8, 0, 8, 0);
|
||||||
|
labelGamma.Name = "labelGamma";
|
||||||
|
labelGamma.Size = new Size(107, 36);
|
||||||
|
labelGamma.TabIndex = 39;
|
||||||
|
labelGamma.Text = " ";
|
||||||
|
labelGamma.TextAlign = ContentAlignment.TopRight;
|
||||||
|
//
|
||||||
|
// pictureGamma
|
||||||
|
//
|
||||||
|
pictureGamma.BackgroundImage = Properties.Resources.icons8_brightness_32;
|
||||||
|
pictureGamma.BackgroundImageLayout = ImageLayout.Zoom;
|
||||||
|
pictureGamma.Location = new Point(4, 2);
|
||||||
|
pictureGamma.Margin = new Padding(4);
|
||||||
|
pictureGamma.Name = "pictureGamma";
|
||||||
|
pictureGamma.Size = new Size(32, 32);
|
||||||
|
pictureGamma.TabIndex = 38;
|
||||||
|
pictureGamma.TabStop = false;
|
||||||
|
//
|
||||||
|
// labelGammaTitle
|
||||||
|
//
|
||||||
|
labelGammaTitle.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
|
||||||
|
labelGammaTitle.Location = new Point(43, 0);
|
||||||
|
labelGammaTitle.Margin = new Padding(8, 0, 8, 0);
|
||||||
|
labelGammaTitle.Name = "labelGammaTitle";
|
||||||
|
labelGammaTitle.Size = new Size(506, 32);
|
||||||
|
labelGammaTitle.TabIndex = 37;
|
||||||
|
labelGammaTitle.Text = "Flicker-free Dimming";
|
||||||
//
|
//
|
||||||
// SettingsForm
|
// SettingsForm
|
||||||
//
|
//
|
||||||
@@ -1614,7 +1806,7 @@ namespace GHelper
|
|||||||
AutoScaleMode = AutoScaleMode.Dpi;
|
AutoScaleMode = AutoScaleMode.Dpi;
|
||||||
AutoSize = true;
|
AutoSize = true;
|
||||||
AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
||||||
ClientSize = new Size(849, 1717);
|
ClientSize = new Size(849, 1759);
|
||||||
Controls.Add(panelFooter);
|
Controls.Add(panelFooter);
|
||||||
Controls.Add(panelVersion);
|
Controls.Add(panelVersion);
|
||||||
Controls.Add(panelBattery);
|
Controls.Add(panelBattery);
|
||||||
@@ -1622,6 +1814,7 @@ namespace GHelper
|
|||||||
Controls.Add(panelKeyboard);
|
Controls.Add(panelKeyboard);
|
||||||
Controls.Add(panelAlly);
|
Controls.Add(panelAlly);
|
||||||
Controls.Add(panelMatrix);
|
Controls.Add(panelMatrix);
|
||||||
|
Controls.Add(panelGamma);
|
||||||
Controls.Add(panelScreen);
|
Controls.Add(panelScreen);
|
||||||
Controls.Add(panelGPU);
|
Controls.Add(panelGPU);
|
||||||
Controls.Add(panelPerformance);
|
Controls.Add(panelPerformance);
|
||||||
@@ -1637,6 +1830,8 @@ namespace GHelper
|
|||||||
Text = "G-Helper";
|
Text = "G-Helper";
|
||||||
panelMatrix.ResumeLayout(false);
|
panelMatrix.ResumeLayout(false);
|
||||||
panelMatrix.PerformLayout();
|
panelMatrix.PerformLayout();
|
||||||
|
panelMatrixAuto.ResumeLayout(false);
|
||||||
|
panelMatrixAuto.PerformLayout();
|
||||||
tableLayoutMatrix.ResumeLayout(false);
|
tableLayoutMatrix.ResumeLayout(false);
|
||||||
panelMatrixTitle.ResumeLayout(false);
|
panelMatrixTitle.ResumeLayout(false);
|
||||||
panelMatrixTitle.PerformLayout();
|
panelMatrixTitle.PerformLayout();
|
||||||
@@ -1690,6 +1885,11 @@ namespace GHelper
|
|||||||
panelAllyTitle.ResumeLayout(false);
|
panelAllyTitle.ResumeLayout(false);
|
||||||
panelAllyTitle.PerformLayout();
|
panelAllyTitle.PerformLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)pictureAlly).EndInit();
|
((System.ComponentModel.ISupportInitialize)pictureAlly).EndInit();
|
||||||
|
panelGamma.ResumeLayout(false);
|
||||||
|
panelGamma.PerformLayout();
|
||||||
|
tableVisual.ResumeLayout(false);
|
||||||
|
panelGammaTitle.ResumeLayout(false);
|
||||||
|
((System.ComponentModel.ISupportInitialize)pictureGamma).EndInit();
|
||||||
ResumeLayout(false);
|
ResumeLayout(false);
|
||||||
PerformLayout();
|
PerformLayout();
|
||||||
}
|
}
|
||||||
@@ -1784,5 +1984,17 @@ namespace GHelper
|
|||||||
private RButton buttonFPS;
|
private RButton buttonFPS;
|
||||||
private RButton buttonController;
|
private RButton buttonController;
|
||||||
private RButton buttonOverlay;
|
private RButton buttonOverlay;
|
||||||
|
private RComboBox comboInterval;
|
||||||
|
private Panel panelGamma;
|
||||||
|
private Slider sliderGamma;
|
||||||
|
private Panel panelGammaTitle;
|
||||||
|
private Label labelGamma;
|
||||||
|
private PictureBox pictureGamma;
|
||||||
|
private Label labelGammaTitle;
|
||||||
|
private CheckBox checkMatrixLid;
|
||||||
|
private Panel panelMatrixAuto;
|
||||||
|
private TableLayoutPanel tableVisual;
|
||||||
|
private RComboBox comboVisual;
|
||||||
|
private RComboBox comboGamut;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
161
app/Settings.cs
161
app/Settings.cs
@@ -24,7 +24,6 @@ namespace GHelper
|
|||||||
|
|
||||||
public GPUModeControl gpuControl;
|
public GPUModeControl gpuControl;
|
||||||
public AllyControl allyControl;
|
public AllyControl allyControl;
|
||||||
ScreenControl screenControl = new ScreenControl();
|
|
||||||
AutoUpdateControl updateControl;
|
AutoUpdateControl updateControl;
|
||||||
|
|
||||||
AsusMouseSettings? mouseSettings;
|
AsusMouseSettings? mouseSettings;
|
||||||
@@ -48,6 +47,8 @@ namespace GHelper
|
|||||||
bool batteryMouseOver = false;
|
bool batteryMouseOver = false;
|
||||||
bool batteryFullMouseOver = false;
|
bool batteryFullMouseOver = false;
|
||||||
|
|
||||||
|
bool sliderGammaIgnore = false;
|
||||||
|
|
||||||
public SettingsForm()
|
public SettingsForm()
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -85,6 +86,7 @@ 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;
|
||||||
@@ -115,7 +117,7 @@ namespace GHelper
|
|||||||
buttonScreenAuto.AccessibleName = Properties.Strings.AutoMode;
|
buttonScreenAuto.AccessibleName = Properties.Strings.AutoMode;
|
||||||
//button60Hz.AccessibleName = "60Hz Refresh Rate";
|
//button60Hz.AccessibleName = "60Hz Refresh Rate";
|
||||||
//button120Hz.AccessibleName = "Maximum Refresh Rate";
|
//button120Hz.AccessibleName = "Maximum Refresh Rate";
|
||||||
|
|
||||||
panelKeyboard.AccessibleName = Properties.Strings.LaptopKeyboard;
|
panelKeyboard.AccessibleName = Properties.Strings.LaptopKeyboard;
|
||||||
buttonKeyboard.AccessibleName = Properties.Strings.ExtraSettings;
|
buttonKeyboard.AccessibleName = Properties.Strings.ExtraSettings;
|
||||||
buttonKeyboardColor.AccessibleName = Properties.Strings.LaptopKeyboard + " " + Properties.Strings.Color;
|
buttonKeyboardColor.AccessibleName = Properties.Strings.LaptopKeyboard + " " + Properties.Strings.Color;
|
||||||
@@ -173,9 +175,11 @@ namespace GHelper
|
|||||||
|
|
||||||
comboMatrix.DropDownStyle = ComboBoxStyle.DropDownList;
|
comboMatrix.DropDownStyle = ComboBoxStyle.DropDownList;
|
||||||
comboMatrixRunning.DropDownStyle = ComboBoxStyle.DropDownList;
|
comboMatrixRunning.DropDownStyle = ComboBoxStyle.DropDownList;
|
||||||
|
comboInterval.DropDownStyle = ComboBoxStyle.DropDownList;
|
||||||
|
|
||||||
comboMatrix.DropDownClosed += ComboMatrix_SelectedValueChanged;
|
comboMatrix.DropDownClosed += ComboMatrix_SelectedValueChanged;
|
||||||
comboMatrixRunning.DropDownClosed += ComboMatrixRunning_SelectedValueChanged;
|
comboMatrixRunning.DropDownClosed += ComboMatrixRunning_SelectedValueChanged;
|
||||||
|
comboInterval.DropDownClosed += ComboInterval_DropDownClosed;
|
||||||
|
|
||||||
buttonMatrix.Click += ButtonMatrix_Click;
|
buttonMatrix.Click += ButtonMatrix_Click;
|
||||||
|
|
||||||
@@ -216,7 +220,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(1000);
|
sensorTimer = new System.Timers.Timer(AppConfig.Get("sensor_timer", 1000));
|
||||||
sensorTimer.Elapsed += OnTimedEvent;
|
sensorTimer.Elapsed += OnTimedEvent;
|
||||||
sensorTimer.Enabled = true;
|
sensorTimer.Enabled = true;
|
||||||
|
|
||||||
@@ -252,6 +256,83 @@ namespace GHelper
|
|||||||
buttonFnLock.Click += ButtonFnLock_Click;
|
buttonFnLock.Click += ButtonFnLock_Click;
|
||||||
|
|
||||||
panelPerformance.Focus();
|
panelPerformance.Focus();
|
||||||
|
InitVisual();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void InitVisual()
|
||||||
|
{
|
||||||
|
|
||||||
|
bool dimming = false;
|
||||||
|
|
||||||
|
if (AppConfig.IsOLED())
|
||||||
|
{
|
||||||
|
dimming = true;
|
||||||
|
labelGammaTitle.Text = "Flicker-free Dimming";
|
||||||
|
panelGamma.Visible = true;
|
||||||
|
sliderGamma.Visible = true;
|
||||||
|
VisualiseBrightness();
|
||||||
|
sliderGamma.ValueChanged += SliderGamma_ValueChanged;
|
||||||
|
}
|
||||||
|
|
||||||
|
var gamuts = ScreenControl.GetGamutModes();
|
||||||
|
if (gamuts.Count < 1) return;
|
||||||
|
|
||||||
|
if (!dimming) labelGammaTitle.Text = "Visual Mode";
|
||||||
|
else labelGammaTitle.Text += " / Visual";
|
||||||
|
|
||||||
|
panelGamma.Visible = true;
|
||||||
|
tableVisual.Visible = true;
|
||||||
|
|
||||||
|
comboVisual.DropDownStyle = ComboBoxStyle.DropDownList;
|
||||||
|
comboVisual.DataSource = new BindingSource(ScreenControl.GetVisualModes(), null);
|
||||||
|
comboVisual.DisplayMember = "Value";
|
||||||
|
comboVisual.ValueMember = "Key";
|
||||||
|
comboVisual.SelectedValue = (SplendidCommand)AppConfig.Get("visual", (int)SplendidCommand.Default);
|
||||||
|
|
||||||
|
comboVisual.SelectedValueChanged += ComboVisual_SelectedValueChanged;
|
||||||
|
comboVisual.Visible = true;
|
||||||
|
|
||||||
|
if (gamuts.Count <= 1) return;
|
||||||
|
|
||||||
|
comboGamut.DropDownStyle = ComboBoxStyle.DropDownList;
|
||||||
|
comboGamut.DataSource = new BindingSource(gamuts, null);
|
||||||
|
comboGamut.DisplayMember = "Value";
|
||||||
|
comboGamut.ValueMember = "Key";
|
||||||
|
comboGamut.SelectedValue = (SplendidGamut)AppConfig.Get("gamut", (int)SplendidGamut.Native);
|
||||||
|
|
||||||
|
comboGamut.SelectedValueChanged += ComboGamut_SelectedValueChanged;
|
||||||
|
comboGamut.Visible = true;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ComboGamut_SelectedValueChanged(object? sender, EventArgs e)
|
||||||
|
{
|
||||||
|
AppConfig.Set("gamut", (int)comboGamut.SelectedValue);
|
||||||
|
ScreenControl.SetGamut((int)comboGamut.SelectedValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ComboVisual_SelectedValueChanged(object? sender, EventArgs e)
|
||||||
|
{
|
||||||
|
AppConfig.Set("visual", (int)comboVisual.SelectedValue);
|
||||||
|
ScreenControl.SetVisual((SplendidCommand)comboVisual.SelectedValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void VisualiseBrightness()
|
||||||
|
{
|
||||||
|
Invoke(delegate
|
||||||
|
{
|
||||||
|
sliderGammaIgnore = true;
|
||||||
|
sliderGamma.Value = AppConfig.Get("brightness", 100);
|
||||||
|
labelGamma.Text = sliderGamma.Value + "%";
|
||||||
|
sliderGammaIgnore = false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SliderGamma_ValueChanged(object? sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (sliderGammaIgnore) return;
|
||||||
|
ScreenControl.SetBrightness(sliderGamma.Value);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ButtonOverlay_Click(object? sender, EventArgs e)
|
private void ButtonOverlay_Click(object? sender, EventArgs e)
|
||||||
@@ -325,7 +406,7 @@ namespace GHelper
|
|||||||
|
|
||||||
public void VisualiseBacklight(int backlight)
|
public void VisualiseBacklight(int backlight)
|
||||||
{
|
{
|
||||||
buttonBacklight.Text = Math.Round((double)backlight*33.33).ToString() + "%";
|
buttonBacklight.Text = Math.Round((double)backlight * 33.33).ToString() + "%";
|
||||||
}
|
}
|
||||||
|
|
||||||
public void VisualiseFPSLimit(int limit)
|
public void VisualiseFPSLimit(int limit)
|
||||||
@@ -393,7 +474,7 @@ namespace GHelper
|
|||||||
sensorTimer.Enabled = this.Visible;
|
sensorTimer.Enabled = this.Visible;
|
||||||
if (this.Visible)
|
if (this.Visible)
|
||||||
{
|
{
|
||||||
screenControl.InitScreen();
|
ScreenControl.InitScreen();
|
||||||
VisualizeXGM();
|
VisualizeXGM();
|
||||||
|
|
||||||
Task.Run((Action)RefreshPeripheralsBattery);
|
Task.Run((Action)RefreshPeripheralsBattery);
|
||||||
@@ -424,7 +505,7 @@ namespace GHelper
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void VisualiseMatrix(string image)
|
public void VisualiseMatrixPicture(string image)
|
||||||
{
|
{
|
||||||
if (matrixForm == null || matrixForm.Text == "") return;
|
if (matrixForm == null || matrixForm.Text == "") return;
|
||||||
matrixForm.VisualiseMatrix(image);
|
matrixForm.VisualiseMatrix(image);
|
||||||
@@ -443,10 +524,14 @@ 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;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -668,7 +753,7 @@ namespace GHelper
|
|||||||
private void ButtonScreenAuto_Click(object? sender, EventArgs e)
|
private void ButtonScreenAuto_Click(object? sender, EventArgs e)
|
||||||
{
|
{
|
||||||
AppConfig.Set("screen_auto", 1);
|
AppConfig.Set("screen_auto", 1);
|
||||||
screenControl.AutoScreen();
|
ScreenControl.AutoScreen();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -686,9 +771,14 @@ namespace GHelper
|
|||||||
private void CheckMatrix_CheckedChanged(object? sender, EventArgs e)
|
private void CheckMatrix_CheckedChanged(object? sender, EventArgs e)
|
||||||
{
|
{
|
||||||
AppConfig.Set("matrix_auto", checkMatrix.Checked ? 1 : 0);
|
AppConfig.Set("matrix_auto", checkMatrix.Checked ? 1 : 0);
|
||||||
matrixControl.SetMatrix();
|
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)
|
||||||
@@ -712,7 +802,7 @@ namespace GHelper
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetMatrixRunning(int mode)
|
public void VisualiseMatrixRunning(int mode)
|
||||||
{
|
{
|
||||||
Invoke(delegate
|
Invoke(delegate
|
||||||
{
|
{
|
||||||
@@ -721,17 +811,23 @@ namespace GHelper
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void ComboInterval_DropDownClosed(object? sender, EventArgs e)
|
||||||
|
{
|
||||||
|
AppConfig.Set("matrix_interval", comboInterval.SelectedIndex);
|
||||||
|
matrixControl.SetDevice();
|
||||||
|
}
|
||||||
|
|
||||||
private void ComboMatrixRunning_SelectedValueChanged(object? sender, EventArgs e)
|
private void ComboMatrixRunning_SelectedValueChanged(object? sender, EventArgs e)
|
||||||
{
|
{
|
||||||
AppConfig.Set("matrix_running", comboMatrixRunning.SelectedIndex);
|
AppConfig.Set("matrix_running", comboMatrixRunning.SelectedIndex);
|
||||||
matrixControl.SetMatrix();
|
matrixControl.SetDevice();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void ComboMatrix_SelectedValueChanged(object? sender, EventArgs e)
|
private void ComboMatrix_SelectedValueChanged(object? sender, EventArgs e)
|
||||||
{
|
{
|
||||||
AppConfig.Set("matrix_brightness", comboMatrix.SelectedIndex);
|
AppConfig.Set("matrix_brightness", comboMatrix.SelectedIndex);
|
||||||
matrixControl.SetMatrix();
|
matrixControl.SetDevice();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -807,7 +903,7 @@ namespace GHelper
|
|||||||
FansToggle();
|
FansToggle();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void SetColorPicker(string colorField = "aura_color")
|
private void SetColorPicker(string colorField = "aura_color")
|
||||||
{
|
{
|
||||||
ColorDialog colorDlg = new ColorDialog();
|
ColorDialog colorDlg = new ColorDialog();
|
||||||
colorDlg.AllowFullOpen = true;
|
colorDlg.AllowFullOpen = true;
|
||||||
@@ -896,12 +992,35 @@ namespace GHelper
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (matrixControl.IsSlash)
|
||||||
|
{
|
||||||
|
labelMatrix.Text = "Slash Lightning";
|
||||||
|
comboMatrixRunning.Items.Clear();
|
||||||
|
|
||||||
|
foreach (var item in SlashDevice.Modes)
|
||||||
|
{
|
||||||
|
comboMatrixRunning.Items.Add(item.Value);
|
||||||
|
}
|
||||||
|
|
||||||
|
comboInterval.Visible = true;
|
||||||
|
comboInterval.Items.Add($"Interval Off");
|
||||||
|
for (int i = 1; i <= 5; i++) comboInterval.Items.Add($"Interval {i}s");
|
||||||
|
|
||||||
|
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);
|
||||||
|
comboInterval.SelectedIndex = Math.Min(AppConfig.Get("matrix_interval", 0), comboInterval.Items.Count - 1);
|
||||||
|
|
||||||
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;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -909,7 +1028,7 @@ namespace GHelper
|
|||||||
{
|
{
|
||||||
comboMatrix.SelectedIndex = Math.Min(Math.Max(0, comboMatrix.SelectedIndex + delta), comboMatrix.Items.Count - 1);
|
comboMatrix.SelectedIndex = Math.Min(Math.Max(0, comboMatrix.SelectedIndex + delta), comboMatrix.Items.Count - 1);
|
||||||
AppConfig.Set("matrix_brightness", comboMatrix.SelectedIndex);
|
AppConfig.Set("matrix_brightness", comboMatrix.SelectedIndex);
|
||||||
matrixControl.SetMatrix();
|
matrixControl.SetDevice();
|
||||||
Program.toast.RunToast(comboMatrix.GetItemText(comboMatrix.SelectedItem), delta > 0 ? ToastIcon.BacklightUp : ToastIcon.BacklightDown);
|
Program.toast.RunToast(comboMatrix.GetItemText(comboMatrix.SelectedItem), delta > 0 ? ToastIcon.BacklightUp : ToastIcon.BacklightDown);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -934,19 +1053,19 @@ namespace GHelper
|
|||||||
private void Button120Hz_Click(object? sender, EventArgs e)
|
private void Button120Hz_Click(object? sender, EventArgs e)
|
||||||
{
|
{
|
||||||
AppConfig.Set("screen_auto", 0);
|
AppConfig.Set("screen_auto", 0);
|
||||||
screenControl.SetScreen(ScreenControl.MAX_REFRESH, 1);
|
ScreenControl.SetScreen(ScreenControl.MAX_REFRESH, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Button60Hz_Click(object? sender, EventArgs e)
|
private void Button60Hz_Click(object? sender, EventArgs e)
|
||||||
{
|
{
|
||||||
AppConfig.Set("screen_auto", 0);
|
AppConfig.Set("screen_auto", 0);
|
||||||
screenControl.SetScreen(60, 0);
|
ScreenControl.SetScreen(60, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void ButtonMiniled_Click(object? sender, EventArgs e)
|
private void ButtonMiniled_Click(object? sender, EventArgs e)
|
||||||
{
|
{
|
||||||
screenControl.ToogleMiniled();
|
ScreenControl.ToogleMiniled();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -1222,11 +1341,13 @@ namespace GHelper
|
|||||||
{
|
{
|
||||||
if (InvokeRequired)
|
if (InvokeRequired)
|
||||||
{
|
{
|
||||||
Invoke(delegate {
|
Invoke(delegate
|
||||||
|
{
|
||||||
labelPerf.Text = modeText;
|
labelPerf.Text = modeText;
|
||||||
panelPerformance.AccessibleName = labelPerf.Text;
|
panelPerformance.AccessibleName = labelPerf.Text;
|
||||||
});
|
});
|
||||||
} else
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
labelPerf.Text = modeText;
|
labelPerf.Text = modeText;
|
||||||
panelPerformance.AccessibleName = labelPerf.Text;
|
panelPerformance.AccessibleName = labelPerf.Text;
|
||||||
@@ -1401,7 +1522,7 @@ namespace GHelper
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
VisualizeXGM(GPUMode);
|
VisualizeXGM(GPUMode);
|
||||||
|
|
||||||
@@ -1575,7 +1696,7 @@ namespace GHelper
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
mouseSettings = new AsusMouseSettings(am);
|
mouseSettings = new AsusMouseSettings(am);
|
||||||
mouseSettings.TopMost = true;
|
mouseSettings.TopMost = AppConfig.Is("topmost");
|
||||||
mouseSettings.FormClosed += MouseSettings_FormClosed;
|
mouseSettings.FormClosed += MouseSettings_FormClosed;
|
||||||
mouseSettings.Disposed += MouseSettings_Disposed;
|
mouseSettings.Disposed += MouseSettings_Disposed;
|
||||||
if (!mouseSettings.IsDisposed)
|
if (!mouseSettings.IsDisposed)
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ namespace GHelper.UI
|
|||||||
{
|
{
|
||||||
var parms = base.CreateParams;
|
var parms = base.CreateParams;
|
||||||
parms.Style &= ~0x02000000; // Turn off WS_CLIPCHILDREN
|
parms.Style &= ~0x02000000; // Turn off WS_CLIPCHILDREN
|
||||||
|
parms.ClassStyle &= ~0x00020000;
|
||||||
return parms;
|
return parms;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -90,18 +90,24 @@ public static class AsusHid
|
|||||||
if (devices is null) return;
|
if (devices is null) return;
|
||||||
|
|
||||||
foreach (var device in devices)
|
foreach (var device in devices)
|
||||||
using (var stream = device.Open())
|
try
|
||||||
foreach (var data in dataList)
|
{
|
||||||
try
|
using (var stream = device.Open())
|
||||||
{
|
foreach (var data in dataList)
|
||||||
stream.Write(data);
|
try
|
||||||
Logger.WriteLine($"{log} {device.ProductID.ToString("X")}: {BitConverter.ToString(data)}");
|
{
|
||||||
}
|
stream.Write(data);
|
||||||
catch (Exception ex)
|
if (log is not null) Logger.WriteLine($"{log} {device.ProductID.ToString("X")}: {BitConverter.ToString(data)}");
|
||||||
{
|
}
|
||||||
Logger.WriteLine($"Error writing {log} {device.ProductID.ToString("X")}: {ex.Message} {BitConverter.ToString(data)} ");
|
catch (Exception ex)
|
||||||
}
|
{
|
||||||
|
if (log is not null) Logger.WriteLine($"Error writing {log} {device.ProductID.ToString("X")}: {ex.Message} {BitConverter.ToString(data)} ");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
if (log is not null) Logger.WriteLine($"Error opening {log} {device.ProductID.ToString("X")}: {ex.Message}");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void WriteAura(byte[] data)
|
public static void WriteAura(byte[] data)
|
||||||
|
|||||||
@@ -73,10 +73,13 @@ namespace GHelper.USB
|
|||||||
private static AuraMode mode = AuraMode.AuraStatic;
|
private static AuraMode mode = AuraMode.AuraStatic;
|
||||||
private static AuraSpeed speed = AuraSpeed.Normal;
|
private static AuraSpeed speed = AuraSpeed.Normal;
|
||||||
|
|
||||||
|
private static bool backlight = false;
|
||||||
|
private static bool initDirect = false;
|
||||||
|
|
||||||
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.IsVivobook() || AppConfig.IsProArt();
|
static bool isACPI = AppConfig.IsTUF() || AppConfig.IsVivoZenbook() || 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();
|
||||||
@@ -289,17 +292,27 @@ namespace GHelper.USB
|
|||||||
|
|
||||||
public static void ApplyBrightness(int brightness, string log = "Backlight", bool delay = false)
|
public static void ApplyBrightness(int brightness, string log = "Backlight", bool delay = false)
|
||||||
{
|
{
|
||||||
|
if (brightness == 0) backlight = false;
|
||||||
|
|
||||||
Task.Run(async () =>
|
Task.Run(async () =>
|
||||||
{
|
{
|
||||||
if (delay) await Task.Delay(TimeSpan.FromSeconds(1));
|
if (delay) await Task.Delay(TimeSpan.FromSeconds(1));
|
||||||
if (isACPI) Program.acpi.TUFKeyboardBrightness(brightness);
|
if (isACPI) Program.acpi.TUFKeyboardBrightness(brightness);
|
||||||
|
|
||||||
AsusHid.Write(new byte[] { AsusHid.AURA_ID, 0xBA, 0xC5, 0xC4, (byte)brightness }, log);
|
if (AppConfig.IsInputBacklight())
|
||||||
|
AsusHid.WriteInput(new byte[] { AsusHid.INPUT_ID, 0xBA, 0xC5, 0xC4, (byte)brightness }, log);
|
||||||
|
else
|
||||||
|
AsusHid.Write(new byte[] { AsusHid.AURA_ID, 0xBA, 0xC5, 0xC4, (byte)brightness }, log);
|
||||||
|
|
||||||
if (AppConfig.IsAlly()) ApplyAura();
|
if (AppConfig.IsAlly()) ApplyAura();
|
||||||
|
|
||||||
if (AppConfig.ContainsModel("GA503"))
|
if (brightness > 0)
|
||||||
AsusHid.WriteInput(new byte[] { AsusHid.INPUT_ID, 0xBA, 0xC5, 0xC4, (byte)brightness }, log);
|
{
|
||||||
|
if (!backlight) initDirect = true;
|
||||||
|
backlight = true;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
@@ -493,6 +506,8 @@ namespace GHelper.USB
|
|||||||
|
|
||||||
public static void ApplyDirect(Color[] color, bool init = false)
|
public static void ApplyDirect(Color[] color, bool init = false)
|
||||||
{
|
{
|
||||||
|
if (!backlight) return;
|
||||||
|
|
||||||
const byte keySet = 167;
|
const byte keySet = 167;
|
||||||
const byte ledCount = 178;
|
const byte ledCount = 178;
|
||||||
const ushort mapSize = 3 * ledCount;
|
const ushort mapSize = 3 * ledCount;
|
||||||
@@ -510,9 +525,9 @@ namespace GHelper.USB
|
|||||||
buffer[6] = 0;
|
buffer[6] = 0;
|
||||||
buffer[7] = 0x10;
|
buffer[7] = 0x10;
|
||||||
|
|
||||||
if (init)
|
if (init || initDirect)
|
||||||
{
|
{
|
||||||
Init();
|
initDirect = false;
|
||||||
AsusHid.WriteAura(new byte[] { AsusHid.AURA_ID, 0xBC });
|
AsusHid.WriteAura(new byte[] { AsusHid.AURA_ID, 0xBC });
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -573,6 +588,8 @@ namespace GHelper.USB
|
|||||||
public static void ApplyDirect(Color color, bool init = false)
|
public static void ApplyDirect(Color color, bool init = false)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
if (!backlight) return;
|
||||||
|
|
||||||
if (isACPI)
|
if (isACPI)
|
||||||
{
|
{
|
||||||
Program.acpi.TUFKeyboardRGB(0, color, 0, null);
|
Program.acpi.TUFKeyboardRGB(0, color, 0, null);
|
||||||
@@ -581,7 +598,7 @@ namespace GHelper.USB
|
|||||||
|
|
||||||
if (AppConfig.IsNoDirectRGB())
|
if (AppConfig.IsNoDirectRGB())
|
||||||
{
|
{
|
||||||
AsusHid.Write(new List<byte[]> { AuraMessage(AuraMode.AuraStatic, color, color, 0xeb, isSingleColor), MESSAGE_SET });
|
AsusHid.Write(new List<byte[]> { AuraMessage(AuraMode.AuraStatic, color, color, 0xeb, isSingleColor), MESSAGE_SET }, null);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -591,9 +608,9 @@ namespace GHelper.USB
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (init)
|
if (init || initDirect)
|
||||||
{
|
{
|
||||||
//Init();
|
initDirect = false;
|
||||||
AsusHid.WriteAura(new byte[] { AsusHid.AURA_ID, 0xbc, 1 });
|
AsusHid.WriteAura(new byte[] { AsusHid.AURA_ID, 0xbc, 1 });
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -653,7 +670,7 @@ namespace GHelper.USB
|
|||||||
{
|
{
|
||||||
CustomRGB.ApplyAmbient(true);
|
CustomRGB.ApplyAmbient(true);
|
||||||
timer.Enabled = true;
|
timer.Enabled = true;
|
||||||
timer.Interval = AppConfig.Get("aura_refresh", AppConfig.ContainsModel("GU604") ? 400 : 120);
|
timer.Interval = AppConfig.Get("aura_refresh", AppConfig.IsStrix() ? 100 : 300);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -720,6 +737,8 @@ namespace GHelper.USB
|
|||||||
|
|
||||||
public static void ApplyAmbient(bool init = false)
|
public static void ApplyAmbient(bool init = false)
|
||||||
{
|
{
|
||||||
|
if (!backlight) return;
|
||||||
|
|
||||||
var bound = Screen.GetBounds(Point.Empty);
|
var bound = Screen.GetBounds(Point.Empty);
|
||||||
bound.Y += bound.Height / 3;
|
bound.Y += bound.Height / 3;
|
||||||
bound.Height -= (int)Math.Round(bound.Height * (0.33f + 0.022f)); // cut 1/3 of the top screen + windows panel
|
bound.Height -= (int)Math.Round(bound.Height * (0.33f + 0.022f)); // cut 1/3 of the top screen + windows panel
|
||||||
|
|||||||
@@ -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,13 +83,12 @@ 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();
|
||||||
@@ -100,7 +99,9 @@ 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"))
|
||||||
@@ -160,24 +161,36 @@ namespace GHelper
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public void VisualiseNewDriver(int position, int newer, TableLayoutPanel table)
|
private 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
|
||||||
{
|
{
|
||||||
if (newer == DRIVER_NEWER)
|
_VisualiseNewDriver(position, newer, table);
|
||||||
{
|
|
||||||
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;
|
|
||||||
|
|
||||||
});
|
});
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
_VisualiseNewDriver(position, newer, table);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void VisualiseNewCount(int updatesCount, TableLayoutPanel table)
|
public void VisualiseNewCount(int updatesCount, TableLayoutPanel table)
|
||||||
@@ -193,7 +206,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
|
||||||
@@ -266,7 +279,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);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"sdk": {
|
"sdk": {
|
||||||
"version": "7.0.400"
|
"version": "7.0.406"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
# G-Helper - Lightweight control tool for Asus laptops
|
# G-Helper - Lightweight control tool for Asus laptops
|
||||||
[](https://u24.gov.ua/)
|
[](https://u24.gov.ua/)
|
||||||
[](https://GitHub.com/seerge/g-helper/releases/)
|
[](https://GitHub.com/seerge/g-helper/releases/)
|
||||||
[](https://GitHub.com/seerge/g-helper/releases/) [](https://GitHub.com/seerge/g-helper/stargazers/)
|
[](https://GitHub.com/seerge/g-helper/releases/) [](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 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, Ally 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)
|
||||||
|
|
||||||
@@ -112,7 +112,7 @@ Huge thanks to [@IceStormNG](https://github.com/IceStormNG) 👑 for contributio
|
|||||||
- ``Ctrl + M1 / M2`` - Screen brightness Down / Up
|
- ``Ctrl + M1 / M2`` - Screen brightness Down / Up
|
||||||
- ``Shift + M1 / M2`` - Backlight brightness Down / Up
|
- ``Shift + M1 / M2`` - Backlight brightness Down / Up
|
||||||
- ``Fn + C`` - Fn-Lock
|
- ``Fn + C`` - Fn-Lock
|
||||||
- ``Fn + Shift + F7 / F8`` - Matrix brightness Down / Up
|
- ``Fn + Shift + F7 / F8`` - Matrix / Slash Lightning brightness Down / Up
|
||||||
- ``Fn + Shift + F7 / F8`` - Screenpad brightness Down / Up
|
- ``Fn + Shift + F7 / F8`` - Screenpad brightness Down / Up
|
||||||
- ``Ctrl + Shift + F20`` - Mute Microphone
|
- ``Ctrl + Shift + F20`` - Mute Microphone
|
||||||
- ``Ctrl + Shift + Alt + F14`` - Eco GPU Mode
|
- ``Ctrl + Shift + Alt + F14`` - Eco GPU Mode
|
||||||
@@ -124,6 +124,14 @@ 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
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user