wut v1.9.1
Wii U Toolchain
Loading...
Searching...
No Matches
ITitleIconCacheDetails.h
Go to the documentation of this file.
1#pragma once
2
3#include <wut.h>
4#include <nn/result.h>
5#include <nn/sl/sl_cpp.h>
6
7#ifdef __cplusplus
8
9namespace nn::sl
10{
11class DataCreator;
12namespace details
13{
14class ITitleIconCacheBase;
16
17struct WUT_PACKED ITitleIconCacheInternal;
18
23
39WUT_CHECK_SIZE(ITitleIconCacheInternalVTable, 0x30);
40WUT_CHECK_OFFSET(ITitleIconCacheInternalVTable, 0x14, LoadFn);
41WUT_CHECK_OFFSET(ITitleIconCacheInternalVTable, 0x1c, UpdateFn);
42WUT_CHECK_OFFSET(ITitleIconCacheInternalVTable, 0x24, StoreFn);
43WUT_CHECK_OFFSET(ITitleIconCacheInternalVTable, 0x2C, GetFn);
44
49WUT_CHECK_SIZE(ITitleIconCacheInternal, 0x04);
50WUT_CHECK_OFFSET(ITitleIconCacheInternal, 0x00, vtable);
51
53{
54 friend class nn::sl::DataCreator;
55
56public:
58
59 virtual ~ITitleIconCacheBase() = default;
60
61 virtual nn::Result
62 Load() = 0;
63
64 virtual nn::Result
66
67 virtual nn::Result
68 Store() = 0;
69
70 virtual void
71 Get(nn::sl::IconInfo *iconInfos, int num) const = 0;
72
73private:
75 GetInternal() = 0;
76};
77
79{
80public:
82 mInstancePtr(ptr)
83 {
84 }
86 Load() override
87 {
88 if (!mInstancePtr) {
90 }
91 return mInstancePtr->vtable->LoadFn(mInstancePtr);
92 }
93
96 {
97 if (!mInstancePtr) {
99 }
100 return mInstancePtr->vtable->UpdateFn(mInstancePtr, titleInfos, num);
101 }
102
104 Store() override
105 {
106 if (!mInstancePtr) {
108 }
109 return mInstancePtr->vtable->StoreFn(mInstancePtr);
110 }
111
112 void
113 Get(nn::sl::IconInfo *iconInfos, int num) const override
114 {
115 if (!mInstancePtr) {
116 return;
117 }
118 mInstancePtr->vtable->GetFn(mInstancePtr, iconInfos, num);
119 }
120
121private:
123 GetInternal() override
124 {
125 return mInstancePtr;
126 }
127
129};
130} // namespace details
131
132
133} // namespace nn::sl
134
135#endif
Result value type used by nn libraries.
Definition result.h:70
@ LEVEL_FATAL
Definition result.h:75
@ RESULT_MODULE_NN_SL
Definition result.h:116
virtual nn::Result Update(nn::sl::TitleInfo *titleInfos, int num)=0
virtual void Get(nn::sl::IconInfo *iconInfos, int num) const =0
TitleIconCacheFromPtr(details::ITitleIconCacheInternal *ptr)
void Get(nn::sl::IconInfo *iconInfos, int num) const override
nn::Result Update(nn::sl::TitleInfo *titleInfos, int num) override
struct nn::sl::details::ITitleIconCacheInternal ITitleIconCacheInternal
void(* TitleIconCache_GetFn)(ITitleIconCacheInternal *, IconInfo *, int)
nn::Result(* TitleIconCache_UpdateFn)(ITitleIconCacheInternal *, TitleInfo *, int)
nn::Result(* TitleIconCache_LoadFn)(ITitleIconCacheInternal *)
nn::Result(* TitleIconCache_StoreFn)(ITitleIconCacheInternal *)