From f988d7bb95d0d6c6618cb2766a7fd5eec4951316 Mon Sep 17 00:00:00 2001 From: Alexis He Date: Fri, 10 Sep 2021 22:22:25 +0200 Subject: [PATCH] Add: logging message for Android --- sys/simsys.cc | 4 ++++ utils/log.cc | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/sys/simsys.cc b/sys/simsys.cc index a76b3ccd5..00bbd0f26 100644 --- a/sys/simsys.cc +++ b/sys/simsys.cc @@ -1007,6 +1007,10 @@ void dr_fatal_notify(char const* const msg) #ifdef _WIN32 MessageBoxA(0, msg, "Fatal Error", MB_ICONEXCLAMATION); #endif + +#ifdef __ANDROID__ + dbg->error(__FUNCTION__, msg); +#endif } /** diff --git a/utils/log.cc b/utils/log.cc index 5ed6c406c..d7d2e6260 100644 --- a/utils/log.cc +++ b/utils/log.cc @@ -37,6 +37,12 @@ #endif #endif +#ifdef __ANDROID__ +#include +#include "cbuffer_t.h" +#define LOG_TAG "com.simutrans" +#endif + /** * writes a debug message into the log. */ @@ -75,6 +81,14 @@ void log_t::debug(const char *who, const char *format, ...) } va_end( argptr ); #endif + +#ifdef __ANDROID__ + va_start(argptr, format); + cbuffer_t buffer; + buffer.printf("Debug: %s\t%s", who, format); + __android_log_vprint(ANDROID_LOG_DEBUG, LOG_TAG, buffer, argptr); + va_end( argptr ); +#endif } } @@ -117,6 +131,14 @@ void log_t::message(const char *who, const char *format, ...) } va_end( argptr ); #endif + +#ifdef __ANDROID__ + va_start(argptr, format); + cbuffer_t buffer; + buffer.printf("Message: %s\t%s", who, format); + __android_log_vprint(ANDROID_LOG_INFO, LOG_TAG, buffer, argptr); + va_end( argptr ); +#endif } } @@ -159,6 +181,14 @@ void log_t::warning(const char *who, const char *format, ...) } va_end( argptr ); #endif + +#ifdef __ANDROID__ + va_start(argptr, format); + cbuffer_t buffer; + buffer.printf("Debug: %s\t%s", who, format); + __android_log_vprint(ANDROID_LOG_WARN, LOG_TAG, buffer, argptr); + va_end( argptr ); +#endif } } @@ -208,6 +238,14 @@ void log_t::error(const char *who, const char *format, ...) } va_end( argptr ); #endif + +#ifdef __ANDROID__ + va_start(argptr, format); + cbuffer_t buffer; + buffer.printf("ERROR: %s\t%s", who, format); + __android_log_vprint(ANDROID_LOG_ERROR, LOG_TAG, buffer, argptr); + va_end( argptr ); +#endif } } -- 2.28.0.windows.1