Make the connect/disconnect a lot nicer.

This commit is contained in:
Charles Lohr
2004-10-19 06:15:42 +00:00
parent 37240426fd
commit d5c767f6eb
6 changed files with 50 additions and 24 deletions
+6
View File
@@ -11,6 +11,7 @@ NetworkSyncManager::~NetworkSyncManager () { }
void NetworkSyncManager::CloseConnection() { } void NetworkSyncManager::CloseConnection() { }
void NetworkSyncManager::PostStartUp(const CString& ServerIP ) { } void NetworkSyncManager::PostStartUp(const CString& ServerIP ) { }
bool NetworkSyncManager::Connect(const CString& addy, unsigned short port) { return false; } bool NetworkSyncManager::Connect(const CString& addy, unsigned short port) { return false; }
CString NetworkSyncManager::GetServerName() { }
void NetworkSyncManager::ReportNSSOnOff(int i) { } void NetworkSyncManager::ReportNSSOnOff(int i) { }
void NetworkSyncManager::ReportTiming(float offset, int PlayerNumber) { } void NetworkSyncManager::ReportTiming(float offset, int PlayerNumber) { }
void NetworkSyncManager::ReportScore(int playerID, int step, int score, int combo) { } void NetworkSyncManager::ReportScore(int playerID, int step, int score, int combo) { }
@@ -256,6 +257,11 @@ void NetworkSyncManager::ReportNSSOnOff(int i)
NetPlayerClient->SendPack((char*)m_packet.Data, m_packet.Position); NetPlayerClient->SendPack((char*)m_packet.Data, m_packet.Position);
} }
CString NetworkSyncManager::GetServerName()
{
return m_ServerName;
}
void NetworkSyncManager::ReportTiming(float offset, int PlayerNumber) void NetworkSyncManager::ReportTiming(float offset, int PlayerNumber)
{ {
m_lastOffset[PlayerNumber] = offset; m_lastOffset[PlayerNumber] = offset;
+1
View File
@@ -91,6 +91,7 @@ public:
void ReportStyle(); //Report to server the style, players, and names void ReportStyle(); //Report to server the style, players, and names
void ReportNSSOnOff(int i); //Report song selection screen on/off void ReportNSSOnOff(int i); //Report song selection screen on/off
void StartRequest(short position); //Request a start. Block until granted. void StartRequest(short position); //Request a start. Block until granted.
CString GetServerName();
//SMOnline stuff //SMOnline stuff
void SendSMOnline( PacketFunctions &PackData ); void SendSMOnline( PacketFunctions &PackData );
+9 -1
View File
@@ -318,7 +318,6 @@ void PrefsManager::Init()
m_sMemoryCardProfileSubdir = PRODUCT_NAME; m_sMemoryCardProfileSubdir = PRODUCT_NAME;
m_iProductID = 1; m_iProductID = 1;
FOREACH_CONST( IPreference*, *g_pvpSubscribers, p ) (*p)->LoadDefault(); FOREACH_CONST( IPreference*, *g_pvpSubscribers, p ) (*p)->LoadDefault();
} }
@@ -584,6 +583,10 @@ void PrefsManager::ReadPrefsFromFile( CString sIni )
ini.GetValue( "Debug", "LogCheckpoints", m_bLogCheckpoints ); ini.GetValue( "Debug", "LogCheckpoints", m_bLogCheckpoints );
ini.GetValue( "Debug", "ShowLoadingWindow", m_bShowLoadingWindow ); ini.GetValue( "Debug", "ShowLoadingWindow", m_bShowLoadingWindow );
#if defined (WITHOUT_NETWORKING)
#else
ini.GetValue( "Options", "LastConnectedServer", m_sLastServer );
#endif
FOREACH( IPreference*, *g_pvpSubscribers, p ) (*p)->ReadFrom( ini ); FOREACH( IPreference*, *g_pvpSubscribers, p ) (*p)->ReadFrom( ini );
} }
@@ -830,6 +833,11 @@ void PrefsManager::SaveGlobalPrefsToDisk() const
ini.SetValue( "Debug", "LogCheckpoints", m_bLogCheckpoints ); ini.SetValue( "Debug", "LogCheckpoints", m_bLogCheckpoints );
ini.SetValue( "Debug", "ShowLoadingWindow", m_bShowLoadingWindow ); ini.SetValue( "Debug", "ShowLoadingWindow", m_bShowLoadingWindow );
#if defined (WITHOUT_NETWORKING)
#else
ini.SetValue( "Options", "LastConnectedServer", m_sLastServer );
#endif
FOREACH_CONST( IPreference*, *g_pvpSubscribers, p ) (*p)->WriteTo( ini ); FOREACH_CONST( IPreference*, *g_pvpSubscribers, p ) (*p)->WriteTo( ini );
ini.WriteFile( STEPMANIA_INI_PATH ); ini.WriteFile( STEPMANIA_INI_PATH );
+7
View File
@@ -283,6 +283,13 @@ public:
void ResetToFactoryDefaults(); void ResetToFactoryDefaults();
#if defined (WITHOUT_NETWORKING)
#else
/* Network Info */
CString m_sLastServer;
#endif
// //
// For self-registering prefs // For self-registering prefs
// //
+23 -23
View File
@@ -12,18 +12,12 @@
#include "ScreenPrompt.h" #include "ScreenPrompt.h"
#include "NetworkSyncServer.h" #include "NetworkSyncServer.h"
enum { enum {
PO_CONNECTION, PO_CONNECTION,
PO_SERVER, PO_SERVER,
NUM_NETWORK_OPTIONS_LINES NUM_NETWORK_OPTIONS_LINES
}; };
enum {
NO_DISCONNECT=0,
NO_CONNECT
};
enum { enum {
NO_STOP_SERVER=0, NO_STOP_SERVER=0,
NO_START_SERVER NO_START_SERVER
@@ -41,15 +35,18 @@ ScreenNetworkOptions::ScreenNetworkOptions( CString sClassName ) : ScreenOptions
{ {
LOG->Trace( "ScreenNetworkOptions::ScreenNetworkOptions()" ); LOG->Trace( "ScreenNetworkOptions::ScreenNetworkOptions()" );
m_sClassName = sClassName;
g_NetworkOptionsLines[PO_CONNECTION].choices.clear(); g_NetworkOptionsLines[PO_CONNECTION].choices.clear();
g_NetworkOptionsLines[PO_CONNECTION].choices.push_back("Disconnect"); if ( NSMAN->useSMserver )
g_NetworkOptionsLines[PO_CONNECTION].choices.push_back("Connect..."); g_NetworkOptionsLines[PO_CONNECTION].choices.push_back("Disconnect from "+NSMAN->GetServerName());
else
g_NetworkOptionsLines[PO_CONNECTION].choices.push_back("Connect...");
g_NetworkOptionsLines[PO_SERVER].choices.clear(); g_NetworkOptionsLines[PO_SERVER].choices.clear();
g_NetworkOptionsLines[PO_SERVER].choices.push_back("Stop"); g_NetworkOptionsLines[PO_SERVER].choices.push_back("Stop");
g_NetworkOptionsLines[PO_SERVER].choices.push_back("Start..."); g_NetworkOptionsLines[PO_SERVER].choices.push_back("Start...");
Init( Init(
INPUTMODE_SHARE_CURSOR, INPUTMODE_SHARE_CURSOR,
g_NetworkOptionsLines, g_NetworkOptionsLines,
@@ -79,6 +76,11 @@ void ScreenNetworkOptions::HandleScreenMessage( const ScreenMessage SM )
CString sNewName = ScreenTextEntry::s_sLastAnswer; CString sNewName = ScreenTextEntry::s_sLastAnswer;
NSMAN->PostStartUp(sNewName); NSMAN->PostStartUp(sNewName);
NSMAN->DisplayStartupStatus(); NSMAN->DisplayStartupStatus();
UpdateConnectStatus( );
#if defined( WITHOUT_NETWORKING )
#else
PREFSMAN->m_sLastServer = ScreenTextEntry::s_sLastAnswer;
#endif
} }
break; break;
case SM_ServerNameEnter: case SM_ServerNameEnter:
@@ -103,18 +105,17 @@ void ScreenNetworkOptions::HandleScreenMessage( const ScreenMessage SM )
void ScreenNetworkOptions::MenuStart( PlayerNumber pn, const InputEventType type ) void ScreenNetworkOptions::MenuStart( PlayerNumber pn, const InputEventType type )
{ {
#if defined( WITHOUT_NETWORKING )
#else
switch( GetCurrentRow() ) switch( GetCurrentRow() )
{ {
case PO_CONNECTION: case PO_CONNECTION:
switch (m_Rows[GetCurrentRow()]->GetOneSharedSelection()) if ( !NSMAN->useSMserver )
{ SCREENMAN->TextEntry( SM_DoneConnecting, "Enter a Network Address\n127.0.0.1 to connect to yourself", PREFSMAN->m_sLastServer );
case NO_CONNECT: else {
SCREENMAN->TextEntry( SM_DoneConnecting, "Enter a Network Address\n127.0.0.1 to connect to yourself", "", NULL );
break;
case NO_DISCONNECT:
NSMAN->CloseConnection(); NSMAN->CloseConnection();
SCREENMAN->SystemMessage("Disconnected from server."); SCREENMAN->SystemMessage("Disconnected from server.");
break; UpdateConnectStatus( );
} }
break; break;
case PO_SERVER: case PO_SERVER:
@@ -135,17 +136,16 @@ void ScreenNetworkOptions::MenuStart( PlayerNumber pn, const InputEventType type
default: default:
ScreenOptions::MenuStart( pn, type ); ScreenOptions::MenuStart( pn, type );
} }
#endif
} }
void ScreenNetworkOptions::ImportOptions() void ScreenNetworkOptions::ImportOptions() { }
void ScreenNetworkOptions::ExportOptions() { }
void ScreenNetworkOptions::UpdateConnectStatus( )
{ {
SCREENMAN->SetNewScreen( m_sClassName );
} }
void ScreenNetworkOptions::ExportOptions()
{
}
#endif #endif
/* /*
+4
View File
@@ -18,6 +18,10 @@ private:
void GoToNextState(); void GoToNextState();
void GoToPrevState(); void GoToPrevState();
void UpdateConnectStatus();
CString m_sClassName;
}; };
#endif #endif