mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-23 06:09:50 -06:00
Qt: Implement NetPlay
This commit is contained in:
110
Source/Core/DolphinQt2/NetPlay/NetPlayDialog.h
Normal file
110
Source/Core/DolphinQt2/NetPlay/NetPlayDialog.h
Normal file
@ -0,0 +1,110 @@
|
||||
// Copyright 2017 Dolphin Emulator Project
|
||||
// Licensed under GPLv2+
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <QDialog>
|
||||
|
||||
#include "Core/NetPlayClient.h"
|
||||
#include "VideoCommon/OnScreenDisplay.h"
|
||||
|
||||
class MD5Dialog;
|
||||
class GameListModel;
|
||||
class NetPlayServer;
|
||||
class PadMappingDialog;
|
||||
class QCheckBox;
|
||||
class QComboBox;
|
||||
class QGridLayout;
|
||||
class QGroupBox;
|
||||
class QLabel;
|
||||
class QLineEdit;
|
||||
class QListWidget;
|
||||
class QPushButton;
|
||||
class QSpinBox;
|
||||
class QTextEdit;
|
||||
|
||||
class NetPlayDialog : public QDialog, public NetPlayUI
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
NetPlayDialog(QWidget* parent);
|
||||
|
||||
void show(std::string nickname, bool use_traversal);
|
||||
void reject() override;
|
||||
|
||||
// NetPlayUI methods
|
||||
void BootGame(const std::string& filename) override;
|
||||
void StopGame() override;
|
||||
|
||||
void Update() override;
|
||||
void AppendChat(const std::string& msg) override;
|
||||
|
||||
void OnMsgChangeGame(const std::string& filename) override;
|
||||
void OnMsgStartGame() override;
|
||||
void OnMsgStopGame() override;
|
||||
void OnPadBufferChanged(u32 buffer) override;
|
||||
void OnDesync(u32 frame, const std::string& player) override;
|
||||
void OnConnectionLost() override;
|
||||
void OnTraversalError(int error) override;
|
||||
bool IsRecording() override;
|
||||
std::string FindGame(const std::string& game) override;
|
||||
void ShowMD5Dialog(const std::string& file_identifier) override;
|
||||
void SetMD5Progress(int pid, int progress) override;
|
||||
void SetMD5Result(int pid, const std::string& result) override;
|
||||
void AbortMD5() override;
|
||||
signals:
|
||||
void EmulationStopped();
|
||||
void Boot(const QString& filename);
|
||||
void Stop();
|
||||
|
||||
private:
|
||||
void CreateChatLayout();
|
||||
void CreatePlayersLayout();
|
||||
void CreateMainLayout();
|
||||
void ConnectWidgets();
|
||||
void OnChat();
|
||||
void OnStart();
|
||||
void OnMD5Combo(int index);
|
||||
void DisplayMessage(const QString& msg, const std::string& color,
|
||||
int duration = OSD::Duration::NORMAL);
|
||||
void UpdateGUI();
|
||||
void GameStatusChanged(bool running);
|
||||
|
||||
void SetGame(const QString& game_path);
|
||||
|
||||
// Chat
|
||||
QGroupBox* m_chat_box;
|
||||
QTextEdit* m_chat_edit;
|
||||
QLineEdit* m_chat_type_edit;
|
||||
QPushButton* m_chat_send_button;
|
||||
|
||||
// Players
|
||||
QGroupBox* m_players_box;
|
||||
QComboBox* m_room_box;
|
||||
QLabel* m_hostcode_label;
|
||||
QPushButton* m_hostcode_action_button;
|
||||
QListWidget* m_players_list;
|
||||
QPushButton* m_kick_button;
|
||||
QPushButton* m_assign_ports_button;
|
||||
|
||||
// Other
|
||||
QPushButton* m_game_button;
|
||||
QComboBox* m_md5_box;
|
||||
QPushButton* m_start_button;
|
||||
QLabel* m_buffer_label;
|
||||
QSpinBox* m_buffer_size_box;
|
||||
QCheckBox* m_save_sd_box;
|
||||
QCheckBox* m_load_wii_box;
|
||||
QCheckBox* m_record_input_box;
|
||||
QPushButton* m_quit_button;
|
||||
|
||||
QGridLayout* m_main_layout;
|
||||
MD5Dialog* m_md5_dialog;
|
||||
PadMappingDialog* m_pad_mapping;
|
||||
std::string m_current_game;
|
||||
std::string m_nickname;
|
||||
GameListModel* m_game_list_model = nullptr;
|
||||
bool m_use_traversal = false;
|
||||
bool m_is_copy_button_retry = false;
|
||||
};
|
Reference in New Issue
Block a user