2019-03-12 00:36:36 +01:00
|
|
|
// Copyright 2019 yuzu emulator team
|
|
|
|
// Licensed under GPLv2 or any later version
|
|
|
|
// Refer to the license.txt file included.
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "core/hle/result.h"
|
|
|
|
#include "core/hle/service/am/applets/applets.h"
|
|
|
|
|
2019-07-11 06:53:55 +02:00
|
|
|
namespace Core {
|
|
|
|
class System;
|
|
|
|
}
|
|
|
|
|
2019-03-12 00:36:36 +01:00
|
|
|
namespace Service::AM::Applets {
|
|
|
|
|
|
|
|
enum class ErrorAppletMode : u8 {
|
|
|
|
ShowError = 0,
|
|
|
|
ShowSystemError = 1,
|
|
|
|
ShowApplicationError = 2,
|
|
|
|
ShowEula = 3,
|
|
|
|
ShowErrorPctl = 4,
|
|
|
|
ShowErrorRecord = 5,
|
|
|
|
ShowUpdateEula = 8,
|
|
|
|
};
|
|
|
|
|
|
|
|
class Error final : public Applet {
|
|
|
|
public:
|
2019-07-11 06:53:55 +02:00
|
|
|
explicit Error(Core::System& system_, const Core::Frontend::ErrorApplet& frontend_);
|
2019-03-12 00:36:36 +01:00
|
|
|
~Error() override;
|
|
|
|
|
|
|
|
void Initialize() override;
|
|
|
|
|
|
|
|
bool TransactionComplete() const override;
|
|
|
|
ResultCode GetStatus() const override;
|
|
|
|
void ExecuteInteractive() override;
|
|
|
|
void Execute() override;
|
|
|
|
|
|
|
|
void DisplayCompleted();
|
|
|
|
|
|
|
|
private:
|
2019-04-05 00:09:42 +02:00
|
|
|
union ErrorArguments;
|
|
|
|
|
2019-03-12 00:36:36 +01:00
|
|
|
const Core::Frontend::ErrorApplet& frontend;
|
|
|
|
ResultCode error_code = RESULT_SUCCESS;
|
2019-04-05 00:09:42 +02:00
|
|
|
ErrorAppletMode mode = ErrorAppletMode::ShowError;
|
2019-03-12 00:36:36 +01:00
|
|
|
std::unique_ptr<ErrorArguments> args;
|
|
|
|
|
2019-04-05 00:09:42 +02:00
|
|
|
bool complete = false;
|
2019-07-11 06:53:55 +02:00
|
|
|
Core::System& system;
|
2019-03-12 00:36:36 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
} // namespace Service::AM::Applets
|