mirror of
https://github.com/jkocon/g-helper.git
synced 2026-02-23 13:00:52 +01:00
Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
84a3f01267 | ||
|
|
f9488fbf2f | ||
|
|
43d2ed656a | ||
|
|
e9fa181d4e |
16
ASUSWmi.cs
16
ASUSWmi.cs
@@ -1,6 +1,6 @@
|
|||||||
using System.Management;
|
using System.Diagnostics;
|
||||||
|
using System.Management;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
using System.Diagnostics;
|
|
||||||
|
|
||||||
public class ASUSWmi
|
public class ASUSWmi
|
||||||
{
|
{
|
||||||
@@ -30,7 +30,7 @@ public class ASUSWmi
|
|||||||
|
|
||||||
public const int PPT_CPUB0 = 0x001200B0;
|
public const int PPT_CPUB0 = 0x001200B0;
|
||||||
public const int PPT_CPUB1 = 0x001200B1;
|
public const int PPT_CPUB1 = 0x001200B1;
|
||||||
public const int PPT_CPUA2 = 0x001200A2;
|
public const int PPT_CPUA2 = 0x001200A2;
|
||||||
|
|
||||||
public const int PerformanceBalanced = 0;
|
public const int PerformanceBalanced = 0;
|
||||||
public const int PerformanceTurbo = 1;
|
public const int PerformanceTurbo = 1;
|
||||||
@@ -174,9 +174,9 @@ public class ASUSWmi
|
|||||||
|
|
||||||
Debug.WriteLine(BitConverter.ToString(curve));
|
Debug.WriteLine(BitConverter.ToString(curve));
|
||||||
|
|
||||||
if (device == 1)
|
if (device == 1)
|
||||||
DeviceSet(DevsGPUFanCurve, curve);
|
DeviceSet(DevsGPUFanCurve, curve);
|
||||||
else
|
else
|
||||||
DeviceSet(DevsCPUFanCurve, curve);
|
DeviceSet(DevsCPUFanCurve, curve);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -187,14 +187,14 @@ public class ASUSWmi
|
|||||||
// because it's asus, and modes are swapped here
|
// because it's asus, and modes are swapped here
|
||||||
switch (mode)
|
switch (mode)
|
||||||
{
|
{
|
||||||
case 1:fan_mode = 2; break;
|
case 1: fan_mode = 2; break;
|
||||||
case 2: fan_mode = 1; break;
|
case 2: fan_mode = 1; break;
|
||||||
default: fan_mode = 0; break;
|
default: fan_mode = 0; break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (device == 1)
|
if (device == 1)
|
||||||
return DeviceGetBuffer(DevsGPUFanCurve, fan_mode);
|
return DeviceGetBuffer(DevsGPUFanCurve, fan_mode);
|
||||||
else
|
else
|
||||||
return DeviceGetBuffer(DevsCPUFanCurve, fan_mode);
|
return DeviceGetBuffer(DevsCPUFanCurve, fan_mode);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
230
AnimeMatrix/AnimeMatrixDevice.cs
Normal file
230
AnimeMatrix/AnimeMatrixDevice.cs
Normal file
@@ -0,0 +1,230 @@
|
|||||||
|
// Source thanks to https://github.com/vddCore/Starlight :)
|
||||||
|
|
||||||
|
using System.Text;
|
||||||
|
using Starlight.Communication;
|
||||||
|
|
||||||
|
namespace Starlight.AnimeMatrix
|
||||||
|
{
|
||||||
|
|
||||||
|
public class BuiltInAnimation
|
||||||
|
{
|
||||||
|
public enum Startup
|
||||||
|
{
|
||||||
|
GlitchConstruction,
|
||||||
|
StaticEmergence
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum Shutdown
|
||||||
|
{
|
||||||
|
GlitchOut,
|
||||||
|
SeeYa
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum Sleeping
|
||||||
|
{
|
||||||
|
BannerSwipe,
|
||||||
|
Starfield
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum Running
|
||||||
|
{
|
||||||
|
BinaryBannerScroll,
|
||||||
|
RogLogoGlitch
|
||||||
|
}
|
||||||
|
|
||||||
|
public byte AsByte { get; }
|
||||||
|
|
||||||
|
public BuiltInAnimation(
|
||||||
|
Running running,
|
||||||
|
Sleeping sleeping,
|
||||||
|
Shutdown shutdown,
|
||||||
|
Startup startup
|
||||||
|
)
|
||||||
|
{
|
||||||
|
AsByte |= (byte)(((int)running & 0x01) << 0);
|
||||||
|
AsByte |= (byte)(((int)sleeping & 0x01) << 1);
|
||||||
|
AsByte |= (byte)(((int)shutdown & 0x01) << 2);
|
||||||
|
AsByte |= (byte)(((int)startup & 0x01) << 3);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
internal class AnimeMatrixPacket : Packet
|
||||||
|
{
|
||||||
|
public AnimeMatrixPacket(byte[] command)
|
||||||
|
: base(0x5E, 640, command)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum BrightnessMode : byte
|
||||||
|
{
|
||||||
|
Off = 0,
|
||||||
|
Dim = 1,
|
||||||
|
Medium = 2,
|
||||||
|
Full = 3
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public class AnimeMatrixDevice : Device
|
||||||
|
{
|
||||||
|
private const int UpdatePageLength = 0x0278;
|
||||||
|
|
||||||
|
public int LedCount => 1450;
|
||||||
|
public int Rows => 61;
|
||||||
|
|
||||||
|
private readonly byte[] _displayBuffer = new byte[UpdatePageLength * 3];
|
||||||
|
|
||||||
|
public AnimeMatrixDevice()
|
||||||
|
: base(0x0B05, 0x193B, 640)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SendRaw(params byte[] data)
|
||||||
|
{
|
||||||
|
Set(Packet<AnimeMatrixPacket>(data));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public int EmptyColumns(int row)
|
||||||
|
{
|
||||||
|
return (int)Math.Ceiling(Math.Max(0, row - 11) / 2.0);
|
||||||
|
}
|
||||||
|
public int Columns(int row)
|
||||||
|
{
|
||||||
|
EnsureRowInRange(row);
|
||||||
|
return 34 - EmptyColumns(row);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int RowToLinearAddress(int row)
|
||||||
|
{
|
||||||
|
EnsureRowInRange(row);
|
||||||
|
|
||||||
|
var ret = 0;
|
||||||
|
|
||||||
|
if (row > 0)
|
||||||
|
{
|
||||||
|
for (var i = 0; i < row; i++)
|
||||||
|
ret += Columns(i);
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void WakeUp()
|
||||||
|
{
|
||||||
|
Set(Packet<AnimeMatrixPacket>(Encoding.ASCII.GetBytes("ASUS Tech.Inc.")));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetLedLinear(int address, byte value)
|
||||||
|
{
|
||||||
|
EnsureAddressableLed(address);
|
||||||
|
_displayBuffer[address] = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetLedLinearImmediate(int address, byte value)
|
||||||
|
{
|
||||||
|
EnsureAddressableLed(address);
|
||||||
|
_displayBuffer[address] = value;
|
||||||
|
|
||||||
|
Set(Packet<AnimeMatrixPacket>(0xC0, 0x02)
|
||||||
|
.AppendData(BitConverter.GetBytes((ushort)(address + 1)))
|
||||||
|
.AppendData(BitConverter.GetBytes((ushort)0x0001))
|
||||||
|
.AppendData(value)
|
||||||
|
);
|
||||||
|
|
||||||
|
Set(Packet<AnimeMatrixPacket>(0xC0, 0x03));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetLedPlanar(int x, int y, byte value)
|
||||||
|
{
|
||||||
|
EnsureRowInRange(y);
|
||||||
|
var ledsInRow = Columns(y);
|
||||||
|
var start = RowToLinearAddress(y) - EmptyColumns(y);
|
||||||
|
|
||||||
|
if (x > EmptyColumns(y))
|
||||||
|
SetLedLinear(start + x, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Clear(bool present = false)
|
||||||
|
{
|
||||||
|
for (var i = 0; i < _displayBuffer.Length; i++)
|
||||||
|
_displayBuffer[i] = 0;
|
||||||
|
|
||||||
|
if (present)
|
||||||
|
Present();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Present()
|
||||||
|
{
|
||||||
|
Set(Packet<AnimeMatrixPacket>(0xC0, 0x02)
|
||||||
|
.AppendData(BitConverter.GetBytes((ushort)(UpdatePageLength * 0 + 1)))
|
||||||
|
.AppendData(BitConverter.GetBytes((ushort)UpdatePageLength))
|
||||||
|
.AppendData(_displayBuffer[(UpdatePageLength * 0)..(UpdatePageLength * 1)])
|
||||||
|
);
|
||||||
|
|
||||||
|
Set(Packet<AnimeMatrixPacket>(0xC0, 0x02)
|
||||||
|
.AppendData(BitConverter.GetBytes((ushort)(UpdatePageLength * 1 + 1)))
|
||||||
|
.AppendData(BitConverter.GetBytes((ushort)UpdatePageLength))
|
||||||
|
.AppendData(_displayBuffer[(UpdatePageLength * 1)..(UpdatePageLength * 2)])
|
||||||
|
);
|
||||||
|
|
||||||
|
Set(Packet<AnimeMatrixPacket>(0xC0, 0x02)
|
||||||
|
.AppendData(BitConverter.GetBytes((ushort)(UpdatePageLength * 2 + 1)))
|
||||||
|
.AppendData(BitConverter.GetBytes((ushort)(LedCount - UpdatePageLength * 2)))
|
||||||
|
.AppendData(
|
||||||
|
_displayBuffer[(UpdatePageLength * 2)..(UpdatePageLength * 2 + (LedCount - UpdatePageLength * 2))])
|
||||||
|
);
|
||||||
|
|
||||||
|
Set(Packet<AnimeMatrixPacket>(0xC0, 0x03));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetDisplayState(bool enable)
|
||||||
|
{
|
||||||
|
if (enable)
|
||||||
|
{
|
||||||
|
Set(Packet<AnimeMatrixPacket>(0xC3, 0x01)
|
||||||
|
.AppendData(0x00));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Set(Packet<AnimeMatrixPacket>(0xC3, 0x01)
|
||||||
|
.AppendData(0x80));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetBrightness(BrightnessMode mode)
|
||||||
|
{
|
||||||
|
Set(Packet<AnimeMatrixPacket>(0xC0, 0x04)
|
||||||
|
.AppendData((byte)mode)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetBuiltInAnimation(bool enable)
|
||||||
|
{
|
||||||
|
var enabled = enable ? (byte)0x00 : (byte)0x80;
|
||||||
|
Set(Packet<AnimeMatrixPacket>(0xC4, 0x01, enabled));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetBuiltInAnimation(bool enable, BuiltInAnimation animation)
|
||||||
|
{
|
||||||
|
SetBuiltInAnimation(enable);
|
||||||
|
Set(Packet<AnimeMatrixPacket>(0xC5, animation.AsByte));
|
||||||
|
}
|
||||||
|
|
||||||
|
private void EnsureRowInRange(int row)
|
||||||
|
{
|
||||||
|
if (row < 0 || row >= Rows)
|
||||||
|
{
|
||||||
|
throw new IndexOutOfRangeException($"Y-coordinate should fall in range of [0, {Rows - 1}].");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void EnsureAddressableLed(int address)
|
||||||
|
{
|
||||||
|
if (address < 0 || address >= LedCount)
|
||||||
|
{
|
||||||
|
throw new IndexOutOfRangeException($"Linear LED address must be in range of [0, {LedCount - 1}].");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,9 +1,8 @@
|
|||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
|
|
||||||
public class AppConfig
|
public class AppConfig
|
||||||
{
|
{
|
||||||
|
|
||||||
string appPath;
|
public string appPath;
|
||||||
string configFile;
|
string configFile;
|
||||||
|
|
||||||
public Dictionary<string, object> config = new Dictionary<string, object>();
|
public Dictionary<string, object> config = new Dictionary<string, object>();
|
||||||
@@ -82,7 +81,7 @@ public class AppConfig
|
|||||||
else
|
else
|
||||||
name = "cpu";
|
name = "cpu";
|
||||||
|
|
||||||
return paramName+"_" + name + "_" + mode;
|
return paramName + "_" + name + "_" + mode;
|
||||||
}
|
}
|
||||||
|
|
||||||
public byte[] getFanConfig(int device)
|
public byte[] getFanConfig(int device)
|
||||||
|
|||||||
33
Communication/Device.cs
Normal file
33
Communication/Device.cs
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
// Source thanks to https://github.com/vddCore/Starlight :)
|
||||||
|
|
||||||
|
|
||||||
|
using Starlight.Communication.Platform;
|
||||||
|
|
||||||
|
namespace Starlight.Communication
|
||||||
|
{
|
||||||
|
public abstract class Device : IDisposable
|
||||||
|
{
|
||||||
|
private static UsbProvider _usbProvider;
|
||||||
|
|
||||||
|
protected Device(ushort vendorId, ushort productId, int maxFeatureReportLength)
|
||||||
|
{
|
||||||
|
_usbProvider = new WindowsUsbProvider(vendorId, productId, maxFeatureReportLength);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected T Packet<T>(params byte[] command) where T : Packet
|
||||||
|
{
|
||||||
|
return (T)Activator.CreateInstance(typeof(T), command)!;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Set(Packet packet)
|
||||||
|
=> _usbProvider?.Set(packet.Data);
|
||||||
|
|
||||||
|
public byte[] Get(Packet packet)
|
||||||
|
=> _usbProvider?.Get(packet.Data);
|
||||||
|
|
||||||
|
public void Dispose()
|
||||||
|
{
|
||||||
|
_usbProvider?.Dispose();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
61
Communication/Packet.cs
Normal file
61
Communication/Packet.cs
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
// Source thanks to https://github.com/vddCore/Starlight :)
|
||||||
|
|
||||||
|
using System.ComponentModel;
|
||||||
|
using HidSharp;
|
||||||
|
|
||||||
|
namespace Starlight.Communication
|
||||||
|
{
|
||||||
|
public abstract class Packet
|
||||||
|
{
|
||||||
|
private int _currentDataIndex = 1;
|
||||||
|
|
||||||
|
public byte[] Data { get; }
|
||||||
|
|
||||||
|
internal Packet(byte reportId, int packetLength, params byte[] data)
|
||||||
|
{
|
||||||
|
if (packetLength < 1)
|
||||||
|
{
|
||||||
|
throw new ArgumentOutOfRangeException(
|
||||||
|
nameof(packetLength),
|
||||||
|
"Packet length must be at least 1."
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Data = new byte[packetLength];
|
||||||
|
Data[0] = reportId;
|
||||||
|
|
||||||
|
if (data.Length > 0)
|
||||||
|
{
|
||||||
|
if (_currentDataIndex >= Data.Length)
|
||||||
|
{
|
||||||
|
throw new ArgumentOutOfRangeException(
|
||||||
|
nameof(data),
|
||||||
|
"Your packet length does not allow for initial data to be appended."
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
AppendData(data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Packet AppendData(params byte[] data)
|
||||||
|
=> AppendData(out _, data);
|
||||||
|
|
||||||
|
public Packet AppendData(out int bytesWritten, params byte[] data)
|
||||||
|
{
|
||||||
|
bytesWritten = 0;
|
||||||
|
|
||||||
|
for (var i = 0;
|
||||||
|
i < data.Length && _currentDataIndex < Data.Length - 1;
|
||||||
|
i++, bytesWritten++, _currentDataIndex++)
|
||||||
|
{
|
||||||
|
if (_currentDataIndex > Data.Length - 1)
|
||||||
|
break;
|
||||||
|
|
||||||
|
Data[_currentDataIndex] = data[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
19
Communication/Platform/UsbProvider.cs
Normal file
19
Communication/Platform/UsbProvider.cs
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
namespace Starlight.Communication.Platform
|
||||||
|
{
|
||||||
|
internal abstract class UsbProvider : IDisposable
|
||||||
|
{
|
||||||
|
protected ushort VendorID { get; }
|
||||||
|
protected ushort ProductID { get; }
|
||||||
|
|
||||||
|
protected UsbProvider(ushort vendorId, ushort productId)
|
||||||
|
{
|
||||||
|
VendorID = vendorId;
|
||||||
|
ProductID = productId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public abstract void Set(byte[] data);
|
||||||
|
public abstract byte[] Get(byte[] data);
|
||||||
|
|
||||||
|
public abstract void Dispose();
|
||||||
|
}
|
||||||
|
}
|
||||||
79
Communication/Platform/WindowsUsbProvider.cs
Normal file
79
Communication/Platform/WindowsUsbProvider.cs
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
using System.ComponentModel;
|
||||||
|
using HidSharp;
|
||||||
|
|
||||||
|
namespace Starlight.Communication.Platform
|
||||||
|
{
|
||||||
|
internal class WindowsUsbProvider : UsbProvider
|
||||||
|
{
|
||||||
|
protected HidDevice HidDevice { get; }
|
||||||
|
protected HidStream HidStream { get; }
|
||||||
|
|
||||||
|
public WindowsUsbProvider(ushort vendorId, ushort productId, int maxFeatureReportLength)
|
||||||
|
: base(vendorId, productId)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
HidDevice = DeviceList.Local
|
||||||
|
.GetHidDevices(vendorId, productId)
|
||||||
|
.First(x => x.GetMaxFeatureReportLength() == maxFeatureReportLength);
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
throw new IOException("AniMe Matrix control device was not found on your machine.");
|
||||||
|
}
|
||||||
|
|
||||||
|
var config = new OpenConfiguration();
|
||||||
|
config.SetOption(OpenOption.Interruptible, true);
|
||||||
|
config.SetOption(OpenOption.Exclusive, false);
|
||||||
|
config.SetOption(OpenOption.Priority, 10);
|
||||||
|
|
||||||
|
HidStream = HidDevice.Open(config);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Set(byte[] data)
|
||||||
|
{
|
||||||
|
WrapException(() =>
|
||||||
|
{
|
||||||
|
HidStream.SetFeature(data);
|
||||||
|
HidStream.Flush();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public override byte[] Get(byte[] data)
|
||||||
|
{
|
||||||
|
var outData = new byte[data.Length];
|
||||||
|
Array.Copy(data, outData, data.Length);
|
||||||
|
|
||||||
|
WrapException(() =>
|
||||||
|
{
|
||||||
|
HidStream.GetFeature(outData);
|
||||||
|
HidStream.Flush();
|
||||||
|
});
|
||||||
|
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void Dispose()
|
||||||
|
{
|
||||||
|
HidStream.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void WrapException(Action action)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
action();
|
||||||
|
}
|
||||||
|
catch (IOException e)
|
||||||
|
{
|
||||||
|
if (e.InnerException is Win32Exception w32e)
|
||||||
|
{
|
||||||
|
if (w32e.NativeErrorCode != 0)
|
||||||
|
{
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
4
Fans.cs
4
Fans.cs
@@ -235,8 +235,8 @@ namespace GHelper
|
|||||||
if (def == 1 || curve.Length != 16)
|
if (def == 1 || curve.Length != 16)
|
||||||
curve = Program.wmi.GetFanCurve(device, mode);
|
curve = Program.wmi.GetFanCurve(device, mode);
|
||||||
|
|
||||||
if (curve.All(singleByte => singleByte == 0))
|
if (curve.Length != 16 || curve.All(singleByte => singleByte == 0))
|
||||||
Program.config.getDefaultCurve(device);
|
curve = Program.config.getDefaultCurve(device);
|
||||||
|
|
||||||
//Debug.WriteLine(BitConverter.ToString(curve));
|
//Debug.WriteLine(BitConverter.ToString(curve));
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,8 @@
|
|||||||
<AssemblyName>GHelper</AssemblyName>
|
<AssemblyName>GHelper</AssemblyName>
|
||||||
<PlatformTarget>x64</PlatformTarget>
|
<PlatformTarget>x64</PlatformTarget>
|
||||||
<ProduceReferenceAssembly>False</ProduceReferenceAssembly>
|
<ProduceReferenceAssembly>False</ProduceReferenceAssembly>
|
||||||
<AssemblyVersion>0.14.0</AssemblyVersion>
|
<AssemblyVersion>0.15</AssemblyVersion>
|
||||||
|
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@@ -37,6 +38,7 @@
|
|||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="hidlibrary" Version="3.3.40" />
|
<PackageReference Include="hidlibrary" Version="3.3.40" />
|
||||||
|
<PackageReference Include="HidSharpCore" Version="1.2.1.1" />
|
||||||
<PackageReference Include="System.Management" Version="7.0.0" />
|
<PackageReference Include="System.Management" Version="7.0.0" />
|
||||||
<PackageReference Include="TaskScheduler" Version="2.10.1" />
|
<PackageReference Include="TaskScheduler" Version="2.10.1" />
|
||||||
<PackageReference Include="WinForms.DataVisualization" Version="1.7.0" />
|
<PackageReference Include="WinForms.DataVisualization" Version="1.7.0" />
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
using Microsoft.Win32;
|
using Microsoft.Win32;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Management;
|
using System.Management;
|
||||||
|
using Starlight.AnimeMatrix;
|
||||||
|
|
||||||
public class HardwareMonitor
|
public class HardwareMonitor
|
||||||
{
|
{
|
||||||
|
|||||||
10
Properties/Resources.Designer.cs
generated
10
Properties/Resources.Designer.cs
generated
@@ -120,6 +120,16 @@ namespace GHelper.Properties {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap icons8_matrix_desktop_48 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("icons8-matrix-desktop-48", 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>
|
||||||
|
|||||||
@@ -133,6 +133,9 @@
|
|||||||
<data name="icons8-speed-48" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icons8-speed-48" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icons8-speed-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icons8-speed-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="everything-is-fine-itsfine" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\everything-is-fine-itsfine.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
<data name="icons8-speed-96" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icons8-speed-96" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icons8-speed-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icons8-speed-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -148,7 +151,7 @@
|
|||||||
<data name="icons8-laptop-48" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icons8-laptop-48" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icons8-laptop-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icons8-laptop-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="everything-is-fine-itsfine" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icons8-matrix-desktop-48" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\everything-is-fine-itsfine.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icons8-matrix-desktop-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
</root>
|
</root>
|
||||||
@@ -44,10 +44,6 @@ PPTs are shown for G14 2022, for other models PPTs will be different as they are
|
|||||||
2. Standard mode (Windows Hybrid) : iGPU and dGPU enabled, iGPU drives built in display
|
2. Standard mode (Windows Hybrid) : iGPU and dGPU enabled, iGPU drives built in display
|
||||||
3. Ultimate mode: iGPU and dGPU enabled, but dGPU drives built in display (supported only on G14 2022 model)
|
3. Ultimate mode: iGPU and dGPU enabled, but dGPU drives built in display (supported only on G14 2022 model)
|
||||||
|
|
||||||
## Things still missing
|
|
||||||
|
|
||||||
1. Anime matrix control
|
|
||||||
|
|
||||||
## How to install
|
## How to install
|
||||||
|
|
||||||
1. Download latest release from https://github.com/seerge/g-helper/releases
|
1. Download latest release from https://github.com/seerge/g-helper/releases
|
||||||
|
|||||||
BIN
Resources/icons8-matrix-desktop-48.png
Normal file
BIN
Resources/icons8-matrix-desktop-48.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 428 B |
180
Settings.Designer.cs
generated
180
Settings.Designer.cs
generated
@@ -56,7 +56,7 @@
|
|||||||
button60Hz = new Button();
|
button60Hz = new Button();
|
||||||
checkScreen = new CheckBox();
|
checkScreen = new CheckBox();
|
||||||
checkBoost = new CheckBox();
|
checkBoost = new CheckBox();
|
||||||
pictureBox1 = new PictureBox();
|
pictureKeyboard = new PictureBox();
|
||||||
label1 = new Label();
|
label1 = new Label();
|
||||||
comboKeyboard = new ComboBox();
|
comboKeyboard = new ComboBox();
|
||||||
buttonKeyboardColor = new Button();
|
buttonKeyboardColor = new Button();
|
||||||
@@ -66,6 +66,11 @@
|
|||||||
pictureColor = new PictureBox();
|
pictureColor = new PictureBox();
|
||||||
pictureColor2 = new PictureBox();
|
pictureColor2 = new PictureBox();
|
||||||
labelVersion = new Label();
|
labelVersion = new Label();
|
||||||
|
pictureMatrix = new PictureBox();
|
||||||
|
labelMatrix = new Label();
|
||||||
|
comboMatrix = new ComboBox();
|
||||||
|
comboMatrixRunning = new ComboBox();
|
||||||
|
buttonMatrix = new Button();
|
||||||
((System.ComponentModel.ISupportInitialize)trackBattery).BeginInit();
|
((System.ComponentModel.ISupportInitialize)trackBattery).BeginInit();
|
||||||
((System.ComponentModel.ISupportInitialize)pictureBattery).BeginInit();
|
((System.ComponentModel.ISupportInitialize)pictureBattery).BeginInit();
|
||||||
tableGPU.SuspendLayout();
|
tableGPU.SuspendLayout();
|
||||||
@@ -74,15 +79,16 @@
|
|||||||
((System.ComponentModel.ISupportInitialize)picturePerf).BeginInit();
|
((System.ComponentModel.ISupportInitialize)picturePerf).BeginInit();
|
||||||
((System.ComponentModel.ISupportInitialize)pictureScreen).BeginInit();
|
((System.ComponentModel.ISupportInitialize)pictureScreen).BeginInit();
|
||||||
tableScreen.SuspendLayout();
|
tableScreen.SuspendLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)pictureBox1).BeginInit();
|
((System.ComponentModel.ISupportInitialize)pictureKeyboard).BeginInit();
|
||||||
((System.ComponentModel.ISupportInitialize)pictureColor).BeginInit();
|
((System.ComponentModel.ISupportInitialize)pictureColor).BeginInit();
|
||||||
((System.ComponentModel.ISupportInitialize)pictureColor2).BeginInit();
|
((System.ComponentModel.ISupportInitialize)pictureColor2).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)pictureMatrix).BeginInit();
|
||||||
SuspendLayout();
|
SuspendLayout();
|
||||||
//
|
//
|
||||||
// checkStartup
|
// checkStartup
|
||||||
//
|
//
|
||||||
checkStartup.AutoSize = true;
|
checkStartup.AutoSize = true;
|
||||||
checkStartup.Location = new Point(33, 1016);
|
checkStartup.Location = new Point(35, 1138);
|
||||||
checkStartup.Margin = new Padding(4, 2, 4, 2);
|
checkStartup.Margin = new Padding(4, 2, 4, 2);
|
||||||
checkStartup.Name = "checkStartup";
|
checkStartup.Name = "checkStartup";
|
||||||
checkStartup.Size = new Size(206, 36);
|
checkStartup.Size = new Size(206, 36);
|
||||||
@@ -95,12 +101,12 @@
|
|||||||
//
|
//
|
||||||
trackBattery.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
|
trackBattery.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
|
||||||
trackBattery.LargeChange = 20;
|
trackBattery.LargeChange = 20;
|
||||||
trackBattery.Location = new Point(20, 908);
|
trackBattery.Location = new Point(22, 1030);
|
||||||
trackBattery.Margin = new Padding(4, 2, 4, 2);
|
trackBattery.Margin = new Padding(4, 2, 4, 2);
|
||||||
trackBattery.Maximum = 100;
|
trackBattery.Maximum = 100;
|
||||||
trackBattery.Minimum = 50;
|
trackBattery.Minimum = 50;
|
||||||
trackBattery.Name = "trackBattery";
|
trackBattery.Name = "trackBattery";
|
||||||
trackBattery.Size = new Size(676, 90);
|
trackBattery.Size = new Size(682, 90);
|
||||||
trackBattery.SmallChange = 10;
|
trackBattery.SmallChange = 10;
|
||||||
trackBattery.TabIndex = 3;
|
trackBattery.TabIndex = 3;
|
||||||
trackBattery.TickFrequency = 10;
|
trackBattery.TickFrequency = 10;
|
||||||
@@ -111,7 +117,7 @@
|
|||||||
//
|
//
|
||||||
labelBatteryTitle.AutoSize = true;
|
labelBatteryTitle.AutoSize = true;
|
||||||
labelBatteryTitle.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
|
labelBatteryTitle.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
|
||||||
labelBatteryTitle.Location = new Point(78, 870);
|
labelBatteryTitle.Location = new Point(80, 992);
|
||||||
labelBatteryTitle.Margin = new Padding(4, 0, 4, 0);
|
labelBatteryTitle.Margin = new Padding(4, 0, 4, 0);
|
||||||
labelBatteryTitle.Name = "labelBatteryTitle";
|
labelBatteryTitle.Name = "labelBatteryTitle";
|
||||||
labelBatteryTitle.Size = new Size(248, 32);
|
labelBatteryTitle.Size = new Size(248, 32);
|
||||||
@@ -122,7 +128,7 @@
|
|||||||
//
|
//
|
||||||
pictureBattery.BackgroundImage = (Image)resources.GetObject("pictureBattery.BackgroundImage");
|
pictureBattery.BackgroundImage = (Image)resources.GetObject("pictureBattery.BackgroundImage");
|
||||||
pictureBattery.BackgroundImageLayout = ImageLayout.Zoom;
|
pictureBattery.BackgroundImageLayout = ImageLayout.Zoom;
|
||||||
pictureBattery.Location = new Point(36, 868);
|
pictureBattery.Location = new Point(38, 990);
|
||||||
pictureBattery.Margin = new Padding(4, 2, 4, 2);
|
pictureBattery.Margin = new Padding(4, 2, 4, 2);
|
||||||
pictureBattery.Name = "pictureBattery";
|
pictureBattery.Name = "pictureBattery";
|
||||||
pictureBattery.Size = new Size(36, 38);
|
pictureBattery.Size = new Size(36, 38);
|
||||||
@@ -132,12 +138,12 @@
|
|||||||
// labelGPUFan
|
// labelGPUFan
|
||||||
//
|
//
|
||||||
labelGPUFan.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
labelGPUFan.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||||
labelGPUFan.Location = new Point(338, 262);
|
labelGPUFan.Location = new Point(344, 262);
|
||||||
labelGPUFan.Margin = new Padding(4, 0, 4, 0);
|
labelGPUFan.Margin = new Padding(4, 0, 4, 0);
|
||||||
labelGPUFan.Name = "labelGPUFan";
|
labelGPUFan.Name = "labelGPUFan";
|
||||||
labelGPUFan.Size = new Size(348, 32);
|
labelGPUFan.Size = new Size(348, 32);
|
||||||
labelGPUFan.TabIndex = 8;
|
labelGPUFan.TabIndex = 8;
|
||||||
labelGPUFan.Text = "GPU Fan";
|
labelGPUFan.Text = " ";
|
||||||
labelGPUFan.TextAlign = ContentAlignment.TopRight;
|
labelGPUFan.TextAlign = ContentAlignment.TopRight;
|
||||||
//
|
//
|
||||||
// tableGPU
|
// tableGPU
|
||||||
@@ -155,7 +161,7 @@
|
|||||||
tableGPU.Name = "tableGPU";
|
tableGPU.Name = "tableGPU";
|
||||||
tableGPU.RowCount = 1;
|
tableGPU.RowCount = 1;
|
||||||
tableGPU.RowStyles.Add(new RowStyle(SizeType.Absolute, 108F));
|
tableGPU.RowStyles.Add(new RowStyle(SizeType.Absolute, 108F));
|
||||||
tableGPU.Size = new Size(676, 108);
|
tableGPU.Size = new Size(682, 108);
|
||||||
tableGPU.TabIndex = 7;
|
tableGPU.TabIndex = 7;
|
||||||
//
|
//
|
||||||
// buttonUltimate
|
// buttonUltimate
|
||||||
@@ -164,10 +170,10 @@
|
|||||||
buttonUltimate.Dock = DockStyle.Fill;
|
buttonUltimate.Dock = DockStyle.Fill;
|
||||||
buttonUltimate.FlatAppearance.BorderSize = 0;
|
buttonUltimate.FlatAppearance.BorderSize = 0;
|
||||||
buttonUltimate.FlatStyle = FlatStyle.Flat;
|
buttonUltimate.FlatStyle = FlatStyle.Flat;
|
||||||
buttonUltimate.Location = new Point(458, 12);
|
buttonUltimate.Location = new Point(462, 12);
|
||||||
buttonUltimate.Margin = new Padding(8, 12, 8, 12);
|
buttonUltimate.Margin = new Padding(8, 12, 8, 12);
|
||||||
buttonUltimate.Name = "buttonUltimate";
|
buttonUltimate.Name = "buttonUltimate";
|
||||||
buttonUltimate.Size = new Size(210, 84);
|
buttonUltimate.Size = new Size(212, 84);
|
||||||
buttonUltimate.TabIndex = 2;
|
buttonUltimate.TabIndex = 2;
|
||||||
buttonUltimate.Text = "Ultimate";
|
buttonUltimate.Text = "Ultimate";
|
||||||
buttonUltimate.UseVisualStyleBackColor = false;
|
buttonUltimate.UseVisualStyleBackColor = false;
|
||||||
@@ -178,10 +184,10 @@
|
|||||||
buttonStandard.Dock = DockStyle.Fill;
|
buttonStandard.Dock = DockStyle.Fill;
|
||||||
buttonStandard.FlatAppearance.BorderSize = 0;
|
buttonStandard.FlatAppearance.BorderSize = 0;
|
||||||
buttonStandard.FlatStyle = FlatStyle.Flat;
|
buttonStandard.FlatStyle = FlatStyle.Flat;
|
||||||
buttonStandard.Location = new Point(233, 12);
|
buttonStandard.Location = new Point(235, 12);
|
||||||
buttonStandard.Margin = new Padding(8, 12, 8, 12);
|
buttonStandard.Margin = new Padding(8, 12, 8, 12);
|
||||||
buttonStandard.Name = "buttonStandard";
|
buttonStandard.Name = "buttonStandard";
|
||||||
buttonStandard.Size = new Size(209, 84);
|
buttonStandard.Size = new Size(211, 84);
|
||||||
buttonStandard.TabIndex = 1;
|
buttonStandard.TabIndex = 1;
|
||||||
buttonStandard.Text = "Standard";
|
buttonStandard.Text = "Standard";
|
||||||
buttonStandard.UseVisualStyleBackColor = false;
|
buttonStandard.UseVisualStyleBackColor = false;
|
||||||
@@ -196,7 +202,7 @@
|
|||||||
buttonEco.Location = new Point(8, 12);
|
buttonEco.Location = new Point(8, 12);
|
||||||
buttonEco.Margin = new Padding(8, 12, 8, 12);
|
buttonEco.Margin = new Padding(8, 12, 8, 12);
|
||||||
buttonEco.Name = "buttonEco";
|
buttonEco.Name = "buttonEco";
|
||||||
buttonEco.Size = new Size(209, 84);
|
buttonEco.Size = new Size(211, 84);
|
||||||
buttonEco.TabIndex = 0;
|
buttonEco.TabIndex = 0;
|
||||||
buttonEco.Text = "Eco";
|
buttonEco.Text = "Eco";
|
||||||
buttonEco.UseVisualStyleBackColor = false;
|
buttonEco.UseVisualStyleBackColor = false;
|
||||||
@@ -226,12 +232,12 @@
|
|||||||
// labelCPUFan
|
// labelCPUFan
|
||||||
//
|
//
|
||||||
labelCPUFan.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
labelCPUFan.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||||
labelCPUFan.Location = new Point(320, 38);
|
labelCPUFan.Location = new Point(326, 38);
|
||||||
labelCPUFan.Margin = new Padding(4, 0, 4, 0);
|
labelCPUFan.Margin = new Padding(4, 0, 4, 0);
|
||||||
labelCPUFan.Name = "labelCPUFan";
|
labelCPUFan.Name = "labelCPUFan";
|
||||||
labelCPUFan.Size = new Size(366, 32);
|
labelCPUFan.Size = new Size(366, 32);
|
||||||
labelCPUFan.TabIndex = 12;
|
labelCPUFan.TabIndex = 12;
|
||||||
labelCPUFan.Text = "CPU Fan";
|
labelCPUFan.Text = " ";
|
||||||
labelCPUFan.TextAlign = ContentAlignment.TopRight;
|
labelCPUFan.TextAlign = ContentAlignment.TopRight;
|
||||||
//
|
//
|
||||||
// tablePerf
|
// tablePerf
|
||||||
@@ -249,7 +255,7 @@
|
|||||||
tablePerf.Name = "tablePerf";
|
tablePerf.Name = "tablePerf";
|
||||||
tablePerf.RowCount = 1;
|
tablePerf.RowCount = 1;
|
||||||
tablePerf.RowStyles.Add(new RowStyle(SizeType.Absolute, 108F));
|
tablePerf.RowStyles.Add(new RowStyle(SizeType.Absolute, 108F));
|
||||||
tablePerf.Size = new Size(676, 108);
|
tablePerf.Size = new Size(682, 108);
|
||||||
tablePerf.TabIndex = 11;
|
tablePerf.TabIndex = 11;
|
||||||
//
|
//
|
||||||
// buttonTurbo
|
// buttonTurbo
|
||||||
@@ -259,10 +265,10 @@
|
|||||||
buttonTurbo.FlatAppearance.BorderColor = Color.FromArgb(192, 0, 0);
|
buttonTurbo.FlatAppearance.BorderColor = Color.FromArgb(192, 0, 0);
|
||||||
buttonTurbo.FlatAppearance.BorderSize = 0;
|
buttonTurbo.FlatAppearance.BorderSize = 0;
|
||||||
buttonTurbo.FlatStyle = FlatStyle.Flat;
|
buttonTurbo.FlatStyle = FlatStyle.Flat;
|
||||||
buttonTurbo.Location = new Point(458, 12);
|
buttonTurbo.Location = new Point(462, 12);
|
||||||
buttonTurbo.Margin = new Padding(8, 12, 8, 12);
|
buttonTurbo.Margin = new Padding(8, 12, 8, 12);
|
||||||
buttonTurbo.Name = "buttonTurbo";
|
buttonTurbo.Name = "buttonTurbo";
|
||||||
buttonTurbo.Size = new Size(210, 84);
|
buttonTurbo.Size = new Size(212, 84);
|
||||||
buttonTurbo.TabIndex = 2;
|
buttonTurbo.TabIndex = 2;
|
||||||
buttonTurbo.Text = "Turbo";
|
buttonTurbo.Text = "Turbo";
|
||||||
buttonTurbo.UseVisualStyleBackColor = false;
|
buttonTurbo.UseVisualStyleBackColor = false;
|
||||||
@@ -274,10 +280,10 @@
|
|||||||
buttonBalanced.FlatAppearance.BorderColor = Color.FromArgb(0, 0, 192);
|
buttonBalanced.FlatAppearance.BorderColor = Color.FromArgb(0, 0, 192);
|
||||||
buttonBalanced.FlatAppearance.BorderSize = 0;
|
buttonBalanced.FlatAppearance.BorderSize = 0;
|
||||||
buttonBalanced.FlatStyle = FlatStyle.Flat;
|
buttonBalanced.FlatStyle = FlatStyle.Flat;
|
||||||
buttonBalanced.Location = new Point(233, 12);
|
buttonBalanced.Location = new Point(235, 12);
|
||||||
buttonBalanced.Margin = new Padding(8, 12, 8, 12);
|
buttonBalanced.Margin = new Padding(8, 12, 8, 12);
|
||||||
buttonBalanced.Name = "buttonBalanced";
|
buttonBalanced.Name = "buttonBalanced";
|
||||||
buttonBalanced.Size = new Size(209, 84);
|
buttonBalanced.Size = new Size(211, 84);
|
||||||
buttonBalanced.TabIndex = 1;
|
buttonBalanced.TabIndex = 1;
|
||||||
buttonBalanced.Text = "Balanced";
|
buttonBalanced.Text = "Balanced";
|
||||||
buttonBalanced.UseVisualStyleBackColor = false;
|
buttonBalanced.UseVisualStyleBackColor = false;
|
||||||
@@ -293,7 +299,7 @@
|
|||||||
buttonSilent.Location = new Point(8, 12);
|
buttonSilent.Location = new Point(8, 12);
|
||||||
buttonSilent.Margin = new Padding(8, 12, 8, 12);
|
buttonSilent.Margin = new Padding(8, 12, 8, 12);
|
||||||
buttonSilent.Name = "buttonSilent";
|
buttonSilent.Name = "buttonSilent";
|
||||||
buttonSilent.Size = new Size(209, 84);
|
buttonSilent.Size = new Size(211, 84);
|
||||||
buttonSilent.TabIndex = 0;
|
buttonSilent.TabIndex = 0;
|
||||||
buttonSilent.Text = "Silent";
|
buttonSilent.Text = "Silent";
|
||||||
buttonSilent.UseVisualStyleBackColor = false;
|
buttonSilent.UseVisualStyleBackColor = false;
|
||||||
@@ -338,7 +344,7 @@
|
|||||||
//
|
//
|
||||||
buttonQuit.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
buttonQuit.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||||
buttonQuit.BackColor = SystemColors.ButtonFace;
|
buttonQuit.BackColor = SystemColors.ButtonFace;
|
||||||
buttonQuit.Location = new Point(576, 1008);
|
buttonQuit.Location = new Point(584, 1130);
|
||||||
buttonQuit.Margin = new Padding(4, 2, 4, 2);
|
buttonQuit.Margin = new Padding(4, 2, 4, 2);
|
||||||
buttonQuit.Name = "buttonQuit";
|
buttonQuit.Name = "buttonQuit";
|
||||||
buttonQuit.Size = new Size(120, 48);
|
buttonQuit.Size = new Size(120, 48);
|
||||||
@@ -382,7 +388,7 @@
|
|||||||
tableScreen.Name = "tableScreen";
|
tableScreen.Name = "tableScreen";
|
||||||
tableScreen.RowCount = 1;
|
tableScreen.RowCount = 1;
|
||||||
tableScreen.RowStyles.Add(new RowStyle(SizeType.Absolute, 108F));
|
tableScreen.RowStyles.Add(new RowStyle(SizeType.Absolute, 108F));
|
||||||
tableScreen.Size = new Size(676, 108);
|
tableScreen.Size = new Size(682, 108);
|
||||||
tableScreen.TabIndex = 19;
|
tableScreen.TabIndex = 19;
|
||||||
//
|
//
|
||||||
// button120Hz
|
// button120Hz
|
||||||
@@ -392,10 +398,10 @@
|
|||||||
button120Hz.FlatAppearance.BorderColor = SystemColors.ActiveBorder;
|
button120Hz.FlatAppearance.BorderColor = SystemColors.ActiveBorder;
|
||||||
button120Hz.FlatAppearance.BorderSize = 0;
|
button120Hz.FlatAppearance.BorderSize = 0;
|
||||||
button120Hz.FlatStyle = FlatStyle.Flat;
|
button120Hz.FlatStyle = FlatStyle.Flat;
|
||||||
button120Hz.Location = new Point(233, 12);
|
button120Hz.Location = new Point(235, 12);
|
||||||
button120Hz.Margin = new Padding(8, 12, 8, 12);
|
button120Hz.Margin = new Padding(8, 12, 8, 12);
|
||||||
button120Hz.Name = "button120Hz";
|
button120Hz.Name = "button120Hz";
|
||||||
button120Hz.Size = new Size(209, 84);
|
button120Hz.Size = new Size(211, 84);
|
||||||
button120Hz.TabIndex = 1;
|
button120Hz.TabIndex = 1;
|
||||||
button120Hz.Text = "120Hz + OD";
|
button120Hz.Text = "120Hz + OD";
|
||||||
button120Hz.UseVisualStyleBackColor = false;
|
button120Hz.UseVisualStyleBackColor = false;
|
||||||
@@ -412,7 +418,7 @@
|
|||||||
button60Hz.Location = new Point(8, 12);
|
button60Hz.Location = new Point(8, 12);
|
||||||
button60Hz.Margin = new Padding(8, 12, 8, 12);
|
button60Hz.Margin = new Padding(8, 12, 8, 12);
|
||||||
button60Hz.Name = "button60Hz";
|
button60Hz.Name = "button60Hz";
|
||||||
button60Hz.Size = new Size(209, 84);
|
button60Hz.Size = new Size(211, 84);
|
||||||
button60Hz.TabIndex = 0;
|
button60Hz.TabIndex = 0;
|
||||||
button60Hz.Text = "60Hz";
|
button60Hz.Text = "60Hz";
|
||||||
button60Hz.UseVisualStyleBackColor = false;
|
button60Hz.UseVisualStyleBackColor = false;
|
||||||
@@ -441,16 +447,16 @@
|
|||||||
checkBoost.Text = "CPU Turbo Boost enabled";
|
checkBoost.Text = "CPU Turbo Boost enabled";
|
||||||
checkBoost.UseVisualStyleBackColor = true;
|
checkBoost.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// pictureBox1
|
// pictureKeyboard
|
||||||
//
|
//
|
||||||
pictureBox1.BackgroundImage = Properties.Resources.icons8_keyboard_48;
|
pictureKeyboard.BackgroundImage = Properties.Resources.icons8_keyboard_48;
|
||||||
pictureBox1.BackgroundImageLayout = ImageLayout.Zoom;
|
pictureKeyboard.BackgroundImageLayout = ImageLayout.Zoom;
|
||||||
pictureBox1.Location = new Point(36, 724);
|
pictureKeyboard.Location = new Point(36, 724);
|
||||||
pictureBox1.Margin = new Padding(4, 2, 4, 2);
|
pictureKeyboard.Margin = new Padding(4, 2, 4, 2);
|
||||||
pictureBox1.Name = "pictureBox1";
|
pictureKeyboard.Name = "pictureKeyboard";
|
||||||
pictureBox1.Size = new Size(36, 36);
|
pictureKeyboard.Size = new Size(36, 36);
|
||||||
pictureBox1.TabIndex = 23;
|
pictureKeyboard.TabIndex = 23;
|
||||||
pictureBox1.TabStop = false;
|
pictureKeyboard.TabStop = false;
|
||||||
//
|
//
|
||||||
// label1
|
// label1
|
||||||
//
|
//
|
||||||
@@ -469,10 +475,10 @@
|
|||||||
comboKeyboard.FormattingEnabled = true;
|
comboKeyboard.FormattingEnabled = true;
|
||||||
comboKeyboard.ItemHeight = 32;
|
comboKeyboard.ItemHeight = 32;
|
||||||
comboKeyboard.Items.AddRange(new object[] { "Static", "Breathe", "Strobe", "Rainbow", "Dingding" });
|
comboKeyboard.Items.AddRange(new object[] { "Static", "Breathe", "Strobe", "Rainbow", "Dingding" });
|
||||||
comboKeyboard.Location = new Point(32, 778);
|
comboKeyboard.Location = new Point(30, 770);
|
||||||
comboKeyboard.Margin = new Padding(0);
|
comboKeyboard.Margin = new Padding(0);
|
||||||
comboKeyboard.Name = "comboKeyboard";
|
comboKeyboard.Name = "comboKeyboard";
|
||||||
comboKeyboard.Size = new Size(200, 40);
|
comboKeyboard.Size = new Size(211, 40);
|
||||||
comboKeyboard.TabIndex = 24;
|
comboKeyboard.TabIndex = 24;
|
||||||
comboKeyboard.TabStop = false;
|
comboKeyboard.TabStop = false;
|
||||||
//
|
//
|
||||||
@@ -483,10 +489,10 @@
|
|||||||
buttonKeyboardColor.FlatAppearance.BorderColor = Color.Red;
|
buttonKeyboardColor.FlatAppearance.BorderColor = Color.Red;
|
||||||
buttonKeyboardColor.FlatAppearance.BorderSize = 2;
|
buttonKeyboardColor.FlatAppearance.BorderSize = 2;
|
||||||
buttonKeyboardColor.ForeColor = SystemColors.ControlText;
|
buttonKeyboardColor.ForeColor = SystemColors.ControlText;
|
||||||
buttonKeyboardColor.Location = new Point(255, 774);
|
buttonKeyboardColor.Location = new Point(257, 766);
|
||||||
buttonKeyboardColor.Margin = new Padding(0);
|
buttonKeyboardColor.Margin = new Padding(0);
|
||||||
buttonKeyboardColor.Name = "buttonKeyboardColor";
|
buttonKeyboardColor.Name = "buttonKeyboardColor";
|
||||||
buttonKeyboardColor.Size = new Size(209, 48);
|
buttonKeyboardColor.Size = new Size(211, 48);
|
||||||
buttonKeyboardColor.TabIndex = 25;
|
buttonKeyboardColor.TabIndex = 25;
|
||||||
buttonKeyboardColor.Text = "Color ";
|
buttonKeyboardColor.Text = "Color ";
|
||||||
buttonKeyboardColor.UseVisualStyleBackColor = false;
|
buttonKeyboardColor.UseVisualStyleBackColor = false;
|
||||||
@@ -494,7 +500,7 @@
|
|||||||
// labelBattery
|
// labelBattery
|
||||||
//
|
//
|
||||||
labelBattery.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
labelBattery.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||||
labelBattery.Location = new Point(410, 868);
|
labelBattery.Location = new Point(420, 991);
|
||||||
labelBattery.Margin = new Padding(4, 0, 4, 0);
|
labelBattery.Margin = new Padding(4, 0, 4, 0);
|
||||||
labelBattery.Name = "labelBattery";
|
labelBattery.Name = "labelBattery";
|
||||||
labelBattery.Size = new Size(276, 32);
|
labelBattery.Size = new Size(276, 32);
|
||||||
@@ -507,7 +513,7 @@
|
|||||||
buttonFans.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
buttonFans.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||||
buttonFans.BackColor = SystemColors.ButtonFace;
|
buttonFans.BackColor = SystemColors.ButtonFace;
|
||||||
buttonFans.FlatAppearance.BorderSize = 0;
|
buttonFans.FlatAppearance.BorderSize = 0;
|
||||||
buttonFans.Location = new Point(480, 186);
|
buttonFans.Location = new Point(486, 186);
|
||||||
buttonFans.Margin = new Padding(4, 2, 4, 2);
|
buttonFans.Margin = new Padding(4, 2, 4, 2);
|
||||||
buttonFans.Name = "buttonFans";
|
buttonFans.Name = "buttonFans";
|
||||||
buttonFans.Size = new Size(210, 48);
|
buttonFans.Size = new Size(210, 48);
|
||||||
@@ -520,7 +526,7 @@
|
|||||||
buttonKeyboard.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
buttonKeyboard.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||||
buttonKeyboard.BackColor = SystemColors.ButtonFace;
|
buttonKeyboard.BackColor = SystemColors.ButtonFace;
|
||||||
buttonKeyboard.FlatAppearance.BorderSize = 0;
|
buttonKeyboard.FlatAppearance.BorderSize = 0;
|
||||||
buttonKeyboard.Location = new Point(480, 773);
|
buttonKeyboard.Location = new Point(486, 765);
|
||||||
buttonKeyboard.Margin = new Padding(4, 2, 4, 2);
|
buttonKeyboard.Margin = new Padding(4, 2, 4, 2);
|
||||||
buttonKeyboard.Name = "buttonKeyboard";
|
buttonKeyboard.Name = "buttonKeyboard";
|
||||||
buttonKeyboard.Size = new Size(209, 48);
|
buttonKeyboard.Size = new Size(209, 48);
|
||||||
@@ -530,7 +536,7 @@
|
|||||||
//
|
//
|
||||||
// pictureColor
|
// pictureColor
|
||||||
//
|
//
|
||||||
pictureColor.Location = new Point(431, 789);
|
pictureColor.Location = new Point(431, 781);
|
||||||
pictureColor.Name = "pictureColor";
|
pictureColor.Name = "pictureColor";
|
||||||
pictureColor.Size = new Size(20, 20);
|
pictureColor.Size = new Size(20, 20);
|
||||||
pictureColor.TabIndex = 30;
|
pictureColor.TabIndex = 30;
|
||||||
@@ -538,7 +544,7 @@
|
|||||||
//
|
//
|
||||||
// pictureColor2
|
// pictureColor2
|
||||||
//
|
//
|
||||||
pictureColor2.Location = new Point(405, 789);
|
pictureColor2.Location = new Point(405, 781);
|
||||||
pictureColor2.Name = "pictureColor2";
|
pictureColor2.Name = "pictureColor2";
|
||||||
pictureColor2.Size = new Size(20, 20);
|
pictureColor2.Size = new Size(20, 20);
|
||||||
pictureColor2.TabIndex = 31;
|
pictureColor2.TabIndex = 31;
|
||||||
@@ -549,17 +555,83 @@
|
|||||||
labelVersion.AutoSize = true;
|
labelVersion.AutoSize = true;
|
||||||
labelVersion.Font = new Font("Segoe UI", 9F, FontStyle.Underline, GraphicsUnit.Point);
|
labelVersion.Font = new Font("Segoe UI", 9F, FontStyle.Underline, GraphicsUnit.Point);
|
||||||
labelVersion.ForeColor = SystemColors.ControlDark;
|
labelVersion.ForeColor = SystemColors.ControlDark;
|
||||||
labelVersion.Location = new Point(34, 966);
|
labelVersion.Location = new Point(36, 1088);
|
||||||
labelVersion.Name = "labelVersion";
|
labelVersion.Name = "labelVersion";
|
||||||
labelVersion.Size = new Size(44, 32);
|
labelVersion.Size = new Size(44, 32);
|
||||||
labelVersion.TabIndex = 32;
|
labelVersion.TabIndex = 32;
|
||||||
labelVersion.Text = "v.0";
|
labelVersion.Text = "v.0";
|
||||||
//
|
//
|
||||||
|
// pictureMatrix
|
||||||
|
//
|
||||||
|
pictureMatrix.BackgroundImage = Properties.Resources.icons8_matrix_desktop_48;
|
||||||
|
pictureMatrix.BackgroundImageLayout = ImageLayout.Zoom;
|
||||||
|
pictureMatrix.Location = new Point(36, 858);
|
||||||
|
pictureMatrix.Margin = new Padding(4, 2, 4, 2);
|
||||||
|
pictureMatrix.Name = "pictureMatrix";
|
||||||
|
pictureMatrix.Size = new Size(36, 36);
|
||||||
|
pictureMatrix.TabIndex = 34;
|
||||||
|
pictureMatrix.TabStop = false;
|
||||||
|
//
|
||||||
|
// labelMatrix
|
||||||
|
//
|
||||||
|
labelMatrix.AutoSize = true;
|
||||||
|
labelMatrix.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
|
||||||
|
labelMatrix.Location = new Point(78, 858);
|
||||||
|
labelMatrix.Margin = new Padding(4, 0, 4, 0);
|
||||||
|
labelMatrix.Name = "labelMatrix";
|
||||||
|
labelMatrix.Size = new Size(170, 32);
|
||||||
|
labelMatrix.TabIndex = 33;
|
||||||
|
labelMatrix.Text = "Anime Matrix";
|
||||||
|
//
|
||||||
|
// comboMatrix
|
||||||
|
//
|
||||||
|
comboMatrix.Font = new Font("Segoe UI", 9F, FontStyle.Regular, GraphicsUnit.Point);
|
||||||
|
comboMatrix.FormattingEnabled = true;
|
||||||
|
comboMatrix.ItemHeight = 32;
|
||||||
|
comboMatrix.Items.AddRange(new object[] { "Off", "Dim", "Medium", "Bright" });
|
||||||
|
comboMatrix.Location = new Point(30, 910);
|
||||||
|
comboMatrix.Margin = new Padding(0);
|
||||||
|
comboMatrix.Name = "comboMatrix";
|
||||||
|
comboMatrix.Size = new Size(211, 40);
|
||||||
|
comboMatrix.TabIndex = 35;
|
||||||
|
comboMatrix.TabStop = false;
|
||||||
|
//
|
||||||
|
// comboMatrixRunning
|
||||||
|
//
|
||||||
|
comboMatrixRunning.Font = new Font("Segoe UI", 9F, FontStyle.Regular, GraphicsUnit.Point);
|
||||||
|
comboMatrixRunning.FormattingEnabled = true;
|
||||||
|
comboMatrixRunning.ItemHeight = 32;
|
||||||
|
comboMatrixRunning.Items.AddRange(new object[] { "Binary Banner", "Rog Logo", "Picture" });
|
||||||
|
comboMatrixRunning.Location = new Point(257, 910);
|
||||||
|
comboMatrixRunning.Margin = new Padding(0);
|
||||||
|
comboMatrixRunning.Name = "comboMatrixRunning";
|
||||||
|
comboMatrixRunning.Size = new Size(211, 40);
|
||||||
|
comboMatrixRunning.TabIndex = 36;
|
||||||
|
comboMatrixRunning.TabStop = false;
|
||||||
|
//
|
||||||
|
// buttonMatrix
|
||||||
|
//
|
||||||
|
buttonMatrix.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||||
|
buttonMatrix.BackColor = SystemColors.ButtonFace;
|
||||||
|
buttonMatrix.FlatAppearance.BorderSize = 0;
|
||||||
|
buttonMatrix.Location = new Point(486, 905);
|
||||||
|
buttonMatrix.Margin = new Padding(4, 2, 4, 2);
|
||||||
|
buttonMatrix.Name = "buttonMatrix";
|
||||||
|
buttonMatrix.Size = new Size(209, 48);
|
||||||
|
buttonMatrix.TabIndex = 37;
|
||||||
|
buttonMatrix.Text = "Picture";
|
||||||
|
buttonMatrix.UseVisualStyleBackColor = false;
|
||||||
|
//
|
||||||
// SettingsForm
|
// SettingsForm
|
||||||
//
|
//
|
||||||
AutoScaleDimensions = new SizeF(192F, 192F);
|
AutoScaleDimensions = new SizeF(192F, 192F);
|
||||||
AutoScaleMode = AutoScaleMode.Dpi;
|
AutoScaleMode = AutoScaleMode.Dpi;
|
||||||
ClientSize = new Size(730, 1089);
|
ClientSize = new Size(736, 1203);
|
||||||
|
Controls.Add(buttonMatrix);
|
||||||
|
Controls.Add(comboMatrixRunning);
|
||||||
|
Controls.Add(comboMatrix);
|
||||||
|
Controls.Add(pictureMatrix);
|
||||||
|
Controls.Add(labelMatrix);
|
||||||
Controls.Add(labelVersion);
|
Controls.Add(labelVersion);
|
||||||
Controls.Add(pictureColor2);
|
Controls.Add(pictureColor2);
|
||||||
Controls.Add(pictureColor);
|
Controls.Add(pictureColor);
|
||||||
@@ -568,7 +640,7 @@
|
|||||||
Controls.Add(labelBattery);
|
Controls.Add(labelBattery);
|
||||||
Controls.Add(buttonKeyboardColor);
|
Controls.Add(buttonKeyboardColor);
|
||||||
Controls.Add(comboKeyboard);
|
Controls.Add(comboKeyboard);
|
||||||
Controls.Add(pictureBox1);
|
Controls.Add(pictureKeyboard);
|
||||||
Controls.Add(label1);
|
Controls.Add(label1);
|
||||||
Controls.Add(checkBoost);
|
Controls.Add(checkBoost);
|
||||||
Controls.Add(checkScreen);
|
Controls.Add(checkScreen);
|
||||||
@@ -608,9 +680,10 @@
|
|||||||
((System.ComponentModel.ISupportInitialize)picturePerf).EndInit();
|
((System.ComponentModel.ISupportInitialize)picturePerf).EndInit();
|
||||||
((System.ComponentModel.ISupportInitialize)pictureScreen).EndInit();
|
((System.ComponentModel.ISupportInitialize)pictureScreen).EndInit();
|
||||||
tableScreen.ResumeLayout(false);
|
tableScreen.ResumeLayout(false);
|
||||||
((System.ComponentModel.ISupportInitialize)pictureBox1).EndInit();
|
((System.ComponentModel.ISupportInitialize)pictureKeyboard).EndInit();
|
||||||
((System.ComponentModel.ISupportInitialize)pictureColor).EndInit();
|
((System.ComponentModel.ISupportInitialize)pictureColor).EndInit();
|
||||||
((System.ComponentModel.ISupportInitialize)pictureColor2).EndInit();
|
((System.ComponentModel.ISupportInitialize)pictureColor2).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)pictureMatrix).EndInit();
|
||||||
ResumeLayout(false);
|
ResumeLayout(false);
|
||||||
PerformLayout();
|
PerformLayout();
|
||||||
}
|
}
|
||||||
@@ -643,7 +716,7 @@
|
|||||||
private Button button60Hz;
|
private Button button60Hz;
|
||||||
private CheckBox checkScreen;
|
private CheckBox checkScreen;
|
||||||
private CheckBox checkBoost;
|
private CheckBox checkBoost;
|
||||||
private PictureBox pictureBox1;
|
private PictureBox pictureKeyboard;
|
||||||
private Label label1;
|
private Label label1;
|
||||||
private ComboBox comboKeyboard;
|
private ComboBox comboKeyboard;
|
||||||
private Button buttonKeyboardColor;
|
private Button buttonKeyboardColor;
|
||||||
@@ -653,5 +726,10 @@
|
|||||||
private PictureBox pictureColor;
|
private PictureBox pictureColor;
|
||||||
private PictureBox pictureColor2;
|
private PictureBox pictureColor2;
|
||||||
private Label labelVersion;
|
private Label labelVersion;
|
||||||
|
private PictureBox pictureMatrix;
|
||||||
|
private Label labelMatrix;
|
||||||
|
private ComboBox comboMatrix;
|
||||||
|
private ComboBox comboMatrixRunning;
|
||||||
|
private Button buttonMatrix;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
170
Settings.cs
170
Settings.cs
@@ -1,7 +1,10 @@
|
|||||||
using System.Diagnostics;
|
using Starlight.AnimeMatrix;
|
||||||
|
using System.Diagnostics;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using System.Security.Cryptography;
|
|
||||||
using System.Timers;
|
using System.Timers;
|
||||||
|
using System.Drawing.Imaging;
|
||||||
|
using System.CodeDom.Compiler;
|
||||||
|
using System.Drawing;
|
||||||
|
|
||||||
namespace GHelper
|
namespace GHelper
|
||||||
{
|
{
|
||||||
@@ -61,7 +64,6 @@ namespace GHelper
|
|||||||
|
|
||||||
comboKeyboard.DropDownStyle = ComboBoxStyle.DropDownList;
|
comboKeyboard.DropDownStyle = ComboBoxStyle.DropDownList;
|
||||||
comboKeyboard.SelectedIndex = 0;
|
comboKeyboard.SelectedIndex = 0;
|
||||||
|
|
||||||
comboKeyboard.SelectedValueChanged += ComboKeyboard_SelectedValueChanged;
|
comboKeyboard.SelectedValueChanged += ComboKeyboard_SelectedValueChanged;
|
||||||
|
|
||||||
buttonKeyboardColor.Click += ButtonKeyboardColor_Click;
|
buttonKeyboardColor.Click += ButtonKeyboardColor_Click;
|
||||||
@@ -78,12 +80,156 @@ namespace GHelper
|
|||||||
labelCPUFan.Click += LabelCPUFan_Click;
|
labelCPUFan.Click += LabelCPUFan_Click;
|
||||||
labelGPUFan.Click += LabelCPUFan_Click;
|
labelGPUFan.Click += LabelCPUFan_Click;
|
||||||
|
|
||||||
|
|
||||||
|
InitMatrix();
|
||||||
|
|
||||||
|
comboMatrix.DropDownStyle = ComboBoxStyle.DropDownList;
|
||||||
|
comboMatrixRunning.DropDownStyle = ComboBoxStyle.DropDownList;
|
||||||
|
comboMatrix.SelectedValueChanged += ComboMatrix_SelectedValueChanged;
|
||||||
|
comboMatrixRunning.SelectedValueChanged += ComboMatrixRunning_SelectedValueChanged;
|
||||||
|
|
||||||
|
buttonMatrix.Click += ButtonMatrix_Click;
|
||||||
|
|
||||||
|
|
||||||
SetTimer();
|
SetTimer();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void SetMatrixPicture(string fileName)
|
||||||
|
{
|
||||||
|
|
||||||
|
int width = 34 * 3;
|
||||||
|
int height = 61;
|
||||||
|
float scale;
|
||||||
|
|
||||||
|
Bitmap image;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
using (var bmpTemp = (Bitmap)Image.FromFile(fileName))
|
||||||
|
{
|
||||||
|
image = new Bitmap(bmpTemp);
|
||||||
|
|
||||||
|
Bitmap canvas = new Bitmap(width, height);
|
||||||
|
|
||||||
|
scale = Math.Min((float)width / (float)image.Width, (float)height / (float)image.Height);
|
||||||
|
|
||||||
|
var graph = Graphics.FromImage(canvas);
|
||||||
|
var scaleWidth = (int)(image.Width * scale);
|
||||||
|
var scaleHeight = (int)(image.Height * scale);
|
||||||
|
|
||||||
|
graph.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
|
||||||
|
graph.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
|
||||||
|
graph.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
|
||||||
|
|
||||||
|
graph.DrawImage(image, ((int)width - scaleWidth), ((int)height - scaleHeight) / 2, scaleWidth, scaleHeight);
|
||||||
|
|
||||||
|
Bitmap bmp = new Bitmap(canvas, 34, 61);
|
||||||
|
|
||||||
|
var mat = new AnimeMatrixDevice();
|
||||||
|
mat.SetBuiltInAnimation(false);
|
||||||
|
|
||||||
|
for (int y = 0; y < bmp.Height; y++)
|
||||||
|
{
|
||||||
|
for (int x = 0; x < bmp.Width; x++)
|
||||||
|
{
|
||||||
|
var pixel = bmp.GetPixel(x, y);
|
||||||
|
byte color = (byte)((pixel.R + pixel.G + pixel.B) / 3);
|
||||||
|
mat.SetLedPlanar(x, y, color);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
mat.Present();
|
||||||
|
mat.Dispose();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
Debug.WriteLine("Error loading picture");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void ButtonMatrix_Click(object? sender, EventArgs e)
|
||||||
|
{
|
||||||
|
Thread t = new Thread((ThreadStart)(() =>
|
||||||
|
{
|
||||||
|
OpenFileDialog of = new OpenFileDialog();
|
||||||
|
of.Filter = "Image Files (*.bmp;*.jpg;*.jpeg,*.png)|*.BMP;*.JPG;*.JPEG;*.PNG";
|
||||||
|
if (of.ShowDialog() == DialogResult.OK)
|
||||||
|
{
|
||||||
|
Program.config.setConfig("matrix_picture", of.FileName);
|
||||||
|
SetMatrixPicture(of.FileName);
|
||||||
|
BeginInvoke(delegate
|
||||||
|
{
|
||||||
|
comboMatrixRunning.SelectedIndex = 2;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}));
|
||||||
|
|
||||||
|
t.SetApartmentState(ApartmentState.STA);
|
||||||
|
t.Start();
|
||||||
|
t.Join();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ComboMatrixRunning_SelectedValueChanged(object? sender, EventArgs e)
|
||||||
|
{
|
||||||
|
SetAnimeMatrix();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void ComboMatrix_SelectedValueChanged(object? sender, EventArgs e)
|
||||||
|
{
|
||||||
|
SetAnimeMatrix();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetAnimeMatrix()
|
||||||
|
{
|
||||||
|
|
||||||
|
int brightness = comboMatrix.SelectedIndex;
|
||||||
|
int running = comboMatrixRunning.SelectedIndex;
|
||||||
|
|
||||||
|
var mat = new AnimeMatrixDevice();
|
||||||
|
|
||||||
|
BuiltInAnimation animation = new BuiltInAnimation(
|
||||||
|
(BuiltInAnimation.Running)running,
|
||||||
|
BuiltInAnimation.Sleeping.Starfield,
|
||||||
|
BuiltInAnimation.Shutdown.SeeYa,
|
||||||
|
BuiltInAnimation.Startup.StaticEmergence
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
if (brightness == 0)
|
||||||
|
{
|
||||||
|
mat.SetDisplayState(false);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
mat.SetDisplayState(true);
|
||||||
|
mat.SetBrightness((BrightnessMode)brightness);
|
||||||
|
|
||||||
|
if (running == 2)
|
||||||
|
{
|
||||||
|
string fileName = Program.config.getConfigString("matrix_picture");
|
||||||
|
SetMatrixPicture(fileName);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
mat.SetBuiltInAnimation(true, animation);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
mat.Dispose();
|
||||||
|
|
||||||
|
Program.config.setConfig("matrix_brightness", comboMatrix.SelectedIndex);
|
||||||
|
Program.config.setConfig("matrix_running", comboMatrixRunning.SelectedIndex);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private void LabelCPUFan_Click(object? sender, EventArgs e)
|
private void LabelCPUFan_Click(object? sender, EventArgs e)
|
||||||
{
|
{
|
||||||
Program.config.setConfig("fan_rpm", (Program.config.getConfig("fan_rpm") == 1) ? 0 : 1);
|
Program.config.setConfig("fan_rpm", (Program.config.getConfig("fan_rpm") == 1) ? 0 : 1);
|
||||||
@@ -188,10 +334,18 @@ namespace GHelper
|
|||||||
SetAuraMode(mode, false);
|
SetAuraMode(mode, false);
|
||||||
|
|
||||||
Aura.Mode = mode;
|
Aura.Mode = mode;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void InitMatrix()
|
||||||
|
{
|
||||||
|
int brightness = Program.config.getConfig("matrix_brightness");
|
||||||
|
int running = Program.config.getConfig("matrix_running");
|
||||||
|
|
||||||
|
comboMatrix.SelectedIndex = (brightness != -1) ? brightness : 0;
|
||||||
|
comboMatrixRunning.SelectedIndex = (running != -1) ? running : 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public void SetAuraColor(Color? color1 = null, Color? color2 = null, bool apply = true)
|
public void SetAuraColor(Color? color1 = null, Color? color2 = null, bool apply = true)
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -498,7 +652,7 @@ namespace GHelper
|
|||||||
}
|
}
|
||||||
|
|
||||||
int oldMode = Program.config.getConfig("performance_mode");
|
int oldMode = Program.config.getConfig("performance_mode");
|
||||||
Program.config.setConfig("performance_"+(int)SystemInformation.PowerStatus.PowerLineStatus, PerformanceMode);
|
Program.config.setConfig("performance_" + (int)SystemInformation.PowerStatus.PowerLineStatus, PerformanceMode);
|
||||||
Program.config.setConfig("performance_mode", PerformanceMode);
|
Program.config.setConfig("performance_mode", PerformanceMode);
|
||||||
|
|
||||||
Program.wmi.DeviceSet(ASUSWmi.PerformanceMode, PerformanceMode);
|
Program.wmi.DeviceSet(ASUSWmi.PerformanceMode, PerformanceMode);
|
||||||
@@ -537,10 +691,10 @@ namespace GHelper
|
|||||||
|
|
||||||
public void AutoPerformance(PowerLineStatus Plugged = PowerLineStatus.Online)
|
public void AutoPerformance(PowerLineStatus Plugged = PowerLineStatus.Online)
|
||||||
{
|
{
|
||||||
int mode = Program.config.getConfig("performance_"+(int)Plugged);
|
int mode = Program.config.getConfig("performance_" + (int)Plugged);
|
||||||
if (mode != -1)
|
if (mode != -1)
|
||||||
SetPerformanceMode(mode, true);
|
SetPerformanceMode(mode, true);
|
||||||
else
|
else
|
||||||
SetPerformanceMode(Program.config.getConfig("performance_mode"));
|
SetPerformanceMode(Program.config.getConfig("performance_mode"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user