UI tweaks

This commit is contained in:
Serge
2023-05-23 20:49:56 +02:00
parent 444fdcdd97
commit f395c706f6
7 changed files with 31 additions and 24 deletions

View File

@@ -32,6 +32,7 @@ public class AsusACPI
const uint DSTS = 0x53545344; const uint DSTS = 0x53545344;
const uint DEVS = 0x53564544; const uint DEVS = 0x53564544;
const uint INIT = 0x54494E49;
public const uint UniversalControl = 0x00100021; public const uint UniversalControl = 0x00100021;
public const int KB_Light_Up = 0xc4; public const int KB_Light_Up = 0xc4;
@@ -161,7 +162,7 @@ public class AsusACPI
public void RunListener() public void RunListener()
{ {
eventHandle = CreateEvent(IntPtr.Zero, false, false, "ATK Event"); eventHandle = CreateEvent(IntPtr.Zero, false, false, "ATK4001");
byte[] outBuffer = new byte[16]; byte[] outBuffer = new byte[16];
byte[] data = new byte[8]; byte[] data = new byte[8];
@@ -178,7 +179,7 @@ public class AsusACPI
WaitForSingleObject(eventHandle, Timeout.Infinite); WaitForSingleObject(eventHandle, Timeout.Infinite);
Control(0x222408, new byte[0], outBuffer); Control(0x222408, new byte[0], outBuffer);
int code = BitConverter.ToInt32(outBuffer); int code = BitConverter.ToInt32(outBuffer);
Logger.WriteLine("Code: " + code); Logger.WriteLine("ACPI Code: " + code);
} }
} }
@@ -240,6 +241,13 @@ public class AsusACPI
} }
public byte[] DeviceInit()
{
byte[] args = new byte[8];
return CallMethod(INIT, args);
}
public int DeviceSet(uint DeviceID, int Status, string logName) public int DeviceSet(uint DeviceID, int Status, string logName)
{ {
byte[] args = new byte[8]; byte[] args = new byte[8];

View File

@@ -229,9 +229,9 @@ namespace GHelper
public static void Init() public static void Init()
{ {
Task.Run(() => Task.Run(async () =>
{ {
var devices = GetHidDevices(deviceIds); var devices = GetHidDevices(deviceIds, 0);
foreach (HidDevice device in devices) foreach (HidDevice device in devices)
{ {
device.OpenDevice(); device.OpenDevice();
@@ -248,7 +248,7 @@ namespace GHelper
public static void ApplyBrightness(int brightness) public static void ApplyBrightness(int brightness)
{ {
Task.Run(() => Task.Run(async () =>
{ {
byte[] msg = { INPUT_HID_ID, 0xba, 0xc5, 0xc4, (byte)brightness }; byte[] msg = { INPUT_HID_ID, 0xba, 0xc5, 0xc4, (byte)brightness };

View File

@@ -182,7 +182,7 @@ public class NvidiaGpuControl : IGpuControl
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.WriteLine(ex.Message); Debug.WriteLine(ex.Message);
return null; return null;
} }
} }

View File

@@ -151,6 +151,7 @@ public static class HardwareControl
GpuControl?.Dispose(); GpuControl?.Dispose();
IGpuControl _gpuControl = new NvidiaGpuControl(); IGpuControl _gpuControl = new NvidiaGpuControl();
if (_gpuControl.IsValid) if (_gpuControl.IsValid)
{ {
GpuControl = _gpuControl; GpuControl = _gpuControl;

View File

@@ -1,6 +1,7 @@
using HidLibrary; using HidLibrary;
using Microsoft.Win32; using Microsoft.Win32;
using NAudio.CoreAudioApi; using NAudio.CoreAudioApi;
using System.Collections.Generic;
using System.Diagnostics; using System.Diagnostics;
using System.Management; using System.Management;
using Tools; using Tools;
@@ -15,17 +16,9 @@ namespace GHelper
public KeyboardListener(Action<int> KeyHandler) public KeyboardListener(Action<int> KeyHandler)
{ {
HidDevice? input = AsusUSB.GetDevice(); HidDevice? input = AsusUSB.GetDevice();
if (input == null) return;
if (input == null) Logger.WriteLine($"Input: {input.DevicePath}");
{
Logger.WriteLine("Input device not found");
return;
}
else
{
Logger.WriteLine("Listener input " + input.DevicePath);
}
var task = Task.Run(() => var task = Task.Run(() =>
{ {
@@ -36,7 +29,7 @@ namespace GHelper
var data = input.Read().Data; var data = input.Read().Data;
if (data.Length > 1 && data[0] == AsusUSB.INPUT_HID_ID && data[1] > 0) if (data.Length > 1 && data[0] == AsusUSB.INPUT_HID_ID && data[1] > 0)
{ {
Logger.WriteLine("Key:" + data[1]); Logger.WriteLine($"Key: {data[1]}");
KeyHandler(data[1]); KeyHandler(data[1]);
} }
} }
@@ -62,7 +55,6 @@ namespace GHelper
public class InputDispatcher public class InputDispatcher
{ {
private static bool isOptimizationRunning = OptimizationService.IsRunning();
private static nint windowHandle; private static nint windowHandle;
public static Keys keyProfile = Keys.F5; public static Keys keyProfile = Keys.F5;
@@ -76,7 +68,12 @@ namespace GHelper
windowHandle = handle; windowHandle = handle;
byte[] result = Program.acpi.DeviceInit();
Debug.WriteLine($"Init: {BitConverter.ToString(result)}");
Program.acpi.SubscribeToEvents(WatcherEventArrived); Program.acpi.SubscribeToEvents(WatcherEventArrived);
//Task.Run(Program.acpi.RunListener);
// CTRL + SHIFT + F5 to cycle profiles // CTRL + SHIFT + F5 to cycle profiles
if (AppConfig.getConfig("keybind_profile") != -1) keyProfile = (Keys)AppConfig.getConfig("keybind_profile"); if (AppConfig.getConfig("keybind_profile") != -1) keyProfile = (Keys)AppConfig.getConfig("keybind_profile");
@@ -95,6 +92,7 @@ namespace GHelper
if (!OptimizationService.IsRunning()) if (!OptimizationService.IsRunning())
listener = new KeyboardListener(HandleEvent); listener = new KeyboardListener(HandleEvent);
} }
@@ -160,7 +158,7 @@ namespace GHelper
action = "aura"; action = "aura";
if (name == "fnf5") if (name == "fnf5")
action = "performance"; action = "performance";
if (name == "m3" && !isOptimizationRunning) if (name == "m3" && !OptimizationService.IsRunning())
action = "micmute"; action = "micmute";
} }
@@ -251,16 +249,13 @@ namespace GHelper
return; return;
} }
if (isOptimizationRunning) return; if (OptimizationService.IsRunning()) return;
// Asus Optimization service Events // Asus Optimization service Events
int backlight = AppConfig.getConfig("keyboard_brightness"); int backlight = AppConfig.getConfig("keyboard_brightness");
string[] backlightNames = new string[] { "Off", "Low", "Mid", "Max" }; string[] backlightNames = new string[] { "Off", "Low", "Mid", "Max" };
int brightness;
switch (EventID) switch (EventID)
{ {
case 197: // FN+F2 case 197: // FN+F2
@@ -289,7 +284,7 @@ namespace GHelper
break; break;
case 107: // FN+F10 case 107: // FN+F10
bool touchpadState = GetTouchpadState(); bool touchpadState = GetTouchpadState();
if (!AsusUSB.TouchpadToggle()) Program.acpi.DeviceSet(AsusACPI.UniversalControl, 0x6B, "Touchpad"); AsusUSB.TouchpadToggle();
Program.settingsForm.BeginInvoke(Program.settingsForm.RunToast, touchpadState ? "Off" : "On", ToastIcon.Touchpad); Program.settingsForm.BeginInvoke(Program.settingsForm.RunToast, touchpadState ? "Off" : "On", ToastIcon.Touchpad);
break; break;
case 108: // FN+F11 case 108: // FN+F11

View File

@@ -39,6 +39,7 @@ namespace GHelper
{ {
return (Process.GetProcessesByName("AsusOptimization").Count() > 0); return (Process.GetProcessesByName("AsusOptimization").Count() > 0);
} }
} }
} }

View File

@@ -1437,6 +1437,8 @@ namespace GHelper
UltimateUI(mux == 1); UltimateUI(mux == 1);
if (eco < 0) tableGPU.Visible = false;
} }
AppConfig.setConfig("gpu_mode", GpuMode); AppConfig.setConfig("gpu_mode", GpuMode);