mirror of
https://github.com/devkitPro/wut.git
synced 2026-04-18 23:37:16 -05:00
55 lines
1.7 KiB
C++
55 lines
1.7 KiB
C++
#pragma once
|
|
|
|
#include <nn/result.h>
|
|
#include <nn/sl/details/IPreferentialTitleAccessorDetails.h>
|
|
#include <wut.h>
|
|
|
|
#ifdef __cplusplus
|
|
|
|
namespace nn::sl {
|
|
class IPreferentialTitleAccessor : public details::IPreferentialTitleAccessorBase {
|
|
|
|
public:
|
|
IPreferentialTitleAccessor() {
|
|
InitInternalVtable();
|
|
}
|
|
|
|
IPreferentialTitleAccessor(IPreferentialTitleAccessor &src) {
|
|
InitInternalVtable();
|
|
}
|
|
|
|
IPreferentialTitleAccessor &operator=(const IPreferentialTitleAccessor &other) {
|
|
InitInternalVtable();
|
|
return *this;
|
|
}
|
|
|
|
IPreferentialTitleAccessor &operator=(IPreferentialTitleAccessor &&src) noexcept {
|
|
InitInternalVtable();
|
|
return *this;
|
|
}
|
|
|
|
~IPreferentialTitleAccessor() override = default;
|
|
|
|
private:
|
|
static nn::Result GetWrapper(details::IPreferentialTitleAccessorInternal *instance, TitleInfo *outTitleInfo, uint32_t *outTitleInfoSize, int maxTitleInfo, uint32_t u1) {
|
|
return instance->vtable->instance->Get(outTitleInfo, outTitleInfoSize, maxTitleInfo, u1);
|
|
}
|
|
|
|
details::IPreferentialTitleAccessorInternal *GetInternal() override {
|
|
return &mInstance;
|
|
}
|
|
|
|
void InitInternalVtable() {
|
|
mVTable = {.instance = this,
|
|
.GetFn = &GetWrapper};
|
|
mInstance.vtable = &mVTable;
|
|
}
|
|
|
|
details::IPreferentialTitleAccessorInternal mInstance{};
|
|
details::IPreferentialTitleAccessorInternalVTable mVTable{};
|
|
};
|
|
|
|
details::IPreferentialTitleAccessorBase &GetDefaultPreferentialTitleAccessor();
|
|
} // namespace nn::sl
|
|
|
|
#endif |