Merge branch 'main' into asus-mouse-support

# Conflicts:
#	app/Peripherals/PeripheralsProvider.cs
This commit is contained in:
IceStormNG
2023-07-30 11:56:07 +02:00
11 changed files with 141 additions and 82 deletions

View File

@@ -96,8 +96,15 @@ public static class AppConfig
public static int Get(string name, int empty = -1)
{
if (config.ContainsKey(name))
{
//Debug.WriteLine(name);
return int.Parse(config[name].ToString());
else return empty;
}
else
{
//Debug.WriteLine(name + "E");
return empty;
}
}
public static bool Is(string name)

View File

@@ -1,6 +1,5 @@
using GHelper.Helpers;
using HidLibrary;
using System.Drawing;
using System.Text;
namespace GHelper
@@ -457,7 +456,13 @@ namespace GHelper
}
//Logger.WriteLine(BitConverter.ToString(msg));
if (init) auraDevice.Write(new byte[] { AURA_HID_ID ,0xbc});
if (init)
{
auraDevice.Write(AuraMessage(0,color,color, 0xe1));
auraDevice.WriteFeatureData(MESSAGE_APPLY);
auraDevice.WriteFeatureData(MESSAGE_SET);
auraDevice.Write(new byte[] { AURA_HID_ID, 0xbc });
}
auraDevice.Write(msg);
}

View File

