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) public static int Get(string name, int empty = -1)
{ {
if (config.ContainsKey(name)) if (config.ContainsKey(name))
{
//Debug.WriteLine(name);
return int.Parse(config[name].ToString()); return int.Parse(config[name].ToString());
else return empty; }
else
{
//Debug.WriteLine(name + "E");
return empty;
}
} }
public static bool Is(string name) public static bool Is(string name)

View File

@@ -1,6 +1,5 @@
using GHelper.Helpers; using GHelper.Helpers;
using HidLibrary; using HidLibrary;
using System.Drawing;
using System.Text; using System.Text;
namespace GHelper namespace GHelper
@@ -457,7 +456,13 @@ namespace GHelper
} }
//Logger.WriteLine(BitConverter.ToString(msg)); //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); auraDevice.Write(msg);
} }

View File

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

View File

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

View File

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

View File

@@ -9,6 +9,10 @@ using System.Management;
public static class HardwareControl public static class HardwareControl
{ {
const int DEFAULT_FAN_MAX = 58;
const int INADEQUATE_MAX = 80;
public static IGpuControl? GpuControl; public static IGpuControl? GpuControl;
public static float? cpuTemp = -1; public static float? cpuTemp = -1;
@@ -26,21 +30,48 @@ public static class HardwareControl
static long lastUpdate; static long lastUpdate;
public static int GetFanMax() static int _fanMax = DEFAULT_FAN_MAX;
{ static bool _fanRpm = false;
int max = 58;
int configMax = AppConfig.Get("fan_max");
if (configMax > 80) configMax = 0; // skipping inadvequate settings
if (AppConfig.ContainsModel("401")) max = 72; public static int fanMax
else if (AppConfig.ContainsModel("503")) max = 68; {
return Math.Max(max, configMax); 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) public static string FormatFan(int fan)
{ {
// fix for old models // fix for old models
@@ -50,10 +81,9 @@ public static class HardwareControl
if (fan <= 0 || fan > 100) return null; //nothing reasonable if (fan <= 0 || fan > 100) return null; //nothing reasonable
} }
int fanMax = GetFanMax(); if (fan > fanMax && fan <= INADEQUATE_MAX) fanMax = fan;
if (fan > fanMax && fan < 80) SetFanMax(fan);
if (AppConfig.Is("fan_rpm")) if (fanRpm)
return GHelper.Properties.Strings.FanSpeed + ": " + (fan * 100).ToString() + "RPM"; return GHelper.Properties.Strings.FanSpeed + ": " + (fan * 100).ToString() + "RPM";
else else
return GHelper.Properties.Strings.FanSpeed + ": " + Math.Min(Math.Round((float)fan / fanMax * 100), 100).ToString() + "%"; // relatively to 6000 rpm 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; 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; private static long lastRefresh;
public static bool IsMouseConnected() public static bool IsMouseConnected()
@@ -203,8 +211,14 @@ namespace GHelper.Peripherals
private static void Device_Changed(object? sender, HidSharp.DeviceListChangedEventArgs e) 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"); 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> <value>Uruchomione usługi Asus</value>
</data> </data>
<data name="AuraBatteryState" xml:space="preserve"> <data name="AuraBatteryState" xml:space="preserve">
<value>Battery State</value> <value>Stan baterii</value>
</data> </data>
<data name="AuraBreathe" xml:space="preserve"> <data name="AuraBreathe" xml:space="preserve">
<value>Oddychanie</value> <value>Oddychanie</value>
</data> </data>
<data name="AuraClockwise" xml:space="preserve"> <data name="AuraClockwise" xml:space="preserve">
<value>Clockwise</value> <value>W prawo</value>
</data> </data>
<data name="AuraColorCycle" xml:space="preserve"> <data name="AuraColorCycle" xml:space="preserve">
<value>Pętla kolorów</value> <value>Pętla kolorów</value>
</data> </data>
<data name="AuraComet" xml:space="preserve"> <data name="AuraComet" xml:space="preserve">
<value>Comet</value> <value>Kometa</value>
</data> </data>
<data name="AuraCounterClockwise" xml:space="preserve"> <data name="AuraCounterClockwise" xml:space="preserve">
<value>Counterclockwise</value> <value>W lewo</value>
</data> </data>
<data name="AuraFast" xml:space="preserve"> <data name="AuraFast" xml:space="preserve">
<value>Szybka</value> <value>Szybka</value>
@@ -190,10 +190,10 @@
<value>Tęcza</value> <value>Tęcza</value>
</data> </data>
<data name="AuraRandomColor" xml:space="preserve"> <data name="AuraRandomColor" xml:space="preserve">
<value>Random</value> <value>Losowo</value>
</data> </data>
<data name="AuraReact" xml:space="preserve"> <data name="AuraReact" xml:space="preserve">
<value>React</value> <value>Tryb reaktywny</value>
</data> </data>
<data name="AuraSlow" xml:space="preserve"> <data name="AuraSlow" xml:space="preserve">
<value>Powolna</value> <value>Powolna</value>
@@ -285,7 +285,7 @@ Nadal chcesz kontynuować?</value>
<value>Tryb wyświetlania NVIDIA nie jest ustawiony na Optimus</value> <value>Tryb wyświetlania NVIDIA nie jest ustawiony na Optimus</value>
</data> </data>
<data name="EnergySettings" xml:space="preserve"> <data name="EnergySettings" xml:space="preserve">
<value>Energy Settings</value> <value>Ustawienia zasilania</value>
</data> </data>
<data name="Extra" xml:space="preserve"> <data name="Extra" xml:space="preserve">
<value>Ustawienia</value> <value>Ustawienia</value>
@@ -354,7 +354,7 @@ Nadal chcesz kontynuować?</value>
<value>Temperatura docelowa</value> <value>Temperatura docelowa</value>
</data> </data>
<data name="High" xml:space="preserve"> <data name="High" xml:space="preserve">
<value>High</value> <value>Wysoka</value>
</data> </data>
<data name="KeyBindings" xml:space="preserve"> <data name="KeyBindings" xml:space="preserve">
<value>Ustawienia klawiszy skrótów</value> <value>Ustawienia klawiszy skrótów</value>
@@ -381,13 +381,13 @@ Nadal chcesz kontynuować?</value>
<value>Lightbar</value> <value>Lightbar</value>
</data> </data>
<data name="Lighting" xml:space="preserve"> <data name="Lighting" xml:space="preserve">
<value>Lighting</value> <value>Oświetlenie</value>
</data> </data>
<data name="Logo" xml:space="preserve"> <data name="Logo" xml:space="preserve">
<value>Logo</value> <value>Logo</value>
</data> </data>
<data name="Low" xml:space="preserve"> <data name="Low" xml:space="preserve">
<value>Low</value> <value>Niska</value>
</data> </data>
<data name="MatrixAudio" xml:space="preserve"> <data name="MatrixAudio" xml:space="preserve">
<value>Wizualizer muzyki</value> <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> <value>Częstotliwość odświeżania 60 Hz dla oszczędzania baterii</value>
</data> </data>
<data name="Minute" xml:space="preserve"> <data name="Minute" xml:space="preserve">
<value>Minute</value> <value>min.</value>
</data> </data>
<data name="Minutes" xml:space="preserve"> <data name="Minutes" xml:space="preserve">
<value>Minutes</value> <value>min.</value>
</data> </data>
<data name="MouseAngleSnapping" xml:space="preserve"> <data name="MouseAngleSnapping" xml:space="preserve">
<value>Angle Snapping</value> <value>Korekcja kąta ruchu</value>
</data> </data>
<data name="MouseAutoPowerOff" xml:space="preserve"> <data name="MouseAutoPowerOff" xml:space="preserve">
<value>Auto Power Off After</value> <value>Przejście w tryb uśpienia po</value>
</data> </data>
<data name="MouseLiftOffDistance" xml:space="preserve"> <data name="MouseLiftOffDistance" xml:space="preserve">
<value>Lift Off Distance</value> <value>Wysokość reakcji sensora</value>
</data> </data>
<data name="MouseLowBatteryWarning" xml:space="preserve"> <data name="MouseLowBatteryWarning" xml:space="preserve">
<value>Low Battery Warning at</value> <value>Ostrzeżenie o niskim poziomie baterii</value>
</data> </data>
<data name="MousePerformance" xml:space="preserve"> <data name="MousePerformance" xml:space="preserve">
<value>Performance</value> <value>Wydajność</value>
</data> </data>
<data name="MouseSynchronize" xml:space="preserve"> <data name="MouseSynchronize" xml:space="preserve">
<value>Synchronize with mouse</value> <value>Synchronizuj z myszką</value>
</data> </data>
<data name="Multizone" xml:space="preserve"> <data name="Multizone" xml:space="preserve">
<value>Multizone</value> <value>Multizone</value>
@@ -453,7 +453,7 @@ Nadal chcesz kontynuować?</value>
<value>Wyciszenie mikrofonu</value> <value>Wyciszenie mikrofonu</value>
</data> </data>
<data name="Never" xml:space="preserve"> <data name="Never" xml:space="preserve">
<value>Never</value> <value>Nigdy</value>
</data> </data>
<data name="NewUpdates" xml:space="preserve"> <data name="NewUpdates" xml:space="preserve">
<value>Nowe aktualizacje</value> <value>Nowe aktualizacje</value>
@@ -462,7 +462,7 @@ Nadal chcesz kontynuować?</value>
<value>Brak aktualizacji</value> <value>Brak aktualizacji</value>
</data> </data>
<data name="NotConnected" xml:space="preserve"> <data name="NotConnected" xml:space="preserve">
<value>Not Connected</value> <value>Nie połączono</value>
</data> </data>
<data name="OpenGHelper" xml:space="preserve"> <data name="OpenGHelper" xml:space="preserve">
<value>Otwórz okno G-Helper</value> <value>Otwórz okno G-Helper</value>
@@ -486,7 +486,7 @@ Nadal chcesz kontynuować?</value>
<value>Tryb zasilania</value> <value>Tryb zasilania</value>
</data> </data>
<data name="Peripherals" xml:space="preserve"> <data name="Peripherals" xml:space="preserve">
<value>Peripherals</value> <value>Urządzenia peryferyjne</value>
</data> </data>
<data name="PictureGif" xml:space="preserve"> <data name="PictureGif" xml:space="preserve">
<value>Obraz / GIF</value> <value>Obraz / GIF</value>
@@ -495,7 +495,7 @@ Nadal chcesz kontynuować?</value>
<value>Odtwórz / Pauza</value> <value>Odtwórz / Pauza</value>
</data> </data>
<data name="PollingRate" xml:space="preserve"> <data name="PollingRate" xml:space="preserve">
<value>Polling Rate</value> <value>Częstotliwość raportowania</value>
</data> </data>
<data name="PowerLimits" xml:space="preserve"> <data name="PowerLimits" xml:space="preserve">
<value>Limit mocy</value> <value>Limit mocy</value>
@@ -507,7 +507,7 @@ Nadal chcesz kontynuować?</value>
<value>Zrzut ekranu</value> <value>Zrzut ekranu</value>
</data> </data>
<data name="Profile" xml:space="preserve"> <data name="Profile" xml:space="preserve">
<value>Profile</value> <value>Profil</value>
</data> </data>
<data name="Quit" xml:space="preserve"> <data name="Quit" xml:space="preserve">
<value>Zamknij</value> <value>Zamknij</value>

View File

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

View File

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

View File

@@ -530,7 +530,7 @@ namespace GHelper
private void LabelCPUFan_Click(object? sender, EventArgs e) 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); RefreshSensors(true);
} }
@@ -768,6 +768,7 @@ namespace GHelper
this.Hide(); this.Hide();
if (fans != null && fans.Text != "") fans.Close(); if (fans != null && fans.Text != "") fans.Close();
if (keyb != null && keyb.Text != "") keyb.Close(); if (keyb != null && keyb.Text != "") keyb.Close();
if (updates != null && updates.Text != "") updates.Close();
} }