// Copyright 2016 Dolphin Emulator Project // Licensed under GPLv2+ // Refer to the license.txt file included. #pragma once #include #include "Common/CommonTypes.h" class GameListCtrl; class wxRect; class wxWindow; class NetPlayLaunchConfig { public: void SetDialogInfo(wxWindow* parent); const wxRect window_defaults{wxDefaultCoord, wxDefaultCoord, 768, 768 - 128}; std::string player_name; const GameListCtrl* game_list_ctrl; wxWindow* parent_window; bool use_traversal; std::string traversal_host; u16 traversal_port; wxRect window_pos{window_defaults}; }; class NetPlayHostConfig : public NetPlayLaunchConfig { public: void FromConfig(); std::string game_name; u16 listen_port = 0; bool forward_port = false; }; class NetPlayJoinConfig : public NetPlayLaunchConfig { public: std::string connect_host; u16 connect_port; std::string connect_hash_code; }; class NetPlayLauncher { public: static bool Host(const NetPlayHostConfig& config); static bool Join(const NetPlayJoinConfig& config); };