diff options
author | Johannes Schickel | 2010-11-18 19:12:14 +0000 |
---|---|---|
committer | Johannes Schickel | 2010-11-18 19:12:14 +0000 |
commit | e1030e53a537677c234ad39de419fb97b88a37b7 (patch) | |
tree | efa0f61d219a9de5299567c92f80662a7e5fb272 /backends/platform/sdl | |
parent | 411866ee1881d248400da25f1889ad872ed54ee3 (diff) | |
download | scummvm-rg350-e1030e53a537677c234ad39de419fb97b88a37b7.tar.gz scummvm-rg350-e1030e53a537677c234ad39de419fb97b88a37b7.tar.bz2 scummvm-rg350-e1030e53a537677c234ad39de419fb97b88a37b7.zip |
BACKENDS: Implement logging API proposed by Max on -devel.
This commits a slightly modified patch from my patch tracker item #3104630
"OSYSTEM: Add logging API as proposed by Max on -devel".
I was not able to test compilation on Android and SamsungTV, since there is no
toolchain for those on buildbot (or I was too blind to find them).
svn-id: r54339
Diffstat (limited to 'backends/platform/sdl')
-rw-r--r-- | backends/platform/sdl/sdl.cpp | 24 | ||||
-rw-r--r-- | backends/platform/sdl/sdl.h | 3 |
2 files changed, 27 insertions, 0 deletions
diff --git a/backends/platform/sdl/sdl.cpp b/backends/platform/sdl/sdl.cpp index 2e3819f6f5..8a139e5c1b 100644 --- a/backends/platform/sdl/sdl.cpp +++ b/backends/platform/sdl/sdl.cpp @@ -562,6 +562,30 @@ void OSystem_SDL::quit() { #endif } +void OSystem_SDL::logMessage(LogMessageType::Type type, const char *message) { + BaseBackend::logMessage(type, message); + +#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 +} + void OSystem_SDL::setupIcon() { int x, y, w, h, ncols, nbytes, i; unsigned int rgba[256]; diff --git a/backends/platform/sdl/sdl.h b/backends/platform/sdl/sdl.h index b701824517..328bb03426 100644 --- a/backends/platform/sdl/sdl.h +++ b/backends/platform/sdl/sdl.h @@ -191,6 +191,9 @@ public: // Quit virtual void quit(); // overloaded by CE backend + // Logging + virtual void logMessage(LogMessageType::Type type, const char *message); + void deinit(); virtual void getTimeAndDate(TimeDate &t) const; |