wut/include/nn/nfp/amiibo_settings_cpp.h
GaryOderNichts 2c98cc91aa
Some checks failed
C/C++ CI / ubuntu-latest (push) Has been cancelled
Run clang-format
`find . -regex '.*\.\(cpp\|hpp\|cu\|cuh\|c\|h\)' -exec clang-format -style=file -i {} \;`
2025-06-05 11:06:04 +01:00

157 lines
4.2 KiB
C++

#pragma once
#include <wut.h>
#include <nn/nfp/nfp_cpp.h>
#include <sysapp/args.h>
/**
* \defgroup nn_nfp Amiibo Settings
* \ingroup nn_nfp
* Amiibo Settings applet related functionality (see nn::nfp)
* @{
*/
#ifdef __cplusplus
namespace nn
{
namespace nfp
{
enum class AmiiboSettingsMode : uint32_t
{
//! Open the Mii and Name register menu
Register = 0,
//! Open the "Delete Game Data" menu
DeleteGameData = 1,
//! Open the "Restore" menu
Restore = 2,
};
WUT_CHECK_SIZE(AmiiboSettingsMode, 0x4);
struct AmiiboSettingsArgsIn
{
//! The mode in which the amiibo settings should be opened
AmiiboSettingsMode mode;
TagInfo tag_info;
//! Set to \c true if the tag is already registered
bool is_registered;
//! padding bytes, must be set to 0
uint8_t padding[3];
RegisterInfo register_info;
CommonInfo common_info;
//! reserved bytes, must be set to 0
uint8_t reserved[0x20];
};
WUT_CHECK_OFFSET(AmiiboSettingsArgsIn, 0x0, mode);
WUT_CHECK_OFFSET(AmiiboSettingsArgsIn, 0x4, tag_info);
WUT_CHECK_OFFSET(AmiiboSettingsArgsIn, 0x58, is_registered);
WUT_CHECK_OFFSET(AmiiboSettingsArgsIn, 0x59, padding);
WUT_CHECK_OFFSET(AmiiboSettingsArgsIn, 0x5C, register_info);
WUT_CHECK_OFFSET(AmiiboSettingsArgsIn, 0x104, common_info);
WUT_CHECK_OFFSET(AmiiboSettingsArgsIn, 0x144, reserved);
WUT_CHECK_SIZE(AmiiboSettingsArgsIn, 0x164);
struct AmiiboSettingsArgs
{
SYSStandardArgs standardArgs;
AmiiboSettingsArgsIn argsIn;
};
WUT_CHECK_OFFSET(AmiiboSettingsArgs, 0x0, standardArgs);
WUT_CHECK_OFFSET(AmiiboSettingsArgs, 0x10, argsIn);
WUT_CHECK_SIZE(AmiiboSettingsArgs, 0x174);
struct AmiiboSettingsResult
{
//! Result (0 on success)
int32_t result;
TagInfo tag_info;
RegisterInfo register_info;
CommonInfo common_info;
//! reserved bytes
uint8_t reserved[0x20];
};
WUT_CHECK_OFFSET(AmiiboSettingsResult, 0x0, result);
WUT_CHECK_OFFSET(AmiiboSettingsResult, 0x4, tag_info);
WUT_CHECK_OFFSET(AmiiboSettingsResult, 0x58, register_info);
WUT_CHECK_OFFSET(AmiiboSettingsResult, 0x100, common_info);
WUT_CHECK_OFFSET(AmiiboSettingsResult, 0x140, reserved);
WUT_CHECK_SIZE(AmiiboSettingsResult, 0x160);
/**
* Initializes a \c AmiiboSettingsArgsIn struct.
*
* \param args
* The args which should be initialized.
*/
nn::Result
InitializeAmiiboSettingsArgsIn(AmiiboSettingsArgsIn *args)
asm("InitializeAmiiboSettingsArgsIn__Q2_2nn3nfpFPQ3_2nn3nfp20AmiiboSettingsArgsIn");
/**
* Switches to the amiibo settings applet.
*
* \param args
* The args passed to the amiibo settings.
*
* \param standardArg
* Optional standard args which will be serialized.
*
* \param standardArgSize
* The size of the standard args.
*/
nn::Result
SwitchToAmiiboSettings(const AmiiboSettingsArgsIn &args, const char *standardArg, uint32_t standardArgSize)
asm("SwitchToAmiiboSettings__Q2_2nn3nfpFRCQ3_2nn3nfp20AmiiboSettingsArgsInPCcUi");
/**
* Switches to the amiibo settings applet.
*
* \param args
* The args passed to the amiibo settings.
*/
nn::Result
SwitchToAmiiboSettings(const AmiiboSettingsArgsIn &args)
asm("SwitchToAmiiboSettings__Q2_2nn3nfpFRCQ3_2nn3nfp20AmiiboSettingsArgsIn");
/**
* Gets the amiibo settings result from a SYSArgs data block.
*
* \param outResult
* A pointer to which the result should be written to.
*
* \param block
* An argument data block read from \link SYSGetArguments \endlink with \link SYS_ARG_ID_RESULT \endlink.
*/
nn::Result
GetAmiiboSettingsResult(AmiiboSettingsResult *outResult, const SYSArgDataBlock &block)
asm("GetAmiiboSettingsResult__Q2_2nn3nfpFPQ3_2nn3nfp20AmiiboSettingsResultRC15SysArgDataBlock");
/**
* Used by Amiibo Settings internally to return to the caller.
*
* \param result
* The result which will be passed to the arguments.
*/
nn::Result
ReturnToCallerWithAmiiboSettingsResult(const AmiiboSettingsResult &result)
asm("ReturnToCallerWithAmiiboSettingsResult__Q2_2nn3nfpFRCQ3_2nn3nfp20AmiiboSettingsResult");
/**
* Used by Amiibo Settings internally to get the arguments of the caller.
*
* \param outArgs
* A pointer to which the arguments will be written to.
*/
nn::Result
GetAmiiboSettingsArgs(AmiiboSettingsArgs *outArgs)
asm("GetAmiiboSettingsArgs__Q2_2nn3nfpFPQ3_2nn3nfp18AmiiboSettingsArgs");
} //namespace nfp
} //namespace nn
#endif
/** @} */