3 changed files with 79 additions and 2 deletions
-
10src/core/CMakeLists.txt
-
34src/core/frontend/applets/error.cpp
-
37src/core/frontend/applets/error.h
@ -0,0 +1,34 @@ |
|||
// Copyright 2019 yuzu emulator team
|
|||
// Licensed under GPLv2 or any later version
|
|||
// Refer to the license.txt file included.
|
|||
|
|||
#include "core/frontend/applets/error.h"
|
|||
|
|||
namespace Core::Frontend { |
|||
|
|||
ErrorApplet::~ErrorApplet() = default; |
|||
|
|||
void DefaultErrorApplet::ShowError(ResultCode error, std::function<void()> finished) const { |
|||
LOG_CRITICAL(Service_Fatal, "Application requested error display: {:04}-{:04} (raw={:08X})", |
|||
static_cast<u32>(error.module.Value()), error.description.Value(), error.raw); |
|||
} |
|||
|
|||
void DefaultErrorApplet::ShowErrorWithTimestamp(ResultCode error, std::chrono::seconds time, |
|||
std::function<void()> finished) const { |
|||
LOG_CRITICAL( |
|||
Service_Fatal, |
|||
"Application requested error display: {:04X}-{:04X} (raw={:08X}) with timestamp={:016X}", |
|||
static_cast<u32>(error.module.Value()), error.description.Value(), error.raw, time.count()); |
|||
} |
|||
|
|||
void DefaultErrorApplet::ShowCustomErrorText(ResultCode error, std::string main_text, |
|||
std::string detail_text, |
|||
std::function<void()> finished) const { |
|||
LOG_CRITICAL(Service_Fatal, |
|||
"Application requested custom error with error_code={:04X}-{:04X} (raw={:08X})", |
|||
static_cast<u32>(error.module.Value()), error.description.Value(), error.raw); |
|||
LOG_CRITICAL(Service_Fatal, " Main Text: {}", main_text); |
|||
LOG_CRITICAL(Service_Fatal, " Detail Text: {}", detail_text); |
|||
} |
|||
|
|||
} // namespace Core::Frontend
|
|||
@ -0,0 +1,37 @@ |
|||
// Copyright 2019 yuzu emulator team |
|||
// Licensed under GPLv2 or any later version |
|||
// Refer to the license.txt file included. |
|||
|
|||
#pragma once |
|||
|
|||
#include <chrono> |
|||
#include <functional> |
|||
|
|||
#include "core/hle/result.h" |
|||
|
|||
namespace Core::Frontend { |
|||
|
|||
class ErrorApplet { |
|||
public: |
|||
virtual ~ErrorApplet(); |
|||
|
|||
virtual void ShowError(ResultCode error, std::function<void()> finished) const = 0; |
|||
|
|||
virtual void ShowErrorWithTimestamp(ResultCode error, std::chrono::seconds time, |
|||
std::function<void()> finished) const = 0; |
|||
|
|||
virtual void ShowCustomErrorText(ResultCode error, std::string dialog_text, |
|||
std::string fullscreen_text, |
|||
std::function<void()> finished) const = 0; |
|||
}; |
|||
|
|||
class DefaultErrorApplet final : public ErrorApplet { |
|||
public: |
|||
void ShowError(ResultCode error, std::function<void()> finished) const override; |
|||
void ShowErrorWithTimestamp(ResultCode error, std::chrono::seconds time, |
|||
std::function<void()> finished) const override; |
|||
void ShowCustomErrorText(ResultCode error, std::string main_text, std::string detail_text, |
|||
std::function<void()> finished) const override; |
|||
}; |
|||
|
|||
} // namespace Core::Frontend |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue