2009-07-28 21:32:10 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								// Copyright (C) 2003 Dolphin Project.
 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// This program is free software: you can redistribute it and/or modify
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// it under the terms of the GNU General Public License as published by
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// the Free Software Foundation, version 2.0.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// This program is distributed in the hope that it will be useful,
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// but WITHOUT ANY WARRANTY; without even the implied warranty of
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// GNU General Public License 2.0 for more details.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// A copy of the GPL 2.0 should have been included with the program.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// If not, see http://www.gnu.org/licenses/
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// Official SVN repository and contact information can be found at
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// http://code.google.com/p/dolphin-emu/
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-06-06 03:52:11 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# include  <FileUtil.h> 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# include  <IniFile.h> 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# include  "NetPlay.h" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# include  "NetWindow.h" 
 
							 
						 
					
						
							
								
									
										
										
										
											2011-02-08 15:36:15 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# include  "Frame.h" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# include  <sstream> 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-02-27 02:27:43 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# define _connect_macro_(b, f, c, s)	\ 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									( b ) - > Connect ( wxID_ANY ,  ( c ) ,  wxCommandEventHandler ( f ) ,  ( wxObject * ) 0 ,  ( wxEvtHandler * ) s ) 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# define NETPLAY_TITLEBAR	"Dolphin NetPlay" 
 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-02-08 15:36:15 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								DEFINE_EVENT_TYPE ( wxEVT_THREAD ) 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								BEGIN_EVENT_TABLE ( NetPlayDiag ,  wxFrame ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									EVT_COMMAND ( wxID_ANY ,  wxEVT_THREAD ,  NetPlayDiag : : OnThread ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								END_EVENT_TABLE ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-05-05 04:31:21 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								static  NetPlay *  netplay_ptr  =  NULL ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-02-08 15:36:15 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								extern  CFrame *  main_frame ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-02-27 02:27:43 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								NetPlayDiag  * NetPlayDiag : : npd  =  NULL ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-05-02 23:01:50 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								NetPlaySetupDiag : : NetPlaySetupDiag ( wxWindow *  const  parent ,  const  CGameListCtrl *  const  game_list ) 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									:  wxFrame ( parent ,  wxID_ANY ,  wxT ( NETPLAY_TITLEBAR ) ,  wxDefaultPosition ,  wxDefaultSize ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									,  m_game_list ( game_list ) 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								{ 
							 
						 
					
						
							
								
									
										
										
										
											2010-06-06 03:52:11 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									IniFile  inifile ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-02-28 20:40:15 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									inifile . Load ( File : : GetUserPath ( D_CONFIG_IDX )  +  " Dolphin.ini " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-06-06 03:52:11 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									IniFile : : Section &  netplay_section  =  * inifile . GetOrCreateSection ( " NetPlay " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									wxPanel *  const  panel  =  new  wxPanel ( this ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									// top row
 
							 
						 
					
						
							
								
									
										
										
										
											2011-02-27 02:27:43 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									wxStaticText *  const  nick_lbl  =  new  wxStaticText ( panel ,  wxID_ANY ,  _ ( " Nickname : " ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											wxDefaultPosition ,  wxDefaultSize ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-06-06 03:52:11 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									std : : string  nickname ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									netplay_section . Get ( " Nickname " ,  & nickname ,  " Player " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-06-11 08:39:03 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									m_nickname_text  =  new  wxTextCtrl ( panel ,  wxID_ANY ,  wxString : : From8BitData ( nickname . c_str ( ) ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									wxBoxSizer *  const  nick_szr  =  new  wxBoxSizer ( wxHORIZONTAL ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									nick_szr - > Add ( nick_lbl ,  0 ,  wxCENTER ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									nick_szr - > Add ( m_nickname_text ,  0 ,  wxALL ,  5 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									// tabs
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									wxNotebook *  const  notebook  =  new  wxNotebook ( panel ,  wxID_ANY ,  wxDefaultPosition ,  wxDefaultSize ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									wxPanel *  const  connect_tab  =  new  wxPanel ( notebook ,  wxID_ANY ,  wxDefaultPosition ,  wxDefaultSize ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-05 04:35:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									notebook - > AddPage ( connect_tab ,  _ ( " Connect " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									wxPanel *  const  host_tab  =  new  wxPanel ( notebook ,  wxID_ANY ,  wxDefaultPosition ,  wxDefaultSize ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-05 04:35:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									notebook - > AddPage ( host_tab ,  _ ( " Host " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									// connect tab
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									{ 
							 
						 
					
						
							
								
									
										
										
										
											2011-02-27 02:27:43 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									wxStaticText *  const  ip_lbl  =  new  wxStaticText ( connect_tab ,  wxID_ANY ,  _ ( " Address : " ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											wxDefaultPosition ,  wxDefaultSize ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-06-06 03:52:11 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									std : : string  address ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									netplay_section . Get ( " Address " ,  & address ,  " localhost " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									m_connect_ip_text  =  new  wxTextCtrl ( connect_tab ,  wxID_ANY ,  wxString : : FromAscii ( address . c_str ( ) ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-02-27 02:27:43 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									wxStaticText *  const  port_lbl  =  new  wxStaticText ( connect_tab ,  wxID_ANY ,  _ ( " Port : " ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											wxDefaultPosition ,  wxDefaultSize ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-06-06 03:52:11 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									// string? w/e
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									std : : string  port ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									netplay_section . Get ( " ConnectPort " ,  & port ,  " 2626 " ) ; 	
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									m_connect_port_text  =  new  wxTextCtrl ( connect_tab ,  wxID_ANY ,  wxString : : FromAscii ( port . c_str ( ) ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-01-05 04:35:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									wxButton *  const  connect_btn  =  new  wxButton ( connect_tab ,  wxID_ANY ,  _ ( " Connect " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									_connect_macro_ ( connect_btn ,  NetPlaySetupDiag : : OnJoin ,  wxEVT_COMMAND_BUTTON_CLICKED ,  this ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-02-27 02:27:43 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									wxStaticText *  const  alert_lbl  =  new  wxStaticText ( connect_tab ,  wxID_ANY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											_ ( " ALERT: \n \n NetPlay will currently only work properly when using the following settings: \n  - Dual Core [OFF] \n  - Audio Throttle [OFF] \n  - DSP-HLE with  \" Null Audio \"  or DSP-LLE \n  - Manually set the exact number of controllers that will be used to [Standard Controller] \n \n All players should try to use the same Dolphin version and settings. \n Disable all memory cards or send them to all players before starting. \n Wiimote support has not been implemented. \n \n You must forward TCP port to host!! " ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											wxDefaultPosition ,  wxDefaultSize ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									wxBoxSizer *  const  top_szr  =  new  wxBoxSizer ( wxHORIZONTAL ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									top_szr - > Add ( ip_lbl ,  0 ,  wxCENTER  |  wxRIGHT ,  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									top_szr - > Add ( m_connect_ip_text ,  3 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									top_szr - > Add ( port_lbl ,  0 ,  wxCENTER  |  wxRIGHT  |  wxLEFT ,  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									top_szr - > Add ( m_connect_port_text ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									wxBoxSizer *  const  con_szr  =  new  wxBoxSizer ( wxVERTICAL ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									con_szr - > Add ( top_szr ,  0 ,  wxALL  |  wxEXPAND ,  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									con_szr - > AddStretchSpacer ( 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									con_szr - > Add ( alert_lbl ,  0 ,  wxLEFT  |  wxRIGHT  |  wxEXPAND ,  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									con_szr - > AddStretchSpacer ( 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									con_szr - > Add ( connect_btn ,  0 ,  wxALL  |  wxALIGN_RIGHT ,  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									connect_tab - > SetSizerAndFit ( con_szr ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									// host tab
 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									{ 
							 
						 
					
						
							
								
									
										
										
										
											2011-02-27 02:27:43 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									wxStaticText *  const  port_lbl  =  new  wxStaticText ( host_tab ,  wxID_ANY ,  _ ( " Port : " ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											wxDefaultPosition ,  wxDefaultSize ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-06-06 03:52:11 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									// string? w/e
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									std : : string  port ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									netplay_section . Get ( " HostPort " ,  & port ,  " 2626 " ) ; 	
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									m_host_port_text  =  new  wxTextCtrl ( host_tab ,  wxID_ANY ,  wxString : : FromAscii ( port . c_str ( ) ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-01-05 17:56:08 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									wxButton *  const  host_btn  =  new  wxButton ( host_tab ,  wxID_ANY ,  _ ( " Host " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									_connect_macro_ ( host_btn ,  NetPlaySetupDiag : : OnHost ,  wxEVT_COMMAND_BUTTON_CLICKED ,  this ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									m_game_lbox  =  new  wxListBox ( host_tab ,  wxID_ANY ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-02 04:24:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									_connect_macro_ ( m_game_lbox ,  NetPlaySetupDiag : : OnHost ,  wxEVT_COMMAND_LISTBOX_DOUBLECLICKED ,  this ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									std : : istringstream  ss ( game_list - > GetGameNames ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									std : : string  game ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									while  ( std : : getline ( ss , game ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										m_game_lbox - > Append ( wxString ( game . c_str ( ) ,  * wxConvCurrent ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									wxBoxSizer *  const  top_szr  =  new  wxBoxSizer ( wxHORIZONTAL ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									top_szr - > Add ( port_lbl ,  0 ,  wxCENTER  |  wxRIGHT ,  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									top_szr - > Add ( m_host_port_text ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									wxBoxSizer *  const  host_szr  =  new  wxBoxSizer ( wxVERTICAL ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									host_szr - > Add ( top_szr ,  0 ,  wxALL  |  wxEXPAND ,  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									host_szr - > Add ( m_game_lbox ,  1 ,  wxLEFT  |  wxRIGHT  |  wxEXPAND ,  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									host_szr - > Add ( host_btn ,  0 ,  wxALL  |  wxALIGN_RIGHT ,  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									host_tab - > SetSizerAndFit ( host_szr ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									// bottom row
 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-05 04:35:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									wxButton *  const  quit_btn  =  new  wxButton ( panel ,  wxID_ANY ,  _ ( " Quit " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									_connect_macro_ ( quit_btn ,  NetPlaySetupDiag : : OnQuit ,  wxEVT_COMMAND_BUTTON_CLICKED ,  this ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									// main sizer
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									wxBoxSizer *  const  main_szr  =  new  wxBoxSizer ( wxVERTICAL ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									main_szr - > Add ( nick_szr ,  0 ,  wxALL  |  wxALIGN_RIGHT ,  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									main_szr - > Add ( notebook ,  1 ,  wxLEFT  |  wxRIGHT  |  wxEXPAND ,  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									main_szr - > Add ( quit_btn ,  0 ,  wxALL  |  wxALIGN_RIGHT ,  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									panel - > SetSizerAndFit ( main_szr ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									//wxBoxSizer* const diag_szr = new wxBoxSizer(wxVERTICAL);
 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-02 23:01:50 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									//diag_szr->Add(panel, 1, wxEXPAND);
 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									//SetSizerAndFit(diag_szr);
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									main_szr - > SetSizeHints ( this ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									Center ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									Show ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-06-06 03:52:11 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								NetPlaySetupDiag : : ~ NetPlaySetupDiag ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									IniFile  inifile ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-02-28 20:40:15 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									const  std : : string  dolphin_ini  =  File : : GetUserPath ( D_CONFIG_IDX )  +  " Dolphin.ini " ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-06-06 03:52:11 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									inifile . Load ( dolphin_ini ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									IniFile : : Section &  netplay_section  =  * inifile . GetOrCreateSection ( " NetPlay " ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									netplay_section . Set ( " Nickname " ,  m_nickname_text - > GetValue ( ) . mb_str ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									netplay_section . Set ( " Address " ,  m_connect_ip_text - > GetValue ( ) . mb_str ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									netplay_section . Set ( " ConnectPort " ,  m_connect_port_text - > GetValue ( ) . mb_str ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									netplay_section . Set ( " HostPort " ,  m_host_port_text - > GetValue ( ) . mb_str ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									inifile . Save ( dolphin_ini ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-02-27 02:27:43 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									main_frame - > g_NetPlaySetupDiag  =  NULL ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-06-06 03:52:11 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-11-16 01:55:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								void  NetPlaySetupDiag : : OnHost ( wxCommandEvent & ) 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								{ 
							 
						 
					
						
							
								
									
										
										
										
											2011-02-27 02:27:43 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									NetPlayDiag  * & npd  =  NetPlayDiag : : GetInstance ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									if  ( npd ) 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									{ 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-13 02:05:58 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										PanicAlertT ( " A NetPlay window is already open!! " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									if  ( - 1  = =  m_game_lbox - > GetSelection ( ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									{ 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-13 02:05:58 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										PanicAlertT ( " You must choose a game!! " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									std : : string  game ( m_game_lbox - > GetStringSelection ( ) . mb_str ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-02-27 02:27:43 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									npd  =  new  NetPlayDiag ( m_parent ,  m_game_list ,  game ,  true ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									unsigned  long  port  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									m_host_port_text - > GetValue ( ) . ToULong ( & port ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-02-27 02:27:43 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									netplay_ptr  =  new  NetPlayServer ( u16 ( port ) 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										,  std : : string ( m_nickname_text - > GetValue ( ) . mb_str ( ) ) ,  npd ,  game ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-02-27 02:27:43 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									if  ( netplay_ptr - > is_connected ) 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									{ 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										npd - > Show ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										Destroy ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									{ 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-13 02:05:58 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										PanicAlertT ( " Failed to Listen!! " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										npd - > Destroy ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-11-16 01:55:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								void  NetPlaySetupDiag : : OnJoin ( wxCommandEvent & ) 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								{ 
							 
						 
					
						
							
								
									
										
										
										
											2011-02-27 02:27:43 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									NetPlayDiag  * & npd  =  NetPlayDiag : : GetInstance ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									if  ( npd ) 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									{ 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-13 02:05:58 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										PanicAlertT ( " A NetPlay window is already open!! " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										return ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-02-27 02:27:43 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									npd  =  new  NetPlayDiag ( m_parent ,  m_game_list ,  " " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									unsigned  long  port  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									m_connect_port_text - > GetValue ( ) . ToULong ( & port ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-02-27 02:27:43 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									netplay_ptr  =  new  NetPlayClient ( std : : string ( m_connect_ip_text - > GetValue ( ) . mb_str ( ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-02-08 15:36:15 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										,  ( u16 ) port ,  npd ,  std : : string ( m_nickname_text - > GetValue ( ) . mb_str ( ) ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-02-27 02:27:43 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									if  ( netplay_ptr - > is_connected ) 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									{ 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										npd - > Show ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										Destroy ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										npd - > Destroy ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-11-16 01:55:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								void  NetPlaySetupDiag : : OnQuit ( wxCommandEvent & ) 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									Destroy ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-02-27 02:27:43 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								NetPlayDiag : : NetPlayDiag ( wxWindow *  const  parent ,  const  CGameListCtrl *  const  game_list , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										const  std : : string &  game ,  const  bool  is_hosting ) 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									:  wxFrame ( parent ,  wxID_ANY ,  wxT ( NETPLAY_TITLEBAR ) ,  wxDefaultPosition ,  wxDefaultSize ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									,  m_selected_game ( game ) 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 21:27:48 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									,  m_game_list ( game_list ) 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								{ 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									wxPanel *  const  panel  =  new  wxPanel ( this ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									// top crap
 
							 
						 
					
						
							
								
									
										
										
										
											2011-02-27 02:27:43 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									m_game_btn  =  new  wxButton ( panel ,  wxID_ANY , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											wxString ( m_selected_game . c_str ( ) ,  * wxConvCurrent ) . Prepend ( _ ( "  Game :  " ) ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											wxDefaultPosition ,  wxDefaultSize ,  wxBU_LEFT ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-02 23:01:50 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									if  ( is_hosting ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										_connect_macro_ ( m_game_btn ,  NetPlayDiag : : OnChangeGame ,  wxEVT_COMMAND_BUTTON_CLICKED ,  this ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										m_game_btn - > Disable ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									// middle crap
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									// chat
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									m_chat_text  =  new  wxTextCtrl ( panel ,  wxID_ANY ,  wxEmptyString 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										,  wxDefaultPosition ,  wxDefaultSize ,  wxTE_READONLY  |  wxTE_MULTILINE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									m_chat_msg_text  =  new  wxTextCtrl ( panel ,  wxID_ANY ,  wxEmptyString 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										,  wxDefaultPosition ,  wxDefaultSize ,  wxTE_PROCESS_ENTER ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									_connect_macro_ ( m_chat_msg_text ,  NetPlayDiag : : OnChat ,  wxEVT_COMMAND_TEXT_ENTER ,  this ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-01-05 04:35:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									wxButton *  const  chat_msg_btn  =  new  wxButton ( panel ,  wxID_ANY ,  _ ( " Send " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									_connect_macro_ ( chat_msg_btn ,  NetPlayDiag : : OnChat ,  wxEVT_COMMAND_BUTTON_CLICKED ,  this ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									wxBoxSizer *  const  chat_msg_szr  =  new  wxBoxSizer ( wxHORIZONTAL ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									chat_msg_szr - > Add ( m_chat_msg_text ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									chat_msg_szr - > Add ( chat_msg_btn ,  0 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-01-05 17:56:08 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									wxStaticBoxSizer *  const  chat_szr  =  new  wxStaticBoxSizer ( wxVERTICAL ,  panel ,  _ ( " Chat " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									chat_szr - > Add ( m_chat_text ,  1 ,  wxEXPAND ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									chat_szr - > Add ( chat_msg_szr ,  0 ,  wxEXPAND  |  wxTOP ,  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									m_player_lbox  =  new  wxListBox ( panel ,  wxID_ANY ,  wxDefaultPosition ,  wxSize ( 192 , - 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-01-05 04:35:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									wxStaticBoxSizer *  const  player_szr  =  new  wxStaticBoxSizer ( wxVERTICAL ,  panel ,  _ ( " Players " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									player_szr - > Add ( m_player_lbox ,  1 ,  wxEXPAND ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									// player list
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									if  ( is_hosting ) 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									{ 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-05 04:35:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										wxButton *  const  player_config_btn  =  new  wxButton ( panel ,  wxID_ANY ,  _ ( " Configure Pads " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-06-06 03:52:11 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										_connect_macro_ ( player_config_btn ,  NetPlayDiag : : OnConfigPads ,  wxEVT_COMMAND_BUTTON_CLICKED ,  this ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										player_szr - > Add ( player_config_btn ,  0 ,  wxEXPAND  |  wxTOP ,  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									wxBoxSizer *  const  mid_szr  =  new  wxBoxSizer ( wxHORIZONTAL ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									mid_szr - > Add ( chat_szr ,  1 ,  wxEXPAND  |  wxRIGHT ,  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									mid_szr - > Add ( player_szr ,  0 ,  wxEXPAND ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									// bottom crap
 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-05 04:35:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									wxButton *  const  quit_btn  =  new  wxButton ( panel ,  wxID_ANY ,  _ ( " Quit " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									_connect_macro_ ( quit_btn ,  NetPlayDiag : : OnQuit ,  wxEVT_COMMAND_BUTTON_CLICKED ,  this ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									wxBoxSizer *  const  bottom_szr  =  new  wxBoxSizer ( wxHORIZONTAL ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									if  ( is_hosting ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									{ 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-05 04:35:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										wxButton *  const  start_btn  =  new  wxButton ( panel ,  wxID_ANY ,  _ ( " Start " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										_connect_macro_ ( start_btn ,  NetPlayDiag : : OnStart ,  wxEVT_COMMAND_BUTTON_CLICKED ,  this ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										bottom_szr - > Add ( start_btn ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-05 04:35:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										wxButton *  const  stop_btn  =  new  wxButton ( panel ,  wxID_ANY ,  _ ( " Stop " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-02 23:01:50 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										_connect_macro_ ( stop_btn ,  NetPlayDiag : : OnStop ,  wxEVT_COMMAND_BUTTON_CLICKED ,  this ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										bottom_szr - > Add ( stop_btn ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-05 04:35:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										bottom_szr - > Add ( new  wxStaticText ( panel ,  wxID_ANY ,  _ ( " Buffer: " ) ) ,  0 ,  wxLEFT  |  wxCENTER ,  5  ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-05 04:31:21 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										wxSpinCtrl *  const  padbuf_spin  =  new  wxSpinCtrl ( panel ,  wxID_ANY ,  wxT ( " 20 " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											,  wxDefaultPosition ,  wxSize ( 64 ,  - 1 ) ,  wxSP_ARROW_KEYS ,  0 ,  200 ,  20 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										_connect_macro_ ( padbuf_spin ,  NetPlayDiag : : OnAdjustBuffer ,  wxEVT_COMMAND_SPINCTRL_UPDATED ,  this ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										wxButton *  const  padbuf_btn  =  new  wxButton ( panel ,  wxID_ANY ,  wxT ( " ? " ) ,  wxDefaultPosition ,  wxSize ( 22 ,  - 1 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										_connect_macro_ ( padbuf_btn ,  NetPlayDiag : : OnPadBuffHelp ,  wxEVT_COMMAND_BUTTON_CLICKED ,  this ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										bottom_szr - > Add ( padbuf_spin ,  0 ,  wxCENTER ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										bottom_szr - > Add ( padbuf_btn ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									bottom_szr - > AddStretchSpacer ( 1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									bottom_szr - > Add ( quit_btn ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									// main sizer
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									wxBoxSizer *  const  main_szr  =  new  wxBoxSizer ( wxVERTICAL ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									main_szr - > Add ( m_game_btn ,  0 ,  wxEXPAND  |  wxALL ,  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									main_szr - > Add ( mid_szr ,  1 ,  wxEXPAND  |  wxLEFT  |  wxRIGHT ,  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									main_szr - > Add ( bottom_szr ,  0 ,  wxEXPAND  |  wxALL ,  5 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									panel - > SetSizerAndFit ( main_szr ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									main_szr - > SetSizeHints ( this ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SetSize ( 512 ,  512 - 128 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									Center ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								NetPlayDiag : : ~ NetPlayDiag ( ) 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								{ 
							 
						 
					
						
							
								
									
										
										
										
											2011-02-27 02:27:43 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									if  ( netplay_ptr ) 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									{ 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										delete  netplay_ptr ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-02-27 02:27:43 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										netplay_ptr  =  NULL ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2011-02-27 02:27:43 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									npd  =  NULL ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-11-16 01:55:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								void  NetPlayDiag : : OnChat ( wxCommandEvent & ) 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									wxString  s  =  m_chat_msg_text - > GetValue ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									if  ( s . Length ( ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									{ 
							 
						 
					
						
							
								
									
										
										
										
											2011-02-27 02:27:43 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										netplay_ptr - > SendChatMessage ( std : : string ( s . mb_str ( ) ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										m_chat_text - > AppendText ( s . Prepend ( wxT ( "  >>  " ) ) . Append ( wxT ( ' \n ' ) ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										m_chat_msg_text - > Clear ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-11-16 01:55:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								void  NetPlayDiag : : OnStart ( wxCommandEvent & ) 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								{ 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									// find path for selected game
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									std : : string  ntmp ,  ptmp ,  path ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									std : : istringstream  nss ( m_game_list - > GetGameNames ( ) ) ,  pss ( m_game_list - > GetGamePaths ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									while ( std : : getline ( nss , ntmp ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										std : : getline ( pss , ptmp ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										if  ( m_selected_game  = =  ntmp ) 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										{ 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											path  =  ptmp ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
											break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									if  ( path . length ( ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-02-27 02:27:43 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										netplay_ptr - > StartGame ( path ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									else 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-13 02:05:58 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										PanicAlertT ( " Game not found!! " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-02 21:00:45 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-11-16 01:55:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								void  NetPlayDiag : : OnStop ( wxCommandEvent & ) 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-02 23:01:50 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								{ 
							 
						 
					
						
							
								
									
										
										
										
											2011-02-27 02:27:43 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									netplay_ptr - > StopGame ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-02 23:01:50 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-02-08 15:36:15 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								void  NetPlayDiag : : BootGame ( const  std : : string &  filename ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									main_frame - > BootGame ( filename ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								void  NetPlayDiag : : StopGame ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									main_frame - > DoStop ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// NetPlayUI methods called from ---NETPLAY--- thread
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								void  NetPlayDiag : : Update ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									wxCommandEvent  evt ( wxEVT_THREAD ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									GetEventHandler ( ) - > AddPendingEvent ( evt ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								void  NetPlayDiag : : AppendChat ( const  std : : string &  msg ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									chat_msgs . Push ( msg ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									// silly
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									Update ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								void  NetPlayDiag : : OnMsgChangeGame ( const  std : : string &  filename ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									wxCommandEvent  evt ( wxEVT_THREAD ,  NP_GUI_EVT_CHANGE_GAME ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									// TODO: using a wxString in AddPendingEvent from another thread is unsafe i guess?
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									evt . SetString ( wxString ( filename . c_str ( ) ,  * wxConvCurrent ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									GetEventHandler ( ) - > AddPendingEvent ( evt ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								void  NetPlayDiag : : OnMsgStartGame ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									wxCommandEvent  evt ( wxEVT_THREAD ,  NP_GUI_EVT_START_GAME ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									GetEventHandler ( ) - > AddPendingEvent ( evt ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								void  NetPlayDiag : : OnMsgStopGame ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									wxCommandEvent  evt ( wxEVT_THREAD ,  NP_GUI_EVT_STOP_GAME ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									GetEventHandler ( ) - > AddPendingEvent ( evt ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-11-16 01:55:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								void  NetPlayDiag : : OnPadBuffHelp ( wxCommandEvent & ) 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-05 04:31:21 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								{ 
							 
						 
					
						
							
								
									
										
										
										
											2011-02-27 02:27:43 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									const  u64  time  =  ( ( NetPlayServer * ) netplay_ptr ) - > CalculateMinimumBufferTime ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-05 04:31:21 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									std : : ostringstream  ss ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									ss  < <  " < Calculated from pings: required buffer:  " 
							 
						 
					
						
							
								
									
										
										
										
											2010-06-06 03:52:11 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										< <  time  *  ( 60.0f / 1000 )  < <  " (60fps) /  " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										< <  time  *  ( 50.0f / 1000 )  < <  " (50fps) > \n " ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-05 04:31:21 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									m_chat_text - > AppendText ( wxString ( ss . str ( ) . c_str ( ) ,  * wxConvCurrent ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								void  NetPlayDiag : : OnAdjustBuffer ( wxCommandEvent &  event ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									const  int  val  =  ( ( wxSpinCtrl * ) event . GetEventObject ( ) ) - > GetValue ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-02-27 02:27:43 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									( ( NetPlayServer * ) netplay_ptr ) - > AdjustPadBufferSize ( val ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-05 04:31:21 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									std : : ostringstream  ss ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									ss  < <  " < Pad Buffer:  "  < <  val  < <  "  > " ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-02-27 02:27:43 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									netplay_ptr - > SendChatMessage ( ss . str ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-05 04:31:21 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									m_chat_text - > AppendText ( wxString ( ss . str ( ) . c_str ( ) ,  * wxConvCurrent ) . Append ( wxT ( ' \n ' ) ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-11-16 01:55:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								void  NetPlayDiag : : OnQuit ( wxCommandEvent & ) 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									Destroy ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								// update gui
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								void  NetPlayDiag : : OnThread ( wxCommandEvent &  event ) 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								{ 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									// player list
 
							 
						 
					
						
							
								
									
										
										
										
											2010-06-06 03:52:11 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									m_playerids . clear ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									std : : string  tmps ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-02-27 02:27:43 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									netplay_ptr - > GetPlayerList ( tmps ,  m_playerids ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-06-06 03:52:11 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									const  int  selection  =  m_player_lbox - > GetSelection ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									m_player_lbox - > Clear ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									std : : istringstream  ss ( tmps ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									while  ( std : : getline ( ss ,  tmps ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										m_player_lbox - > Append ( wxString ( tmps . c_str ( ) ,  * wxConvCurrent ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-06-06 03:52:11 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									m_player_lbox - > SetSelection ( selection ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-05-02 04:24:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									switch  ( event . GetId ( ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									{ 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-02 23:01:50 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									case  NP_GUI_EVT_CHANGE_GAME  : 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-02 04:24:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										// update selected game :/
 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-02 23:01:50 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										{ 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										m_selected_game . assign ( event . GetString ( ) . mb_str ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-05 04:35:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										m_game_btn - > SetLabel ( event . GetString ( ) . Prepend ( _ ( "  Game :  " ) ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-02 23:01:50 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-02 04:24:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										break ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-02 23:01:50 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									case  NP_GUI_EVT_START_GAME  : 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-02 04:24:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										// client start game :/
 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-02 23:01:50 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										{ 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-02 04:24:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										wxCommandEvent  evt ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										OnStart ( evt ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-02 23:01:50 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										break ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									case  NP_GUI_EVT_STOP_GAME  : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										// client stop game
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										wxCommandEvent  evt ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										OnStop ( evt ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										} 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-02 04:24:49 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										break ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									// chat messages
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									while  ( chat_msgs . Size ( ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									{ 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-01 19:10:35 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										std : : string  s ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										chat_msgs . Pop ( s ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										//PanicAlert("message: %s", s.c_str());
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										m_chat_text - > AppendText ( wxString ( s . c_str ( ) ,  * wxConvCurrent ) . Append ( wxT ( ' \n ' ) ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2009-07-06 02:10:26 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-02 23:01:50 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-11-16 01:55:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								void  NetPlayDiag : : OnChangeGame ( wxCommandEvent & ) 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-02 23:01:50 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									wxString  game_name ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									ChangeGameDiag *  const  cgd  =  new  ChangeGameDiag ( this ,  m_game_list ,  game_name ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									cgd - > ShowModal ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									if  ( game_name . length ( ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										m_selected_game  =  std : : string ( game_name . mb_str ( ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-02-27 02:27:43 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										netplay_ptr - > ChangeGame ( m_selected_game ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-05 17:56:08 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										m_game_btn - > SetLabel ( game_name . Prepend ( _ ( "  Game :  " ) ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-02 23:01:50 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-11-16 01:55:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								void  NetPlayDiag : : OnConfigPads ( wxCommandEvent & ) 
							 
						 
					
						
							
								
									
										
										
										
											2010-06-06 03:52:11 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									int  mapping [ 4 ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									// get selected player id
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									int  pid  =  m_player_lbox - > GetSelection ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									if  ( pid  <  0 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									pid  =  m_playerids . at ( pid ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-02-27 02:27:43 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									if  ( false  = =  ( ( NetPlayServer * ) netplay_ptr ) - > GetPadMapping ( pid ,  mapping ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2010-06-06 03:52:11 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										return ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									PadMapDiag *  const  pmd  =  new  PadMapDiag ( this ,  mapping ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									pmd - > ShowModal ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									pmd - > Destroy ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-02-27 02:27:43 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									if  ( false  = =  ( ( NetPlayServer * ) netplay_ptr ) - > SetPadMapping ( pid ,  mapping ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-13 02:05:58 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										PanicAlertT ( " Could not set pads. The player left or the game is currently running! \n " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
												" (setting pads while the game is running is not yet supported) " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-06-06 03:52:11 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-05-02 23:01:50 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								ChangeGameDiag : : ChangeGameDiag ( wxWindow *  const  parent ,  const  CGameListCtrl *  const  game_list ,  wxString &  game_name ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-05 04:35:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									:  wxDialog ( parent ,  wxID_ANY ,  _ ( " Change Game " ) ,  wxDefaultPosition ,  wxDefaultSize ) 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-02 23:01:50 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									,  m_game_name ( game_name ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									wxPanel *  const  panel  =  new  wxPanel ( this ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									m_game_lbox  =  new  wxListBox ( panel ,  wxID_ANY ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									_connect_macro_ ( m_game_lbox ,  ChangeGameDiag : : OnPick ,  wxEVT_COMMAND_LISTBOX_DOUBLECLICKED ,  this ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									// fill list with games
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									std : : istringstream  ss ( game_list - > GetGameNames ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									std : : string  game ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									while  ( std : : getline ( ss , game ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										m_game_lbox - > Append ( wxString ( game . c_str ( ) ,  * wxConvCurrent ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2011-01-05 04:35:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									wxButton *  const  ok_btn  =  new  wxButton ( panel ,  wxID_ANY ,  _ ( " Change " ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-02 23:01:50 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									_connect_macro_ ( ok_btn ,  ChangeGameDiag : : OnPick ,  wxEVT_COMMAND_BUTTON_CLICKED ,  this ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									wxBoxSizer *  const  szr  =  new  wxBoxSizer ( wxVERTICAL ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									szr - > Add ( m_game_lbox ,  1 ,  wxLEFT  |  wxRIGHT  |  wxTOP  |  wxEXPAND ,  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									szr - > Add ( ok_btn ,  0 ,  wxALL  |  wxALIGN_RIGHT ,  5 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									panel - > SetSizerAndFit ( szr ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									wxBoxSizer *  const  dlg_szr  =  new  wxBoxSizer ( wxVERTICAL ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									dlg_szr - > Add ( panel ,  1 ,  wxEXPAND ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SetSizerAndFit ( dlg_szr ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2010-11-16 01:55:29 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								void  ChangeGameDiag : : OnPick ( wxCommandEvent & ) 
							 
						 
					
						
							
								
									
										
										
										
											2010-05-02 23:01:50 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									// return the selected game name
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									m_game_name  =  m_game_lbox - > GetStringSelection ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									Destroy ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
									
										
										
										
											2010-06-06 03:52:11 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								PadMapDiag : : PadMapDiag ( wxWindow *  const  parent ,  int  map [ ] ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-05 04:35:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									:  wxDialog ( parent ,  wxID_ANY ,  _ ( " Configure Pads " ) ,  wxDefaultPosition ,  wxDefaultSize ) 
							 
						 
					
						
							
								
									
										
										
										
											2010-06-06 03:52:11 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									,  m_mapping ( map ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									wxPanel *  const  panel  =  new  wxPanel ( this ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									wxBoxSizer *  const  h_szr  =  new  wxBoxSizer ( wxHORIZONTAL ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									h_szr - > AddSpacer ( 20 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									// labels
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									wxBoxSizer *  const  label_szr  =  new  wxBoxSizer ( wxVERTICAL ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-05 04:35:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									label_szr - > Add ( new  wxStaticText ( panel , wxID_ANY ,  _ ( " Local " ) ) ,  0 ,  wxALIGN_TOP ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-06-06 03:52:11 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									label_szr - > AddStretchSpacer ( 1 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-05 04:35:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									label_szr - > Add ( new  wxStaticText ( panel , wxID_ANY ,  _ ( " In-Game " ) ) ,  0 ,  wxALIGN_BOTTOM ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-06-06 03:52:11 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									h_szr - > Add ( label_szr ,  1 ,  wxTOP  |  wxBOTTOM  |  wxEXPAND ,  20 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									// set up choices
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									wxString  pad_names [ 5 ] ; 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-05 04:35:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									pad_names [ 0 ]  =  _ ( " None " ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-06-06 03:52:11 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									for  ( unsigned  int  i = 1 ;  i < 5 ;  + + i ) 
							 
						 
					
						
							
								
									
										
										
										
											2011-01-05 04:35:46 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
										pad_names [ i ]  =  wxString ( _ ( " Pad  " ) )  +  ( wxChar ) ( wxT ( ' 0 ' ) + i ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2010-06-06 03:52:11 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									for  ( unsigned  int  i = 0 ;  i < 4 ;  + + i ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										wxChoice *  const  pad_cbox  =  m_map_cbox [ i ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											=  new  wxChoice ( panel ,  wxID_ANY ,  wxDefaultPosition ,  wxDefaultSize ,  5 ,  pad_names ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										pad_cbox - > Select ( m_mapping [ i ]  +  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										_connect_macro_ ( pad_cbox ,  PadMapDiag : : OnAdjust ,  wxEVT_COMMAND_CHOICE_SELECTED ,  this ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										wxBoxSizer *  const  v_szr  =  new  wxBoxSizer ( wxVERTICAL ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										v_szr - > Add ( new  wxStaticText ( panel , wxID_ANY ,  pad_names [ i  +  1 ] ) ,  1 ,  wxALIGN_CENTER_HORIZONTAL ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										v_szr - > Add ( pad_cbox ,  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										h_szr - > Add ( v_szr ,  1 ,  wxTOP  |  wxBOTTOM  |  wxEXPAND ,  20 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									h_szr - > AddSpacer ( 20 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									panel - > SetSizerAndFit ( h_szr ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									wxBoxSizer *  const  dlg_szr  =  new  wxBoxSizer ( wxVERTICAL ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									dlg_szr - > Add ( panel ,  1 ,  wxEXPAND ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SetSizerAndFit ( dlg_szr ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								void  PadMapDiag : : OnAdjust ( wxCommandEvent &  event ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									( void ) event ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									for  ( unsigned  int  i = 0 ;  i < 4 ;  + + i ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										m_mapping [ i ]  =  m_map_cbox [ i ] - > GetSelection ( )  -  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								}