Option to override maximum refresh rate #3261

This commit is contained in:
Serge
2024-10-15 10:41:48 +02:00
parent 45709eb7d6
commit a8c32470b3

View File

@@ -7,6 +7,13 @@ namespace GHelper.Display
public const int MAX_REFRESH = 1000; public const int MAX_REFRESH = 1000;
public static int MIN_RATE = AppConfig.Get("min_rate", 60); public static int MIN_RATE = AppConfig.Get("min_rate", 60);
public static int MAX_RATE = AppConfig.Get("max_rate");
public static int GetMaxRate(string? laptopScreen)
{
if (MAX_RATE > 0) return MAX_RATE;
else return ScreenNative.GetMaxRefreshRate(laptopScreen);
}
public void AutoScreen(bool force = false) public void AutoScreen(bool force = false)
{ {
@@ -29,7 +36,7 @@ namespace GHelper.Display
var refreshRate = ScreenNative.GetRefreshRate(laptopScreen); var refreshRate = ScreenNative.GetRefreshRate(laptopScreen);
if (refreshRate < 0) return; if (refreshRate < 0) return;
ScreenNative.SetRefreshRate(laptopScreen, refreshRate > MIN_RATE ? MIN_RATE : ScreenNative.GetMaxRefreshRate(laptopScreen)); ScreenNative.SetRefreshRate(laptopScreen, refreshRate > MIN_RATE ? MIN_RATE : GetMaxRate(laptopScreen));
InitScreen(); InitScreen();
} }
@@ -43,7 +50,7 @@ namespace GHelper.Display
if (frequency >= MAX_REFRESH) if (frequency >= MAX_REFRESH)
{ {
frequency = ScreenNative.GetMaxRefreshRate(laptopScreen); frequency = GetMaxRate(laptopScreen);
} }
if (frequency > 0 && frequency != refreshRate) if (frequency > 0 && frequency != refreshRate)
@@ -151,7 +158,7 @@ namespace GHelper.Display
{ {
var laptopScreen = ScreenNative.FindLaptopScreen(); var laptopScreen = ScreenNative.FindLaptopScreen();
int frequency = ScreenNative.GetRefreshRate(laptopScreen); int frequency = ScreenNative.GetRefreshRate(laptopScreen);
int maxFrequency = ScreenNative.GetMaxRefreshRate(laptopScreen); int maxFrequency = GetMaxRate(laptopScreen);
if (maxFrequency > 0) AppConfig.Set("max_frequency", maxFrequency); if (maxFrequency > 0) AppConfig.Set("max_frequency", maxFrequency);
else maxFrequency = AppConfig.Get("max_frequency"); else maxFrequency = AppConfig.Get("max_frequency");