NetPlay: rename md5 -> game digest

This commit is contained in:
Shawn Hoffman
2022-07-27 18:43:16 -07:00
parent 7d2d5d914b
commit c7ce035a7f
11 changed files with 169 additions and 168 deletions

View File

@ -90,10 +90,10 @@ NetPlayClient::~NetPlayClient()
if (m_is_connected)
{
m_should_compute_MD5 = false;
m_dialog->AbortMD5();
if (m_MD5_thread.joinable())
m_MD5_thread.join();
m_should_compute_game_digest = false;
m_dialog->AbortGameDigest();
if (m_game_digest_thread.joinable())
m_game_digest_thread.join();
m_do_loop.Clear();
m_thread.join();
@ -442,24 +442,24 @@ void NetPlayClient::OnData(sf::Packet& packet)
OnSyncCodes(packet);
break;
case MessageID::ComputeMD5:
OnComputeMD5(packet);
case MessageID::ComputeGameDigest:
OnComputeGameDigest(packet);
break;
case MessageID::MD5Progress:
OnMD5Progress(packet);
case MessageID::GameDigestProgress:
OnGameDigestProgress(packet);
break;
case MessageID::MD5Result:
OnMD5Result(packet);
case MessageID::GameDigestResult:
OnGameDigestResult(packet);
break;
case MessageID::MD5Error:
OnMD5Error(packet);
case MessageID::GameDigestError:
OnGameDigestError(packet);
break;
case MessageID::MD5Abort:
OnMD5Abort();
case MessageID::GameDigestAbort:
OnGameDigestAbort();
break;
default:
@ -1419,48 +1419,48 @@ void NetPlayClient::OnSyncCodesDataAR(sf::Packet& packet)
ActionReplay::UpdateSyncedCodes(synced_codes);
}
void NetPlayClient::OnComputeMD5(sf::Packet& packet)
void NetPlayClient::OnComputeGameDigest(sf::Packet& packet)
{
SyncIdentifier sync_identifier;
ReceiveSyncIdentifier(packet, sync_identifier);
ComputeMD5(sync_identifier);
ComputeGameDigest(sync_identifier);
}
void NetPlayClient::OnMD5Progress(sf::Packet& packet)
void NetPlayClient::OnGameDigestProgress(sf::Packet& packet)
{
PlayerId pid;
int progress;
packet >> pid;
packet >> progress;
m_dialog->SetMD5Progress(pid, progress);
m_dialog->SetGameDigestProgress(pid, progress);
}
void NetPlayClient::OnMD5Result(sf::Packet& packet)
void NetPlayClient::OnGameDigestResult(sf::Packet& packet)
{
PlayerId pid;
std::string result;
packet >> pid;
packet >> result;
m_dialog->SetMD5Result(pid, result);
m_dialog->SetGameDigestResult(pid, result);
}
void NetPlayClient::OnMD5Error(sf::Packet& packet)
void NetPlayClient::OnGameDigestError(sf::Packet& packet)
{
PlayerId pid;
std::string error;
packet >> pid;
packet >> error;
m_dialog->SetMD5Result(pid, error);
m_dialog->SetGameDigestResult(pid, error);
}
void NetPlayClient::OnMD5Abort()
void NetPlayClient::OnGameDigestAbort()
{
m_should_compute_MD5 = false;
m_dialog->AbortMD5();
m_should_compute_game_digest = false;
m_dialog->AbortGameDigest();
}
void NetPlayClient::Send(const sf::Packet& packet, const u8 channel_id)
@ -2469,13 +2469,13 @@ static std::string MD5Sum(const std::string& file_path, std::function<bool(int)>
return fmt::format("{:02x}", fmt::join(output, ""));
}
void NetPlayClient::ComputeMD5(const SyncIdentifier& sync_identifier)
void NetPlayClient::ComputeGameDigest(const SyncIdentifier& sync_identifier)
{
if (m_should_compute_MD5)
if (m_should_compute_game_digest)
return;
m_dialog->ShowMD5Dialog(sync_identifier.game_id);
m_should_compute_MD5 = true;
m_dialog->ShowGameDigestDialog(sync_identifier.game_id);
m_should_compute_game_digest = true;
std::string file;
if (sync_identifier == GetSDCardIdentifier())
@ -2486,26 +2486,26 @@ void NetPlayClient::ComputeMD5(const SyncIdentifier& sync_identifier)
if (file.empty() || !File::Exists(file))
{
sf::Packet packet;
packet << MessageID::MD5Error;
packet << MessageID::GameDigestError;
packet << "file not found";
Send(packet);
return;
}
if (m_MD5_thread.joinable())
m_MD5_thread.join();
m_MD5_thread = std::thread([this, file]() {
if (m_game_digest_thread.joinable())
m_game_digest_thread.join();
m_game_digest_thread = std::thread([this, file]() {
std::string sum = MD5Sum(file, [&](int progress) {
sf::Packet packet;
packet << MessageID::MD5Progress;
packet << MessageID::GameDigestProgress;
packet << progress;
SendAsync(std::move(packet));
return m_should_compute_MD5;
return m_should_compute_game_digest;
});
sf::Packet packet;
packet << MessageID::MD5Result;
packet << MessageID::GameDigestResult;
packet << sum;
SendAsync(std::move(packet));
});

View File

@ -73,10 +73,10 @@ public:
SyncIdentifierComparison* found = nullptr) = 0;
virtual std::string FindGBARomPath(const std::array<u8, 20>& hash, std::string_view title,
int device_number) = 0;
virtual void ShowMD5Dialog(const std::string& title) = 0;
virtual void SetMD5Progress(int pid, int progress) = 0;
virtual void SetMD5Result(int pid, const std::string& result) = 0;
virtual void AbortMD5() = 0;
virtual void ShowGameDigestDialog(const std::string& title) = 0;
virtual void SetGameDigestProgress(int pid, int progress) = 0;
virtual void SetGameDigestResult(int pid, const std::string& result) = 0;
virtual void AbortGameDigest() = 0;
virtual void OnIndexAdded(bool success, std::string error) = 0;
virtual void OnIndexRefreshFailed(std::string error) = 0;
@ -248,7 +248,7 @@ private:
void Disconnect();
bool Connect();
void SendGameStatus();
void ComputeMD5(const SyncIdentifier& sync_identifier);
void ComputeGameDigest(const SyncIdentifier& sync_identifier);
void DisplayPlayersPing();
u32 GetPlayersMaxPing() const;
@ -291,11 +291,11 @@ private:
void OnSyncCodesDataGecko(sf::Packet& packet);
void OnSyncCodesNotifyAR(sf::Packet& packet);
void OnSyncCodesDataAR(sf::Packet& packet);
void OnComputeMD5(sf::Packet& packet);
void OnMD5Progress(sf::Packet& packet);
void OnMD5Result(sf::Packet& packet);
void OnMD5Error(sf::Packet& packet);
void OnMD5Abort();
void OnComputeGameDigest(sf::Packet& packet);
void OnGameDigestProgress(sf::Packet& packet);
void OnGameDigestResult(sf::Packet& packet);
void OnGameDigestError(sf::Packet& packet);
void OnGameDigestAbort();
bool m_is_connected = false;
ConnectionState m_connection_state = ConnectionState::Failure;
@ -307,8 +307,8 @@ private:
std::string m_player_name;
bool m_connecting = false;
TraversalClient* m_traversal_client = nullptr;
std::thread m_MD5_thread;
bool m_should_compute_MD5 = false;
std::thread m_game_digest_thread;
bool m_should_compute_game_digest = false;
Common::Event m_gc_pad_event;
Common::Event m_wii_pad_event;
Common::Event m_first_pad_status_received_event;

View File

@ -168,11 +168,11 @@ enum class MessageID : u8
TimeBase = 0xB0,
DesyncDetected = 0xB1,
ComputeMD5 = 0xC0,
MD5Progress = 0xC1,
MD5Result = 0xC2,
MD5Abort = 0xC3,
MD5Error = 0xC4,
ComputeGameDigest = 0xC0,
GameDigestProgress = 0xC1,
GameDigestResult = 0xC2,
GameDigestAbort = 0xC3,
GameDigestError = 0xC4,
Ready = 0xD0,
NotReady = 0xD1,

View File

@ -1068,13 +1068,13 @@ unsigned int NetPlayServer::OnData(sf::Packet& packet, Client& player)
}
break;
case MessageID::MD5Progress:
case MessageID::GameDigestProgress:
{
int progress;
packet >> progress;
sf::Packet spac;
spac << MessageID::MD5Progress;
spac << MessageID::GameDigestProgress;
spac << player.pid;
spac << progress;
@ -1082,13 +1082,13 @@ unsigned int NetPlayServer::OnData(sf::Packet& packet, Client& player)
}
break;
case MessageID::MD5Result:
case MessageID::GameDigestResult:
{
std::string result;
packet >> result;
sf::Packet spac;
spac << MessageID::MD5Result;
spac << MessageID::GameDigestResult;
spac << player.pid;
spac << result;
@ -1096,13 +1096,13 @@ unsigned int NetPlayServer::OnData(sf::Packet& packet, Client& player)
}
break;
case MessageID::MD5Error:
case MessageID::GameDigestError:
{
std::string error;
packet >> error;
sf::Packet spac;
spac << MessageID::MD5Error;
spac << MessageID::GameDigestError;
spac << player.pid;
spac << error;
@ -1252,10 +1252,10 @@ bool NetPlayServer::ChangeGame(const SyncIdentifier& sync_identifier,
}
// called from ---GUI--- thread
bool NetPlayServer::ComputeMD5(const SyncIdentifier& sync_identifier)
bool NetPlayServer::ComputeGameDigest(const SyncIdentifier& sync_identifier)
{
sf::Packet spac;
spac << MessageID::ComputeMD5;
spac << MessageID::ComputeGameDigest;
SendSyncIdentifier(spac, sync_identifier);
SendAsyncToClients(std::move(spac));
@ -1264,10 +1264,10 @@ bool NetPlayServer::ComputeMD5(const SyncIdentifier& sync_identifier)
}
// called from ---GUI--- thread
bool NetPlayServer::AbortMD5()
bool NetPlayServer::AbortGameDigest()
{
sf::Packet spac;
spac << MessageID::MD5Abort;
spac << MessageID::GameDigestAbort;
SendAsyncToClients(std::move(spac));
return true;

View File

@ -45,8 +45,8 @@ public:
~NetPlayServer();
bool ChangeGame(const SyncIdentifier& sync_identifier, const std::string& netplay_name);
bool ComputeMD5(const SyncIdentifier& sync_identifier);
bool AbortMD5();
bool ComputeGameDigest(const SyncIdentifier& sync_identifier);
bool AbortGameDigest();
void SendChatMessage(const std::string& msg);
bool DoAllPlayersHaveIPLDump() const;