From 419969ad5f44629ac257b87c6bef57f5e37283ff Mon Sep 17 00:00:00 2001 From: Terry MacDonald Date: Sun, 24 Oct 2021 21:29:53 +1300 Subject: [PATCH] Changed profile detection Changed Profiles to use new methods for profiles detection provided by the new video card library updates for NVIDIALibrary, AMDLibrary and WinLibrary. This should make DisplayMagician faster as there is less repetition. --- DisplayMagician/Properties/AssemblyInfo.cs | 4 +- DisplayMagicianShared/ProfileItem.cs | 81 ++++++---------------- DisplayMagicianShared/ProfileRepository.cs | 3 - 3 files changed, 22 insertions(+), 66 deletions(-) diff --git a/DisplayMagician/Properties/AssemblyInfo.cs b/DisplayMagician/Properties/AssemblyInfo.cs index f221d1d..e518221 100644 --- a/DisplayMagician/Properties/AssemblyInfo.cs +++ b/DisplayMagician/Properties/AssemblyInfo.cs @@ -26,8 +26,8 @@ using System.Resources; [assembly: Guid("e4ceaf5e-ad01-4695-b179-31168eb74c48")] // Version information -[assembly: AssemblyVersion("2.1.0.9")] -[assembly: AssemblyFileVersion("2.1.0.9")] +[assembly: AssemblyVersion("2.1.0.10")] +[assembly: AssemblyFileVersion("2.1.0.10")] [assembly: NeutralResourcesLanguageAttribute( "en" )] [assembly: CLSCompliant(true)] diff --git a/DisplayMagicianShared/ProfileItem.cs b/DisplayMagicianShared/ProfileItem.cs index 39d0067..b3c7838 100644 --- a/DisplayMagicianShared/ProfileItem.cs +++ b/DisplayMagicianShared/ProfileItem.cs @@ -466,72 +466,31 @@ namespace DisplayMagicianShared public bool CreateProfileFromCurrentDisplaySettings() { - // Create defaults for NVIDIA and AMD so that the JSON file can save properly + // Calling the 3 different libraries automatically gets the different configs from each of the 3 video libraries. + // If the video library isn't in use then it also fills in the defaults so that the JSON file can save properly // (C# Structs populate with default values which mean that arrays start with null) - NVIDIALibrary nvidiaLibrary = NVIDIALibrary.GetLibrary(); - AMDLibrary amdLibrary = AMDLibrary.GetLibrary(); - WinLibrary winLibrary = WinLibrary.GetLibrary(); + try + { + NVIDIALibrary nvidiaLibrary = NVIDIALibrary.GetLibrary(); + AMDLibrary amdLibrary = AMDLibrary.GetLibrary(); + WinLibrary winLibrary = WinLibrary.GetLibrary(); - if (VideoMode == VIDEO_MODE.NVIDIA && nvidiaLibrary.IsInstalled) - { - if (nvidiaLibrary.IsInstalled) - { - // Create the profile data from the current config - _nvidiaDisplayConfig = nvidiaLibrary.GetActiveConfig(); - _windowsDisplayConfig = winLibrary.GetActiveConfig(); - _profileDisplayIdentifiers = nvidiaLibrary.GetCurrentDisplayIdentifiers(); + // Create the profile data from the current config + _nvidiaDisplayConfig = nvidiaLibrary.ActiveDisplayConfig; + _amdDisplayConfig = amdLibrary.ActiveDisplayConfig; + _windowsDisplayConfig = winLibrary.ActiveDisplayConfig; + _profileDisplayIdentifiers = nvidiaLibrary.CurrentDisplayIdentifiers; - // Now, since the ActiveProfile has changed, we need to regenerate screen positions - _screens = GetScreenPositions(); + // Now, since the ActiveProfile has changed, we need to regenerate screen positions + _screens = GetScreenPositions(); - return true; - } - else - { - return false; - } + return true; + } - else if(VideoMode == VIDEO_MODE.AMD && AMDLibrary.GetLibrary().IsInstalled) + catch (Exception ex) { - if (amdLibrary.IsInstalled) - { - // Create the profile data from the current config - _amdDisplayConfig = amdLibrary.GetActiveConfig(); - _windowsDisplayConfig = winLibrary.GetActiveConfig(); - _profileDisplayIdentifiers = amdLibrary.GetCurrentDisplayIdentifiers(); - - // Now, since the ActiveProfile has changed, we need to regenerate screen positions - _screens = GetScreenPositions(); - - return true; - } - else - { - return false; - } - } - else if (VideoMode == VIDEO_MODE.WINDOWS) - { - if (winLibrary.IsInstalled) - { - // Create the profile data from the current config - _windowsDisplayConfig = winLibrary.GetActiveConfig(); - _profileDisplayIdentifiers = winLibrary.GetCurrentDisplayIdentifiers(); - - // Now, since the ActiveProfile has changed, we need to regenerate screen positions - _screens = GetScreenPositions(); - - return true; - } - else - { - return false; - } - } - else - { - SharedLogger.logger.Error($"ProfileRepository/CreateProfileFromCurrentDisplaySettings: Tried to use an unknown video mode!"); + SharedLogger.logger.Error(ex, $"ProfileRepository/CreateProfileFromCurrentDisplaySettings: Exception getting the config settings!"); return false; } } @@ -676,7 +635,7 @@ namespace DisplayMagicianShared WinLibrary winLibrary = WinLibrary.GetLibrary(); if (nvidiaLibrary.IsInstalled) { - if (!(nvidiaLibrary.IsActiveConfig(_nvidiaDisplayConfig) && winLibrary.IsActiveConfig(_windowsDisplayConfig))) + if (!winLibrary.IsActiveConfig(_windowsDisplayConfig) || !nvidiaLibrary.IsActiveConfig(_nvidiaDisplayConfig)) { if (nvidiaLibrary.IsPossibleConfig(_nvidiaDisplayConfig)) { @@ -737,7 +696,7 @@ namespace DisplayMagicianShared WinLibrary winLibrary = WinLibrary.GetLibrary(); if (amdLibrary.IsInstalled) { - if (!(amdLibrary.IsActiveConfig(_amdDisplayConfig) && winLibrary.IsActiveConfig(_windowsDisplayConfig))) + if (!winLibrary.IsActiveConfig(_windowsDisplayConfig) || !amdLibrary.IsActiveConfig(_amdDisplayConfig)) { if (amdLibrary.IsPossibleConfig(_amdDisplayConfig)) { diff --git a/DisplayMagicianShared/ProfileRepository.cs b/DisplayMagicianShared/ProfileRepository.cs index e0de35e..8462473 100644 --- a/DisplayMagicianShared/ProfileRepository.cs +++ b/DisplayMagicianShared/ProfileRepository.cs @@ -587,9 +587,6 @@ namespace DisplayMagicianShared public static void UpdateActiveProfile() { - - //ProfileItem activeProfile; - SharedLogger.logger.Debug($"ProfileRepository/UpdateActiveProfile: Updating the profile currently active (in use now)."); ProfileItem profile;