mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2026-05-09 04:13:28 -05:00
70 lines
2.9 KiB
C++
70 lines
2.9 KiB
C++
#pragma once
|
|
|
|
#include <memory>
|
|
#include <span>
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
#include "Common/HookableEvent.h"
|
|
#include "Core/NetPlayClient.h"
|
|
#include "UICommon/GameFile.h"
|
|
|
|
namespace NetPlay {
|
|
|
|
class NetPlayUICallbacks : public NetPlay::NetPlayUI {
|
|
public:
|
|
NetPlayUICallbacks(std::vector<std::shared_ptr<const UICommon::GameFile>> games);
|
|
~NetPlayUICallbacks() override;
|
|
|
|
void BootGame(const std::string& filename,
|
|
std::unique_ptr<BootSessionData> boot_session_data) override;
|
|
void StopGame() override;
|
|
bool IsHosting() const override;
|
|
void Update() override;
|
|
void AppendChat(const std::string& msg) override;
|
|
void OnMsgChangeGame(const NetPlay::SyncIdentifier& sync_identifier,
|
|
const std::string& netplay_name) override;
|
|
void OnMsgChangeGBARom(int pad, const NetPlay::GBAConfig& config) override;
|
|
void OnMsgStartGame() override;
|
|
void OnMsgStopGame() override;
|
|
void OnMsgPowerButton() override;
|
|
void OnPlayerConnect(const std::string& player) override;
|
|
void OnPlayerDisconnect(const std::string& player) override;
|
|
void OnPadBufferChanged(u32 buffer) override;
|
|
void OnHostInputAuthorityChanged(bool enabled) override;
|
|
void OnDesync(u32 frame, const std::string& player) override;
|
|
void OnConnectionLost() override;
|
|
void OnConnectionError(const std::string& message) override;
|
|
void OnTraversalError(Common::TraversalClient::FailureReason error) override;
|
|
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, std::string error) override;
|
|
void OnIndexRefreshFailed(std::string error) override;
|
|
bool IsRecording() override;
|
|
std::shared_ptr<const UICommon::GameFile>
|
|
FindGameFile(const NetPlay::SyncIdentifier& sync_identifier,
|
|
NetPlay::SyncIdentifierComparison* found = nullptr) override;
|
|
std::string FindGBARomPath(const std::array<u8, 20>& hash, std::string_view title,
|
|
int device_number) override;
|
|
void ShowGameDigestDialog(const std::string& title) override;
|
|
void SetGameDigestProgress(int pid, int progress) override;
|
|
void SetGameDigestResult(int pid, const std::string& result) override;
|
|
void AbortGameDigest() override;
|
|
void ShowChunkedProgressDialog(const std::string& title, u64 data_size,
|
|
std::span<const int> players) override;
|
|
void HideChunkedProgressDialog() override;
|
|
void SetChunkedProgress(int pid, u64 progress) override;
|
|
void SetHostWiiSyncData(std::vector<u64> titles, std::string redirect_folder) override;
|
|
|
|
private:
|
|
std::vector<std::shared_ptr<const UICommon::GameFile>> m_games;
|
|
NetPlay::SyncIdentifier m_current_game_identifier;
|
|
std::string m_current_game_name;
|
|
Common::EventHook m_state_changed_hook;
|
|
bool m_got_stop_request = true;
|
|
};
|
|
|
|
} // namespace NetPlay
|