From a8af0f7ecb31fad999f1d2d9caa643f5311f89e3 Mon Sep 17 00:00:00 2001 From: Connor McLaughlin Date: Thu, 17 Dec 2020 01:17:26 +1000 Subject: [PATCH] HostInterface: Add debugger message callbacks --- src/core/host_interface.cpp | 17 ++++++++++++++++- src/core/host_interface.h | 2 ++ src/duckstation-qt/qthostinterface.cpp | 7 +++++++ src/duckstation-qt/qthostinterface.h | 2 ++ 4 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/core/host_interface.cpp b/src/core/host_interface.cpp index 54d246855..7e07de2ed 100644 --- a/src/core/host_interface.cpp +++ b/src/core/host_interface.cpp @@ -166,7 +166,12 @@ void HostInterface::ReportError(const char* message) void HostInterface::ReportMessage(const char* message) { - Log_InfoPrintf(message); + Log_InfoPrint(message); +} + +void HostInterface::ReportDebuggerMessage(const char* message) +{ + Log_InfoPrintf("(Debugger) %s", message); } bool HostInterface::ConfirmMessage(const char* message) @@ -195,6 +200,16 @@ void HostInterface::ReportFormattedMessage(const char* format, ...) ReportMessage(message.c_str()); } +void HostInterface::ReportFormattedDebuggerMessage(const char* format, ...) +{ + std::va_list ap; + va_start(ap, format); + std::string message = StringUtil::StdStringFromFormatV(format, ap); + va_end(ap); + + ReportDebuggerMessage(message.c_str()); +} + bool HostInterface::ConfirmFormattedMessage(const char* format, ...) { std::va_list ap; diff --git a/src/core/host_interface.h b/src/core/host_interface.h index f4b24ced6..d9956b7f6 100644 --- a/src/core/host_interface.h +++ b/src/core/host_interface.h @@ -62,10 +62,12 @@ public: virtual void ReportError(const char* message); virtual void ReportMessage(const char* message); + virtual void ReportDebuggerMessage(const char* message); virtual bool ConfirmMessage(const char* message); void ReportFormattedError(const char* format, ...); void ReportFormattedMessage(const char* format, ...); + void ReportFormattedDebuggerMessage(const char* format, ...); bool ConfirmFormattedMessage(const char* format, ...); /// Adds OSD messages, duration is in seconds. diff --git a/src/duckstation-qt/qthostinterface.cpp b/src/duckstation-qt/qthostinterface.cpp index ec3e4e347..d852cedf7 100644 --- a/src/duckstation-qt/qthostinterface.cpp +++ b/src/duckstation-qt/qthostinterface.cpp @@ -161,6 +161,13 @@ void QtHostInterface::ReportMessage(const char* message) emit messageReported(QString::fromUtf8(message)); } +void QtHostInterface::ReportDebuggerMessage(const char* message) +{ + HostInterface::ReportDebuggerMessage(message); + + emit debuggerMessageReported(QString::fromUtf8(message)); +} + bool QtHostInterface::ConfirmMessage(const char* message) { const bool was_fullscreen = m_is_fullscreen; diff --git a/src/duckstation-qt/qthostinterface.h b/src/duckstation-qt/qthostinterface.h index 7dc9660c9..d2f63b3cc 100644 --- a/src/duckstation-qt/qthostinterface.h +++ b/src/duckstation-qt/qthostinterface.h @@ -51,6 +51,7 @@ public: public Q_SLOTS: void ReportError(const char* message) override; void ReportMessage(const char* message) override; + void ReportDebuggerMessage(const char* message) override; bool ConfirmMessage(const char* message) override; public: @@ -120,6 +121,7 @@ public: Q_SIGNALS: void errorReported(const QString& message); void messageReported(const QString& message); + void debuggerMessageReported(const QString& message); bool messageConfirmed(const QString& message); void emulationStarting(); void emulationStarted();