use a namespace instead of a singleton

This commit is contained in:
Glenn Maynard
2006-02-24 01:09:13 +00:00
parent 724292d68e
commit 77a9377ef2
2 changed files with 8 additions and 15 deletions
+5 -3
View File
@@ -2,6 +2,7 @@
#include "ScreenMessage.h" #include "ScreenMessage.h"
#include "RageLog.h" #include "RageLog.h"
#include "Foreach.h" #include "Foreach.h"
#include <map>
const ScreenMessage SM_Invalid = 999999; const ScreenMessage SM_Invalid = 999999;
AutoScreenMessage(SM_None); AutoScreenMessage(SM_None);
@@ -16,9 +17,10 @@ AutoScreenMessage(SM_Pause);
AutoScreenMessage(SM_Success); AutoScreenMessage(SM_Success);
AutoScreenMessage(SM_Failure); AutoScreenMessage(SM_Failure);
ASMHClass AutoScreenMessageHandler; static map<RString, ScreenMessage> *m_pScreenMessages;
static ScreenMessage m_iCurScreenMessage;
ScreenMessage ASMHClass::ToMessageNumber( const RString &sName ) ScreenMessage ScreenMessageHelpers::ToMessageNumber( const RString &sName )
{ {
if( m_pScreenMessages == NULL ) if( m_pScreenMessages == NULL )
{ {
@@ -35,7 +37,7 @@ ScreenMessage ASMHClass::ToMessageNumber( const RString &sName )
return (*m_pScreenMessages)[sName]; return (*m_pScreenMessages)[sName];
} }
RString ASMHClass::NumberToString( ScreenMessage SM ) const RString ScreenMessageHelpers::NumberToString( ScreenMessage SM )
{ {
FOREACHM( RString, ScreenMessage, *m_pScreenMessages, it ) FOREACHM( RString, ScreenMessage, *m_pScreenMessages, it )
if( SM == it->second ) if( SM == it->second )
+3 -12
View File
@@ -3,8 +3,6 @@
#ifndef SCREEN_MESSAGE_H #ifndef SCREEN_MESSAGE_H
#define SCREEN_MESSAGE_H #define SCREEN_MESSAGE_H
#include <map>
typedef int ScreenMessage; typedef int ScreenMessage;
extern const ScreenMessage SM_Invalid; extern const ScreenMessage SM_Invalid;
@@ -20,22 +18,15 @@ extern const ScreenMessage SM_Pause;
extern const ScreenMessage SM_Success; extern const ScreenMessage SM_Success;
extern const ScreenMessage SM_Failure; extern const ScreenMessage SM_Failure;
class ASMHClass namespace ScreenMessageHelpers
{ {
public:
ScreenMessage ToMessageNumber( const RString & Name ); ScreenMessage ToMessageNumber( const RString & Name );
RString NumberToString( ScreenMessage SM ) const; RString NumberToString( ScreenMessage SM );
private:
map<RString, ScreenMessage> *m_pScreenMessages;
ScreenMessage m_iCurScreenMessage;
}; };
extern ASMHClass AutoScreenMessageHandler;
// Automatically generate a unique ScreenMessage value // Automatically generate a unique ScreenMessage value
#define AutoScreenMessage( x ) \ #define AutoScreenMessage( x ) \
const ScreenMessage x = AutoScreenMessageHandler.ToMessageNumber( #x ); const ScreenMessage x = ScreenMessageHelpers::ToMessageNumber( #x );
#endif #endif