diff --git a/app/Display/ScreenControl.cs b/app/Display/ScreenControl.cs index 3bc98323..7180bcdc 100644 --- a/app/Display/ScreenControl.cs +++ b/app/Display/ScreenControl.cs @@ -24,8 +24,8 @@ namespace GHelper.Display public void SetScreen(int frequency = -1, int overdrive = -1, int miniled = -1) { - var laptopScreen = ScreenNative.FindLaptopScreen(true); + if (laptopScreen is null) return; if (ScreenNative.GetRefreshRate(laptopScreen) < 0) return; @@ -66,7 +66,6 @@ namespace GHelper.Display public void InitScreen() { - var laptopScreen = ScreenNative.FindLaptopScreen(); int frequency = ScreenNative.GetRefreshRate(laptopScreen); diff --git a/app/Display/ScreenNative.cs b/app/Display/ScreenNative.cs index c0da638c..70af406f 100644 --- a/app/Display/ScreenNative.cs +++ b/app/Display/ScreenNative.cs @@ -118,14 +118,34 @@ namespace GHelper.Display public const int ENUM_CURRENT_SETTINGS = -1; public const string defaultDevice = @"\\.\DISPLAY1"; + static bool? _ultimate = null; + + static bool isUltimate + { + get + { + if (_ultimate is null) _ultimate = (Program.acpi.DeviceGet(AsusACPI.GPUMux) == 0); + return (bool)_ultimate; + } + } + public static string? FindLaptopScreen(bool log = false) { string? laptopScreen = null; + var screens = Screen.AllScreens; + + if (!isUltimate) + { + foreach (var screen in screens ) + { + if (log) Logger.WriteLine(screen.DeviceName); + if (screen.DeviceName == defaultDevice) return defaultDevice; + } + } try { var devices = GetAllDevices().ToArray(); - var screens = Screen.AllScreens; int count = 0, displayNum = -1; @@ -147,11 +167,7 @@ namespace GHelper.Display count = 0; foreach (var screen in screens) { - if (count == displayNum) - { - laptopScreen = screen.DeviceName; - } - //if (log) Logger.WriteLine(screen.DeviceName); + if (count == displayNum) laptopScreen = screen.DeviceName; count++; } diff --git a/app/GHelper.csproj b/app/GHelper.csproj index 91f89fa3..ba1ca70f 100644 --- a/app/GHelper.csproj +++ b/app/GHelper.csproj @@ -16,7 +16,7 @@ AnyCPU False True - 0.97 + 0.98 diff --git a/app/Gpu/GPUModeControl.cs b/app/Gpu/GPUModeControl.cs index 7f548d4c..e437066b 100644 --- a/app/Gpu/GPUModeControl.cs +++ b/app/Gpu/GPUModeControl.cs @@ -36,7 +36,7 @@ namespace GHelper.Gpu else GpuMode = AsusACPI.GPUModeStandard; - // Ultimate mode not suported + // Ultimate mode not supported if (mux != 1) settings.HideUltimateMode(); // GPU mode not supported if (eco < 0 && mux < 0) settings.HideGPUModes();