diff --git a/app/src/util/log.c b/app/src/util/log.c index ac26de1c..a285fffb 100644 --- a/app/src/util/log.c +++ b/app/src/util/log.c @@ -21,8 +21,33 @@ log_level_sc_to_sdl(enum sc_log_level level) { } } +static enum sc_log_level +log_level_sdl_to_sc(SDL_LogPriority priority) { + switch (priority) { + case SDL_LOG_PRIORITY_VERBOSE: + return SC_LOG_LEVEL_VERBOSE; + case SDL_LOG_PRIORITY_DEBUG: + return SC_LOG_LEVEL_DEBUG; + case SDL_LOG_PRIORITY_INFO: + return SC_LOG_LEVEL_INFO; + case SDL_LOG_PRIORITY_WARN: + return SC_LOG_LEVEL_WARN; + case SDL_LOG_PRIORITY_ERROR: + return SC_LOG_LEVEL_ERROR; + default: + assert(!"unexpected log level"); + return SC_LOG_LEVEL_INFO; + } +} + void sc_set_log_level(enum sc_log_level level) { SDL_LogPriority sdl_log = log_level_sc_to_sdl(level); SDL_LogSetPriority(SDL_LOG_CATEGORY_APPLICATION, sdl_log); } + +enum sc_log_level +sc_get_log_level(void) { + SDL_LogPriority sdl_log = SDL_LogGetPriority(SDL_LOG_CATEGORY_APPLICATION); + return log_level_sdl_to_sc(sdl_log); +} diff --git a/app/src/util/log.h b/app/src/util/log.h index 8b6c175e..30934b5c 100644 --- a/app/src/util/log.h +++ b/app/src/util/log.h @@ -17,4 +17,7 @@ void sc_set_log_level(enum sc_log_level level); +enum sc_log_level +sc_get_log_level(void); + #endif