From a7998cea4b19f6f2d77df8d2abfa4aa4b5988373 Mon Sep 17 00:00:00 2001 From: praydog Date: Mon, 19 Feb 2024 20:32:44 -0800 Subject: [PATCH] FrameworkConfig: Add log level (closes #135) --- src/mods/FrameworkConfig.cpp | 11 +++++++++++ src/mods/FrameworkConfig.hpp | 29 ++++++++++++++++++++++++----- 2 files changed, 35 insertions(+), 5 deletions(-) diff --git a/src/mods/FrameworkConfig.cpp b/src/mods/FrameworkConfig.cpp index 1b2d1700..0493d6ac 100644 --- a/src/mods/FrameworkConfig.cpp +++ b/src/mods/FrameworkConfig.cpp @@ -19,6 +19,13 @@ void FrameworkConfig::draw_main() { ImGui::SameLine(); m_l3_r3_long_press->draw("L3 + R3 Long Press Menu Toggle"); m_always_show_cursor->draw("Always Show Cursor"); + + ImGui::Separator(); + if (m_log_level->draw("Log Level")) { + if (m_log_level->value() >= 0 && m_log_level->value() <= spdlog::level::level_enum::n_levels) { + spdlog::set_level((spdlog::level::level_enum)m_log_level->value()); + } + } } void FrameworkConfig::draw_themes() { @@ -56,6 +63,10 @@ void FrameworkConfig::on_config_load(const utility::Config& cfg, bool set_defaul } g_framework->set_font_size(m_font_size->value()); + + if (m_log_level->value() >= 0 && m_log_level->value() <= spdlog::level::level_enum::n_levels) { + spdlog::set_level((spdlog::level::level_enum)m_log_level->value()); + } } void FrameworkConfig::on_config_save(utility::Config& cfg) { diff --git a/src/mods/FrameworkConfig.hpp b/src/mods/FrameworkConfig.hpp index 5a0bd047..7558a0f7 100644 --- a/src/mods/FrameworkConfig.hpp +++ b/src/mods/FrameworkConfig.hpp @@ -1,5 +1,7 @@ #pragma once + +#include #include "Mod.hpp" class FrameworkConfig : public Mod { @@ -55,26 +57,30 @@ class FrameworkConfig : public Mod { return m_advanced_mode->value(); } - void toggle_advanced_mode() { + void toggle_advanced_mode() const { m_advanced_mode->toggle(); } - auto& get_advanced_mode() { + auto& get_advanced_mode() const { return m_advanced_mode; } - auto& get_imgui_theme_value() { + auto& get_imgui_theme_value() const { return m_imgui_theme->value(); } - auto& get_imgui_theme() { + auto& get_imgui_theme() const { return m_imgui_theme; } - int32_t get_font_size() { + int32_t get_font_size() const { return m_font_size->value(); } + spdlog::level::level_enum get_log_level() const { + return (spdlog::level::level_enum)m_log_level->value(); + } + private: static const inline std::vector s_imgui_themes { "Default Dark", @@ -82,6 +88,15 @@ class FrameworkConfig : public Mod { "Default Light", "High Contrast", }; + + static inline std::vector s_get_log_levels() { + std::vector log_levels{}; + for (auto& level : SPDLOG_LEVEL_NAMES) { + log_levels.emplace_back(level.data()); + } + + return log_levels; + }; ModKey::Ptr m_menu_key{ ModKey::create(generate_name("MenuKey"), VK_INSERT) }; ModToggle::Ptr m_menu_open{ ModToggle::create(generate_name("MenuOpen"), true) }; @@ -90,7 +105,10 @@ class FrameworkConfig : public Mod { ModToggle::Ptr m_l3_r3_long_press{ ModToggle::create(generate_name("L3R3LongPress"), false) }; ModToggle::Ptr m_always_show_cursor{ ModToggle::create(generate_name("AlwaysShowCursor"), false) }; ModToggle::Ptr m_advanced_mode{ ModToggle::create(generate_name("AdvancedMode"), false) }; + ModCombo::Ptr m_imgui_theme{ ModCombo::create(generate_name("ImGuiTheme"), s_imgui_themes, Framework::ImGuiThemes::DEFAULT_DARK) }; + ModCombo::Ptr m_log_level{ ModCombo::create(generate_name("LogLevel"), s_get_log_levels(), spdlog::level::info) }; + ModKey::Ptr m_show_cursor_key{ ModKey::create(generate_name("ShowCursorKey")) }; ModInt32::Ptr m_font_size{ModInt32::create(generate_name("FontSize"), 16)}; @@ -103,6 +121,7 @@ class FrameworkConfig : public Mod { *m_l3_r3_long_press, *m_advanced_mode, *m_imgui_theme, + *m_log_level, *m_always_show_cursor, *m_font_size, };