diff --git a/src/Framework.cpp b/src/Framework.cpp index 1dc9fa21..27576de1 100644 --- a/src/Framework.cpp +++ b/src/Framework.cpp @@ -889,6 +889,9 @@ void Framework::on_frontend_command(UEVRSharedMemory::Command command) { m_mods->reload_config(); }); + break; + case UEVRSharedMemory::Command::CONFIG_SETUP_ACKNOWLEDGED: + m_uevr_shared_memory->data().signal_frontend_config_setup = false; break; default: spdlog::error("Unknown frontend command received: {}", (int)command); @@ -947,6 +950,11 @@ void Framework::save_config() { } spdlog::info("Saved config"); + + if (auto& sm = g_framework->get_shared_memory(); sm) { + sm->data().signal_frontend_config_setup = true; + spdlog::info("Signaled frontend config setup"); + } } void Framework::reset_config() try { diff --git a/src/Framework.hpp b/src/Framework.hpp index 8d8225bd..edcf5d1e 100644 --- a/src/Framework.hpp +++ b/src/Framework.hpp @@ -27,6 +27,7 @@ class UEVRSharedMemory { enum Command { RELOAD_CONFIG = 0, + CONFIG_SETUP_ACKNOWLEDGED = 1, }; public: @@ -43,6 +44,7 @@ class UEVRSharedMemory { uint32_t pid{}; // Process ID of the game uint32_t main_thread_id{}; // Main thread ID of the game uint32_t command_thread_id{}; // Thread ID commands are sent to (via PostThreadMessage) + bool signal_frontend_config_setup{false}; }; #pragma pack(pop) @@ -174,6 +176,10 @@ class Framework { return m_frame_worker; } + auto& get_shared_memory() { + return m_uevr_shared_memory; + } + private: void consume_input(); void update_fonts();