diff options
| author | Ryan Houdek <Sonicadvance1@gmail.com> | 2013-09-23 00:47:57 -0500 |
|---|---|---|
| committer | Ryan Houdek <Sonicadvance1@gmail.com> | 2013-09-23 00:47:57 -0500 |
| commit | bab91494d53f15d804834ba5d11730b0e855ebd8 (patch) | |
| tree | a86cd67ea34aa3497955dceb501794275e4e7f04 /Source/Core/DolphinWX/Src/NetWindow.cpp | |
| parent | d84312c799816e8835e6bed562f216bf19725761 (diff) | |
| parent | 1da6469c62fa1b4fd669a48cb583e161d5cb2713 (diff) | |
Merge branch 'master' into android-core-control
Diffstat (limited to 'Source/Core/DolphinWX/Src/NetWindow.cpp')
| -rw-r--r-- | Source/Core/DolphinWX/Src/NetWindow.cpp | 67 |
1 files changed, 58 insertions, 9 deletions
diff --git a/Source/Core/DolphinWX/Src/NetWindow.cpp b/Source/Core/DolphinWX/Src/NetWindow.cpp index 7bf3d9816d..1ad5d57f1f 100644 --- a/Source/Core/DolphinWX/Src/NetWindow.cpp +++ b/Source/Core/DolphinWX/Src/NetWindow.cpp @@ -107,10 +107,11 @@ NetPlaySetupDiag::NetPlaySetupDiag(wxWindow* const parent, const CGameListCtrl* " - DSP Emulator Engine Must be the same on all computers!\n" " - DSP on Dedicated Thread [OFF]\n" " - Framelimit NOT set to [Audio]\n" + " - Manually set the exact number of wiimotes to be used to [Emulated Wiimote]\n" "\n" "All players should use the same Dolphin version and settings.\n" "All memory cards must be identical between players or disabled.\n" - "Wiimote support has not been implemented!\n" + "Wiimote support is probably terrible. Don't use it.\n" "\n" "The host must have the chosen TCP port open/forwarded!\n"), wxDefaultPosition, wxDefaultSize); @@ -253,9 +254,12 @@ void NetPlaySetupDiag::OnHost(wxCommandEvent&) if(m_upnp_chk->GetValue()) netplay_server->TryPortmapping(port); #endif + MakeNetPlayDiag(port, game, true); + } + else + { + PanicAlertT("Failed to listen. Is another instance of the NetPlay server running?"); } - - MakeNetPlayDiag(port, game, true); } void NetPlaySetupDiag::OnJoin(wxCommandEvent&) @@ -354,6 +358,9 @@ NetPlayDiag::NetPlayDiag(wxWindow* const parent, const CGameListCtrl* const game bottom_szr->Add(m_memcard_write, 0, wxCENTER); } + m_record_chkbox = new wxCheckBox(panel, wxID_ANY, _("Record input")); + bottom_szr->Add(m_record_chkbox, 0, wxCENTER); + bottom_szr->AddStretchSpacer(1); bottom_szr->Add(quit_btn); @@ -401,9 +408,12 @@ void NetPlayDiag::OnChat(wxCommandEvent&) void NetPlayDiag::GetNetSettings(NetSettings &settings) { SConfig &instance = SConfig::GetInstance(); + settings.m_CPUthread = instance.m_LocalCoreStartupParameter.bCPUThread; settings.m_DSPHLE = instance.m_LocalCoreStartupParameter.bDSPHLE; settings.m_DSPEnableJIT = instance.m_EnableJIT; settings.m_WriteToMemcard = m_memcard_write->GetValue(); + settings.m_EXIDevice[0] = instance.m_EXIDevice[0]; + settings.m_EXIDevice[1] = instance.m_EXIDevice[1]; } std::string NetPlayDiag::FindGame() @@ -556,12 +566,20 @@ void NetPlayDiag::OnChangeGame(wxCommandEvent&) void NetPlayDiag::OnConfigPads(wxCommandEvent&) { PadMapping mapping[4]; + PadMapping wiimotemapping[4]; std::vector<const Player *> player_list; netplay_server->GetPadMapping(mapping); + netplay_server->GetWiimoteMapping(wiimotemapping); netplay_client->GetPlayers(player_list); - PadMapDiag pmd(this, mapping, player_list); + PadMapDiag pmd(this, mapping, wiimotemapping, player_list); pmd.ShowModal(); netplay_server->SetPadMapping(mapping); + netplay_server->SetWiimoteMapping(wiimotemapping); +} + +bool NetPlayDiag::IsRecording() +{ + return m_record_chkbox->GetValue(); } ChangeGameDiag::ChangeGameDiag(wxWindow* const parent, const CGameListCtrl* const game_list, wxString& game_name) @@ -591,9 +609,10 @@ void ChangeGameDiag::OnPick(wxCommandEvent& event) EndModal(wxID_OK); } -PadMapDiag::PadMapDiag(wxWindow* const parent, PadMapping map[], std::vector<const Player *>& player_list) +PadMapDiag::PadMapDiag(wxWindow* const parent, PadMapping map[], PadMapping wiimotemap[], std::vector<const Player *>& player_list) : wxDialog(parent, wxID_ANY, _("Configure Pads"), wxDefaultPosition, wxDefaultSize) , m_mapping(map) + , m_wiimapping (wiimotemap) , m_player_list(player_list) { wxBoxSizer* const h_szr = new wxBoxSizer(wxHORIZONTAL); @@ -604,6 +623,11 @@ PadMapDiag::PadMapDiag(wxWindow* const parent, PadMapping map[], std::vector<con for (unsigned int i = 0; i < m_player_list.size(); i++) player_names.Add(m_player_list[i]->name); + wxString wiimote_names[5]; + wiimote_names[0] = _("None"); + for (unsigned int i=1; i < 5; ++i) + wiimote_names[i] = wxString(_("Wiimote ")) + (wxChar)(wxT('0')+i); + for (unsigned int i=0; i<4; ++i) { wxBoxSizer* const v_szr = new wxBoxSizer(wxVERTICAL); @@ -625,6 +649,27 @@ PadMapDiag::PadMapDiag(wxWindow* const parent, PadMapping map[], std::vector<con h_szr->AddSpacer(10); } + for (unsigned int i=0; i<4; ++i) + { + wxBoxSizer* const v_szr = new wxBoxSizer(wxVERTICAL); + v_szr->Add(new wxStaticText(this, wxID_ANY, (wxString(_("Wiimote ")) + (wxChar)(wxT('0')+i))), + 1, wxALIGN_CENTER_HORIZONTAL); + + m_map_cbox[i+4] = new wxChoice(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, player_names); + m_map_cbox[i+4]->Bind(wxEVT_COMMAND_CHOICE_SELECTED, &PadMapDiag::OnAdjust, this); + if (m_wiimapping[i] == -1) + m_map_cbox[i+4]->Select(0); + else + for (unsigned int j = 0; j < m_player_list.size(); j++) + if (m_wiimapping[i] == m_player_list[j]->pid) + m_map_cbox[i+4]->Select(j + 1); + + v_szr->Add(m_map_cbox[i+4], 1); + + h_szr->Add(v_szr, 1, wxTOP | wxEXPAND, 20); + h_szr->AddSpacer(10); + } + wxBoxSizer* const main_szr = new wxBoxSizer(wxVERTICAL); main_szr->Add(h_szr); main_szr->AddSpacer(5); @@ -644,13 +689,17 @@ void PadMapDiag::OnAdjust(wxCommandEvent& event) m_mapping[i] = m_player_list[player_idx - 1]->pid; else m_mapping[i] = -1; + + player_idx = m_map_cbox[i+4]->GetSelection(); + if (player_idx > 0) + m_wiimapping[i] = m_player_list[player_idx - 1]->pid; + else + m_wiimapping[i] = -1; } } void NetPlay::StopGame() { - if (netplay_server != NULL) - netplay_server->StopGame(); - - // TODO: allow non-hosting clients to close the window + if (netplay_client != NULL) + netplay_client->Stop(); } |
