mirror of
https://github.com/jkocon/g-helper.git
synced 2026-02-23 13:00:52 +01:00
Compare commits
56 Commits
slash_ligh
...
gpu_tgp
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
02e700c03c | ||
|
|
35977d007e | ||
|
|
3b9f8de0ab | ||
|
|
1e3a16ae45 | ||
|
|
c517f340dc | ||
|
|
f0da110a83 | ||
|
|
a520c438da | ||
|
|
6b45795888 | ||
|
|
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 |
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) 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
|
||||||
{
|
{
|
||||||
@@ -91,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;
|
||||||
|
|||||||
@@ -36,14 +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());
|
||||||
Logger.WriteLine("Matrix Device: " + HidDevice.DevicePath);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
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;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -377,9 +393,19 @@ 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()
|
public static bool IsInputBacklight()
|
||||||
{
|
{
|
||||||
return ContainsModel("GA503") || ContainsModel("GA403");
|
return ContainsModel("GA503") || IsSlash();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool IsOLED()
|
||||||
|
{
|
||||||
|
return ContainsModel("OLED") || IsSlash() || ContainsModel("UX64") || ContainsModel("UX34") || ContainsModel("UX53") || ContainsModel("K360") || ContainsModel("X150");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool IsStrix()
|
public static bool IsStrix()
|
||||||
@@ -392,11 +418,17 @@ public static class AppConfig
|
|||||||
return (ContainsModel("G614JV") || ContainsModel("G614JZ") || ContainsModel("G512LI") || ContainsModel("G513R") || ContainsModel("G713PV") || ContainsModel("G513IE") || ContainsModel("G713RC") || ContainsModel("G513QM") || ContainsModel("G531G")) && !Is("per_key_rgb");
|
return (ContainsModel("G614JV") || ContainsModel("G614JZ") || ContainsModel("G512LI") || ContainsModel("G513R") || ContainsModel("G713PV") || ContainsModel("G513IE") || ContainsModel("G713RC") || ContainsModel("G513QM") || ContainsModel("G531G")) && !Is("per_key_rgb");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static bool IsNoAirplaneMode()
|
public static bool IsNoAirplaneMode()
|
||||||
{
|
{
|
||||||
return ContainsModel("FX506");
|
return ContainsModel("FX506");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static bool NoWMI()
|
||||||
|
{
|
||||||
|
return ContainsModel("GL704G");
|
||||||
|
}
|
||||||
|
|
||||||
public static bool IsNoDirectRGB()
|
public static bool IsNoDirectRGB()
|
||||||
{
|
{
|
||||||
return ContainsModel("GA503") || ContainsModel("G533Q");
|
return ContainsModel("GA503") || ContainsModel("G533Q");
|
||||||
@@ -444,7 +476,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");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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,7 @@ public class AsusACPI
|
|||||||
if (AppConfig.IsIntelHX())
|
if (AppConfig.IsIntelHX())
|
||||||
{
|
{
|
||||||
MaxTotal = 175;
|
MaxTotal = 175;
|
||||||
|
MaxGPUPower = 70;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (AppConfig.DynamicBoost5())
|
if (AppConfig.DynamicBoost5())
|
||||||
@@ -513,16 +534,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)
|
||||||
@@ -664,22 +694,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)
|
||||||
|
|||||||
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,4 +1,4 @@
|
|||||||
using System.Diagnostics;
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
namespace GHelper.Display
|
namespace GHelper.Display
|
||||||
{
|
{
|
||||||
@@ -7,6 +7,8 @@ namespace GHelper.Display
|
|||||||
|
|
||||||
public const int MAX_REFRESH = 1000;
|
public const int MAX_REFRESH = 1000;
|
||||||
|
|
||||||
|
public static DisplayGammaRamp? gammaRamp;
|
||||||
|
|
||||||
public void AutoScreen(bool force = false)
|
public void AutoScreen(bool force = false)
|
||||||
{
|
{
|
||||||
if (force || AppConfig.Is("screen_auto"))
|
if (force || AppConfig.Is("screen_auto"))
|
||||||
@@ -22,6 +24,70 @@ namespace GHelper.Display
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void SaveGamma()
|
||||||
|
{
|
||||||
|
var screenName = ScreenNative.FindLaptopScreen();
|
||||||
|
if (screenName is null) return;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var handle = ScreenNative.CreateDC(screenName, screenName, null, IntPtr.Zero);
|
||||||
|
var gammaRamp = new GammaRamp();
|
||||||
|
if (ScreenNative.GetDeviceGammaRamp(handle, ref gammaRamp))
|
||||||
|
{
|
||||||
|
var gamma = new DisplayGammaRamp(gammaRamp);
|
||||||
|
Logger.WriteLine("Gamma R: " + string.Join("-", gamma.Red));
|
||||||
|
Logger.WriteLine("Gamma G: " + string.Join("-", gamma.Green));
|
||||||
|
Logger.WriteLine("Gamma B: " + string.Join("-", gamma.Blue));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Logger.WriteLine(ex.ToString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public 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("Default Gamma");
|
||||||
|
gammaRamp = new DisplayGammaRamp();
|
||||||
|
}
|
||||||
|
|
||||||
|
var ramp = gammaRamp.AsBrightnessRamp(bright);
|
||||||
|
bool result = ScreenNative.SetDeviceGammaRamp(handle, ref ramp);
|
||||||
|
|
||||||
|
Logger.WriteLine("Brightness " + bright.ToString() + ": " + result);
|
||||||
|
|
||||||
|
} catch (Exception ex)
|
||||||
|
{
|
||||||
|
Logger.WriteLine(ex.ToString());
|
||||||
|
}
|
||||||
|
|
||||||
|
//ScreenBrightness.Set(60 + (int)(40 * bright));
|
||||||
|
}
|
||||||
|
|
||||||
public void SetScreen(int frequency = -1, int overdrive = -1, int miniled = -1)
|
public void SetScreen(int frequency = -1, int overdrive = -1, int miniled = -1)
|
||||||
{
|
{
|
||||||
var laptopScreen = ScreenNative.FindLaptopScreen(true);
|
var laptopScreen = ScreenNative.FindLaptopScreen(true);
|
||||||
@@ -71,7 +137,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)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
84
app/Extra.cs
84
app/Extra.cs
@@ -393,9 +393,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)
|
||||||
|
|||||||
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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
73
app/Fans.cs
73
app/Fans.cs
@@ -31,6 +31,8 @@ namespace GHelper
|
|||||||
|
|
||||||
FanSensorControl fanSensorControl;
|
FanSensorControl fanSensorControl;
|
||||||
|
|
||||||
|
static int gpuPowerBase = 0;
|
||||||
|
|
||||||
public Fans()
|
public Fans()
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -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();
|
||||||
}
|
}
|
||||||
@@ -953,7 +975,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++;
|
||||||
@@ -1089,19 +1111,24 @@ namespace GHelper
|
|||||||
|
|
||||||
if (gpuVisible)
|
if (gpuVisible)
|
||||||
{
|
{
|
||||||
|
int gpuPowerVar = Program.acpi.DeviceGet(AsusACPI.GPU_POWER);
|
||||||
|
|
||||||
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 = (gpuPowerVar >= 0) ? gpuPowerVar : AsusACPI.MaxGPUPower;
|
||||||
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.153</AssemblyVersion>
|
<AssemblyVersion>0.156</AssemblyVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||||
|
|||||||
@@ -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 { }
|
||||||
|
|||||||
@@ -500,7 +500,7 @@ namespace GHelper.Input
|
|||||||
case "micmute":
|
case "micmute":
|
||||||
bool muteStatus = Audio.ToggleMute();
|
bool muteStatus = Audio.ToggleMute();
|
||||||
Program.toast.RunToast(muteStatus ? "Muted" : "Unmuted", muteStatus ? ToastIcon.MicrophoneMute : ToastIcon.Microphone);
|
Program.toast.RunToast(muteStatus ? "Muted" : "Unmuted", muteStatus ? ToastIcon.MicrophoneMute : ToastIcon.Microphone);
|
||||||
if (AppConfig.IsVivobook()) Program.acpi.DeviceSet(AsusACPI.MICMUTE_LED, muteStatus ? 1 : 0, "MicmuteLed");
|
if (AppConfig.IsVivobook()) Program.acpi.DeviceSet(AsusACPI.MicMuteLed, muteStatus ? 1 : 0, "MicmuteLed");
|
||||||
break;
|
break;
|
||||||
case "brightness_up":
|
case "brightness_up":
|
||||||
SetBrightness(+10);
|
SetBrightness(+10);
|
||||||
@@ -628,6 +628,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;
|
||||||
@@ -706,6 +709,9 @@ namespace GHelper.Input
|
|||||||
else
|
else
|
||||||
Program.acpi.DeviceSet(AsusACPI.UniversalControl, AsusACPI.Brightness_Up, "Brightness");
|
Program.acpi.DeviceSet(AsusACPI.UniversalControl, AsusACPI.Brightness_Up, "Brightness");
|
||||||
break;
|
break;
|
||||||
|
case 133: // Camera Toggle
|
||||||
|
ToggleCamera();
|
||||||
|
break;
|
||||||
case 107: // FN+F10
|
case 107: // FN+F10
|
||||||
ToggleTouchpadEvent();
|
ToggleTouchpadEvent();
|
||||||
break;
|
break;
|
||||||
@@ -784,6 +790,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 +890,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);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -346,18 +346,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));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
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) };
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -215,6 +215,7 @@ namespace GHelper.Peripherals
|
|||||||
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)
|
||||||
|
|||||||
@@ -229,7 +229,7 @@ namespace GHelper
|
|||||||
|
|
||||||
BatteryControl.AutoBattery(init);
|
BatteryControl.AutoBattery(init);
|
||||||
|
|
||||||
settingsForm.matrixControl.SetMatrix(true);
|
settingsForm.matrixControl.SetDevice(true);
|
||||||
|
|
||||||
if (AppConfig.IsAlly())
|
if (AppConfig.IsAlly())
|
||||||
{
|
{
|
||||||
|
|||||||
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>
|
||||||
17
app/Properties/Strings.Designer.cs
generated
17
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>
|
||||||
@@ -792,7 +801,7 @@ namespace GHelper.Properties {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <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 {
|
||||||
@@ -1026,7 +1035,7 @@ namespace GHelper.Properties {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <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 {
|
||||||
@@ -1296,7 +1305,7 @@ namespace GHelper.Properties {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <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 {
|
||||||
|
|||||||
@@ -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>Bildschirm: Overdrive abschalten</value>
|
<value>Bildschirm: Overdrive abschalten</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
@@ -330,6 +330,9 @@
|
|||||||
<data name="DisableController" xml:space="preserve">
|
<data name="DisableController" xml:space="preserve">
|
||||||
<value>Deshabilitar mando</value>
|
<value>Deshabilitar mando</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="DisableOnLidClose" xml:space="preserve">
|
||||||
|
<value>Desactivar al cerrar la tapa</value>
|
||||||
|
</data>
|
||||||
<data name="DisableOverdrive" xml:space="preserve">
|
<data name="DisableOverdrive" xml:space="preserve">
|
||||||
<value>Desactivar Overdrive</value>
|
<value>Desactivar Overdrive</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
@@ -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>
|
||||||
@@ -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>
|
||||||
@@ -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 |
237
app/Settings.Designer.cs
generated
237
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,14 @@ 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();
|
||||||
|
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 +167,9 @@ namespace GHelper
|
|||||||
tableLayoutAlly.SuspendLayout();
|
tableLayoutAlly.SuspendLayout();
|
||||||
panelAllyTitle.SuspendLayout();
|
panelAllyTitle.SuspendLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)pictureAlly).BeginInit();
|
((System.ComponentModel.ISupportInitialize)pictureAlly).BeginInit();
|
||||||
|
panelGamma.SuspendLayout();
|
||||||
|
panelGammaTitle.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)pictureGamma).BeginInit();
|
||||||
SuspendLayout();
|
SuspendLayout();
|
||||||
//
|
//
|
||||||
// panelMatrix
|
// panelMatrix
|
||||||
@@ -164,18 +177,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, 950);
|
||||||
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 +240,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 +248,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 +282,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 +348,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 +356,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, 1626);
|
||||||
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 +448,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, 1801);
|
||||||
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 +765,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 +1195,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, 1284);
|
||||||
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 +1371,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, 1745);
|
||||||
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 +1396,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, 1428);
|
||||||
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 +1538,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, 1144);
|
||||||
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 +1666,79 @@ 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(sliderGamma);
|
||||||
buttonOverlay.BorderRadius = 5;
|
panelGamma.Controls.Add(panelGammaTitle);
|
||||||
buttonOverlay.Dock = DockStyle.Fill;
|
panelGamma.Dock = DockStyle.Top;
|
||||||
buttonOverlay.FlatAppearance.BorderSize = 0;
|
panelGamma.Location = new Point(11, 827);
|
||||||
buttonOverlay.FlatStyle = FlatStyle.Flat;
|
panelGamma.Margin = new Padding(0);
|
||||||
buttonOverlay.ForeColor = SystemColors.ControlText;
|
panelGamma.Name = "panelGamma";
|
||||||
buttonOverlay.Image = Properties.Resources.icons8_heartbeat_32;
|
panelGamma.Padding = new Padding(20, 20, 20, 10);
|
||||||
buttonOverlay.ImageAlign = ContentAlignment.MiddleRight;
|
panelGamma.Size = new Size(827, 123);
|
||||||
buttonOverlay.Location = new Point(266, 4);
|
panelGamma.TabIndex = 9;
|
||||||
buttonOverlay.Margin = new Padding(4);
|
panelGamma.Visible = false;
|
||||||
buttonOverlay.Name = "buttonOverlay";
|
//
|
||||||
buttonOverlay.Secondary = false;
|
// sliderGamma
|
||||||
buttonOverlay.Size = new Size(254, 72);
|
//
|
||||||
buttonOverlay.TabIndex = 12;
|
sliderGamma.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
|
||||||
buttonOverlay.Text = "AMD Overlay";
|
sliderGamma.Location = new Point(40, 69);
|
||||||
buttonOverlay.TextImageRelation = TextImageRelation.ImageBeforeText;
|
sliderGamma.Margin = new Padding(4);
|
||||||
buttonOverlay.UseVisualStyleBackColor = false;
|
sliderGamma.Max = 100;
|
||||||
|
sliderGamma.Min = 0;
|
||||||
|
sliderGamma.Name = "sliderGamma";
|
||||||
|
sliderGamma.Size = new Size(752, 40);
|
||||||
|
sliderGamma.Step = 10;
|
||||||
|
sliderGamma.TabIndex = 20;
|
||||||
|
sliderGamma.Text = "sliderGamma";
|
||||||
|
sliderGamma.Value = 100;
|
||||||
|
//
|
||||||
|
// 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(307, 32);
|
||||||
|
labelGammaTitle.TabIndex = 37;
|
||||||
|
labelGammaTitle.Text = "Flicker-free Dimming";
|
||||||
//
|
//
|
||||||
// SettingsForm
|
// SettingsForm
|
||||||
//
|
//
|
||||||
@@ -1614,7 +1746,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, 2119);
|
||||||
Controls.Add(panelFooter);
|
Controls.Add(panelFooter);
|
||||||
Controls.Add(panelVersion);
|
Controls.Add(panelVersion);
|
||||||
Controls.Add(panelBattery);
|
Controls.Add(panelBattery);
|
||||||
@@ -1622,6 +1754,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 +1770,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 +1825,9 @@ 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);
|
||||||
|
panelGammaTitle.ResumeLayout(false);
|
||||||
|
((System.ComponentModel.ISupportInitialize)pictureGamma).EndInit();
|
||||||
ResumeLayout(false);
|
ResumeLayout(false);
|
||||||
PerformLayout();
|
PerformLayout();
|
||||||
}
|
}
|
||||||
@@ -1784,5 +1922,14 @@ 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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -85,6 +85,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;
|
||||||
@@ -173,9 +174,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 +219,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;
|
||||||
|
|
||||||
@@ -251,9 +254,19 @@ namespace GHelper
|
|||||||
VisualiseFnLock();
|
VisualiseFnLock();
|
||||||
buttonFnLock.Click += ButtonFnLock_Click;
|
buttonFnLock.Click += ButtonFnLock_Click;
|
||||||
|
|
||||||
|
panelGamma.Visible = AppConfig.IsOLED();
|
||||||
|
sliderGamma.ValueChanged += SliderGamma_ValueChanged;
|
||||||
|
labelGamma.Text = "100%";
|
||||||
|
|
||||||
panelPerformance.Focus();
|
panelPerformance.Focus();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void SliderGamma_ValueChanged(object? sender, EventArgs e)
|
||||||
|
{
|
||||||
|
screenControl.SetGamma(sliderGamma.Value);
|
||||||
|
labelGamma.Text = sliderGamma.Value + "%";
|
||||||
|
}
|
||||||
|
|
||||||
private void ButtonOverlay_Click(object? sender, EventArgs e)
|
private void ButtonOverlay_Click(object? sender, EventArgs e)
|
||||||
{
|
{
|
||||||
KeyboardHook.KeyKeyKeyPress(Keys.LControlKey, Keys.LShiftKey, Keys.O);
|
KeyboardHook.KeyKeyKeyPress(Keys.LControlKey, Keys.LShiftKey, Keys.O);
|
||||||
@@ -424,7 +437,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 +456,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;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -686,9 +703,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 +734,7 @@ namespace GHelper
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetMatrixRunning(int mode)
|
public void VisualiseMatrixRunning(int mode)
|
||||||
{
|
{
|
||||||
Invoke(delegate
|
Invoke(delegate
|
||||||
{
|
{
|
||||||
@@ -721,17 +743,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();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -896,12 +924,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 +960,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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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)
|
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)
|
||||||
}
|
{
|
||||||
|
Logger.WriteLine($"Error writing {log} {device.ProductID.ToString("X")}: {ex.Message} {BitConverter.ToString(data)} ");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Logger.WriteLine($"Error opening {log} {device.ProductID.ToString("X")}: {ex.Message}");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void WriteAura(byte[] data)
|
public static void WriteAura(byte[] data)
|
||||||
|
|||||||
@@ -73,6 +73,9 @@ 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;
|
||||||
|
|
||||||
@@ -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.IsInputBacklight())
|
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);
|
||||||
@@ -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 });
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -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
|
||||||
|
|||||||
@@ -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"))
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|
||||||
@@ -107,13 +107,12 @@ Huge thanks to [@IceStormNG](https://github.com/IceStormNG) 👑 for contributio
|
|||||||
### ⌨️ Keybindings
|
### ⌨️ Keybindings
|
||||||
|
|
||||||
- ``Fn + F5 / Fn + Shift + F5`` - Toggle Performance Modes forwards / backwards
|
- ``Fn + F5 / Fn + Shift + F5`` - Toggle Performance Modes forwards / backwards
|
||||||
- ``Shift + Fn + F7 / F8`` - Set Anime Matrix / Slash Lightning brightness Down / Up
|
|
||||||
- ``Ctrl + Shift + F5 / Ctrl + Shift + Alt + F5`` - Toggle Performance Modes forwards / backwards
|
- ``Ctrl + Shift + F5 / Ctrl + Shift + Alt + F5`` - Toggle Performance Modes forwards / backwards
|
||||||
- ``Ctrl + Shift + F12`` - Open G-Helper window
|
- ``Ctrl + Shift + F12`` - Open G-Helper window
|
||||||
- ``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
|
||||||
@@ -125,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