diff --git a/UnleashedRecomp/install/update_checker.cpp b/UnleashedRecomp/install/update_checker.cpp index 5315a67b..706a0e05 100644 --- a/UnleashedRecomp/install/update_checker.cpp +++ b/UnleashedRecomp/install/update_checker.cpp @@ -9,6 +9,8 @@ #include #endif +#include + // UpdateChecker using json = nlohmann::json; @@ -52,7 +54,7 @@ static bool parseVersion(const std::string &versionStr, int &major, int &minor, } catch (const std::exception &e) { - fmt::println("Error while parsing version: {}.", e.what()); + LOGF_ERROR("Error while parsing version: {}.", e.what()); return false; } @@ -93,25 +95,25 @@ void updateCheckerThread() } else { - fmt::println("Error while parsing response: tag_name does not contain a valid version string."); + LOG_ERROR("Error while parsing response: tag_name does not contain a valid version string."); g_updateCheckerResult = UpdateChecker::Result::Failed; } } else { - fmt::println("Error while parsing response: tag_name not found or not the right type."); + LOG_ERROR("Error while parsing response: tag_name not found or not the right type."); g_updateCheckerResult = UpdateChecker::Result::Failed; } } catch (const json::exception &e) { - fmt::println("Error while parsing response: {}", e.what()); + LOGF_ERROR("Error while parsing response: {}", e.what()); g_updateCheckerResult = UpdateChecker::Result::Failed; } } else { - fmt::println("Error while performing request: {}", curl_easy_strerror(res)); + LOGF_ERROR("Error while performing request: {}", curl_easy_strerror(res)); g_updateCheckerResult = UpdateChecker::Result::Failed; } diff --git a/UnleashedRecomp/main.cpp b/UnleashedRecomp/main.cpp index a513994c..d3d12381 100644 --- a/UnleashedRecomp/main.cpp +++ b/UnleashedRecomp/main.cpp @@ -153,6 +153,8 @@ int main(int argc, char *argv[]) timeBeginPeriod(1); #endif + os::process::CheckConsole(); + if (!os::registry::Init()) LOGN_WARNING("OS doesn't support registry"); diff --git a/UnleashedRecomp/os/linux/process_linux.cpp b/UnleashedRecomp/os/linux/process_linux.cpp index 276fc0c1..bb93b1ec 100644 --- a/UnleashedRecomp/os/linux/process_linux.cpp +++ b/UnleashedRecomp/os/linux/process_linux.cpp @@ -61,6 +61,12 @@ bool os::process::StartProcess(const std::filesystem::path& path, const std::vec return true; } +void os::process::CheckConsole() +{ + // Always visible on Linux. + g_consoleVisible = true; +} + void os::process::ShowConsole() { // Unnecessary on Linux. diff --git a/UnleashedRecomp/os/process.h b/UnleashedRecomp/os/process.h index a81caeda..d85fc277 100644 --- a/UnleashedRecomp/os/process.h +++ b/UnleashedRecomp/os/process.h @@ -2,9 +2,12 @@ namespace os::process { + inline bool g_consoleVisible; + std::filesystem::path GetExecutablePath(); std::filesystem::path GetWorkingDirectory(); bool SetWorkingDirectory(const std::filesystem::path& path); bool StartProcess(const std::filesystem::path& path, const std::vector& args, std::filesystem::path work = {}); + void CheckConsole(); void ShowConsole(); } diff --git a/UnleashedRecomp/os/win32/logger_win32.cpp b/UnleashedRecomp/os/win32/logger_win32.cpp index 88ed83dc..5711dd80 100644 --- a/UnleashedRecomp/os/win32/logger_win32.cpp +++ b/UnleashedRecomp/os/win32/logger_win32.cpp @@ -1,9 +1,10 @@ #include +#include #define FOREGROUND_WHITE (FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE) #define FOREGROUND_YELLOW (FOREGROUND_RED | FOREGROUND_GREEN) -HANDLE g_hStandardOutput; +static HANDLE g_hStandardOutput; void os::logger::Init() { @@ -12,6 +13,9 @@ void os::logger::Init() void os::logger::Log(const std::string_view str, ELogType type, const char* func) { + if (!os::process::g_consoleVisible) + return; + switch (type) { case ELogType::Utility: diff --git a/UnleashedRecomp/os/win32/process_win32.cpp b/UnleashedRecomp/os/win32/process_win32.cpp index 230846bd..d6ce9a93 100644 --- a/UnleashedRecomp/os/win32/process_win32.cpp +++ b/UnleashedRecomp/os/win32/process_win32.cpp @@ -52,6 +52,11 @@ bool os::process::StartProcess(const std::filesystem::path& path, const std::vec return true; } +void os::process::CheckConsole() +{ + g_consoleVisible = (GetConsoleWindow() != nullptr); +} + void os::process::ShowConsole() { if (GetConsoleWindow() == nullptr) @@ -60,5 +65,7 @@ void os::process::ShowConsole() freopen("CONIN$", "r", stdin); freopen("CONOUT$", "w", stderr); freopen("CONOUT$", "w", stdout); + + g_consoleVisible = true; } }