Internal screen detection

This commit is contained in:
Serge
2023-07-15 20:13:00 +02:00
parent 152a4e04c5
commit 0ecca82652
4 changed files with 25 additions and 10 deletions

View File

@@ -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);

View File

@@ -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++;
}

View File

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

View File

@@ -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();