From 52c32072eca465c570d4e72727e84c1099bb2ba1 Mon Sep 17 00:00:00 2001 From: Themaister Date: Sat, 1 Mar 2014 12:02:48 +0100 Subject: [PATCH] Add log level support for libretro cores. --- config.def.h | 3 +++ dynamic.c | 3 +++ general.h | 1 + retroarch.cfg | 6 ++++++ settings.c | 3 +++ 5 files changed, 16 insertions(+) diff --git a/config.def.h b/config.def.h index c0f7f6905f..df7149f5a5 100644 --- a/config.def.h +++ b/config.def.h @@ -515,6 +515,9 @@ static const unsigned game_history_size = 100; // Show RGUI start-up screen on boot. static const bool rgui_show_start_screen = true; +// Log level for libretro cores (GET_LOG_INTERFACE). +static const unsigned libretro_log_level = 0; + //////////////////// // Keybinds, Joypad diff --git a/dynamic.c b/dynamic.c index 3e66019d83..50b3a96611 100644 --- a/dynamic.c +++ b/dynamic.c @@ -484,6 +484,9 @@ void dylib_close(dylib_t lib) static void rarch_log_libretro(enum retro_log_level level, const char *fmt, ...) { + if ((unsigned)level < g_settings.libretro_log_level) + return; + va_list vp; va_start(vp, fmt); diff --git a/general.h b/general.h index 53e4ee6ee5..3b6f6dc98f 100644 --- a/general.h +++ b/general.h @@ -277,6 +277,7 @@ struct settings unsigned game_history_size; char libretro[PATH_MAX]; + unsigned libretro_log_level; char libretro_info_path[PATH_MAX]; char cheat_database[PATH_MAX]; char cheat_settings_path[PATH_MAX]; diff --git a/retroarch.cfg b/retroarch.cfg index 235b506982..2756bd864b 100644 --- a/retroarch.cfg +++ b/retroarch.cfg @@ -22,6 +22,12 @@ # This could fail if ROM extensions overlap. # libretro_path = "/path/to/libretro.so" +# Sets log level for libretro cores (GET_LOG_INTERFACE). +# If a log level issued by a libretro core is below libretro_log_level, it is ignored. +# DEBUG logs are always ignored unless verbose mode is activated (--verbose). +# DEBUG = 0, INFO = 1, WARN = 2, ERROR = 3. +# libretro_log_level = 0 + # Path to core options config file. # This config file is used to expose core-specific options. # It will be written to by RetroArch. diff --git a/settings.c b/settings.c index 3c24feb097..440de7d3aa 100644 --- a/settings.c +++ b/settings.c @@ -308,6 +308,7 @@ void config_set_defaults(void) g_settings.network_cmd_port = network_cmd_port; g_settings.stdin_cmd_enable = stdin_cmd_enable; g_settings.game_history_size = game_history_size; + g_settings.libretro_log_level = libretro_log_level; #ifdef HAVE_MENU g_settings.rgui_show_start_screen = rgui_show_start_screen; @@ -941,6 +942,7 @@ bool config_load_file(const char *path, bool set_defaults) *g_settings.rgui_config_directory = '\0'; CONFIG_GET_BOOL(rgui_show_start_screen, "rgui_show_start_screen"); #endif + CONFIG_GET_INT(libretro_log_level, "libretro_log_level"); #ifdef HAVE_OVERLAY CONFIG_GET_PATH_EXTERN(overlay_dir, "overlay_directory"); @@ -1362,6 +1364,7 @@ bool config_save_file(const char *path) save_keybinds_player(conf, i); config_set_bool(conf, "core_specific_config", g_settings.core_specific_config); + config_set_int(conf, "libretro_log_level", g_settings.libretro_log_level); bool ret = config_file_write(conf, path); config_file_free(conf);