diff --git a/Source/HarmonyLink/Private/Objects/HarmonyLinkGraphics.cpp b/Source/HarmonyLink/Private/Objects/HarmonyLinkGraphics.cpp index 42fb8d1..47b090d 100644 --- a/Source/HarmonyLink/Private/Objects/HarmonyLinkGraphics.cpp +++ b/Source/HarmonyLink/Private/Objects/HarmonyLinkGraphics.cpp @@ -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(); - Instance->AddToRoot(); - Instance->LoadConfig(); + return Instance; + } + + // Proceed to create a new singleton instance + Instance = NewObject(); + 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.")); diff --git a/Source/HarmonyLink/Public/Objects/HarmonyLinkGraphics.h b/Source/HarmonyLink/Public/Objects/HarmonyLinkGraphics.h index ad76529..eb4845f 100644 --- a/Source/HarmonyLink/Public/Objects/HarmonyLinkGraphics.h +++ b/Source/HarmonyLink/Public/Objects/HarmonyLinkGraphics.h @@ -38,18 +38,17 @@ public: private: void CreateDefaultConfigFile(); bool LoadSettingsFromConfig(); - bool LoadSection(const FConfigFile& ConfigFile, const TPair 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 ProfileNames = {