From a4752154f7c7253eade3a5c0cf1ed95d2e2735e3 Mon Sep 17 00:00:00 2001 From: PJB3005 Date: Fri, 1 May 2026 08:50:42 +0200 Subject: [PATCH] Nicely plumb OSReport error/warning/etc through Aurora's logger This makes a new implementation in the dusk src folder, and makes the existing file containing these functions not compiled anymore. A ton of dead code is now gone. --- files.cmake | 3 +- src/dusk/OSReport.cpp | 91 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 93 insertions(+), 1 deletion(-) create mode 100644 src/dusk/OSReport.cpp diff --git a/files.cmake b/files.cmake index f91756a9d5..6cec4672fb 100644 --- a/files.cmake +++ b/files.cmake @@ -1,7 +1,7 @@ set(DOLZEL_FILES src/m_Do/m_Do_main.cpp - src/m_Do/m_Do_printf.cpp + #src/m_Do/m_Do_printf.cpp src/m_Do/m_Do_audio.cpp src/m_Do/m_Do_controller_pad.cpp #src/m_Do/m_Re_controller_pad.cpp @@ -1467,6 +1467,7 @@ set(DUSK_FILES src/dusk/livesplit.cpp src/dusk/offset_ptr.cpp src/dusk/OSContext.cpp + src/dusk/OSReport.cpp src/dusk/OSThread.cpp src/dusk/OSMutex.cpp src/dusk/discord_presence.cpp diff --git a/src/dusk/OSReport.cpp b/src/dusk/OSReport.cpp new file mode 100644 index 0000000000..b89a708d78 --- /dev/null +++ b/src/dusk/OSReport.cpp @@ -0,0 +1,91 @@ +#include "aurora/lib/logging.hpp" +#include "os_report.h" + +aurora::Module Log("dusk::osReport"); + +bool dusk::OSReportReallyForceEnable = false; + +u8 __OSReport_disable; + +void OSReportDisable() { + __OSReport_disable = true; +} + +void OSReportEnable() { + __OSReport_disable = false; +} + +static bool checkEnabled() { + return !__OSReport_disable || dusk::OSReportReallyForceEnable; +} + +static std::string FormatToString(const char* msg, va_list list) { + int ret = vsnprintf(nullptr, 0, msg, list); + std::string buf(ret, '\0'); + vsnprintf(buf.data(), buf.size(), msg, list); + buf.pop_back(); + return buf; +} + +void OSReport_Error(const char* fmt, ...) { + if (!checkEnabled()) { + return; + } + + va_list args; + va_start(args, fmt); + const auto str = FormatToString(fmt, args); + va_end(args); + + Log.error("{}", str); +} + +void OSReport_FatalError(const char* fmt, ...) { + if (!checkEnabled()) { + return; + } + + va_list args; + va_start(args, fmt); + const auto str = FormatToString(fmt, args); + va_end(args); + + Log.fatal("{}", str); +} + +void OSReport_Warning(const char* fmt, ...) { + if (!checkEnabled()) { + return; + } + + va_list args; + va_start(args, fmt); + const auto str = FormatToString(fmt, args); + va_end(args); + + Log.warn("{}", str); +} + +void OSReport_System(const char* fmt, ...) { + va_list args; + va_start(args, fmt); + OSVAttention(fmt, args); + va_end(args); +} + +void OSVAttention(const char* fmt, va_list args) { + if (!checkEnabled()) { + return; + } + + const auto str = FormatToString(fmt, args); + + Log.info("{}", str); +} + +void OSAttention(const char* fmt, ...) { + va_list args; + va_start(args, fmt); + OSVAttention(fmt, args); + va_end(args); +} \ No newline at end of file