summaryrefslogtreecommitdiff
path: root/Source/Core/DolphinWX/Src/NetWindow.cpp
diff options
context:
space:
mode:
authorRyan Houdek <Sonicadvance1@gmail.com>2013-09-23 00:47:57 -0500
committerRyan Houdek <Sonicadvance1@gmail.com>2013-09-23 00:47:57 -0500
commitbab91494d53f15d804834ba5d11730b0e855ebd8 (patch)
treea86cd67ea34aa3497955dceb501794275e4e7f04 /Source/Core/DolphinWX/Src/NetWindow.cpp
parentd84312c799816e8835e6bed562f216bf19725761 (diff)
parent1da6469c62fa1b4fd669a48cb583e161d5cb2713 (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.cpp67
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();
}