From 9a5194dc3a82f9ca7822d1b65452605aab53afde Mon Sep 17 00:00:00 2001 From: Jordon Brooks Date: Mon, 8 Jul 2024 00:32:52 +0100 Subject: [PATCH] Rename plugin to HarmonyLinkUE --- HarmonyLink.uplugin => HarmonyLinkUE.uplugin | 16 +- Source/HarmonyLink/Private/HarmonyLink.cpp | 24 --- .../HarmonyLinkSettings.Build.cs | 28 ++++ .../Private/HarmonyLinkSettings.cpp | 22 +++ .../Private/Objects/HarmonyLinkGraphics.cpp | 141 +++++++++--------- .../Private/Structs/HLConfigValue.cpp | 0 .../Public/Enums/Profile.h | 0 .../Public/HarmonyLinkSettings.h | 13 ++ .../Public/Objects/HarmonyLinkGraphics.h | 4 +- .../Public/Structs/HLConfigValue.h | 0 .../Public/Structs/SettingsProfile.h | 0 .../HarmonyLinkUE.Build.cs} | 4 +- .../Private/HarmonyLinkLibrary.cpp | 13 +- .../HarmonyLinkUE/Private/HarmonyLinkUE.cpp | 22 +++ .../Private/Structs/Battery.cpp | 0 .../Private/Structs/CPUInfo.cpp | 0 .../Private/Structs/Device.cpp | 0 .../Private/Structs/OSVerInfo.cpp | 0 .../Public/Enums/DeviceEnum.h | 0 .../Public/Enums/Platform.h | 0 .../Public/HarmonyLinkLibrary.h | 8 +- .../Public/HarmonyLinkUE.h} | 2 +- .../Public/Structs/Battery.h | 0 .../Public/Structs/CPUInfo.h | 0 .../Public/Structs/Device.h | 0 .../Public/Structs/OSVerInfo.h | 0 26 files changed, 190 insertions(+), 107 deletions(-) rename HarmonyLink.uplugin => HarmonyLinkUE.uplugin (77%) delete mode 100644 Source/HarmonyLink/Private/HarmonyLink.cpp create mode 100644 Source/HarmonyLinkSettings/HarmonyLinkSettings.Build.cs create mode 100644 Source/HarmonyLinkSettings/Private/HarmonyLinkSettings.cpp rename Source/{HarmonyLink => HarmonyLinkSettings}/Private/Objects/HarmonyLinkGraphics.cpp (75%) rename Source/{HarmonyLink => HarmonyLinkSettings}/Private/Structs/HLConfigValue.cpp (100%) rename Source/{HarmonyLink => HarmonyLinkSettings}/Public/Enums/Profile.h (100%) create mode 100644 Source/HarmonyLinkSettings/Public/HarmonyLinkSettings.h rename Source/{HarmonyLink => HarmonyLinkSettings}/Public/Objects/HarmonyLinkGraphics.h (99%) rename Source/{HarmonyLink => HarmonyLinkSettings}/Public/Structs/HLConfigValue.h (100%) rename Source/{HarmonyLink => HarmonyLinkSettings}/Public/Structs/SettingsProfile.h (100%) rename Source/{HarmonyLink/HarmonyLink.Build.cs => HarmonyLinkUE/HarmonyLinkUE.Build.cs} (89%) rename Source/{HarmonyLink => HarmonyLinkUE}/Private/HarmonyLinkLibrary.cpp (91%) create mode 100644 Source/HarmonyLinkUE/Private/HarmonyLinkUE.cpp rename Source/{HarmonyLink => HarmonyLinkUE}/Private/Structs/Battery.cpp (100%) rename Source/{HarmonyLink => HarmonyLinkUE}/Private/Structs/CPUInfo.cpp (100%) rename Source/{HarmonyLink => HarmonyLinkUE}/Private/Structs/Device.cpp (100%) rename Source/{HarmonyLink => HarmonyLinkUE}/Private/Structs/OSVerInfo.cpp (100%) rename Source/{HarmonyLink => HarmonyLinkUE}/Public/Enums/DeviceEnum.h (100%) rename Source/{HarmonyLink => HarmonyLinkUE}/Public/Enums/Platform.h (100%) rename Source/{HarmonyLink => HarmonyLinkUE}/Public/HarmonyLinkLibrary.h (89%) rename Source/{HarmonyLink/Public/HarmonyLink.h => HarmonyLinkUE/Public/HarmonyLinkUE.h} (83%) rename Source/{HarmonyLink => HarmonyLinkUE}/Public/Structs/Battery.h (100%) rename Source/{HarmonyLink => HarmonyLinkUE}/Public/Structs/CPUInfo.h (100%) rename Source/{HarmonyLink => HarmonyLinkUE}/Public/Structs/Device.h (100%) rename Source/{HarmonyLink => HarmonyLinkUE}/Public/Structs/OSVerInfo.h (100%) diff --git a/HarmonyLink.uplugin b/HarmonyLinkUE.uplugin similarity index 77% rename from HarmonyLink.uplugin rename to HarmonyLinkUE.uplugin index 637d348..8b1b3fe 100644 --- a/HarmonyLink.uplugin +++ b/HarmonyLinkUE.uplugin @@ -2,7 +2,7 @@ "FileVersion": 3, "Version": 1, "VersionName": "1.0", - "FriendlyName": "HarmonyLink", + "FriendlyName": "HarmonyLinkUE", "Description": "Revolutionize handheld gaming with adaptive game settings. Optimize graphics and gameplay experience based on real-time system metrics. Open-source project empowering developers to enhance games on portable devices", "Category": "Handheld", "CreatedBy": "Jordon Brooks", @@ -16,10 +16,18 @@ "Installed": false, "Modules": [ { - "Name": "HarmonyLink", + "Name": "HarmonyLinkUE", "Type": "Runtime", "LoadingPhase": "PreDefault", - "WhitelistPlatforms": ["Win64", "Linux"] + "WhitelistPlatforms": [ + "Win64", + "Linux" + ] + }, + { + "Name": "HarmonyLinkSettings", + "Type": "Runtime", + "LoadingPhase": "Default" } ] -} +} \ No newline at end of file diff --git a/Source/HarmonyLink/Private/HarmonyLink.cpp b/Source/HarmonyLink/Private/HarmonyLink.cpp deleted file mode 100644 index 167806e..0000000 --- a/Source/HarmonyLink/Private/HarmonyLink.cpp +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright (C) 2024 Jordon Brooks - -#include "HarmonyLink.h" -#include "Modules/ModuleManager.h" -#include "Objects/HarmonyLinkGraphics.h" - -#define LOCTEXT_NAMESPACE "FHarmonyLinkModule" - -DEFINE_LOG_CATEGORY(LogHarmonyLink); - -void FHarmonyLinkModule::StartupModule() -{ - -} - -void FHarmonyLinkModule::ShutdownModule() -{ - // Ensure we safely destroy our singleton instance - UHarmonyLinkGraphics::DestroySettings(); -} - -#undef LOCTEXT_NAMESPACE - -IMPLEMENT_MODULE(FHarmonyLinkModule, HarmonyLink) diff --git a/Source/HarmonyLinkSettings/HarmonyLinkSettings.Build.cs b/Source/HarmonyLinkSettings/HarmonyLinkSettings.Build.cs new file mode 100644 index 0000000..69f4fa3 --- /dev/null +++ b/Source/HarmonyLinkSettings/HarmonyLinkSettings.Build.cs @@ -0,0 +1,28 @@ +using UnrealBuildTool; + +public class HarmonyLinkSettings : ModuleRules +{ + public HarmonyLinkSettings(ReadOnlyTargetRules Target) : base(Target) + { + PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs; + + PublicDependencyModuleNames.AddRange( + new string[] + { + "Core", + } + ); + + PrivateDependencyModuleNames.AddRange( + new string[] + { + "CoreUObject", + "Engine", + "Slate", + "SlateCore", + + "HarmonyLinkUE" + } + ); + } +} diff --git a/Source/HarmonyLinkSettings/Private/HarmonyLinkSettings.cpp b/Source/HarmonyLinkSettings/Private/HarmonyLinkSettings.cpp new file mode 100644 index 0000000..b2ea795 --- /dev/null +++ b/Source/HarmonyLinkSettings/Private/HarmonyLinkSettings.cpp @@ -0,0 +1,22 @@ +#include "HarmonyLinkSettings.h" + +#include "Objects/HarmonyLinkGraphics.h" + +#define LOCTEXT_NAMESPACE "FHarmonyLinkSettingsModule" + +DEFINE_LOG_CATEGORY(LogHarmonyLinkSettings); + +void FHarmonyLinkSettingsModule::StartupModule() +{ + +} + +void FHarmonyLinkSettingsModule::ShutdownModule() +{ + // Ensure we safely destroy our singleton instance + UHarmonyLinkGraphics::DestroySettings(); +} + +#undef LOCTEXT_NAMESPACE + +IMPLEMENT_MODULE(FHarmonyLinkSettingsModule, HarmonyLinkSettings) diff --git a/Source/HarmonyLink/Private/Objects/HarmonyLinkGraphics.cpp b/Source/HarmonyLinkSettings/Private/Objects/HarmonyLinkGraphics.cpp similarity index 75% rename from Source/HarmonyLink/Private/Objects/HarmonyLinkGraphics.cpp rename to Source/HarmonyLinkSettings/Private/Objects/HarmonyLinkGraphics.cpp index d3f0fa6..1405b51 100644 --- a/Source/HarmonyLink/Private/Objects/HarmonyLinkGraphics.cpp +++ b/Source/HarmonyLinkSettings/Private/Objects/HarmonyLinkGraphics.cpp @@ -3,11 +3,10 @@ #include "Objects/HarmonyLinkGraphics.h" #include "ComponentRecreateRenderStateContext.h" -#include "HarmonyLink.h" +#include "HarmonyLinkSettings.h" #include "HarmonyLinkLibrary.h" #include "GameFramework/GameUserSettings.h" #include "Kismet/GameplayStatics.h" -#include "HarmonyLinkLib.h" UHarmonyLinkGraphics* UHarmonyLinkGraphics::_INSTANCE = nullptr; int32 UHarmonyLinkGraphics::_TickRate = 1; @@ -60,14 +59,14 @@ TMap> UHarmonyLinkGraphics::_DefaultSettings UHarmonyLinkGraphics::~UHarmonyLinkGraphics() { - UE_LOG(LogHarmonyLink, Verbose, TEXT("~UHarmonyLinkGraphics called.")); + UE_LOG(LogHarmonyLinkSettings, Verbose, TEXT("~UHarmonyLinkGraphics called.")); FWorldDelegates::OnPostWorldInitialization.RemoveAll(this); FWorldDelegates::OnPreWorldFinishDestroy.RemoveAll(this); } void UHarmonyLinkGraphics::LoadConfig(const bool bForceReload) { - UE_LOG(LogHarmonyLink, Verbose, TEXT("LoadConfig called.")); + UE_LOG(LogHarmonyLinkSettings, Verbose, TEXT("LoadConfig called.")); QUICK_SCOPE_CYCLE_COUNTER(HarmonyLinkGraphics_LoadSettings); // Load the settings into the map @@ -78,7 +77,7 @@ void UHarmonyLinkGraphics::LoadConfig(const bool bForceReload) bool UHarmonyLinkGraphics::LoadSettingsFromConfig(FConfigFile* ConfigFile) const { - UE_LOG(LogHarmonyLink, Verbose, TEXT("LoadSettingsFromConfig called.")); + UE_LOG(LogHarmonyLinkSettings, Verbose, TEXT("LoadSettingsFromConfig called.")); //const FString Filename = "HarmonyLink"; //GetConfigDirectoryFile(bLoadDefaults); // Load each profile section @@ -90,19 +89,19 @@ bool UHarmonyLinkGraphics::LoadSettingsFromConfig(FConfigFile* ConfigFile) const if (!ConfigFile->GetBool(*SectionName, *KeyName, _bAutomaticSwitch)) { - UE_LOG(LogHarmonyLink, Error, TEXT("Failed to load bAutomaticSwitch from config")); + UE_LOG(LogHarmonyLinkSettings, Error, TEXT("Failed to load bAutomaticSwitch from config")); bLoaded = false; } else { - UE_LOG(LogHarmonyLink, Log, TEXT("Loaded bAutomaticSwitch: %s"), _bAutomaticSwitch ? TEXT("true") : TEXT("false")); + UE_LOG(LogHarmonyLinkSettings, Log, TEXT("Loaded bAutomaticSwitch: %s"), _bAutomaticSwitch ? TEXT("true") : TEXT("false")); } for (const TPair& Profile : _ProfileNames) { if (!LoadSection(ConfigFile, Profile)) { - UE_LOG(LogHarmonyLink, Error, TEXT("Failed to load section: '%s'"), *Profile.Value.ToString()); + UE_LOG(LogHarmonyLinkSettings, Error, TEXT("Failed to load section: '%s'"), *Profile.Value.ToString()); bLoaded = false; } } @@ -110,17 +109,17 @@ bool UHarmonyLinkGraphics::LoadSettingsFromConfig(FConfigFile* ConfigFile) const // Check if all profiles and settings were loaded successfully if (bLoaded) { - UE_LOG(LogHarmonyLink, Log, TEXT("Successfully loaded config.")); + UE_LOG(LogHarmonyLinkSettings, Log, TEXT("Successfully loaded config.")); return true; } - UE_LOG(LogHarmonyLink, Error, TEXT("Failed to load config file.")); + UE_LOG(LogHarmonyLinkSettings, Error, TEXT("Failed to load config file.")); return false; } bool UHarmonyLinkGraphics::LoadSection(FConfigFile* ConfigFile, const TPair Profile) { - UE_LOG(LogHarmonyLink, Verbose, TEXT("LoadSection called.")); + UE_LOG(LogHarmonyLinkSettings, Verbose, TEXT("LoadSection called.")); if (!ensureMsgf(ConfigFile, TEXT("ConfigFile is nullptr!"))) return false; const FName& SectionName = Profile.Value; @@ -184,13 +183,13 @@ bool UHarmonyLinkGraphics::LoadSection(FConfigFile* ConfigFile, const TPairToString()); + UE_LOG(LogHarmonyLinkSettings, Log, TEXT("Applying '%s': Value='%s', Type='%s' to profile '%s'."), *Setting.ToString(), *TypeString, *ValueString, *ProfileName->ToString()); // Find the settings associated with the profile FSettingsProfile* SettingsProfile = _Profiles.Find(Profile); if (!SettingsProfile) { - UE_LOG(LogHarmonyLink, Error, TEXT("No settings found for profile %s."), *ProfileName->ToString()); + UE_LOG(LogHarmonyLinkSettings, Error, TEXT("No settings found for profile %s."), *ProfileName->ToString()); return; } @@ -246,7 +245,7 @@ void UHarmonyLinkGraphics::SetSetting(const EProfile Profile, const FName Settin UHarmonyLinkGraphics* UHarmonyLinkGraphics::GetSettings() { - UE_LOG(LogHarmonyLink, VeryVerbose, TEXT("GetSettings called.")); + UE_LOG(LogHarmonyLinkSettings, VeryVerbose, TEXT("GetSettings called.")); // Check if we already initialised if (_INSTANCE) { @@ -262,7 +261,7 @@ UHarmonyLinkGraphics* UHarmonyLinkGraphics::GetSettings() FSettingsProfile UHarmonyLinkGraphics::GetSettingProfile(const EProfile Profile) { - UE_LOG(LogHarmonyLink, Verbose, TEXT("GetSettingProfile called.")); + UE_LOG(LogHarmonyLinkSettings, Verbose, TEXT("GetSettingProfile called.")); // Ignore if HarmonyLinkSettings is disabled if (Profile == EProfile::NONE) { @@ -274,7 +273,7 @@ FSettingsProfile UHarmonyLinkGraphics::GetSettingProfile(const EProfile Profile) if (!ProfileName) { - UE_LOG(LogHarmonyLink, Error, TEXT("Profile not found.")); + UE_LOG(LogHarmonyLinkSettings, Error, TEXT("Profile not found.")); return FSettingsProfile(); } @@ -283,7 +282,7 @@ FSettingsProfile UHarmonyLinkGraphics::GetSettingProfile(const EProfile Profile) if (!SettingsProfile) { - UE_LOG(LogHarmonyLink, Error, TEXT("No settings found for profile %s."), *ProfileName->ToString()); + UE_LOG(LogHarmonyLinkSettings, Error, TEXT("No settings found for profile %s."), *ProfileName->ToString()); return FSettingsProfile(); } @@ -292,29 +291,29 @@ FSettingsProfile UHarmonyLinkGraphics::GetSettingProfile(const EProfile Profile) EProfile UHarmonyLinkGraphics::GetActiveProfile() const { - UE_LOG(LogHarmonyLink, Verbose, TEXT("GetActiveProfile called.")); + UE_LOG(LogHarmonyLinkSettings, Verbose, TEXT("GetActiveProfile called.")); return _ActiveProfile; } void UHarmonyLinkGraphics::SetAutomaticSwitching(const bool bAutomaticSwitch) { - UE_LOG(LogHarmonyLink, Verbose, TEXT("SetAutomaticSwitching called.")); + UE_LOG(LogHarmonyLinkSettings, Verbose, TEXT("SetAutomaticSwitching called.")); _bAutomaticSwitch = bAutomaticSwitch; OnAutomaticSwitchChanged.Broadcast(_bAutomaticSwitch); } bool UHarmonyLinkGraphics::GetAutomaticSwitching() const { - UE_LOG(LogHarmonyLink, Verbose, TEXT("GetAutomaticSwitching called.")); + UE_LOG(LogHarmonyLinkSettings, Verbose, TEXT("GetAutomaticSwitching called.")); return _bAutomaticSwitch; } void UHarmonyLinkGraphics::DestroySettings() { - UE_LOG(LogHarmonyLink, Log, TEXT("DestroySettings called.")); + UE_LOG(LogHarmonyLinkSettings, Log, TEXT("DestroySettings called.")); if (_INSTANCE) { - UE_LOG(LogHarmonyLink, Log, TEXT("Destroying UHarmonyLinkGraphics.")) + UE_LOG(LogHarmonyLinkSettings, Log, TEXT("Destroying UHarmonyLinkGraphics.")) FWorldDelegates::OnPostWorldInitialization.RemoveAll(_INSTANCE); FWorldDelegates::OnPreWorldFinishDestroy.RemoveAll(_INSTANCE); _INSTANCE->RemoveFromRoot(); @@ -333,7 +332,7 @@ void UHarmonyLinkGraphics::DestroySettings() void UHarmonyLinkGraphics::Init() { - UE_LOG(LogHarmonyLink, Warning, TEXT("HarmonyLinkGraphics initialized.")); + UE_LOG(LogHarmonyLinkSettings, Warning, TEXT("HarmonyLinkGraphics initialized.")); if (_INSTANCE != this) { if (_INSTANCE) @@ -349,11 +348,11 @@ void UHarmonyLinkGraphics::Init() FWorldDelegates::OnPostWorldInitialization.AddStatic(&UHarmonyLinkGraphics::OnPostWorldInitialization); FWorldDelegates::OnPreWorldFinishDestroy.AddStatic(&UHarmonyLinkGraphics::OnWorldEnd); - UE_LOG(LogHarmonyLink, Log, TEXT("Init called.")); + UE_LOG(LogHarmonyLinkSettings, Log, TEXT("Init called.")); - if (!HarmonyLinkLib::HL_Init()) + if (!UHarmonyLinkLibrary::IsInitialised()) { - UE_LOG(LogHarmonyLink, Fatal, TEXT("Failed to initialise HarmonyLinkLib!")); + UE_LOG(LogHarmonyLinkSettings, Fatal, TEXT("Failed to initialise HarmonyLinkLib!")); return; } @@ -376,7 +375,7 @@ void UHarmonyLinkGraphics::Init() void UHarmonyLinkGraphics::Intermal_SaveConfig(const bool bDefaultConfig) const { - UE_LOG(LogHarmonyLink, Log, TEXT("Intermal_SaveConfig called.")); + UE_LOG(LogHarmonyLinkSettings, Log, TEXT("Intermal_SaveConfig called.")); QUICK_SCOPE_CYCLE_COUNTER(HarmonyLinkGraphics_SaveConfig); const FString Filename = GetConfigDirectoryFile(bDefaultConfig); @@ -386,14 +385,14 @@ void UHarmonyLinkGraphics::Intermal_SaveConfig(const bool bDefaultConfig) const // Save the _bAutomaticSwitch variable GConfig->SetBool(*SectionName, *KeyName, _bAutomaticSwitch, Filename); - UE_LOG(LogHarmonyLink, Log, TEXT("Saving bAutomaticSwitch: %s"), _bAutomaticSwitch ? TEXT("true") : TEXT("false")); + UE_LOG(LogHarmonyLinkSettings, Log, TEXT("Saving bAutomaticSwitch: %s"), _bAutomaticSwitch ? TEXT("true") : TEXT("false")); for (const TPair& Profile : _Profiles) { SaveSection(Profile.Value, bDefaultConfig); } - UE_LOG(LogHarmonyLink, Log, TEXT("Flushing file: '%s'"), *Filename); + UE_LOG(LogHarmonyLinkSettings, Log, TEXT("Flushing file: '%s'"), *Filename); GetConfig()->Dirty = true; // You'd think that Write would actually write something but for some // reason even if it outputs a success the file doesn't actually get created. @@ -404,7 +403,7 @@ void UHarmonyLinkGraphics::Intermal_SaveConfig(const bool bDefaultConfig) const void UHarmonyLinkGraphics::Tick() { - UE_LOG(LogHarmonyLink, VeryVerbose, TEXT("Tick called.")); + UE_LOG(LogHarmonyLinkSettings, VeryVerbose, TEXT("Tick called.")); const FBattery BatteryStatus = UHarmonyLinkLibrary::GetBatteryStatus(); if (BatteryStatus.BatteryPercent != _LastBatteryPercentage) @@ -439,18 +438,18 @@ void UHarmonyLinkGraphics::Tick() void UHarmonyLinkGraphics::CreateDefaultConfigFile() const { - UE_LOG(LogHarmonyLink, Log, TEXT("CreateDefaultConfigFile called.")); - UE_LOG(LogHarmonyLink, Log, TEXT("Creating default config file.")); + UE_LOG(LogHarmonyLinkSettings, Log, TEXT("CreateDefaultConfigFile called.")); + UE_LOG(LogHarmonyLinkSettings, Log, TEXT("Creating default config file.")); LoadDefaults(); Intermal_SaveConfig(true); - UE_LOG(LogHarmonyLink, Log, TEXT("Default config file created.")); + UE_LOG(LogHarmonyLinkSettings, Log, TEXT("Default config file created.")); } FString UHarmonyLinkGraphics::GetConfigDirectoryFile(const bool bDefaultFolder) { - UE_LOG(LogHarmonyLink, Log, TEXT("GetConfigDirectoryFile called.")); + UE_LOG(LogHarmonyLinkSettings, Log, TEXT("GetConfigDirectoryFile called.")); FString ConfigFileName = bDefaultFolder ? TEXT("DefaultHarmonyLink.ini") : TEXT("HarmonyLink.ini"); FString ConfigDirectory = bDefaultFolder ? FPaths::ProjectConfigDir() : FPaths::Combine(FPaths::GeneratedConfigDir(), UGameplayStatics::GetPlatformName()); @@ -460,7 +459,7 @@ FString UHarmonyLinkGraphics::GetConfigDirectoryFile(const bool bDefaultFolder) void UHarmonyLinkGraphics::SaveSection(const FSettingsProfile& SettingsProfile, const bool bDefaultConfig, const bool bFlush) const { - UE_LOG(LogHarmonyLink, Log, TEXT("SaveSection called.")); + UE_LOG(LogHarmonyLinkSettings, Log, TEXT("SaveSection called.")); if (GConfig) { const FString Filename = GetConfigDirectoryFile(bDefaultConfig); @@ -493,10 +492,10 @@ void UHarmonyLinkGraphics::SaveSection(const FSettingsProfile& SettingsProfile, GConfig->SetString(*SettingsProfile.SectionName.ToString(), *Setting.Key.ToString(), *ConfigValue, Filename); } - UE_LOG(LogHarmonyLink, Log, TEXT("Saving config file: '%s'"), *Filename); + UE_LOG(LogHarmonyLinkSettings, Log, TEXT("Saving config file: '%s'"), *Filename); if (bFlush) { - UE_LOG(LogHarmonyLink, Log, TEXT("Flushing file: '%s'"), *Filename); + UE_LOG(LogHarmonyLinkSettings, Log, TEXT("Flushing file: '%s'"), *Filename); GConfig->Flush(false, Filename); } } @@ -504,7 +503,7 @@ void UHarmonyLinkGraphics::SaveSection(const FSettingsProfile& SettingsProfile, void UHarmonyLinkGraphics::LoadDefaults() const { - UE_LOG(LogHarmonyLink, Log, TEXT("LoadDefaults called.")); + UE_LOG(LogHarmonyLinkSettings, Log, TEXT("LoadDefaults called.")); _Profiles.Reset(); @@ -525,11 +524,11 @@ void UHarmonyLinkGraphics::LoadDefaults() const bool UHarmonyLinkGraphics::ApplyProfileInternal(const EProfile Profile) { - UE_LOG(LogHarmonyLink, Log, TEXT("ApplyProfileInternal called.")); + UE_LOG(LogHarmonyLinkSettings, Log, TEXT("ApplyProfileInternal called.")); // If the profile is None, revert to the original user game settings if (Profile == EProfile::NONE) { - UE_LOG(LogHarmonyLink, Log, TEXT("Reverting to original user game settings.")); + UE_LOG(LogHarmonyLinkSettings, Log, TEXT("Reverting to original user game settings.")); if (UGameUserSettings* UserSettings = GEngine->GetGameUserSettings()) { @@ -537,11 +536,11 @@ bool UHarmonyLinkGraphics::ApplyProfileInternal(const EProfile Profile) UserSettings->ApplySettings(true); _ActiveProfile = EProfile::NONE; OnProfileChanged.Broadcast(_ActiveProfile); - UE_LOG(LogHarmonyLink, Log, TEXT("Original user game settings applied.")); + UE_LOG(LogHarmonyLinkSettings, Log, TEXT("Original user game settings applied.")); return true; } - UE_LOG(LogHarmonyLink, Warning, TEXT("Failed to get user game settings.")); + UE_LOG(LogHarmonyLinkSettings, Warning, TEXT("Failed to get user game settings.")); return false; } @@ -551,18 +550,18 @@ bool UHarmonyLinkGraphics::ApplyProfileInternal(const EProfile Profile) if (!ProfileName) { - UE_LOG(LogHarmonyLink, Error, TEXT("Profile not found.")); + UE_LOG(LogHarmonyLinkSettings, Error, TEXT("Profile not found.")); return false; } - UE_LOG(LogHarmonyLink, Log, TEXT("Applying profile %s."), *ProfileName->ToString()); + UE_LOG(LogHarmonyLinkSettings, Log, TEXT("Applying profile %s."), *ProfileName->ToString()); // Find the settings associated with the profile FSettingsProfile* SettingsProfile = _Profiles.Find(Profile); if (!SettingsProfile) { - UE_LOG(LogHarmonyLink, Warning, TEXT("No settings found for profile %s."), *ProfileName->ToString()); + UE_LOG(LogHarmonyLinkSettings, Warning, TEXT("No settings found for profile %s."), *ProfileName->ToString()); return false; } @@ -573,7 +572,7 @@ bool UHarmonyLinkGraphics::ApplyProfileInternal(const EProfile Profile) for (const TPair& Setting : SettingsProfile->Settings) { // Example of logging each setting being applied - UE_LOG(LogHarmonyLink, Log, TEXT("Patching CVar override: %s = %s"), + UE_LOG(LogHarmonyLinkSettings, Log, TEXT("Patching CVar override: %s = %s"), *Setting.Key.ToString(), *Setting.Value.ToString()); ApplySetting(Setting); @@ -587,10 +586,10 @@ bool UHarmonyLinkGraphics::ApplyProfileInternal(const EProfile Profile) void UHarmonyLinkGraphics::OnPostWorldInitialization(UWorld* World, UWorld::InitializationValues IVS) { - UE_LOG(LogHarmonyLink, Log, TEXT("OnPostWorldInitialization called.")); + UE_LOG(LogHarmonyLinkSettings, Log, TEXT("OnPostWorldInitialization called.")); if (!World || !World->IsValidLowLevel()) { - UE_LOG(LogHarmonyLink, Error, TEXT("Failed to Hook into World Initialisation!")) + UE_LOG(LogHarmonyLinkSettings, Error, TEXT("Failed to Hook into World Initialisation!")) return; } @@ -601,7 +600,7 @@ void UHarmonyLinkGraphics::OnPostWorldInitialization(UWorld* World, UWorld::Init FTimerManager* TimerManager = &World->GetTimerManager(); if (!TimerManager) { - UE_LOG(LogHarmonyLink, Error, TEXT("Failed get TimerManager!")) + UE_LOG(LogHarmonyLinkSettings, Error, TEXT("Failed get TimerManager!")) return; } @@ -612,7 +611,7 @@ void UHarmonyLinkGraphics::OnPostWorldInitialization(UWorld* World, UWorld::Init { if (!GetSettings()) { - UE_LOG(LogHarmonyLink, Error, TEXT("'This' is destroyed, Clearing timer.")) + UE_LOG(LogHarmonyLinkSettings, Error, TEXT("'This' is destroyed, Clearing timer.")) if (TimerManager) { TimerManager->ClearTimer(_TickTimerHandle); @@ -624,12 +623,12 @@ void UHarmonyLinkGraphics::OnPostWorldInitialization(UWorld* World, UWorld::Init } else { - UE_LOG(LogHarmonyLink, Error, TEXT("Error: Timer already exists.")); + UE_LOG(LogHarmonyLinkSettings, Error, TEXT("Error: Timer already exists.")); } } else { - UE_LOG(LogHarmonyLink, Error, TEXT("'This' is nullptr!")); + UE_LOG(LogHarmonyLinkSettings, Error, TEXT("'This' is nullptr!")); } } else @@ -640,10 +639,10 @@ void UHarmonyLinkGraphics::OnPostWorldInitialization(UWorld* World, UWorld::Init void UHarmonyLinkGraphics::OnWorldEnd(UWorld* World) { - UE_LOG(LogHarmonyLink, Log, TEXT("OnWorldEnd(UWorld* World) called.")); + UE_LOG(LogHarmonyLinkSettings, Log, TEXT("OnWorldEnd(UWorld* World) called.")); if (!World) { - UE_LOG(LogHarmonyLink, Error, TEXT("World Already destroyed")) + UE_LOG(LogHarmonyLinkSettings, Error, TEXT("World Already destroyed")) return; } @@ -663,7 +662,7 @@ void UHarmonyLinkGraphics::OnWorldEnd(UWorld* World) bool UHarmonyLinkGraphics::ApplyProfile(const EProfile Profile, const bool bDisableAutomaticSwitch) { - UE_LOG(LogHarmonyLink, Log, TEXT("Applying Profile.")); + UE_LOG(LogHarmonyLinkSettings, Log, TEXT("Applying Profile.")); // Manual profile change, turn off automatic switching if (bDisableAutomaticSwitch) { @@ -675,7 +674,7 @@ bool UHarmonyLinkGraphics::ApplyProfile(const EProfile Profile, const bool bDisa void UHarmonyLinkGraphics::ApplySetting(const TPair& Setting) { - UE_LOG(LogHarmonyLink, Log, TEXT("Applying settings.")); + UE_LOG(LogHarmonyLinkSettings, Log, TEXT("Applying settings.")); // Apply the setting based on the key (CVar) IConsoleManager& ConsoleManager = IConsoleManager::Get(); IConsoleVariable* CVar = ConsoleManager.FindConsoleVariable(*Setting.Key.ToString()); @@ -697,31 +696,31 @@ void UHarmonyLinkGraphics::ApplySetting(const TPair& Sett break; default: - UE_LOG(LogHarmonyLink, Warning, TEXT("Unsupported value type for setting: %s"), *Setting.Key.ToString()); + UE_LOG(LogHarmonyLinkSettings, Warning, TEXT("Unsupported value type for setting: %s"), *Setting.Key.ToString()); break; } } else { - UE_LOG(LogHarmonyLink, Warning, TEXT("Console variable not found: %s"), *Setting.Key.ToString()); + UE_LOG(LogHarmonyLinkSettings, Warning, TEXT("Console variable not found: %s"), *Setting.Key.ToString()); } } void UHarmonyLinkGraphics::DebugPrintProfiles() const { - UE_LOG(LogHarmonyLink, Log, TEXT("DebugPrintProfiles started.")); + UE_LOG(LogHarmonyLinkSettings, Log, TEXT("DebugPrintProfiles started.")); for (TPair Profile : _Profiles) { PrintDebugSection(Profile.Value); } - UE_LOG(LogHarmonyLink, Log, TEXT("DebugPrintProfiles completed.")); + UE_LOG(LogHarmonyLinkSettings, Log, TEXT("DebugPrintProfiles completed.")); } FConfigFile* UHarmonyLinkGraphics::GetConfig() const { - UE_LOG(LogHarmonyLink, Verbose, TEXT("GetConfig Called.")); + UE_LOG(LogHarmonyLinkSettings, Verbose, TEXT("GetConfig Called.")); if (_ConfigFile) { return _ConfigFile.Get(); @@ -731,7 +730,7 @@ FConfigFile* UHarmonyLinkGraphics::GetConfig() const if (!ConfigFile) { - UE_LOG(LogHarmonyLink, Warning, TEXT("Config file not found, attempting to read DefaultHarmonyLink.ini.")); + UE_LOG(LogHarmonyLinkSettings, Warning, TEXT("Config file not found, attempting to read DefaultHarmonyLink.ini.")); // Look in ProjectFolder->Config->DefaultHarmonyLink.ini ConfigFile = GConfig->Find(GetConfigDirectoryFile(true), true); } @@ -744,14 +743,14 @@ FConfigFile* UHarmonyLinkGraphics::GetConfig() const if (ConfigFile) { - UE_LOG(LogHarmonyLink, Verbose, TEXT("Setting up config.")); + UE_LOG(LogHarmonyLinkSettings, Verbose, TEXT("Setting up config.")); ConfigFile->Name = "HarmonyLink"; LoadSettingsFromConfig(ConfigFile); _ConfigFile = MakeShareable(ConfigFile); } else { - UE_LOG(LogHarmonyLink, Error, TEXT("Failed to make config variable!")) + UE_LOG(LogHarmonyLinkSettings, Error, TEXT("Failed to make config variable!")) return nullptr; } @@ -760,7 +759,7 @@ FConfigFile* UHarmonyLinkGraphics::GetConfig() const void UHarmonyLinkGraphics::PrintDebugSection(FSettingsProfile& SettingsProfile) { - UE_LOG(LogHarmonyLink, Warning, TEXT("[%s]"), *SettingsProfile.SectionName.ToString()); + UE_LOG(LogHarmonyLinkSettings, Warning, TEXT("[%s]"), *SettingsProfile.SectionName.ToString()); for (const auto& Setting : SettingsProfile.Settings) { @@ -787,13 +786,13 @@ void UHarmonyLinkGraphics::PrintDebugSection(FSettingsProfile& SettingsProfile) break; } - UE_LOG(LogHarmonyLink, Warning, TEXT("Key: %s = V=%s, T=%s "), *Setting.Key.ToString(), *ValueString, *TypeString); + UE_LOG(LogHarmonyLinkSettings, Warning, TEXT("Key: %s = V=%s, T=%s "), *Setting.Key.ToString(), *ValueString, *TypeString); } } void UHarmonyLinkGraphics::ResetInstance() { - UE_LOG(LogHarmonyLink, Log, TEXT("Resetting instance.")); + UE_LOG(LogHarmonyLinkSettings, Log, TEXT("Resetting instance.")); _INSTANCE->DestroySettings(); GetSettings(); } diff --git a/Source/HarmonyLink/Private/Structs/HLConfigValue.cpp b/Source/HarmonyLinkSettings/Private/Structs/HLConfigValue.cpp similarity index 100% rename from Source/HarmonyLink/Private/Structs/HLConfigValue.cpp rename to Source/HarmonyLinkSettings/Private/Structs/HLConfigValue.cpp diff --git a/Source/HarmonyLink/Public/Enums/Profile.h b/Source/HarmonyLinkSettings/Public/Enums/Profile.h similarity index 100% rename from Source/HarmonyLink/Public/Enums/Profile.h rename to Source/HarmonyLinkSettings/Public/Enums/Profile.h diff --git a/Source/HarmonyLinkSettings/Public/HarmonyLinkSettings.h b/Source/HarmonyLinkSettings/Public/HarmonyLinkSettings.h new file mode 100644 index 0000000..a51a458 --- /dev/null +++ b/Source/HarmonyLinkSettings/Public/HarmonyLinkSettings.h @@ -0,0 +1,13 @@ +#pragma once + +#include "CoreMinimal.h" +#include "Modules/ModuleManager.h" + +DECLARE_LOG_CATEGORY_EXTERN(LogHarmonyLinkSettings, Log, All); + +class FHarmonyLinkSettingsModule : public IModuleInterface +{ +public: + virtual void StartupModule() override; + virtual void ShutdownModule() override; +}; diff --git a/Source/HarmonyLink/Public/Objects/HarmonyLinkGraphics.h b/Source/HarmonyLinkSettings/Public/Objects/HarmonyLinkGraphics.h similarity index 99% rename from Source/HarmonyLink/Public/Objects/HarmonyLinkGraphics.h rename to Source/HarmonyLinkSettings/Public/Objects/HarmonyLinkGraphics.h index d6e3418..782fb98 100644 --- a/Source/HarmonyLink/Public/Objects/HarmonyLinkGraphics.h +++ b/Source/HarmonyLinkSettings/Public/Objects/HarmonyLinkGraphics.h @@ -17,7 +17,7 @@ DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnBatteryLevelChanged, int32, Batte * */ UCLASS(Blueprintable, config="HarmonyLink") -class HARMONYLINK_API UHarmonyLinkGraphics : public UBlueprintFunctionLibrary +class HARMONYLINKSETTINGS_API UHarmonyLinkGraphics : public UBlueprintFunctionLibrary { GENERATED_BODY() @@ -84,7 +84,7 @@ public: * @note Uses UE_LOG for logging the update process and any errors. */ UFUNCTION(BlueprintCallable, Category="HarmonyLink Settings") - void SetSetting(EProfile Profile, FName Setting, FHLConfigValue Value); + void SetSetting(EProfile Profile, FName Setting, const FHLConfigValue& Value); /** * @brief Applies the specified graphics profile. diff --git a/Source/HarmonyLink/Public/Structs/HLConfigValue.h b/Source/HarmonyLinkSettings/Public/Structs/HLConfigValue.h similarity index 100% rename from Source/HarmonyLink/Public/Structs/HLConfigValue.h rename to Source/HarmonyLinkSettings/Public/Structs/HLConfigValue.h diff --git a/Source/HarmonyLink/Public/Structs/SettingsProfile.h b/Source/HarmonyLinkSettings/Public/Structs/SettingsProfile.h similarity index 100% rename from Source/HarmonyLink/Public/Structs/SettingsProfile.h rename to Source/HarmonyLinkSettings/Public/Structs/SettingsProfile.h diff --git a/Source/HarmonyLink/HarmonyLink.Build.cs b/Source/HarmonyLinkUE/HarmonyLinkUE.Build.cs similarity index 89% rename from Source/HarmonyLink/HarmonyLink.Build.cs rename to Source/HarmonyLinkUE/HarmonyLinkUE.Build.cs index 7199123..56b5629 100644 --- a/Source/HarmonyLink/HarmonyLink.Build.cs +++ b/Source/HarmonyLinkUE/HarmonyLinkUE.Build.cs @@ -3,9 +3,9 @@ using UnrealBuildTool; using System.IO; -public class HarmonyLink : ModuleRules +public class HarmonyLinkUE : ModuleRules { - public HarmonyLink(ReadOnlyTargetRules Target) : base(Target) + public HarmonyLinkUE(ReadOnlyTargetRules Target) : base(Target) { PCHUsage = ModuleRules.PCHUsageMode.UseExplicitOrSharedPCHs; diff --git a/Source/HarmonyLink/Private/HarmonyLinkLibrary.cpp b/Source/HarmonyLinkUE/Private/HarmonyLinkLibrary.cpp similarity index 91% rename from Source/HarmonyLink/Private/HarmonyLinkLibrary.cpp rename to Source/HarmonyLinkUE/Private/HarmonyLinkLibrary.cpp index a9a0f25..bddd3af 100644 --- a/Source/HarmonyLink/Private/HarmonyLinkLibrary.cpp +++ b/Source/HarmonyLinkUE/Private/HarmonyLinkLibrary.cpp @@ -1,7 +1,7 @@ // Copyright (C) 2024 Jordon Brooks #include "HarmonyLinkLibrary.h" -#include "HarmonyLink.h" +#include "HarmonyLinkUE.h" #include "HarmonyLinkLib.h" @@ -20,9 +20,13 @@ FCPUInfo UHarmonyLinkLibrary::CachedCPUInfo = FCPUInfo(); FDevice UHarmonyLinkLibrary::CachedDeviceInfo = FDevice(); FOSVerInfo UHarmonyLinkLibrary::CachedOSInfo = FOSVerInfo(); +bool UHarmonyLinkLibrary::bIsInitialised = false; + UHarmonyLinkLibrary::UHarmonyLinkLibrary() { - if (!HarmonyLinkLib::HL_Init()) + bIsInitialised = HarmonyLinkLib::HL_Init(); + + if (!bIsInitialised) { UE_LOG(LogHarmonyLink, Fatal, TEXT("Failed to initialise HarmonyLinkLib!")); return; @@ -31,6 +35,11 @@ UHarmonyLinkLibrary::UHarmonyLinkLibrary() UE_LOG(LogHarmonyLink, Log, TEXT("HarmonyLinkLib Initialised!")); } +bool UHarmonyLinkLibrary::IsInitialised() +{ + return bIsInitialised; +} + bool UHarmonyLinkLibrary::IsWine(bool bForce) { if (!bIsWineCached || bForce) diff --git a/Source/HarmonyLinkUE/Private/HarmonyLinkUE.cpp b/Source/HarmonyLinkUE/Private/HarmonyLinkUE.cpp new file mode 100644 index 0000000..29c33e1 --- /dev/null +++ b/Source/HarmonyLinkUE/Private/HarmonyLinkUE.cpp @@ -0,0 +1,22 @@ +// Copyright (C) 2024 Jordon Brooks + +#include "HarmonyLinkUE.h" +#include "Modules/ModuleManager.h" + +#define LOCTEXT_NAMESPACE "FHarmonyLinkUEModule" + +DEFINE_LOG_CATEGORY(LogHarmonyLink); + +void FHarmonyLinkUEModule::StartupModule() +{ + +} + +void FHarmonyLinkUEModule::ShutdownModule() +{ + +} + +#undef LOCTEXT_NAMESPACE + +IMPLEMENT_MODULE(FHarmonyLinkUEModule, HarmonyLinkUE) diff --git a/Source/HarmonyLink/Private/Structs/Battery.cpp b/Source/HarmonyLinkUE/Private/Structs/Battery.cpp similarity index 100% rename from Source/HarmonyLink/Private/Structs/Battery.cpp rename to Source/HarmonyLinkUE/Private/Structs/Battery.cpp diff --git a/Source/HarmonyLink/Private/Structs/CPUInfo.cpp b/Source/HarmonyLinkUE/Private/Structs/CPUInfo.cpp similarity index 100% rename from Source/HarmonyLink/Private/Structs/CPUInfo.cpp rename to Source/HarmonyLinkUE/Private/Structs/CPUInfo.cpp diff --git a/Source/HarmonyLink/Private/Structs/Device.cpp b/Source/HarmonyLinkUE/Private/Structs/Device.cpp similarity index 100% rename from Source/HarmonyLink/Private/Structs/Device.cpp rename to Source/HarmonyLinkUE/Private/Structs/Device.cpp diff --git a/Source/HarmonyLink/Private/Structs/OSVerInfo.cpp b/Source/HarmonyLinkUE/Private/Structs/OSVerInfo.cpp similarity index 100% rename from Source/HarmonyLink/Private/Structs/OSVerInfo.cpp rename to Source/HarmonyLinkUE/Private/Structs/OSVerInfo.cpp diff --git a/Source/HarmonyLink/Public/Enums/DeviceEnum.h b/Source/HarmonyLinkUE/Public/Enums/DeviceEnum.h similarity index 100% rename from Source/HarmonyLink/Public/Enums/DeviceEnum.h rename to Source/HarmonyLinkUE/Public/Enums/DeviceEnum.h diff --git a/Source/HarmonyLink/Public/Enums/Platform.h b/Source/HarmonyLinkUE/Public/Enums/Platform.h similarity index 100% rename from Source/HarmonyLink/Public/Enums/Platform.h rename to Source/HarmonyLinkUE/Public/Enums/Platform.h diff --git a/Source/HarmonyLink/Public/HarmonyLinkLibrary.h b/Source/HarmonyLinkUE/Public/HarmonyLinkLibrary.h similarity index 89% rename from Source/HarmonyLink/Public/HarmonyLinkLibrary.h rename to Source/HarmonyLinkUE/Public/HarmonyLinkLibrary.h index 926b6c8..a55db5f 100644 --- a/Source/HarmonyLink/Public/HarmonyLinkLibrary.h +++ b/Source/HarmonyLinkUE/Public/HarmonyLinkLibrary.h @@ -16,13 +16,17 @@ * Library of static functions for accessing various system information, particularly for the HarmonyLink project. */ UCLASS() -class HARMONYLINK_API UHarmonyLinkLibrary : public UBlueprintFunctionLibrary +class HARMONYLINKUE_API UHarmonyLinkLibrary : public UBlueprintFunctionLibrary { GENERATED_BODY() public: UHarmonyLinkLibrary(); + // IsInitialised + UFUNCTION(BlueprintCallable, BlueprintPure, Category="HarmonyLink") + static bool IsInitialised(); + // Checks if the game is running under Wine. UFUNCTION(BlueprintCallable, BlueprintPure, Category="HarmonyLink") static bool IsWine(bool bForce = false); @@ -66,4 +70,6 @@ private: static FCPUInfo CachedCPUInfo; static FDevice CachedDeviceInfo; static FOSVerInfo CachedOSInfo; + + static bool bIsInitialised; }; diff --git a/Source/HarmonyLink/Public/HarmonyLink.h b/Source/HarmonyLinkUE/Public/HarmonyLinkUE.h similarity index 83% rename from Source/HarmonyLink/Public/HarmonyLink.h rename to Source/HarmonyLinkUE/Public/HarmonyLinkUE.h index b59a8ba..b88bb95 100644 --- a/Source/HarmonyLink/Public/HarmonyLink.h +++ b/Source/HarmonyLinkUE/Public/HarmonyLinkUE.h @@ -6,7 +6,7 @@ DECLARE_LOG_CATEGORY_EXTERN(LogHarmonyLink, All, All); -class FHarmonyLinkModule : public IModuleInterface +class FHarmonyLinkUEModule : public IModuleInterface { public: diff --git a/Source/HarmonyLink/Public/Structs/Battery.h b/Source/HarmonyLinkUE/Public/Structs/Battery.h similarity index 100% rename from Source/HarmonyLink/Public/Structs/Battery.h rename to Source/HarmonyLinkUE/Public/Structs/Battery.h diff --git a/Source/HarmonyLink/Public/Structs/CPUInfo.h b/Source/HarmonyLinkUE/Public/Structs/CPUInfo.h similarity index 100% rename from Source/HarmonyLink/Public/Structs/CPUInfo.h rename to Source/HarmonyLinkUE/Public/Structs/CPUInfo.h diff --git a/Source/HarmonyLink/Public/Structs/Device.h b/Source/HarmonyLinkUE/Public/Structs/Device.h similarity index 100% rename from Source/HarmonyLink/Public/Structs/Device.h rename to Source/HarmonyLinkUE/Public/Structs/Device.h diff --git a/Source/HarmonyLink/Public/Structs/OSVerInfo.h b/Source/HarmonyLinkUE/Public/Structs/OSVerInfo.h similarity index 100% rename from Source/HarmonyLink/Public/Structs/OSVerInfo.h rename to Source/HarmonyLinkUE/Public/Structs/OSVerInfo.h