Compare commits

...

4 Commits

Author SHA1 Message Date
seerge
84a3f01267 Readme 2023-03-04 00:13:30 +01:00
seerge
f9488fbf2f Merge branch 'main' of https://github.com/seerge/g14-helper 2023-03-04 00:12:02 +01:00
seerge
43d2ed656a Added animatrix control thanks to https://github.com/vddCore/Starlight 2023-03-04 00:11:59 +01:00
seerge
e9fa181d4e Fixed missing fan curve 2023-03-03 14:17:09 +01:00
16 changed files with 744 additions and 79 deletions

View File

@@ -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);
} }

View 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}].");
}
}
}
}

View File

@@ -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
View 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
View 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;
}
}
}

View 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();
}
}

View 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;
}
}
}
}
}
}

View File

@@ -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));

View File

@@ -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" />

View File

@@ -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
{ {

View File

@@ -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>

View File

@@ -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>

View File

@@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 428 B

180
Settings.Designer.cs generated
View File

@@ -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;
} }
} }

View File

@@ -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"));
} }