@@ -41,6 +41,8 @@ namespace GHelper.AutoUpdate
async void CheckForUpdatesAsync()
{
if (AppConfig.Is("skip_updates")) return;
try
{

View File

@@ -59,7 +59,7 @@ namespace GHelper
InitTheme(true);
MinRPM = 18;
MaxRPM = HardwareControl.GetFanMax();
MaxRPM = HardwareControl.fanMax;
labelTip.Visible = false;
labelTip.BackColor = Color.Transparent;

View File

@@ -15,7 +15,7 @@
<PlatformTarget>AnyCPU</PlatformTarget>
<ProduceReferenceAssembly>False</ProduceReferenceAssembly>
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
<AssemblyVersion>0.102</AssemblyVersion>
<AssemblyVersion>0.103</AssemblyVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">

View File

@@ -9,6 +9,10 @@ using System.Management;
public static class HardwareControl
{
const int DEFAULT_FAN_MAX = 58;
const int INADEQUATE_MAX = 80;
public static IGpuControl? GpuControl;
public static float? cpuTemp = -1;
@@ -26,21 +30,48 @@ public static class HardwareControl
static long lastUpdate;
public static int GetFanMax()
{
int max = 58;
int configMax = AppConfig.Get("fan_max");
if (configMax > 80) configMax = 0; // skipping inadvequate settings
static int _fanMax = DEFAULT_FAN_MAX;
static bool _fanRpm = false;
if (AppConfig.ContainsModel("401")) max = 72;
else if (AppConfig.ContainsModel("503")) max = 68;
return Math.Max(max, configMax);
public static int fanMax
{
get
{
return _fanMax;
}
set
{
AppConfig.Set("fan_max", value);
_fanMax = value;
}
}
public static void SetFanMax(int fan)
public static bool fanRpm
{
AppConfig.Set("fan_max", fan);
get
{
return _fanRpm;
}
set
{
AppConfig.Set("fan_rpm", value ? 1 : 0);
_fanRpm = value;
}
}
static HardwareControl()
{
_fanMax = AppConfig.Get("fan_max");
if (_fanMax > INADEQUATE_MAX) _fanMax = -1; // skipping inadvequate settings
if (_fanMax < 0 && AppConfig.ContainsModel("401")) _fanMax = 72;
if (_fanMax < 0 && AppConfig.ContainsModel("503")) _fanMax = 68;
if (_fanMax < 0) _fanMax = DEFAULT_FAN_MAX;
_fanRpm = AppConfig.Is("fan_rpm");
}
public static string FormatFan(int fan)
{
// fix for old models
@@ -50,10 +81,9 @@ public static class HardwareControl
if (fan <= 0 || fan > 100) return null; //nothing reasonable
}
int fanMax = GetFanMax();
if (fan > fanMax && fan < 80) SetFanMax(fan);
if (fan > fanMax && fan <= INADEQUATE_MAX) fanMax = fan;
if (AppConfig.Is("fan_rpm"))
if (fanRpm)
return GHelper.Properties.Strings.FanSpeed + ": " + (fan * 100).ToString() + "RPM";
else
return GHelper.Properties.Strings.FanSpeed + ": " + Math.Min(Math.Round((float)fan / fanMax * 100), 100).ToString() + "%"; // relatively to 6000 rpm

View File

@@ -12,6 +12,14 @@ namespace GHelper.Peripherals
public static event EventHandler? DeviceChanged;
private static System.Timers.Timer timer = new System.Timers.Timer(1000);
static PeripheralsProvider()
{
timer.Elapsed += DeviceTimer_Elapsed;
}
private static long lastRefresh;
public static bool IsMouseConnected()
@@ -203,8 +211,14 @@ namespace GHelper.Peripherals
private static void Device_Changed(object? sender, HidSharp.DeviceListChangedEventArgs e)
{
timer.Start();
}
private static void DeviceTimer_Elapsed(object? sender, System.Timers.ElapsedEventArgs e)
{
timer.Stop();
Logger.WriteLine("HID Device Event: Checking for new ASUS Mice");
Task task = Task.Run((Action)DetectAllAsusMice);
DetectAllAsusMice();
}
}
}

View File

@@ -163,22 +163,22 @@
<value>Uruchomione usługi Asus</value>
</data>
<data name="AuraBatteryState" xml:space="preserve">
<value>Battery State</value>
<value>Stan baterii</value>
</data>
<data name="AuraBreathe" xml:space="preserve">
<value>Oddychanie</value>
</data>
<data name="AuraClockwise" xml:space="preserve">
<value>Clockwise</value>
<value>W prawo</value>
</data>
<data name="AuraColorCycle" xml:space="preserve">
<value>Pętla kolorów</value>
</data>
<data name="AuraComet" xml:space="preserve">
<value>Comet</value>
<value>Kometa</value>
</data>
<data name="AuraCounterClockwise" xml:space="preserve">
<value>Counterclockwise</value>
<value>W lewo</value>
</data>
<data name="AuraFast" xml:space="preserve">
<value>Szybka</value>
@@ -190,10 +190,10 @@
<value>Tęcza</value>
</data>
<data name="AuraRandomColor" xml:space="preserve">
<value>Random</value>
<value>Losowo</value>
</data>
<data name="AuraReact" xml:space="preserve">
<value>React</value>
<value>Tryb reaktywny</value>
</data>
<data name="AuraSlow" xml:space="preserve">
<value>Powolna</value>
@@ -285,7 +285,7 @@ Nadal chcesz kontynuować?</value>
<value>Tryb wyświetlania NVIDIA nie jest ustawiony na Optimus</value>
</data>
<data name="EnergySettings" xml:space="preserve">
<value>Energy Settings</value>
<value>Ustawienia zasilania</value>
</data>
<data name="Extra" xml:space="preserve">
<value>Ustawienia</value>
@@ -354,7 +354,7 @@ Nadal chcesz kontynuować?</value>
<value>Temperatura docelowa</value>
</data>
<data name="High" xml:space="preserve">
<value>High</value>
<value>Wysoka</value>
</data>
<data name="KeyBindings" xml:space="preserve">
<value>Ustawienia klawiszy skrótów</value>
@@ -381,13 +381,13 @@ Nadal chcesz kontynuować?</value>
<value>Lightbar</value>
</data>
<data name="Lighting" xml:space="preserve">
<value>Lighting</value>
<value>Oświetlenie</value>
</data>
<data name="Logo" xml:space="preserve">
<value>Logo</value>
</data>
<data name="Low" xml:space="preserve">
<value>Low</value>
<value>Niska</value>
</data>
<data name="MatrixAudio" xml:space="preserve">
<value>Wizualizer muzyki</value>
@@ -423,28 +423,28 @@ Nadal chcesz kontynuować?</value>
<value>Częstotliwość odświeżania 60 Hz dla oszczędzania baterii</value>
</data>
<data name="Minute" xml:space="preserve">
<value>Minute</value>
<value>min.</value>
</data>
<data name="Minutes" xml:space="preserve">
<value>Minutes</value>
<value>min.</value>
</data>
<data name="MouseAngleSnapping" xml:space="preserve">
<value>Angle Snapping</value>
<value>Korekcja kąta ruchu</value>
</data>
<data name="MouseAutoPowerOff" xml:space="preserve">
<value>Auto Power Off After</value>
<value>Przejście w tryb uśpienia po</value>
</data>
<data name="MouseLiftOffDistance" xml:space="preserve">
<value>Lift Off Distance</value>
<value>Wysokość reakcji sensora</value>
</data>
<data name="MouseLowBatteryWarning" xml:space="preserve">
<value>Low Battery Warning at</value>
<value>Ostrzeżenie o niskim poziomie baterii</value>
</data>
<data name="MousePerformance" xml:space="preserve">
<value>Performance</value>
<value>Wydajność</value>
</data>
<data name="MouseSynchronize" xml:space="preserve">
<value>Synchronize with mouse</value>
<value>Synchronizuj z myszką</value>
</data>
<data name="Multizone" xml:space="preserve">
<value>Multizone</value>
@@ -453,7 +453,7 @@ Nadal chcesz kontynuować?</value>
<value>Wyciszenie mikrofonu</value>
</data>
<data name="Never" xml:space="preserve">
<value>Never</value>
<value>Nigdy</value>
</data>
<data name="NewUpdates" xml:space="preserve">
<value>Nowe aktualizacje</value>
@@ -462,7 +462,7 @@ Nadal chcesz kontynuować?</value>
<value>Brak aktualizacji</value>
</data>
<data name="NotConnected" xml:space="preserve">
<value>Not Connected</value>
<value>Nie połączono</value>
</data>
<data name="OpenGHelper" xml:space="preserve">
<value>Otwórz okno G-Helper</value>
@@ -486,7 +486,7 @@ Nadal chcesz kontynuować?</value>
<value>Tryb zasilania</value>
</data>
<data name="Peripherals" xml:space="preserve">
<value>Peripherals</value>
<value>Urządzenia peryferyjne</value>
</data>
<data name="PictureGif" xml:space="preserve">
<value>Obraz / GIF</value>
@@ -495,7 +495,7 @@ Nadal chcesz kontynuować?</value>
<value>Odtwórz / Pauza</value>
</data>
<data name="PollingRate" xml:space="preserve">
<value>Polling Rate</value>
<value>Częstotliwość raportowania</value>
</data>
<data name="PowerLimits" xml:space="preserve">
<value>Limit mocy</value>
@@ -507,7 +507,7 @@ Nadal chcesz kontynuować?</value>
<value>Zrzut ekranu</value>
</data>
<data name="Profile" xml:space="preserve">
<value>Profile</value>
<value>Profil</value>
</data>
<data name="Quit" xml:space="preserve">
<value>Zamknij</value>

View File

@@ -163,7 +163,7 @@
<value>Кількість запущених сервісів Asus</value>
</data>
<data name="AuraBatteryState" xml:space="preserve">
<value>Battery State</value>
<value>Стан батареї</value>
</data>
<data name="AuraBreathe" xml:space="preserve">
<value>Дихання</value>
@@ -426,25 +426,25 @@
<value>Minute</value>
</data>
<data name="Minutes" xml:space="preserve">
<value>Minutes</value>
<value>Хвилини</value>
</data>
<data name="MouseAngleSnapping" xml:space="preserve">
<value>Angle Snapping</value>
<value>Привʼязка по куту</value>
</data>
<data name="MouseAutoPowerOff" xml:space="preserve">
<value>Auto Power Off After</value>
<value>Авто-вимикання</value>
</data>
<data name="MouseLiftOffDistance" xml:space="preserve">
<value>Lift Off Distance</value>
<value>Відстань підйому</value>
</data>
<data name="MouseLowBatteryWarning" xml:space="preserve">
<value>Low Battery Warning at</value>
<value>Попередження про низький заряд</value>
</data>
<data name="MousePerformance" xml:space="preserve">
<value>Performance</value>
</data>
<data name="MouseSynchronize" xml:space="preserve">
<value>Synchronize with mouse</value>
<value>Синхронізувати з мишею</value>
</data>
<data name="Multizone" xml:space="preserve">
<value>Мультизони</value>
@@ -453,7 +453,7 @@
<value>Вимкнути мікрофон</value>
</data>
<data name="Never" xml:space="preserve">
<value>Never</value>
<value>Ніколи</value>
</data>
<data name="NewUpdates" xml:space="preserve">
<value>Є оновлення</value>
@@ -462,7 +462,7 @@
<value>Немає оновлень</value>
</data>
<data name="NotConnected" xml:space="preserve">
<value>Not Connected</value>
<value>Не під'єднано</value>
</data>
<data name="OpenGHelper" xml:space="preserve">
<value>Відкрити вікно G-Helper</value>
@@ -486,7 +486,7 @@
<value>Режим</value>
</data>
<data name="Peripherals" xml:space="preserve">
<value>Peripherals</value>
<value>Периферія</value>
</data>
<data name="PictureGif" xml:space="preserve">
<value>Картинка / GIF</value>
@@ -495,7 +495,7 @@
<value>Відтворення / Пауза</value>
</data>
<data name="PollingRate" xml:space="preserve">
<value>Polling Rate</value>
<value>Частота опитування</value>
</data>
<data name="PowerLimits" xml:space="preserve">
<value>Ліміти Потужності</value>
@@ -507,7 +507,7 @@
<value>Print Screen</value>
</data>
<data name="Profile" xml:space="preserve">
<value>Profile</value>
<value>Профіль</value>
</data>
<data name="Quit" xml:space="preserve">
<value>Вихід</value>

View File

@@ -163,22 +163,22 @@
<value>正在运行的 Asus 服务</value>
</data>
<data name="AuraBatteryState" xml:space="preserve">
<value>Battery State</value>
<value>电池状态</value>
</data>
<data name="AuraBreathe" xml:space="preserve">
<value>呼吸</value>
</data>
<data name="AuraClockwise" xml:space="preserve">
<value>Clockwise</value>
<value>顺时针</value>
</data>
<data name="AuraColorCycle" xml:space="preserve">
<value>彩色循环</value>
</data>
<data name="AuraComet" xml:space="preserve">
<value>Comet</value>
<value>彗星</value>
</data>
<data name="AuraCounterClockwise" xml:space="preserve">
<value>Counterclockwise</value>
<value>逆时针</value>
</data>
<data name="AuraFast" xml:space="preserve">
<value>快速</value>
@@ -190,10 +190,10 @@
<value>彩虹</value>
</data>
<data name="AuraRandomColor" xml:space="preserve">
<value>Random</value>
<value>随机</value>
</data>
<data name="AuraReact" xml:space="preserve">
<value>React</value>
<value>触发</value>
</data>
<data name="AuraSlow" xml:space="preserve">
<value>慢</value>
@@ -282,10 +282,10 @@
确定还要继续吗?</value>
</data>
<data name="EnableOptimusTitle" xml:space="preserve">
<value>nVIDIA显示模式未设置至Optimus</value>
<value>NVIDIA 显示模式未设置为自动切换</value>
</data>
<data name="EnergySettings" xml:space="preserve">
<value>Energy Settings</value>
<value>电源设置</value>
</data>
<data name="Extra" xml:space="preserve">
<value>更多</value>
@@ -318,7 +318,7 @@
<value>风扇</value>
</data>
<data name="FansPower" xml:space="preserve">
<value>高级设置</value>
<value>风扇 + 电源</value>
</data>
<data name="FnLock" xml:space="preserve">
<value>打开FnLock (无需按下FN使用FN+(F1-F12)热键)</value>
@@ -354,7 +354,7 @@
<value>温度目标</value>
</data>
<data name="High" xml:space="preserve">
<value>High</value>
<value></value>
</data>
<data name="KeyBindings" xml:space="preserve">
<value>按键绑定</value>
@@ -381,13 +381,13 @@
<value>灯条</value>
</data>
<data name="Lighting" xml:space="preserve">
<value>Lighting</value>
<value>背光</value>
</data>
<data name="Logo" xml:space="preserve">
<value>徽标</value>
</data>
<data name="Low" xml:space="preserve">
<value>Low</value>
<value></value>
</data>
<data name="MatrixAudio" xml:space="preserve">
<value>音频可视化器</value>
@@ -423,28 +423,28 @@
<value>调整刷新率为60Hz以节省电量</value>
</data>
<data name="Minute" xml:space="preserve">
<value>Minute</value>
<value>分钟</value>
</data>
<data name="Minutes" xml:space="preserve">
<value>Minutes</value>
<value>分组</value>
</data>
<data name="MouseAngleSnapping" xml:space="preserve">
<value>Angle Snapping</value>
<value>角度校正</value>
</data>
<data name="MouseAutoPowerOff" xml:space="preserve">
<value>Auto Power Off After</value>
<value>自动关闭时间</value>
</data>
<data name="MouseLiftOffDistance" xml:space="preserve">
<value>Lift Off Distance</value>
<value>静默高度</value>
</data>
<data name="MouseLowBatteryWarning" xml:space="preserve">
<value>Low Battery Warning at</value>
<value>低于该电量时警告</value>
</data>
<data name="MousePerformance" xml:space="preserve">
<value>Performance</value>
<value>性能</value>
</data>
<data name="MouseSynchronize" xml:space="preserve">
<value>Synchronize with mouse</value>
<value>和鼠标同步</value>
</data>
<data name="Multizone" xml:space="preserve">
<value>多区域设置</value>
@@ -453,7 +453,7 @@
<value>静音麦克风</value>
</data>
<data name="Never" xml:space="preserve">
<value>Never</value>
<value>从不</value>
</data>
<data name="NewUpdates" xml:space="preserve">
<value>有更新</value>
@@ -462,7 +462,7 @@
<value>无更新</value>
</data>
<data name="NotConnected" xml:space="preserve">
<value>Not Connected</value>
<value>未连接</value>
</data>
<data name="OpenGHelper" xml:space="preserve">
<value>打开G-Helper窗口</value>
@@ -480,13 +480,13 @@
<value>其他</value>
</data>
<data name="Overdrive" xml:space="preserve">
<value>OD</value>
<value>超频</value>
</data>
<data name="PerformanceMode" xml:space="preserve">
<value>性能模式</value>
</data>
<data name="Peripherals" xml:space="preserve">
<value>Peripherals</value>
<value>外设</value>
</data>
<data name="PictureGif" xml:space="preserve">
<value>图片/动图</value>
@@ -495,7 +495,7 @@
<value>播放/暂停</value>
</data>
<data name="PollingRate" xml:space="preserve">
<value>Polling Rate</value>
<value>回报率</value>
</data>
<data name="PowerLimits" xml:space="preserve">
<value>功率限制</value>
@@ -507,7 +507,7 @@
<value>截图</value>
</data>
<data name="Profile" xml:space="preserve">
<value>Profile</value>
<value>配置</value>
</data>
<data name="Quit" xml:space="preserve">
<value>退出</value>
@@ -564,7 +564,7 @@
<value>切换 Aura 模式</value>
</data>
<data name="ToggleClamshellMode" xml:space="preserve">
<value>自动启用外接显示器模式</value>
<value>自动切换合盖模式</value>
</data>
<data name="ToggleFnLock" xml:space="preserve">
<value>切换 Fn 锁定</value>

View File

@@ -530,7 +530,7 @@ namespace GHelper
private void LabelCPUFan_Click(object? sender, EventArgs e)
{
AppConfig.Set("fan_rpm", (AppConfig.Get("fan_rpm") == 1) ? 0 : 1);
HardwareControl.fanRpm = !HardwareControl.fanRpm;
RefreshSensors(true);
}
@@ -768,6 +768,7 @@ namespace GHelper
this.Hide();
if (fans != null && fans.Text != "") fans.Close();
if (keyb != null && keyb.Text != "") keyb.Close();
if (updates != null && updates.Text != "") updates.Close();
}