NetPlayProto: Turn MessageID enum into an enum class

Now we can leverage our helper to insert enum values without the need to
cast.
This commit is contained in:
Lioncash
2021-09-22 15:42:04 -04:00
parent 07af775afa
commit af4aaf4609
3 changed files with 183 additions and 185 deletions
+61 -61
View File
@@ -313,143 +313,143 @@ static void ReceiveSyncIdentifier(sf::Packet& spac, SyncIdentifier& sync_identif
// called from ---NETPLAY--- thread
void NetPlayClient::OnData(sf::Packet& packet)
{
MessageId mid;
MessageID mid;
packet >> mid;
INFO_LOG_FMT(NETPLAY, "Got server message: {:x}", mid);
switch (mid)
{
case NP_MSG_PLAYER_JOIN:
case MessageID::PlayerJoin:
OnPlayerJoin(packet);
break;
case NP_MSG_PLAYER_LEAVE:
case MessageID::PlayerLeave:
OnPlayerLeave(packet);
break;
case NP_MSG_CHAT_MESSAGE:
case MessageID::ChatMessage:
OnChatMessage(packet);
break;
case NP_MSG_CHUNKED_DATA_START:
case MessageID::ChunkedDataStart:
OnChunkedDataStart(packet);
break;
case NP_MSG_CHUNKED_DATA_END:
case MessageID::ChunkedDataEnd:
OnChunkedDataEnd(packet);
break;
case NP_MSG_CHUNKED_DATA_PAYLOAD:
case MessageID::ChunkedDataPayload:
OnChunkedDataPayload(packet);
break;
case NP_MSG_CHUNKED_DATA_ABORT:
case MessageID::ChunkedDataAbort:
OnChunkedDataAbort(packet);
break;
case NP_MSG_PAD_MAPPING:
case MessageID::PadMapping:
OnPadMapping(packet);
break;
case NP_MSG_GBA_CONFIG:
case MessageID::GBAConfig:
OnGBAConfig(packet);
break;
case NP_MSG_WIIMOTE_MAPPING:
case MessageID::WiimoteMapping:
OnWiimoteMapping(packet);
break;
case NP_MSG_PAD_DATA:
case MessageID::PadData:
OnPadData(packet);
break;
case NP_MSG_PAD_HOST_DATA:
case MessageID::PadHostData:
OnPadHostData(packet);
break;
case NP_MSG_WIIMOTE_DATA:
case MessageID::WiimoteData:
OnWiimoteData(packet);
break;
case NP_MSG_PAD_BUFFER:
case MessageID::PadBuffer:
OnPadBuffer(packet);
break;
case NP_MSG_HOST_INPUT_AUTHORITY:
case MessageID::HostInputAuthority:
OnHostInputAuthority(packet);
break;
case NP_MSG_GOLF_SWITCH:
case MessageID::GolfSwitch:
OnGolfSwitch(packet);
break;
case NP_MSG_GOLF_PREPARE:
case MessageID::GolfPrepare:
OnGolfPrepare(packet);
break;
case NP_MSG_CHANGE_GAME:
case MessageID::ChangeGame:
OnChangeGame(packet);
break;
case NP_MSG_GAME_STATUS:
case MessageID::GameStatus:
OnGameStatus(packet);
break;
case NP_MSG_START_GAME:
case MessageID::StartGame:
OnStartGame(packet);
break;
case NP_MSG_STOP_GAME:
case NP_MSG_DISABLE_GAME:
case MessageID::StopGame:
case MessageID::DisableGame:
OnStopGame(packet);
break;
case NP_MSG_POWER_BUTTON:
case MessageID::PowerButton:
OnPowerButton();
break;
case NP_MSG_PING:
case MessageID::Ping:
OnPing(packet);
break;
case NP_MSG_PLAYER_PING_DATA:
case MessageID::PlayerPingData:
OnPlayerPingData(packet);
break;
case NP_MSG_DESYNC_DETECTED:
case MessageID::DesyncDetected:
OnDesyncDetected(packet);
break;
case NP_MSG_SYNC_GC_SRAM:
case MessageID::SyncGCSRAM:
OnSyncGCSRAM(packet);
break;
case NP_MSG_SYNC_SAVE_DATA:
case MessageID::SyncSaveData:
OnSyncSaveData(packet);
break;
case NP_MSG_SYNC_CODES:
case MessageID::SyncCodes:
OnSyncCodes(packet);
break;
case NP_MSG_COMPUTE_MD5:
case MessageID::ComputeMD5:
OnComputeMD5(packet);
break;
case NP_MSG_MD5_PROGRESS:
case MessageID::MD5Progress:
OnMD5Progress(packet);
break;
case NP_MSG_MD5_RESULT:
case MessageID::MD5Result:
OnMD5Result(packet);
break;
case NP_MSG_MD5_ERROR:
case MessageID::MD5Error:
OnMD5Error(packet);
break;
case NP_MSG_MD5_ABORT:
case MessageID::MD5Abort:
OnMD5Abort();
break;
@@ -547,7 +547,7 @@ void NetPlayClient::OnChunkedDataEnd(sf::Packet& packet)
m_dialog->HideChunkedProgressDialog();
sf::Packet complete_packet;
complete_packet << static_cast<MessageId>(NP_MSG_CHUNKED_DATA_COMPLETE);
complete_packet << MessageID::ChunkedDataComplete;
complete_packet << cid;
Send(complete_packet, CHUNKED_DATA_CHANNEL);
}
@@ -572,7 +572,7 @@ void NetPlayClient::OnChunkedDataPayload(sf::Packet& packet)
m_dialog->SetChunkedProgress(m_local_player->pid, data_packet.getDataSize());
sf::Packet progress_packet;
progress_packet << static_cast<MessageId>(NP_MSG_CHUNKED_DATA_PROGRESS);
progress_packet << MessageID::ChunkedDataProgress;
progress_packet << cid;
progress_packet << sf::Uint64{data_packet.getDataSize()};
Send(progress_packet, CHUNKED_DATA_CHANNEL);
@@ -731,13 +731,13 @@ void NetPlayClient::OnGolfSwitch(sf::Packet& packet)
if (m_local_player->pid == previous_golfer)
{
sf::Packet spac;
spac << static_cast<MessageId>(NP_MSG_GOLF_RELEASE);
spac << MessageID::GolfRelease;
Send(spac);
}
else if (m_local_player->pid == pid)
{
sf::Packet spac;
spac << static_cast<MessageId>(NP_MSG_GOLF_ACQUIRE);
spac << MessageID::GolfAcquire;
Send(spac);
// Pads are already calibrated so we can just ignore this
@@ -771,7 +771,7 @@ void NetPlayClient::OnChangeGame(sf::Packet& packet)
SendGameStatus();
sf::Packet client_capabilities_packet;
client_capabilities_packet << static_cast<MessageId>(NP_MSG_CLIENT_CAPABILITIES);
client_capabilities_packet << MessageID::ClientCapabilities;
client_capabilities_packet << ExpansionInterface::CEXIIPL::HasIPLDump();
client_capabilities_packet << Config::Get(Config::SESSION_USE_FMA);
Send(client_capabilities_packet);
@@ -924,7 +924,7 @@ void NetPlayClient::OnPing(sf::Packet& packet)
packet >> ping_key;
sf::Packet response_packet;
response_packet << static_cast<MessageId>(NP_MSG_PONG);
response_packet << MessageID::Pong;
response_packet << ping_key;
Send(response_packet);
@@ -1643,7 +1643,7 @@ const NetSettings& NetPlayClient::GetNetSettings() const
void NetPlayClient::SendChatMessage(const std::string& msg)
{
sf::Packet packet;
packet << static_cast<MessageId>(NP_MSG_CHAT_MESSAGE);
packet << MessageID::ChatMessage;
packet << msg;
SendAsync(std::move(packet));
@@ -1666,7 +1666,7 @@ void NetPlayClient::AddPadStateToPacket(const int in_game_pad, const GCPadStatus
void NetPlayClient::SendWiimoteState(const int in_game_pad, const WiimoteInput& nw)
{
sf::Packet packet;
packet << static_cast<MessageId>(NP_MSG_WIIMOTE_DATA);
packet << MessageID::WiimoteData;
packet << static_cast<PadIndex>(in_game_pad);
packet << static_cast<u8>(nw.report_id);
packet << static_cast<u8>(nw.data.size());
@@ -1678,7 +1678,7 @@ void NetPlayClient::SendWiimoteState(const int in_game_pad, const WiimoteInput&
void NetPlayClient::SendStartGamePacket()
{
sf::Packet packet;
packet << static_cast<MessageId>(NP_MSG_START_GAME);
packet << MessageID::StartGame;
packet << m_current_game;
SendAsync(std::move(packet));
@@ -1688,7 +1688,7 @@ void NetPlayClient::SendStartGamePacket()
void NetPlayClient::SendStopGamePacket()
{
sf::Packet packet;
packet << static_cast<MessageId>(NP_MSG_STOP_GAME);
packet << MessageID::StopGame;
SendAsync(std::move(packet));
}
@@ -1760,7 +1760,7 @@ void NetPlayClient::SyncSaveDataResponse(const bool success)
if (++m_sync_save_data_success_count >= m_sync_save_data_count)
{
sf::Packet response_packet;
response_packet << static_cast<MessageId>(NP_MSG_SYNC_SAVE_DATA);
response_packet << MessageID::SyncSaveData;
response_packet << static_cast<MessageId>(SYNC_SAVE_DATA_SUCCESS);
Send(response_packet);
@@ -1769,7 +1769,7 @@ void NetPlayClient::SyncSaveDataResponse(const bool success)
else
{
sf::Packet response_packet;
response_packet << static_cast<MessageId>(NP_MSG_SYNC_SAVE_DATA);
response_packet << MessageID::SyncSaveData;
response_packet << static_cast<MessageId>(SYNC_SAVE_DATA_FAILURE);
Send(response_packet);
@@ -1784,7 +1784,7 @@ void NetPlayClient::SyncCodeResponse(const bool success)
m_dialog->AppendChat(Common::GetStringT("Error processing codes."));
sf::Packet response_packet;
response_packet << static_cast<MessageId>(NP_MSG_SYNC_CODES);
response_packet << MessageID::SyncCodes;
response_packet << static_cast<MessageId>(SYNC_CODES_FAILURE);
Send(response_packet);
@@ -1797,7 +1797,7 @@ void NetPlayClient::SyncCodeResponse(const bool success)
m_dialog->AppendChat(Common::GetStringT("Codes received!"));
sf::Packet response_packet;
response_packet << static_cast<MessageId>(NP_MSG_SYNC_CODES);
response_packet << MessageID::SyncCodes;
response_packet << static_cast<MessageId>(SYNC_CODES_SUCCESS);
Send(response_packet);
@@ -1960,7 +1960,7 @@ bool NetPlayClient::GetNetPads(const int pad_nb, const bool batching, GCPadStatu
{
// Tell the server we've acknowledged the message
sf::Packet spac;
spac << static_cast<MessageId>(NP_MSG_GOLF_PREPARE);
spac << MessageID::GolfPrepare;
Send(spac);
m_wait_on_input_received = false;
@@ -1972,7 +1972,7 @@ bool NetPlayClient::GetNetPads(const int pad_nb, const bool batching, GCPadStatu
if (IsFirstInGamePad(pad_nb) && batching)
{
sf::Packet packet;
packet << static_cast<MessageId>(NP_MSG_PAD_DATA);
packet << MessageID::PadData;
bool send_packet = false;
const int num_local_pads = NumLocalPads();
@@ -1990,11 +1990,11 @@ bool NetPlayClient::GetNetPads(const int pad_nb, const bool batching, GCPadStatu
if (!batching)
{
int local_pad = InGamePadToLocalPad(pad_nb);
const int local_pad = InGamePadToLocalPad(pad_nb);
if (local_pad < 4)
{
sf::Packet packet;
packet << static_cast<MessageId>(NP_MSG_PAD_DATA);
packet << MessageID::PadData;
if (PollLocalPad(local_pad, packet))
SendAsync(std::move(packet));
}
@@ -2208,7 +2208,7 @@ void NetPlayClient::SendPadHostPoll(const PadIndex pad_num)
return;
sf::Packet packet;
packet << static_cast<MessageId>(NP_MSG_PAD_HOST_DATA);
packet << MessageID::PadHostData;
if (pad_num < 0)
{
@@ -2309,7 +2309,7 @@ void NetPlayClient::RequestStopGame()
void NetPlayClient::SendPowerButtonEvent()
{
sf::Packet packet;
packet << static_cast<MessageId>(NP_MSG_POWER_BUTTON);
packet << MessageID::PowerButton;
SendAsync(std::move(packet));
}
@@ -2319,7 +2319,7 @@ void NetPlayClient::RequestGolfControl(const PlayerId pid)
return;
sf::Packet packet;
packet << static_cast<MessageId>(NP_MSG_GOLF_REQUEST);
packet << MessageID::GolfRequest;
packet << pid;
SendAsync(std::move(packet));
}
@@ -2410,7 +2410,7 @@ bool NetPlayClient::IsLocalPlayer(const PlayerId pid) const
void NetPlayClient::SendGameStatus()
{
sf::Packet packet;
packet << static_cast<MessageId>(NP_MSG_GAME_STATUS);
packet << MessageID::GameStatus;
SyncIdentifierComparison result;
m_dialog->FindGameFile(m_selected_game, &result);
@@ -2436,7 +2436,7 @@ void NetPlayClient::SendTimeBase()
const sf::Uint64 timebase = SystemTimers::GetFakeTimeBase();
sf::Packet packet;
packet << static_cast<MessageId>(NP_MSG_TIMEBASE);
packet << MessageID::TimeBase;
packet << timebase;
packet << netplay_client->m_timebase_frame;
@@ -2472,7 +2472,7 @@ void NetPlayClient::ComputeMD5(const SyncIdentifier& sync_identifier)
if (file.empty() || !File::Exists(file))
{
sf::Packet packet;
packet << static_cast<MessageId>(NP_MSG_MD5_ERROR);
packet << MessageID::MD5Error;
packet << "file not found";
Send(packet);
return;
@@ -2483,7 +2483,7 @@ void NetPlayClient::ComputeMD5(const SyncIdentifier& sync_identifier)
m_MD5_thread = std::thread([this, file]() {
std::string sum = MD5::MD5Sum(file, [&](int progress) {
sf::Packet packet;
packet << static_cast<MessageId>(NP_MSG_MD5_PROGRESS);
packet << MessageID::MD5Progress;
packet << progress;
SendAsync(std::move(packet));
@@ -2491,7 +2491,7 @@ void NetPlayClient::ComputeMD5(const SyncIdentifier& sync_identifier)
});
sf::Packet packet;
packet << static_cast<MessageId>(NP_MSG_MD5_RESULT);
packet << MessageID::MD5Result;
packet << sum;
SendAsync(std::move(packet));
});
+45 -46
View File
@@ -120,64 +120,63 @@ struct NetTraversalConfig
u16 traversal_port = 0;
};
// messages
enum MessageID : u8
enum class MessageID : u8
{
NP_MSG_PLAYER_JOIN = 0x10,
NP_MSG_PLAYER_LEAVE = 0x11,
PlayerJoin = 0x10,
PlayerLeave = 0x11,
NP_MSG_CHAT_MESSAGE = 0x30,
ChatMessage = 0x30,
NP_MSG_CHUNKED_DATA_START = 0x40,
NP_MSG_CHUNKED_DATA_END = 0x41,
NP_MSG_CHUNKED_DATA_PAYLOAD = 0x42,
NP_MSG_CHUNKED_DATA_PROGRESS = 0x43,
NP_MSG_CHUNKED_DATA_COMPLETE = 0x44,
NP_MSG_CHUNKED_DATA_ABORT = 0x45,
ChunkedDataStart = 0x40,
ChunkedDataEnd = 0x41,
ChunkedDataPayload = 0x42,
ChunkedDataProgress = 0x43,
ChunkedDataComplete = 0x44,
ChunkedDataAbort = 0x45,
NP_MSG_PAD_DATA = 0x60,
NP_MSG_PAD_MAPPING = 0x61,
NP_MSG_PAD_BUFFER = 0x62,
NP_MSG_PAD_HOST_DATA = 0x63,
NP_MSG_GBA_CONFIG = 0x64,
PadData = 0x60,
PadMapping = 0x61,
PadBuffer = 0x62,
PadHostData = 0x63,
GBAConfig = 0x64,
NP_MSG_WIIMOTE_DATA = 0x70,
NP_MSG_WIIMOTE_MAPPING = 0x71,
WiimoteData = 0x70,
WiimoteMapping = 0x71,
NP_MSG_GOLF_REQUEST = 0x90,
NP_MSG_GOLF_SWITCH = 0x91,
NP_MSG_GOLF_ACQUIRE = 0x92,
NP_MSG_GOLF_RELEASE = 0x93,
NP_MSG_GOLF_PREPARE = 0x94,
GolfRequest = 0x90,
GolfSwitch = 0x91,
GolfAcquire = 0x92,
GolfRelease = 0x93,
GolfPrepare = 0x94,
NP_MSG_START_GAME = 0xA0,
NP_MSG_CHANGE_GAME = 0xA1,
NP_MSG_STOP_GAME = 0xA2,
NP_MSG_DISABLE_GAME = 0xA3,
NP_MSG_GAME_STATUS = 0xA4,
NP_MSG_CLIENT_CAPABILITIES = 0xA5,
NP_MSG_HOST_INPUT_AUTHORITY = 0xA6,
NP_MSG_POWER_BUTTON = 0xA7,
StartGame = 0xA0,
ChangeGame = 0xA1,
StopGame = 0xA2,
DisableGame = 0xA3,
GameStatus = 0xA4,
ClientCapabilities = 0xA5,
HostInputAuthority = 0xA6,
PowerButton = 0xA7,
NP_MSG_TIMEBASE = 0xB0,
NP_MSG_DESYNC_DETECTED = 0xB1,
TimeBase = 0xB0,
DesyncDetected = 0xB1,
NP_MSG_COMPUTE_MD5 = 0xC0,
NP_MSG_MD5_PROGRESS = 0xC1,
NP_MSG_MD5_RESULT = 0xC2,
NP_MSG_MD5_ABORT = 0xC3,
NP_MSG_MD5_ERROR = 0xC4,
ComputeMD5 = 0xC0,
MD5Progress = 0xC1,
MD5Result = 0xC2,
MD5Abort = 0xC3,
MD5Error = 0xC4,
NP_MSG_READY = 0xD0,
NP_MSG_NOT_READY = 0xD1,
Ready = 0xD0,
NotReady = 0xD1,
NP_MSG_PING = 0xE0,
NP_MSG_PONG = 0xE1,
NP_MSG_PLAYER_PING_DATA = 0xE2,
Ping = 0xE0,
Pong = 0xE1,
PlayerPingData = 0xE2,
NP_MSG_SYNC_GC_SRAM = 0xF0,
NP_MSG_SYNC_SAVE_DATA = 0xF1,
NP_MSG_SYNC_CODES = 0xF2,
SyncGCSRAM = 0xF0,
SyncSaveData = 0xF1,
SyncCodes = 0xF2,
};
enum
File diff suppressed because it is too large Load Diff