WIN32: Move Windows-specific implementation of logMessage out of OSystem_SDL

This commit is contained in:
Cameron Cawley 2018-05-27 22:24:55 +01:00 committed by Thierry Crozat
parent e1c83f8e87
commit ada05fd726
5 changed files with 30 additions and 27 deletions

View file

@ -22,12 +22,6 @@
#define FORBIDDEN_SYMBOL_ALLOW_ALL
#ifdef WIN32
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#undef ARRAYSIZE // winnt.h defines ARRAYSIZE, but we want our own one...
#endif
#include "backends/platform/sdl/sdl.h"
#include "common/config-manager.h"
#include "gui/EventRecorder.h"
@ -412,27 +406,6 @@ void OSystem_SDL::logMessage(LogMessageType::Type type, const char *message) {
// Then log into file (via the logger)
if (_logger)
_logger->print(message);
// Finally, some Windows / WinCE specific logging code.
#if defined( USE_WINDBG )
#if defined( _WIN32_WCE )
TCHAR buf_unicode[1024];
MultiByteToWideChar(CP_ACP, 0, message, strlen(message) + 1, buf_unicode, sizeof(buf_unicode));
OutputDebugString(buf_unicode);
if (type == LogMessageType::kError) {
#ifndef DEBUG
drawError(message);
#else
int cmon_break_into_the_debugger_if_you_please = *(int *)(message + 1); // bus error
printf("%d", cmon_break_into_the_debugger_if_you_please); // don't optimize the int out
#endif
}
#else
OutputDebugString(message);
#endif
#endif
}
Common::String OSystem_SDL::getSystemLanguage() const {

View file

@ -150,6 +150,14 @@ bool OSystem_Win32::openUrl(const Common::String &url) {
return true;
}
void OSystem_Win32::logMessage(LogMessageType::Type type, const char *message) {
OSystem_SDL::logMessage(type, message);
#if defined( USE_WINDBG )
OutputDebugString(message);
#endif
}
Common::String OSystem_Win32::getSystemLanguage() const {
#if defined(USE_DETECTLANG) && defined(USE_TRANSLATION)
// We can not use "setlocale" (at least not for MSVC builds), since it

View file

@ -38,6 +38,8 @@ public:
virtual bool openUrl(const Common::String &url);
virtual void logMessage(LogMessageType::Type type, const char *message);
virtual Common::String getSystemLanguage() const;
virtual Common::String getScreenshotsPath();

View file

@ -623,6 +623,25 @@ void OSystem_WINCE3::getTimeAndDate(TimeDate &t) const {
t.tm_wday = systime.wDayOfWeek;
}
void OSystem_WINCE3::logMessage(LogMessageType::Type type, const char *message) {
OSystem_SDL::logMessage(type, message);
#if defined( USE_WINDBG )
TCHAR buf_unicode[1024];
MultiByteToWideChar(CP_ACP, 0, message, strlen(message) + 1, buf_unicode, sizeof(buf_unicode));
OutputDebugString(buf_unicode);
if (type == LogMessageType::kError) {
#ifndef DEBUG
drawError(message);
#else
int cmon_break_into_the_debugger_if_you_please = *(int *)(message + 1); // bus error
printf("%d", cmon_break_into_the_debugger_if_you_please); // don't optimize the int out
#endif
}
#endif
}
Common::String OSystem_WINCE3::getSystemLanguage() const {
#ifdef USE_DETECTLANG
// We can not use "setlocale" (at least not for MSVC builds), since it

View file

@ -54,6 +54,7 @@ public:
// Overloaded from SDL backend
void init();
void quit();
virtual void logMessage(LogMessageType::Type type, const char *message);
virtual Common::String getSystemLanguage() const;
// Overloaded from OSystem