frontend: Add frontend receiver for Error applet
This commit is contained in:
parent
de3cfb1d37
commit
d9f6715d45
|
@ -88,6 +88,10 @@ add_library(core STATIC
|
||||||
file_sys/vfs_vector.h
|
file_sys/vfs_vector.h
|
||||||
file_sys/xts_archive.cpp
|
file_sys/xts_archive.cpp
|
||||||
file_sys/xts_archive.h
|
file_sys/xts_archive.h
|
||||||
|
frontend/applets/error.cpp
|
||||||
|
frontend/applets/error.h
|
||||||
|
frontend/applets/general_frontend.cpp
|
||||||
|
frontend/applets/general_frontend.h
|
||||||
frontend/applets/profile_select.cpp
|
frontend/applets/profile_select.cpp
|
||||||
frontend/applets/profile_select.h
|
frontend/applets/profile_select.h
|
||||||
frontend/applets/software_keyboard.cpp
|
frontend/applets/software_keyboard.cpp
|
||||||
|
@ -177,12 +181,14 @@ add_library(core STATIC
|
||||||
hle/service/am/applet_oe.h
|
hle/service/am/applet_oe.h
|
||||||
hle/service/am/applets/applets.cpp
|
hle/service/am/applets/applets.cpp
|
||||||
hle/service/am/applets/applets.h
|
hle/service/am/applets/applets.h
|
||||||
|
hle/service/am/applets/error.cpp
|
||||||
|
hle/service/am/applets/error.h
|
||||||
|
hle/service/am/applets/general_backend.cpp
|
||||||
|
hle/service/am/applets/general_backend.h
|
||||||
hle/service/am/applets/profile_select.cpp
|
hle/service/am/applets/profile_select.cpp
|
||||||
hle/service/am/applets/profile_select.h
|
hle/service/am/applets/profile_select.h
|
||||||
hle/service/am/applets/software_keyboard.cpp
|
hle/service/am/applets/software_keyboard.cpp
|
||||||
hle/service/am/applets/software_keyboard.h
|
hle/service/am/applets/software_keyboard.h
|
||||||
hle/service/am/applets/stub_applet.cpp
|
|
||||||
hle/service/am/applets/stub_applet.h
|
|
||||||
hle/service/am/applets/web_browser.cpp
|
hle/service/am/applets/web_browser.cpp
|
||||||
hle/service/am/applets/web_browser.h
|
hle/service/am/applets/web_browser.h
|
||||||
hle/service/am/idle.cpp
|
hle/service/am/idle.cpp
|
||||||
|
|
|
@ -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
|
Loading…
Reference in New Issue