ReXGlue SDK
Loading...
Searching...
No Matches
title_lifecycle.h
Go to the documentation of this file.
1
11
12#pragma once
13
14#include <filesystem>
15#include <memory>
16
19#include <rex/module.h>
20#include <rex/result.h>
21#include <rex/title.h>
22#include <rex/types.h>
23
24namespace rex {
25namespace filesystem {
26class IFileSystem;
28class IXDBFTitleData;
29} // namespace filesystem
30namespace hid {
31class IInputSystem;
32} // namespace hid
33namespace kernel {
34class ISystemHeap;
36class ITitleExit;
37class ITitleWorkspace;
38} // namespace kernel
39namespace ui {
40class IUISystem;
41} // namespace ui
42} // namespace rex
43
44namespace rex::xam {
45
47class IContentManager;
48
60
63 virtual ~IXAMTitleLifecycle() = default;
64
71 [[nodiscard]] virtual Result<void> AttachTitle(const XAMKernelInterfaces& title) = 0;
72
80 virtual void AttachSystems(rex::ui::IUISystem* ui, rex::hid::IInputSystem* input,
81 const VideoMode& video_mode) = 0;
82
83 virtual void SetTitleLanguage(rex::kernel::XLanguage language) = 0;
84
86 virtual void DetachSystems() = 0;
87
89 virtual void ShutdownSockets() = 0;
90
92 virtual void DestroyApps() = 0;
93
94 virtual void DetachTitle() = 0;
95};
96
98 virtual ~IXAMTitleServices() = default;
99
103 [[nodiscard]] virtual IContentManager& GetContentManager() = 0;
104
108 [[nodiscard]] virtual IAchievementManager& GetAchievementManager() = 0;
109
111 [[nodiscard]] virtual u32 GetTitleID() const = 0;
112
117 [[nodiscard]] virtual std::unique_ptr<filesystem::IXDBFTitleData> GetTitleXDBF() const = 0;
118};
119
120} // namespace rex::xam
Definition file_system_factory.h:31
Definition file_system.h:37
Definition xdbf.h:129
Definition input_system.h:54
Definition heap.h:80
Definition title_debug_output.h:18
Definition title_exit.h:26
Definition guest_allocator.h:155
Definition mapped_ptr.h:412
Definition ui_system.h:154
Definition achievement_manager.h:64
Definition content_manager.h:73
Definition title_lifecycle.h:62
Definition title_lifecycle.h:97
Content package and language IDs.
Interfaces, factory and module declaration.
#define REX_DECLARE_INTERFACE(Name, version)
Definition module.h:114
Definition export.h:24
Definition app.h:36
std::expected< T, Error > Result
Definition result.h:98
Definition title.h:26
Definition title_lifecycle.h:50
filesystem::IFileSystemFactory & file_system_factory
Definition title_lifecycle.h:56
std::filesystem::path user_data_root
Definition title_lifecycle.h:58
Integer types, byte order wrappers and size literals.