Add automatic profile switching #1

Merged
Jordonbc merged 22 commits from Feature/GraphicsProfiles into Dev 2024-07-08 22:22:09 +01:00
2 changed files with 26 additions and 10 deletions
Showing only changes of commit 1a1b445302 - Show all commits

View file

@ -4,6 +4,7 @@
#include "Objects/HarmonyLinkGraphics.h"
#include "ComponentRecreateRenderStateContext.h"
#include "HarmonyLink.h"
#include "HarmonyLinkLibrary.h"
UHarmonyLinkGraphics* UHarmonyLinkGraphics::Instance = nullptr;
FString UHarmonyLinkGraphics::IniLocation = "HarmonyLink";
@ -156,11 +157,22 @@ void UHarmonyLinkGraphics::ApplySettings(const bool bCheckForCommandLineOverride
UHarmonyLinkGraphics* UHarmonyLinkGraphics::GetSettings()
{
if (!Instance)
// Check if we already initialised
if (Instance)
{
Instance = NewObject<UHarmonyLinkGraphics>();
Instance->AddToRoot();
Instance->LoadConfig();
return Instance;
}
// Proceed to create a new singleton instance
Instance = NewObject<UHarmonyLinkGraphics>();
Instance->AddToRoot();
Instance->LoadConfig();
const FBattery BatteryStatus = UHarmonyLinkLibrary::GetBatteryStatus();
if (BatteryStatus.HasBattery)
{
Instance->ApplyProfile(EProfile::BATTERY);
}
return Instance;
@ -250,6 +262,11 @@ void UHarmonyLinkGraphics::LoadDefaults()
}
}
void UHarmonyLinkGraphics::ApplyProfile(EProfile Profile)
{
}
void UHarmonyLinkGraphics::DebugPrintProfiles() const
{
UE_LOG(LogHarmonyLink, Log, TEXT("DebugPrintProfiles started."));

View file

@ -38,18 +38,17 @@ public:
private:
void CreateDefaultConfigFile();
bool LoadSettingsFromConfig();
bool LoadSection(const FConfigFile& ConfigFile, const TPair<EProfile, FName> Profile);
void SaveSection(FSettingsProfile& SettingsProfile, const bool bFlush = false) const;
void LoadDefaults();
void DebugPrintProfiles() const;
static void PrintDebugSection(FSettingsProfile& SettingsProfile);
void ApplyProfile(EProfile Profile);
static void ResetInstance();
// Debugging
void DebugPrintProfiles() const;
static void PrintDebugSection(FSettingsProfile& SettingsProfile);
static FString IniLocation;
TMap<EProfile, FName> ProfileNames = {