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