summaryrefslogtreecommitdiffstats
path: root/src/core/hle/service/am/applets/applets.h
diff options
context:
space:
mode:
authorZach Hilman <zachhilman@gmail.com>2019-03-12 00:32:59 +0100
committerZach Hilman <zachhilman@gmail.com>2019-04-17 17:35:24 +0200
commite51d33f0cee74f9fbd58439b411e6d3fef57576d (patch)
tree1e7a76599d9d831ae71b719fd0da36f7bd64eab6 /src/core/hle/service/am/applets/applets.h
parentMerge pull request #2315 from ReinUsesLisp/severity-decompiler (diff)
downloadyuzu-e51d33f0cee74f9fbd58439b411e6d3fef57576d.tar
yuzu-e51d33f0cee74f9fbd58439b411e6d3fef57576d.tar.gz
yuzu-e51d33f0cee74f9fbd58439b411e6d3fef57576d.tar.bz2
yuzu-e51d33f0cee74f9fbd58439b411e6d3fef57576d.tar.lz
yuzu-e51d33f0cee74f9fbd58439b411e6d3fef57576d.tar.xz
yuzu-e51d33f0cee74f9fbd58439b411e6d3fef57576d.tar.zst
yuzu-e51d33f0cee74f9fbd58439b411e6d3fef57576d.zip
Diffstat (limited to '')
-rw-r--r--src/core/hle/service/am/applets/applets.h55
1 files changed, 55 insertions, 0 deletions
diff --git a/src/core/hle/service/am/applets/applets.h b/src/core/hle/service/am/applets/applets.h
index 37424c379..7f932672c 100644
--- a/src/core/hle/service/am/applets/applets.h
+++ b/src/core/hle/service/am/applets/applets.h
@@ -12,12 +12,43 @@
union ResultCode;
+namespace Core::Frontend {
+class ErrorApplet;
+class PhotoViewerApplet;
+class ProfileSelectApplet;
+class SoftwareKeyboardApplet;
+class WebBrowserApplet;
+} // namespace Core::Frontend
+
namespace Service::AM {
class IStorage;
namespace Applets {
+enum class AppletId : u32 {
+ OverlayDisplay = 0x02,
+ QLaunch = 0x03,
+ Starter = 0x04,
+ Auth = 0x0A,
+ Cabinet = 0x0B,
+ Controller = 0x0C,
+ DataErase = 0x0D,
+ Error = 0x0E,
+ NetConnect = 0x0F,
+ ProfileSelect = 0x10,
+ SoftwareKeyboard = 0x11,
+ MiiEdit = 0x12,
+ LibAppletWeb = 0x13,
+ LibAppletShop = 0x14,
+ PhotoViewer = 0x15,
+ Settings = 0x16,
+ LibAppletOff = 0x17,
+ LibAppletWhitelisted = 0x18,
+ LibAppletAuth = 0x19,
+ MyPage = 0x1A,
+};
+
class AppletDataBroker final {
public:
AppletDataBroker();
@@ -105,5 +136,29 @@ protected:
bool initialized = false;
};
+struct AppletFrontendSet {
+ std::unique_ptr<Core::Frontend::ErrorApplet> error;
+ std::unique_ptr<Core::Frontend::PhotoViewerApplet> photo_viewer;
+ std::unique_ptr<Core::Frontend::ProfileSelectApplet> profile_select;
+ std::unique_ptr<Core::Frontend::SoftwareKeyboardApplet> software_keyboard;
+ std::unique_ptr<Core::Frontend::WebBrowserApplet> web_browser;
+};
+
+class AppletManager {
+public:
+ AppletManager();
+ ~AppletManager();
+
+ void SetAppletFrontendSet(AppletFrontendSet set);
+ void SetDefaultAppletFrontendSet();
+ void SetDefaultAppletsIfMissing();
+ void ClearAll();
+
+ std::shared_ptr<Applet> GetApplet(AppletId id) const;
+
+private:
+ AppletFrontendSet frontend;
+};
+
} // namespace Applets
} // namespace Service::AM