From 5c1c22bab9a689850471ad4c4bd392c00568e606 Mon Sep 17 00:00:00 2001 From: Floogle <18466542+skyfloogle@users.noreply.github.com> Date: Thu, 12 Jan 2023 19:46:02 +0100 Subject: [PATCH] Traversal: Notify user of TTL to be used --- Source/Core/Common/TraversalClient.cpp | 1 + Source/Core/Common/TraversalClient.h | 1 + Source/Core/Core/NetPlayClient.h | 2 ++ Source/Core/Core/NetPlayServer.cpp | 5 +++++ Source/Core/Core/NetPlayServer.h | 1 + Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp | 5 +++++ Source/Core/DolphinQt/NetPlay/NetPlayDialog.h | 1 + 7 files changed, 16 insertions(+) diff --git a/Source/Core/Common/TraversalClient.cpp b/Source/Core/Common/TraversalClient.cpp index e6978cc956..644d26d06c 100644 --- a/Source/Core/Common/TraversalClient.cpp +++ b/Source/Core/Common/TraversalClient.cpp @@ -388,6 +388,7 @@ void TraversalClient::HandleTraversalTest() { // success, we can stop now m_ttlReady = true; + m_Client->OnTtlDetermined(m_ttl); } else { diff --git a/Source/Core/Common/TraversalClient.h b/Source/Core/Common/TraversalClient.h index 36ee3df037..efe0e2f7d1 100644 --- a/Source/Core/Common/TraversalClient.h +++ b/Source/Core/Common/TraversalClient.h @@ -24,6 +24,7 @@ public: virtual void OnTraversalStateChanged() = 0; virtual void OnConnectReady(ENetAddress addr) = 0; virtual void OnConnectFailed(TraversalConnectFailedReason reason) = 0; + virtual void OnTtlDetermined(u8 ttl) = 0; }; class TraversalClient diff --git a/Source/Core/Core/NetPlayClient.h b/Source/Core/Core/NetPlayClient.h index aba54b12dd..7ab716aef7 100644 --- a/Source/Core/Core/NetPlayClient.h +++ b/Source/Core/Core/NetPlayClient.h @@ -72,6 +72,7 @@ public: virtual void OnTraversalStateChanged(Common::TraversalClient::State state) = 0; virtual void OnGameStartAborted() = 0; virtual void OnGolferChanged(bool is_golfer, const std::string& golfer_name) = 0; + virtual void OnTtlDetermined(u8 ttl) = 0; virtual bool IsRecording() = 0; virtual std::shared_ptr @@ -148,6 +149,7 @@ public: void OnTraversalStateChanged() override; void OnConnectReady(ENetAddress addr) override; void OnConnectFailed(Common::TraversalConnectFailedReason reason) override; + void OnTtlDetermined(u8 ttl) override {} bool IsFirstInGamePad(int ingame_pad) const; int NumLocalPads() const; diff --git a/Source/Core/Core/NetPlayServer.cpp b/Source/Core/Core/NetPlayServer.cpp index f7a4e0b88f..cff261baaf 100644 --- a/Source/Core/Core/NetPlayServer.cpp +++ b/Source/Core/Core/NetPlayServer.cpp @@ -1265,6 +1265,11 @@ void NetPlayServer::OnTraversalStateChanged() m_dialog->OnTraversalStateChanged(state); } +void NetPlayServer::OnTtlDetermined(u8 ttl) +{ + m_dialog->OnTtlDetermined(ttl); +} + // called from ---GUI--- thread void NetPlayServer::SendChatMessage(const std::string& msg) { diff --git a/Source/Core/Core/NetPlayServer.h b/Source/Core/Core/NetPlayServer.h index 0498ff12fc..621b7cfe40 100644 --- a/Source/Core/Core/NetPlayServer.h +++ b/Source/Core/Core/NetPlayServer.h @@ -144,6 +144,7 @@ private: void OnTraversalStateChanged() override; void OnConnectReady(ENetAddress) override {} void OnConnectFailed(Common::TraversalConnectFailedReason) override {} + void OnTtlDetermined(u8 ttl) override; void UpdatePadMapping(); void UpdateGBAConfig(); void UpdateWiimoteMapping(); diff --git a/Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp b/Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp index c5edb9c0d9..bdaa507e05 100644 --- a/Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp +++ b/Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp @@ -1037,6 +1037,11 @@ void NetPlayDialog::OnGolferChanged(const bool is_golfer, const std::string& gol DisplayMessage(tr("%1 is now golfing").arg(QString::fromStdString(golfer_name)), ""); } +void NetPlayDialog::OnTtlDetermined(u8 ttl) +{ + DisplayMessage(tr("Using TTL %1 for probe packet").arg(QString::number(ttl)), ""); +} + bool NetPlayDialog::IsRecording() { std::optional is_recording = RunOnObject(m_record_input_action, &QAction::isChecked); diff --git a/Source/Core/DolphinQt/NetPlay/NetPlayDialog.h b/Source/Core/DolphinQt/NetPlay/NetPlayDialog.h index 84f9ff0fbe..f053772a18 100644 --- a/Source/Core/DolphinQt/NetPlay/NetPlayDialog.h +++ b/Source/Core/DolphinQt/NetPlay/NetPlayDialog.h @@ -71,6 +71,7 @@ public: void OnTraversalStateChanged(Common::TraversalClient::State state) override; void OnGameStartAborted() override; void OnGolferChanged(bool is_golfer, const std::string& golfer_name) override; + void OnTtlDetermined(u8 ttl) override; void OnIndexAdded(bool success, const std::string error) override; void OnIndexRefreshFailed(const std::string error) override;