diff options
| author | hrydgard <hrydgard@gmail.com> | 2009-03-20 19:12:04 +0000 |
|---|---|---|
| committer | hrydgard <hrydgard@gmail.com> | 2009-03-20 19:12:04 +0000 |
| commit | 482ea5c0e75e413d02544624f556f7d0f4aaeed3 (patch) | |
| tree | 29d3a674572a8f98e2836c257b266d6cfe262b3d /Source/Core/Common | |
| parent | 6bacdc0af32f9feae92264f23c6bcefbb0e8ba2d (diff) | |
Make the OptimizeQuantizers option apply to the IL build. More cleanup.
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2696 8ced0084-cf51-0410-be5f-012b33b47a6e
Diffstat (limited to 'Source/Core/Common')
| -rw-r--r-- | Source/Core/Common/Src/ConsoleListener.cpp | 116 | ||||
| -rw-r--r-- | Source/Core/Common/Src/LogManager.cpp | 26 | ||||
| -rw-r--r-- | Source/Core/Common/Src/LogManager.h | 67 |
3 files changed, 78 insertions, 131 deletions
diff --git a/Source/Core/Common/Src/ConsoleListener.cpp b/Source/Core/Common/Src/ConsoleListener.cpp index 137fc9782b..1e87cb7711 100644 --- a/Source/Core/Common/Src/ConsoleListener.cpp +++ b/Source/Core/Common/Src/ConsoleListener.cpp @@ -27,19 +27,15 @@ #include "LogManager.h" // Common -// Inits as a Listener -ConsoleListener::ConsoleListener() : Listener("console") -{ -} - ConsoleListener::~ConsoleListener() { Close(); } +//150, 100, "Dolphin Log Console" // Open console window - width and height is the size of console window // Name is the window title -void ConsoleListener::Open(int Width, int Height, char * Name) +void ConsoleListener::Open(int width, int height, char *title) { #ifdef _WIN32 // Open the console window and create the window handle for GetStdHandle() @@ -49,15 +45,15 @@ void ConsoleListener::Open(int Width, int Height, char * Name) m_hStdOut = GetStdHandle(STD_OUTPUT_HANDLE); // Set the console window title - SetConsoleTitle(Name); + SetConsoleTitle(title); // Set the total letter space - COORD co = {Width, Height}; + COORD co = {width, height}; SetConsoleScreenBufferSize(m_hStdOut, co); /* Set the window size in number of letters. The height is hard coded here because it can be changed with MoveWindow() later */ - SMALL_RECT coo = {0,0, (Width - 1),50}; // Top, left, right, bottom + SMALL_RECT coo = {0,0, (width - 1), 50}; // Top, left, right, bottom SetConsoleWindowInfo(m_hStdOut, TRUE, &coo); #endif } @@ -88,46 +84,45 @@ bool ConsoleListener::IsOpen() void ConsoleListener::Log(LogTypes::LOG_LEVELS level, const char *text) { #if defined(_WIN32) - DWORD cCharsWritten; // We will get a value back here - WORD color; - - switch (level) - { - case ERROR_LEVEL: // light red - color = FOREGROUND_RED | FOREGROUND_INTENSITY; - break; - - case WARNING_LEVEL: // light yellow - color = FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY; - break; - - case NOTICE_LEVEL: // light green - color = FOREGROUND_GREEN | FOREGROUND_INTENSITY; - break; - - case INFO_LEVEL: // cyan - color = FOREGROUND_GREEN | FOREGROUND_BLUE; - break; - - case DEBUG_LEVEL: // light gray - color = FOREGROUND_INTENSITY; - break; - - default: // white - color = FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_INTENSITY; - break; - } - SetConsoleTextAttribute(m_hStdOut, color); - - WriteConsole(m_hStdOut, text, (DWORD)strlen(text), &cCharsWritten, NULL); + DWORD cCharsWritten; // We will get a value back here + WORD color; + + switch (level) + { + case ERROR_LEVEL: // light red + color = FOREGROUND_RED | FOREGROUND_INTENSITY; + break; + + case WARNING_LEVEL: // light yellow + color = FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY; + break; + + case NOTICE_LEVEL: // light green + color = FOREGROUND_GREEN | FOREGROUND_INTENSITY; + break; + + case INFO_LEVEL: // cyan + color = FOREGROUND_GREEN | FOREGROUND_BLUE; + break; + + case DEBUG_LEVEL: // light gray + color = FOREGROUND_INTENSITY; + break; + + default: // white + color = FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_INTENSITY; + break; + } + SetConsoleTextAttribute(m_hStdOut, color); + + WriteConsole(m_hStdOut, text, (DWORD)strlen(text), &cCharsWritten, NULL); #else - fprintf(stderr, "%s", text); + fprintf(stderr, "%s", text); #endif } - // Clear console screen -void ConsoleListener::ClearScreen() +void ConsoleListener::ClearScreen() { #if defined(_WIN32) COORD coordScreen = { 0, 0 }; @@ -147,36 +142,3 @@ void ConsoleListener::ClearScreen() SetConsoleCursorPosition(hConsole, coordScreen); #endif } - - -// Get window handle of console window to be able to resize it. We use -// GetConsoleTitle() and FindWindow() to locate the console window handle. -#if defined(_WIN32) -HWND GetHwnd(void) -{ -#define MY_BUFSIZE 1024 // Buffer size for console window titles - HWND hwndFound; // This is what is returned to the caller - char pszNewWindowTitle[MY_BUFSIZE]; // Contains fabricated WindowTitle - char pszOldWindowTitle[MY_BUFSIZE]; // Contains original WindowTitle - - // Fetch current window title. - GetConsoleTitle(pszOldWindowTitle, MY_BUFSIZE); - - // Format a "unique" NewWindowTitle - wsprintf(pszNewWindowTitle, "%d/%d", GetTickCount(), GetCurrentProcessId()); - - // Change current window title - SetConsoleTitle(pszNewWindowTitle); - - // Ensure window title has been updated - Sleep(40); - - // Look for NewWindowTitle - hwndFound = FindWindow(NULL, pszNewWindowTitle); - - // Restore original window title - SetConsoleTitle(pszOldWindowTitle); - - return(hwndFound); -} -#endif // _WIN32 diff --git a/Source/Core/Common/Src/LogManager.cpp b/Source/Core/Common/Src/LogManager.cpp index 096a9f2f6d..af102f0870 100644 --- a/Source/Core/Common/Src/LogManager.cpp +++ b/Source/Core/Common/Src/LogManager.cpp @@ -91,18 +91,18 @@ void LogManager::Log(LogTypes::LOG_LEVELS level, LogTypes::LOG_TYPE type, } -void LogManager::removeListener(LogTypes::LOG_TYPE type, Listener *listener) { +void LogManager::removeListener(LogTypes::LOG_TYPE type, LogListener *listener) { logMutex->Enter(); m_Log[type]->removeListener(listener); logMutex->Leave(); } // LogContainer -void LogContainer::addListener(Listener *listener) { - std::vector<Listener *>::iterator i; +void LogContainer::addListener(LogListener *listener) { bool exists = false; - for(i=listeners.begin();i!=listeners.end();i++) { + std::vector<LogListener *>::iterator i; + for(i = listeners.begin(); i != listeners.end(); i++) { if ((*i) == listener) { exists = true; break; @@ -113,9 +113,9 @@ void LogContainer::addListener(Listener *listener) { listeners.push_back(listener); } -void LogContainer::removeListener(Listener *listener) { - std::vector<Listener *>::iterator i; - for(i=listeners.begin();i!=listeners.end();i++) { +void LogContainer::removeListener(LogListener *listener) { + std::vector<LogListener *>::iterator i; + for(i = listeners.begin(); i != listeners.end(); i++) { if ((*i) == listener) { listeners.erase(i); break; @@ -123,9 +123,9 @@ void LogContainer::removeListener(Listener *listener) { } } -bool LogContainer::isListener(Listener *listener) { - std::vector<Listener *>::iterator i; - for(i=listeners.begin();i!=listeners.end();i++) { +bool LogContainer::isListener(LogListener *listener) const { + std::vector<LogListener *>::const_iterator i; + for(i = listeners.begin(); i != listeners.end(); i++) { if ((*i) == listener) { return true; } @@ -134,13 +134,13 @@ bool LogContainer::isListener(Listener *listener) { } void LogContainer::trigger(LogTypes::LOG_LEVELS level, const char *msg) { - std::vector<Listener *>::const_iterator i; - for(i=listeners.begin();i!=listeners.end();i++) { + std::vector<LogListener *>::const_iterator i; + for (i = listeners.begin(); i != listeners.end(); i++) { (*i)->Log(level, msg); } } -FileLogListener::FileLogListener(const char *filename) : Listener("File") { +FileLogListener::FileLogListener(const char *filename) { m_filename = strndup(filename, 255); m_logfile = fopen(filename, "a+"); setEnable(true); diff --git a/Source/Core/Common/Src/LogManager.h b/Source/Core/Common/Src/LogManager.h index e93db2e47b..26e8bc88ff 100644 --- a/Source/Core/Common/Src/LogManager.h +++ b/Source/Core/Common/Src/LogManager.h @@ -32,17 +32,15 @@ #define MAX_MSGLEN 512 -class Listener { +// pure virtual interface (well, except the destructor which we just leave empty). +class LogListener { public: - Listener(const char *name) : m_name(name) {} + virtual ~LogListener() {} virtual void Log(LogTypes::LOG_LEVELS, const char *msg) = 0; - virtual const char *getName() { return m_name; } - -private: - const char *m_name; + virtual const char *getName() const = 0; }; -class FileLogListener : public Listener { +class FileLogListener : public LogListener { public: FileLogListener(const char *filename); ~FileLogListener(); @@ -60,17 +58,18 @@ public: void setEnable(bool enable) { m_enable = enable; } + + const char *getName() const { return "file"; } + private: char *m_filename; FILE *m_logfile; bool m_enable; - }; -class ConsoleListener : public Listener +class ConsoleListener : public LogListener { public: - ConsoleListener(); ~ConsoleListener(); void Open(int Width = 100, int Height = 100, @@ -80,6 +79,8 @@ public: void Log(LogTypes::LOG_LEVELS, const char *text); void ClearScreen(); + const char *getName() const { return "console"; } + private: #ifdef _WIN32 HWND GetHwnd(void); @@ -89,7 +90,6 @@ private: class LogContainer { public: - LogContainer(const char* shortName, const char* fullName, bool enable = false) : m_enable(enable) { strncpy(m_fullName, fullName, 128); @@ -97,26 +97,16 @@ public: m_level = LogTypes::LWARNING; } - const char *getShortName() { - return m_shortName; - } - - const char *getFullName() { - return m_fullName; - } + const char *getShortName() const { return m_shortName; } + const char *getFullName() const { return m_fullName; } - bool isListener(Listener *listener); - - void addListener(Listener *listener); - - void removeListener(Listener *listener); + bool isListener(LogListener *listener) const; + void addListener(LogListener *listener); + void removeListener(LogListener *listener); void trigger(LogTypes::LOG_LEVELS, const char *msg); - bool isEnable() { - return m_enable; - } - + bool isEnable() const { return m_enable; } void setEnable(bool enable) { m_enable = enable; } @@ -135,29 +125,25 @@ private: bool m_enable; LogTypes::LOG_LEVELS m_level; - std::vector<Listener *> listeners; + std::vector<LogListener *> listeners; }; class LogManager { private: - LogContainer* m_Log[LogTypes::NUMBER_OF_LOGS]; Common::CriticalSection* logMutex; FileLogListener *m_fileLog; ConsoleListener *m_consoleLog; - static LogManager *m_logManager; // FIXME: find a way without singletone - + static LogManager *m_logManager; // Singleton. Ugh. public: - static u32 GetMaxLevel() { - return LOGLEVEL; - } + static u32 GetMaxLevel() { return LOGLEVEL; } void Log(LogTypes::LOG_LEVELS level, LogTypes::LOG_TYPE type, const char *fmt, ...); - void setLogLevel(LogTypes::LOG_TYPE type, LogTypes::LOG_LEVELS level){ + void setLogLevel(LogTypes::LOG_TYPE type, LogTypes::LOG_LEVELS level) { m_Log[type]->setLevel(level); } @@ -165,23 +151,23 @@ public: m_Log[type]->setEnable(enable); } - const char *getShortName(LogTypes::LOG_TYPE type) { + const char *getShortName(LogTypes::LOG_TYPE type) const { return m_Log[type]->getShortName(); } - const char *getFullName(LogTypes::LOG_TYPE type) { + const char *getFullName(LogTypes::LOG_TYPE type) const { return m_Log[type]->getFullName(); } - bool isListener(LogTypes::LOG_TYPE type, Listener *listener) { + bool isListener(LogTypes::LOG_TYPE type, LogListener *listener) const { return m_Log[type]->isListener(listener); } - void addListener(LogTypes::LOG_TYPE type, Listener *listener) { + void addListener(LogTypes::LOG_TYPE type, LogListener *listener) { m_Log[type]->addListener(listener); } - void removeListener(LogTypes::LOG_TYPE type, Listener *listener); + void removeListener(LogTypes::LOG_TYPE type, LogListener *listener); FileLogListener *getFileListener() { return m_fileLog; @@ -194,7 +180,6 @@ public: static LogManager* GetInstance() { if (! m_logManager) m_logManager = new LogManager(); - return m_logManager; } |
