From 675260b0f7b164dca59d2888ee2c58a921ca02c1 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Fri, 6 Jul 2018 19:39:42 -0400 Subject: [PATCH] Core: Namespace NetPlay utilities under the NetPlay namespace Previously there was only one function under the NetPlay namespace, which is kind of silly considering we have all of these other types and functions existing outside of the namespace. This moves the rest of them into the namespace. This gets some general names, like Player, for example, out of the global namespace. --- Source/Core/Core/BootManager.cpp | 29 +++---- .../ConfigLoaders/NetPlayConfigLoader.cpp | 7 +- .../Core/ConfigLoaders/NetPlayConfigLoader.h | 10 ++- Source/Core/Core/Core.cpp | 2 +- Source/Core/Core/NetPlayClient.cpp | 81 ++++++++++--------- Source/Core/Core/NetPlayClient.h | 3 + Source/Core/Core/NetPlayProto.h | 6 +- Source/Core/Core/NetPlayServer.cpp | 3 + Source/Core/Core/NetPlayServer.h | 5 +- Source/Core/DolphinQt/MainWindow.cpp | 12 +-- Source/Core/DolphinQt/MainWindow.h | 2 - .../Core/DolphinQt/NetPlay/NetPlayDialog.cpp | 11 ++- Source/Core/DolphinQt/NetPlay/NetPlayDialog.h | 3 +- .../DolphinQt/NetPlay/PadMappingDialog.cpp | 5 +- .../Core/DolphinQt/NetPlay/PadMappingDialog.h | 17 ++-- Source/Core/DolphinQt/Settings.cpp | 8 +- Source/Core/DolphinQt/Settings.h | 12 +-- 17 files changed, 119 insertions(+), 97 deletions(-) diff --git a/Source/Core/Core/BootManager.cpp b/Source/Core/Core/BootManager.cpp index f9848189f8..4233ca6393 100644 --- a/Source/Core/Core/BootManager.cpp +++ b/Source/Core/Core/BootManager.cpp @@ -334,20 +334,21 @@ bool BootCore(std::unique_ptr boot) if (NetPlay::IsNetPlayRunning()) { - Config::AddLayer(ConfigLoaders::GenerateNetPlayConfigLoader(g_NetPlaySettings)); - StartUp.bCPUThread = g_NetPlaySettings.m_CPUthread; - StartUp.bEnableCheats = g_NetPlaySettings.m_EnableCheats; - StartUp.bDSPHLE = g_NetPlaySettings.m_DSPHLE; - StartUp.bEnableMemcardSdWriting = g_NetPlaySettings.m_WriteToMemcard; - StartUp.bCopyWiiSaveNetplay = g_NetPlaySettings.m_CopyWiiSave; - StartUp.cpu_core = g_NetPlaySettings.m_CPUcore; - StartUp.SelectedLanguage = g_NetPlaySettings.m_SelectedLanguage; - StartUp.bOverrideGCLanguage = g_NetPlaySettings.m_OverrideGCLanguage; - StartUp.m_DSPEnableJIT = g_NetPlaySettings.m_DSPEnableJIT; - StartUp.m_OCEnable = g_NetPlaySettings.m_OCEnable; - StartUp.m_OCFactor = g_NetPlaySettings.m_OCFactor; - StartUp.m_EXIDevice[0] = g_NetPlaySettings.m_EXIDevice[0]; - StartUp.m_EXIDevice[1] = g_NetPlaySettings.m_EXIDevice[1]; + const NetPlay::NetSettings& netplay_settings = NetPlay::g_NetPlaySettings; + Config::AddLayer(ConfigLoaders::GenerateNetPlayConfigLoader(netplay_settings)); + StartUp.bCPUThread = netplay_settings.m_CPUthread; + StartUp.bEnableCheats = netplay_settings.m_EnableCheats; + StartUp.bDSPHLE = netplay_settings.m_DSPHLE; + StartUp.bEnableMemcardSdWriting = netplay_settings.m_WriteToMemcard; + StartUp.bCopyWiiSaveNetplay = netplay_settings.m_CopyWiiSave; + StartUp.cpu_core = netplay_settings.m_CPUcore; + StartUp.SelectedLanguage = netplay_settings.m_SelectedLanguage; + StartUp.bOverrideGCLanguage = netplay_settings.m_OverrideGCLanguage; + StartUp.m_DSPEnableJIT = netplay_settings.m_DSPEnableJIT; + StartUp.m_OCEnable = netplay_settings.m_OCEnable; + StartUp.m_OCFactor = netplay_settings.m_OCFactor; + StartUp.m_EXIDevice[0] = netplay_settings.m_EXIDevice[0]; + StartUp.m_EXIDevice[1] = netplay_settings.m_EXIDevice[1]; config_cache.bSetEXIDevice[0] = true; config_cache.bSetEXIDevice[1] = true; } diff --git a/Source/Core/Core/ConfigLoaders/NetPlayConfigLoader.cpp b/Source/Core/Core/ConfigLoaders/NetPlayConfigLoader.cpp index 0746ee13d0..1d959a286f 100644 --- a/Source/Core/Core/ConfigLoaders/NetPlayConfigLoader.cpp +++ b/Source/Core/Core/ConfigLoaders/NetPlayConfigLoader.cpp @@ -16,7 +16,7 @@ namespace ConfigLoaders class NetPlayConfigLayerLoader final : public Config::ConfigLayerLoader { public: - explicit NetPlayConfigLayerLoader(const NetSettings& settings) + explicit NetPlayConfigLayerLoader(const NetPlay::NetSettings& settings) : ConfigLayerLoader(Config::LayerType::Netplay), m_settings(settings) { } @@ -47,11 +47,12 @@ public: } private: - const NetSettings m_settings; + const NetPlay::NetSettings m_settings; }; // Loader generation -std::unique_ptr GenerateNetPlayConfigLoader(const NetSettings& settings) +std::unique_ptr +GenerateNetPlayConfigLoader(const NetPlay::NetSettings& settings) { return std::make_unique(settings); } diff --git a/Source/Core/Core/ConfigLoaders/NetPlayConfigLoader.h b/Source/Core/Core/ConfigLoaders/NetPlayConfigLoader.h index 615d904a06..eaa0ba4ff1 100644 --- a/Source/Core/Core/ConfigLoaders/NetPlayConfigLoader.h +++ b/Source/Core/Core/ConfigLoaders/NetPlayConfigLoader.h @@ -6,14 +6,18 @@ #include -struct NetSettings; - namespace Config { class ConfigLayerLoader; } +namespace NetPlay +{ +struct NetSettings; +} + namespace ConfigLoaders { -std::unique_ptr GenerateNetPlayConfigLoader(const NetSettings& settings); +std::unique_ptr +GenerateNetPlayConfigLoader(const NetPlay::NetSettings& settings); } diff --git a/Source/Core/Core/Core.cpp b/Source/Core/Core/Core.cpp index f5bd36ab9b..18690ac4ac 100644 --- a/Source/Core/Core/Core.cpp +++ b/Source/Core/Core/Core.cpp @@ -122,7 +122,7 @@ void SetIsThrottlerTempDisabled(bool disable) void FrameUpdateOnCPUThread() { if (NetPlay::IsNetPlayRunning()) - NetPlayClient::SendTimeBase(); + NetPlay::NetPlayClient::SendTimeBase(); } // Display messages and return values diff --git a/Source/Core/Core/NetPlayClient.cpp b/Source/Core/Core/NetPlayClient.cpp index be937c5299..33f975463c 100644 --- a/Source/Core/Core/NetPlayClient.cpp +++ b/Source/Core/Core/NetPlayClient.cpp @@ -41,6 +41,8 @@ #include "VideoCommon/OnScreenDisplay.h" #include "VideoCommon/VideoConfig.h" +namespace NetPlay +{ static std::mutex crit_netplay_client; static NetPlayClient* netplay_client = nullptr; NetSettings g_NetPlaySettings; @@ -1306,41 +1308,59 @@ const PadMappingArray& NetPlayClient::GetWiimoteMapping() const return m_wiimote_map; } +bool IsNetPlayRunning() +{ + return netplay_client != nullptr; +} + +void NetPlay_Enable(NetPlayClient* const np) +{ + std::lock_guard lk(crit_netplay_client); + netplay_client = np; +} + +void NetPlay_Disable() +{ + std::lock_guard lk(crit_netplay_client); + netplay_client = nullptr; +} +} // namespace NetPlay + // stuff hacked into dolphin // called from ---CPU--- thread // Actual Core function which is called on every frame bool SerialInterface::CSIDevice_GCController::NetPlay_GetInput(int numPAD, GCPadStatus* PadStatus) { - std::lock_guard lk(crit_netplay_client); + std::lock_guard lk(NetPlay::crit_netplay_client); - if (netplay_client) - return netplay_client->GetNetPads(numPAD, PadStatus); - else - return false; + if (NetPlay::netplay_client) + return NetPlay::netplay_client->GetNetPads(numPAD, PadStatus); + + return false; } bool WiimoteEmu::Wiimote::NetPlay_GetWiimoteData(int wiimote, u8* data, u8 size, u8 reporting_mode) { - std::lock_guard lk(crit_netplay_client); + std::lock_guard lk(NetPlay::crit_netplay_client); - if (netplay_client) - return netplay_client->WiimoteUpdate(wiimote, data, size, reporting_mode); - else - return false; + if (NetPlay::netplay_client) + return NetPlay::netplay_client->WiimoteUpdate(wiimote, data, size, reporting_mode); + + return false; } // Sync the info whether a button was pressed or not. Used for the reconnect on button press feature bool Wiimote::NetPlay_GetButtonPress(int wiimote, bool pressed) { - std::lock_guard lk(crit_netplay_client); + std::lock_guard lk(NetPlay::crit_netplay_client); // Use the reporting mode 0 for the button pressed event, the real ones start at RT_REPORT_CORE u8 data[2] = {static_cast(pressed), 0}; - if (netplay_client) + if (NetPlay::netplay_client) { - if (netplay_client->WiimoteUpdate(wiimote, data, 2, 0)) + if (NetPlay::netplay_client->WiimoteUpdate(wiimote, data, 2, 0)) { return data[0]; } @@ -1357,39 +1377,22 @@ bool Wiimote::NetPlay_GetButtonPress(int wiimote, bool pressed) // also called from ---GUI--- thread when starting input recording u64 ExpansionInterface::CEXIIPL::NetPlay_GetEmulatedTime() { - std::lock_guard lk(crit_netplay_client); + std::lock_guard lk(NetPlay::crit_netplay_client); - if (netplay_client) - return g_netplay_initial_rtc; - else - return 0; + if (NetPlay::netplay_client) + return NetPlay::g_netplay_initial_rtc; + + return 0; } // called from ---CPU--- thread // return the local pad num that should rumble given a ingame pad num int SerialInterface::CSIDevice_GCController::NetPlay_InGamePadToLocalPad(int numPAD) { - std::lock_guard lk(crit_netplay_client); + std::lock_guard lk(NetPlay::crit_netplay_client); - if (netplay_client) - return netplay_client->InGamePadToLocalPad(numPAD); - else - return numPAD; -} + if (NetPlay::netplay_client) + return NetPlay::netplay_client->InGamePadToLocalPad(numPAD); -bool NetPlay::IsNetPlayRunning() -{ - return netplay_client != nullptr; -} - -void NetPlay_Enable(NetPlayClient* const np) -{ - std::lock_guard lk(crit_netplay_client); - netplay_client = np; -} - -void NetPlay_Disable() -{ - std::lock_guard lk(crit_netplay_client); - netplay_client = nullptr; + return numPAD; } diff --git a/Source/Core/Core/NetPlayClient.h b/Source/Core/Core/NetPlayClient.h index 4fc401e950..c4ababf068 100644 --- a/Source/Core/Core/NetPlayClient.h +++ b/Source/Core/Core/NetPlayClient.h @@ -18,6 +18,8 @@ #include "Core/NetPlayProto.h" #include "InputCommon/GCPadStatus.h" +namespace NetPlay +{ class NetPlayUI { public: @@ -186,3 +188,4 @@ private: void NetPlay_Enable(NetPlayClient* const np); void NetPlay_Disable(); +} // namespace NetPlay diff --git a/Source/Core/Core/NetPlayProto.h b/Source/Core/Core/NetPlayProto.h index 97544ece12..dc582d3df8 100644 --- a/Source/Core/Core/NetPlayProto.h +++ b/Source/Core/Core/NetPlayProto.h @@ -14,6 +14,8 @@ namespace PowerPC enum class CPUCore; } +namespace NetPlay +{ struct NetSettings { bool m_CPUthread; @@ -109,7 +111,5 @@ using FrameNum = u32; using PadMapping = s8; using PadMappingArray = std::array; -namespace NetPlay -{ bool IsNetPlayRunning(); -} +} // namespace NetPlay diff --git a/Source/Core/Core/NetPlayServer.cpp b/Source/Core/Core/NetPlayServer.cpp index 84eb1d6ee0..78ad81364c 100644 --- a/Source/Core/Core/NetPlayServer.cpp +++ b/Source/Core/Core/NetPlayServer.cpp @@ -40,6 +40,8 @@ #include #endif +namespace NetPlay +{ u64 g_netplay_initial_rtc = 1272737767; NetPlayServer::~NetPlayServer() @@ -951,3 +953,4 @@ std::vector> NetPlayServer::GetInterfaceList result.emplace_back(std::make_pair("!local!", "127.0.0.1")); return result; } +} // namespace NetPlay diff --git a/Source/Core/Core/NetPlayServer.h b/Source/Core/Core/NetPlayServer.h index b0f52f8000..1dd01ed7ad 100644 --- a/Source/Core/Core/NetPlayServer.h +++ b/Source/Core/Core/NetPlayServer.h @@ -19,8 +19,8 @@ #include "Common/TraversalClient.h" #include "Core/NetPlayProto.h" -enum class PlayerGameStatus; - +namespace NetPlay +{ class NetPlayUI; enum class PlayerGameStatus; @@ -124,3 +124,4 @@ private: TraversalClient* m_traversal_client = nullptr; NetPlayUI* m_dialog = nullptr; }; +} // namespace NetPlay diff --git a/Source/Core/DolphinQt/MainWindow.cpp b/Source/Core/DolphinQt/MainWindow.cpp index b4883368af..1a4b04fa8a 100644 --- a/Source/Core/DolphinQt/MainWindow.cpp +++ b/Source/Core/DolphinQt/MainWindow.cpp @@ -1086,10 +1086,11 @@ bool MainWindow::NetPlayJoin() const std::string nickname = Config::Get(Config::NETPLAY_NICKNAME); // Create Client - Settings::Instance().ResetNetPlayClient(new NetPlayClient( + const bool is_hosting_netplay = Settings::Instance().GetNetPlayServer() != nullptr; + Settings::Instance().ResetNetPlayClient(new NetPlay::NetPlayClient( host_ip, host_port, m_netplay_dialog, nickname, - NetTraversalConfig{Settings::Instance().GetNetPlayServer() != nullptr ? false : is_traversal, - traversal_host, traversal_port})); + NetPlay::NetTraversalConfig{is_hosting_netplay ? false : is_traversal, traversal_host, + traversal_port})); if (!Settings::Instance().GetNetPlayClient()->IsConnected()) { @@ -1133,8 +1134,9 @@ bool MainWindow::NetPlayHost(const QString& game_id) host_port = Config::Get(Config::NETPLAY_LISTEN_PORT); // Create Server - Settings::Instance().ResetNetPlayServer(new NetPlayServer( - host_port, use_upnp, NetTraversalConfig{is_traversal, traversal_host, traversal_port})); + Settings::Instance().ResetNetPlayServer(new NetPlay::NetPlayServer( + host_port, use_upnp, + NetPlay::NetTraversalConfig{is_traversal, traversal_host, traversal_port})); if (!Settings::Instance().GetNetPlayServer()->is_connected) { diff --git a/Source/Core/DolphinQt/MainWindow.h b/Source/Core/DolphinQt/MainWindow.h index 0ecc1414ee..e4f9757b31 100644 --- a/Source/Core/DolphinQt/MainWindow.h +++ b/Source/Core/DolphinQt/MainWindow.h @@ -34,9 +34,7 @@ class JITWidget; class LogConfigWidget; class LogWidget; class MemoryWidget; -class NetPlayClient; class NetPlayDialog; -class NetPlayServer; class NetPlaySetupDialog; class RegisterWidget; class SearchBar; diff --git a/Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp b/Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp index c61adc081b..ee03a52429 100644 --- a/Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp +++ b/Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp @@ -285,7 +285,7 @@ void NetPlayDialog::OnStart() return; } - NetSettings settings; + NetPlay::NetSettings settings; // Copy all relevant settings SConfig& instance = SConfig::GetInstance(); @@ -379,7 +379,8 @@ void NetPlayDialog::UpdateGUI() {tr("Player"), tr("Game Status"), tr("Ping"), tr("Mapping"), tr("Revision")}); m_players_list->setRowCount(player_count); - const auto get_mapping_string = [](const Player* player, const PadMappingArray& array) { + const auto get_mapping_string = [](const NetPlay::Player* player, + const NetPlay::PadMappingArray& array) { std::string str; for (size_t i = 0; i < array.size(); i++) { @@ -392,8 +393,10 @@ void NetPlayDialog::UpdateGUI() return '|' + str + '|'; }; - static const std::map player_status{ - {PlayerGameStatus::Ok, tr("OK")}, {PlayerGameStatus::NotFound, tr("Not Found")}}; + static const std::map player_status{ + {NetPlay::PlayerGameStatus::Ok, tr("OK")}, + {NetPlay::PlayerGameStatus::NotFound, tr("Not Found")}, + }; for (int i = 0; i < player_count; i++) { diff --git a/Source/Core/DolphinQt/NetPlay/NetPlayDialog.h b/Source/Core/DolphinQt/NetPlay/NetPlayDialog.h index 4c1013eeb5..0af53d91c7 100644 --- a/Source/Core/DolphinQt/NetPlay/NetPlayDialog.h +++ b/Source/Core/DolphinQt/NetPlay/NetPlayDialog.h @@ -11,7 +11,6 @@ class MD5Dialog; class GameListModel; -class NetPlayServer; class PadMappingDialog; class QCheckBox; class QComboBox; @@ -26,7 +25,7 @@ class QTableWidget; class QTextEdit; class QToolButton; -class NetPlayDialog : public QDialog, public NetPlayUI +class NetPlayDialog : public QDialog, public NetPlay::NetPlayUI { Q_OBJECT public: diff --git a/Source/Core/DolphinQt/NetPlay/PadMappingDialog.cpp b/Source/Core/DolphinQt/NetPlay/PadMappingDialog.cpp index f526546d1a..a01c2c53c8 100644 --- a/Source/Core/DolphinQt/NetPlay/PadMappingDialog.cpp +++ b/Source/Core/DolphinQt/NetPlay/PadMappingDialog.cpp @@ -94,12 +94,13 @@ int PadMappingDialog::exec() return QDialog::exec(); } -PadMappingArray PadMappingDialog::GetGCPadArray() + +NetPlay::PadMappingArray PadMappingDialog::GetGCPadArray() { return m_pad_mapping; } -PadMappingArray PadMappingDialog::GetWiimoteArray() +NetPlay::PadMappingArray PadMappingDialog::GetWiimoteArray() { return m_wii_mapping; } diff --git a/Source/Core/DolphinQt/NetPlay/PadMappingDialog.h b/Source/Core/DolphinQt/NetPlay/PadMappingDialog.h index 3677a1f5e5..6a359d6632 100644 --- a/Source/Core/DolphinQt/NetPlay/PadMappingDialog.h +++ b/Source/Core/DolphinQt/NetPlay/PadMappingDialog.h @@ -8,12 +8,15 @@ #include "Core/NetPlayProto.h" -class NetPlayClient; -class Player; class QGridLayout; class QComboBox; class QDialogButtonBox; +namespace NetPlay +{ +class Player; +} + class PadMappingDialog : public QDialog { Q_OBJECT @@ -22,8 +25,8 @@ public: int exec() override; - PadMappingArray GetGCPadArray(); - PadMappingArray GetWiimoteArray(); + NetPlay::PadMappingArray GetGCPadArray(); + NetPlay::PadMappingArray GetWiimoteArray(); private: void CreateWidgets(); @@ -31,12 +34,12 @@ private: void OnMappingChanged(); - PadMappingArray m_pad_mapping; - PadMappingArray m_wii_mapping; + NetPlay::PadMappingArray m_pad_mapping; + NetPlay::PadMappingArray m_wii_mapping; QGridLayout* m_main_layout; std::array m_gc_boxes; std::array m_wii_boxes; - std::vector m_players; + std::vector m_players; QDialogButtonBox* m_button_box; }; diff --git a/Source/Core/DolphinQt/Settings.cpp b/Source/Core/DolphinQt/Settings.cpp index fa992bee7d..90fe738707 100644 --- a/Source/Core/DolphinQt/Settings.cpp +++ b/Source/Core/DolphinQt/Settings.cpp @@ -267,22 +267,22 @@ GameListModel* Settings::GetGameListModel() const return model; } -NetPlayClient* Settings::GetNetPlayClient() +NetPlay::NetPlayClient* Settings::GetNetPlayClient() { return m_client.get(); } -void Settings::ResetNetPlayClient(NetPlayClient* client) +void Settings::ResetNetPlayClient(NetPlay::NetPlayClient* client) { m_client.reset(client); } -NetPlayServer* Settings::GetNetPlayServer() +NetPlay::NetPlayServer* Settings::GetNetPlayServer() { return m_server.get(); } -void Settings::ResetNetPlayServer(NetPlayServer* server) +void Settings::ResetNetPlayServer(NetPlay::NetPlayServer* server) { m_server.reset(server); } diff --git a/Source/Core/DolphinQt/Settings.h b/Source/Core/DolphinQt/Settings.h index ba6facb87c..5af90a3da6 100644 --- a/Source/Core/DolphinQt/Settings.h +++ b/Source/Core/DolphinQt/Settings.h @@ -93,10 +93,10 @@ public: void DecreaseVolume(int volume); // NetPlay - NetPlayClient* GetNetPlayClient(); - void ResetNetPlayClient(NetPlayClient* client = nullptr); - NetPlayServer* GetNetPlayServer(); - void ResetNetPlayServer(NetPlayServer* server = nullptr); + NetPlay::NetPlayClient* GetNetPlayClient(); + void ResetNetPlayClient(NetPlay::NetPlayClient* client = nullptr); + NetPlay::NetPlayServer* GetNetPlayServer(); + void ResetNetPlayServer(NetPlay::NetPlayServer* server = nullptr); // Cheats bool GetCheatsEnabled() const; @@ -163,8 +163,8 @@ signals: private: bool m_batch = false; bool m_controller_state_needed = false; - std::unique_ptr m_client; - std::unique_ptr m_server; + std::unique_ptr m_client; + std::unique_ptr m_server; Settings(); };