ReXGlue SDK
Toggle main menu visibility
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
17
#include <
rex/kernel/types/content.h
>
18
#include <
rex/memory/mapped_ptr.h
>
19
#include <
rex/module.h
>
20
#include <
rex/result.h
>
21
#include <
rex/title.h
>
22
#include <
rex/types.h
>
23
24
namespace
rex
{
25
namespace
filesystem {
26
class
IFileSystem
;
27
class
IFileSystemFactory
;
28
class
IXDBFTitleData
;
29
}
// namespace filesystem
30
namespace
hid {
31
class
IInputSystem
;
32
}
// namespace hid
33
namespace
kernel
{
34
class
ISystemHeap
;
35
class
ITitleDebugOutput
;
36
class
ITitleExit
;
37
class
ITitleWorkspace
;
38
}
// namespace kernel
39
namespace
ui {
40
class
IUISystem
;
41
}
// namespace ui
42
}
// namespace rex
43
44
namespace
rex::xam {
45
46
class
IAchievementManager
;
47
class
IContentManager
;
48
50
struct
XAMKernelInterfaces
{
51
kernel::ITitleExit
& exit;
52
kernel::ITitleDebugOutput
& debug;
53
kernel::ISystemHeap
& heap;
54
kernel::ITitleWorkspace
& workspace;
55
filesystem::IFileSystem
& file_system;
56
filesystem::IFileSystemFactory
&
file_system_factory
;
57
rex::memory::GuestMembase
membase;
58
std::filesystem::path
user_data_root
;
59
};
60
62
REX_DECLARE_INTERFACE
(
IXAMTitleLifecycle
, 2)
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
97
REX_DECLARE_INTERFACE
(
IXAMTitleServices
, 2)
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
rex::filesystem::IFileSystemFactory
Definition
file_system_factory.h:31
rex::filesystem::IFileSystem
Definition
file_system.h:37
rex::filesystem::IXDBFTitleData
Definition
xdbf.h:129
rex::hid::IInputSystem
Definition
input_system.h:54
rex::kernel::ISystemHeap
Definition
heap.h:80
rex::kernel::ITitleDebugOutput
Definition
title_debug_output.h:18
rex::kernel::ITitleExit
Definition
title_exit.h:26
rex::kernel::ITitleWorkspace
Definition
guest_allocator.h:155
rex::memory::GuestMembase
Definition
mapped_ptr.h:412
rex::ui::IUISystem
Definition
ui_system.h:154
rex::xam::IAchievementManager
Definition
achievement_manager.h:64
rex::xam::IContentManager
Definition
content_manager.h:73
rex::xam::IXAMTitleLifecycle
Definition
title_lifecycle.h:62
rex::xam::IXAMTitleServices
Definition
title_lifecycle.h:97
content.h
Content package and language IDs.
mapped_ptr.h
module.h
Interfaces, factory and module declaration.
REX_DECLARE_INTERFACE
#define REX_DECLARE_INTERFACE(Name, version)
Definition
module.h:114
rex::kernel
Definition
export.h:24
rex
Definition
app.h:36
rex::Result
std::expected< T, Error > Result
Definition
result.h:98
result.h
rex::VideoMode
Definition
title.h:26
rex::xam::XAMKernelInterfaces
Definition
title_lifecycle.h:50
rex::xam::XAMKernelInterfaces::file_system_factory
filesystem::IFileSystemFactory & file_system_factory
Definition
title_lifecycle.h:56
rex::xam::XAMKernelInterfaces::user_data_root
std::filesystem::path user_data_root
Definition
title_lifecycle.h:58
title.h
types.h
Integer types, byte order wrappers and size literals.
rex
xam
title_lifecycle.h
Generated by
1.18.0