From f8e0c9e27ab81d586dfac0e228074d4d5e848934 Mon Sep 17 00:00:00 2001 From: Megamouse Date: Thu, 14 Dec 2023 22:30:25 +0100 Subject: [PATCH] Start/Stop IPC when changing the config setting --- rpcs3/Emu/IPC_socket.cpp | 4 +++- rpcs3/rpcs3qt/ipc_settings_dialog.cpp | 12 ++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/rpcs3/Emu/IPC_socket.cpp b/rpcs3/Emu/IPC_socket.cpp index 85e3865b96..81ff9c11c8 100644 --- a/rpcs3/Emu/IPC_socket.cpp +++ b/rpcs3/Emu/IPC_socket.cpp @@ -108,12 +108,14 @@ namespace IPC_socket int port = g_cfg_ipc.get_port(); if (!m_ipc_server || port != m_old_port) { + IPC.notice("Starting server with port %d", port); m_ipc_server = std::make_unique(); m_old_port = port; } } - else + else if (m_ipc_server) { + IPC.notice("Stopping server"); m_ipc_server.reset(); } } diff --git a/rpcs3/rpcs3qt/ipc_settings_dialog.cpp b/rpcs3/rpcs3qt/ipc_settings_dialog.cpp index d5a57680ab..1ef19e5155 100644 --- a/rpcs3/rpcs3qt/ipc_settings_dialog.cpp +++ b/rpcs3/rpcs3qt/ipc_settings_dialog.cpp @@ -9,6 +9,9 @@ #include "ipc_settings_dialog.h" #include "Emu/IPC_config.h" +#include "Emu/IPC_socket.h" +#include "Emu/IdManager.h" +#include "Emu/System.h" ipc_settings_dialog::ipc_settings_dialog(QWidget* parent) : QDialog(parent) @@ -54,6 +57,15 @@ ipc_settings_dialog::ipc_settings_dialog(QWidget* parent) g_cfg_ipc.set_port(server_port); g_cfg_ipc.save(); + if (auto manager = g_fxo->try_get()) + { + manager->set_server_enabled(server_enabled); + } + else if (server_enabled && Emu.IsRunning()) + { + g_fxo->init(true); + } + accept(); });