mirror of
https://github.com/switchbrew/libnx.git
synced 2025-06-21 12:32:40 +02:00
set: Replaced SetSysFlag/setsysGetFlag/setsysSetFlag with dedicated funcs for each flag, which also handles checking sysver now when needed. Fixed cmd order. Improved docs.
This commit is contained in:
parent
a489a123c2
commit
a14cd3a70c
@ -53,27 +53,6 @@ typedef enum {
|
|||||||
SetRegion_TWN = 6, ///< Taiwan
|
SetRegion_TWN = 6, ///< Taiwan
|
||||||
} SetRegion;
|
} SetRegion;
|
||||||
|
|
||||||
/// Command IDs for setsysGetFlag/setsysSetFlag.
|
|
||||||
typedef enum {
|
|
||||||
SetSysFlag_LockScreen = 7,
|
|
||||||
SetSysFlag_ConsoleInformationUpload = 25,
|
|
||||||
SetSysFlag_AutomaticApplicationDownload = 27,
|
|
||||||
SetSysFlag_Quest = 47,
|
|
||||||
SetSysFlag_Usb30Enable = 65,
|
|
||||||
SetSysFlag_NfcEnable = 69,
|
|
||||||
SetSysFlag_WirelessLanEnable = 73,
|
|
||||||
SetSysFlag_BluetoothEnable = 88,
|
|
||||||
SetSysFlag_AutoUpdateEnable = 95, ///< [2.0.0+]
|
|
||||||
SetSysFlag_BatteryPercentage = 99, ///< [2.0.0+]
|
|
||||||
SetSysFlag_ExternalRtcReset = 101, ///< [2.0.0+]
|
|
||||||
SetSysFlag_UsbFullKeyEnable = 103, ///< [3.0.0+]
|
|
||||||
SetSysFlag_BluetoothAfhEnable = 111, ///< [3.0.0+]
|
|
||||||
SetSysFlag_BluetoothBoostEnable = 113, ///< [3.0.0+]
|
|
||||||
SetSysFlag_InRepairProcessEnable = 115, ///< [3.0.0+]
|
|
||||||
SetSysFlag_HeadphoneVolumeUpdate = 117, ///< [3.0.0+]
|
|
||||||
SetSysFlag_RequiresRunRepairTimeReviser = 141, ///< [5.0.0+]
|
|
||||||
} SetSysFlag;
|
|
||||||
|
|
||||||
/// Structure returned by \ref setsysGetFirmwareVersion
|
/// Structure returned by \ref setsysGetFirmwareVersion
|
||||||
typedef struct {
|
typedef struct {
|
||||||
u8 major;
|
u8 major;
|
||||||
@ -90,8 +69,13 @@ typedef struct {
|
|||||||
char display_title[0x80];
|
char display_title[0x80];
|
||||||
} SetSysFirmwareVersion;
|
} SetSysFirmwareVersion;
|
||||||
|
|
||||||
|
/// Initialize set.
|
||||||
Result setInitialize(void);
|
Result setInitialize(void);
|
||||||
|
|
||||||
|
/// Exit set.
|
||||||
void setExit(void);
|
void setExit(void);
|
||||||
|
|
||||||
|
/// Gets the Service object for the actual set service session.
|
||||||
Service* setGetServiceSession(void);
|
Service* setGetServiceSession(void);
|
||||||
|
|
||||||
/// Converts LanguageCode to \ref SetLanguage.
|
/// Converts LanguageCode to \ref SetLanguage.
|
||||||
@ -119,16 +103,63 @@ Result setGetAvailableLanguageCodeCount(s32 *total);
|
|||||||
/// Gets the RegionCode.
|
/// Gets the RegionCode.
|
||||||
Result setGetRegionCode(SetRegion *out);
|
Result setGetRegionCode(SetRegion *out);
|
||||||
|
|
||||||
|
/// Initialize setsys.
|
||||||
Result setsysInitialize(void);
|
Result setsysInitialize(void);
|
||||||
|
|
||||||
|
/// Exit setsys.
|
||||||
void setsysExit(void);
|
void setsysExit(void);
|
||||||
|
|
||||||
|
/// Gets the Service object for the actual setsys service session.
|
||||||
Service* setsysGetServiceSession(void);
|
Service* setsysGetServiceSession(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Gets the system firmware version.
|
||||||
|
* @param[out] out Firmware version to populate.
|
||||||
|
*/
|
||||||
|
Result setsysGetFirmwareVersion(SetSysFirmwareVersion *out);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief GetLockScreenFlag
|
||||||
|
* @param[out] out Output flag.
|
||||||
|
*/
|
||||||
|
Result setsysGetLockScreenFlag(bool *out);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief SetLockScreenFlag
|
||||||
|
* @param[in] flag Input flag.
|
||||||
|
*/
|
||||||
|
Result setsysSetLockScreenFlag(bool flag);
|
||||||
|
|
||||||
/// Gets the current system theme.
|
/// Gets the current system theme.
|
||||||
Result setsysGetColorSetId(ColorSetId *out);
|
Result setsysGetColorSetId(ColorSetId *out);
|
||||||
|
|
||||||
/// Sets the current system theme.
|
/// Sets the current system theme.
|
||||||
Result setsysSetColorSetId(ColorSetId id);
|
Result setsysSetColorSetId(ColorSetId id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief GetConsoleInformationUploadFlag
|
||||||
|
* @param[out] out Output flag.
|
||||||
|
*/
|
||||||
|
Result setsysGetConsoleInformationUploadFlag(bool *out);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief SetConsoleInformationUploadFlag
|
||||||
|
* @param[in] flag Input flag.
|
||||||
|
*/
|
||||||
|
Result setsysSetConsoleInformationUploadFlag(bool flag);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief GetAutomaticApplicationDownloadFlag
|
||||||
|
* @param[out] out Output flag.
|
||||||
|
*/
|
||||||
|
Result setsysGetAutomaticApplicationDownloadFlag(bool *out);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief SetAutomaticApplicationDownloadFlag
|
||||||
|
* @param[in] flag Input flag.
|
||||||
|
*/
|
||||||
|
Result setsysSetAutomaticApplicationDownloadFlag(bool flag);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Gets the size of a settings item value.
|
* @brief Gets the size of a settings item value.
|
||||||
* @param name Name string.
|
* @param name Name string.
|
||||||
@ -147,6 +178,30 @@ Result setsysGetSettingsItemValueSize(const char *name, const char *item_key, u6
|
|||||||
*/
|
*/
|
||||||
Result setsysGetSettingsItemValue(const char *name, const char *item_key, void *value_out, size_t value_out_size, u64 *size_out);
|
Result setsysGetSettingsItemValue(const char *name, const char *item_key, void *value_out, size_t value_out_size, u64 *size_out);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief GetQuestFlag
|
||||||
|
* @param[out] out Output flag.
|
||||||
|
*/
|
||||||
|
Result setsysGetQuestFlag(bool *out);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief SetQuestFlag
|
||||||
|
* @param[in] flag Input flag.
|
||||||
|
*/
|
||||||
|
Result setsysSetQuestFlag(bool flag);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief GetUsb30EnableFlag
|
||||||
|
* @param[out] out Output flag.
|
||||||
|
*/
|
||||||
|
Result setsysGetUsb30EnableFlag(bool *out);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief SetUsb30EnableFlag
|
||||||
|
* @param[in] flag Input flag.
|
||||||
|
*/
|
||||||
|
Result setsysSetUsb30EnableFlag(bool flag);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Gets the system's serial number.
|
* @brief Gets the system's serial number.
|
||||||
* @param serial Pointer to output the serial to. (The buffer size needs to be at least 0x19 bytes)
|
* @param serial Pointer to output the serial to. (The buffer size needs to be at least 0x19 bytes)
|
||||||
@ -154,24 +209,52 @@ Result setsysGetSettingsItemValue(const char *name, const char *item_key, void *
|
|||||||
Result setsysGetSerialNumber(char *serial);
|
Result setsysGetSerialNumber(char *serial);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Gets the status of the specified settings flag.
|
* @brief GetNfcEnableFlag
|
||||||
* @param flag The specified settings flag.
|
* @param[out] out Output flag.
|
||||||
* @param out Output pointer for the status.
|
|
||||||
*/
|
*/
|
||||||
Result setsysGetFlag(SetSysFlag flag, bool *out);
|
Result setsysGetNfcEnableFlag(bool *out);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Enables/disables the specified settings flag.
|
* @brief SetNfcEnableFlag
|
||||||
* @param flag The specified settings flag.
|
* @param[in] flag Input flag.
|
||||||
* @param enable To enable/disable the flag.
|
|
||||||
*/
|
*/
|
||||||
Result setsysSetFlag(SetSysFlag flag, bool enable);
|
Result setsysSetNfcEnableFlag(bool flag);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Gets the system firmware version.
|
* @brief GetWirelessLanEnableFlag
|
||||||
* @param out Firmware version to populate.
|
* @param[out] out Output flag.
|
||||||
*/
|
*/
|
||||||
Result setsysGetFirmwareVersion(SetSysFirmwareVersion *out);
|
Result setsysGetWirelessLanEnableFlag(bool *out);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief SetWirelessLanEnableFlag
|
||||||
|
* @param[in] flag Input flag.
|
||||||
|
*/
|
||||||
|
Result setsysSetWirelessLanEnableFlag(bool flag);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Gets the system's nickname.
|
||||||
|
* @param nickname Pointer to output the nickname to. (The buffer size needs to be at least 0x80 bytes)
|
||||||
|
*/
|
||||||
|
Result setsysGetDeviceNickname(char* nickname);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Sets the system's nickname.
|
||||||
|
* @param nickname Pointer to read the nickname from.
|
||||||
|
*/
|
||||||
|
Result setsysSetDeviceNickname(const char* nickname);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief GetBluetoothEnableFlag
|
||||||
|
* @param[out] out Output flag.
|
||||||
|
*/
|
||||||
|
Result setsysGetBluetoothEnableFlag(bool *out);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief SetBluetoothEnableFlag
|
||||||
|
* @param[in] flag Input flag.
|
||||||
|
*/
|
||||||
|
Result setsysSetBluetoothEnableFlag(bool flag);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Gets an event that settings will signal on flag change.
|
* @brief Gets an event that settings will signal on flag change.
|
||||||
@ -187,13 +270,127 @@ Result setsysBindFatalDirtyFlagEvent(Event *out_event);
|
|||||||
Result setsysGetFatalDirtyFlags(u64 *flags_0, u64 *flags_1);
|
Result setsysGetFatalDirtyFlags(u64 *flags_0, u64 *flags_1);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Gets the system's nickname.
|
* @brief GetAutoUpdateEnableFlag
|
||||||
* @param nickname Pointer to output the nickname to. (The buffer size needs to be at least 0x80 bytes)
|
* @note Only available on [2.0.0+].
|
||||||
|
* @param[out] out Output flag.
|
||||||
*/
|
*/
|
||||||
Result setsysGetDeviceNickname(char* nickname);
|
Result setsysGetAutoUpdateEnableFlag(bool *out);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Sets the system's nickname.
|
* @brief SetAutoUpdateEnableFlag
|
||||||
* @param nickname Pointer to read the nickname from.
|
* @note Only available on [2.0.0+].
|
||||||
|
* @param[in] flag Input flag.
|
||||||
*/
|
*/
|
||||||
Result setsysSetDeviceNickname(const char* nickname);
|
Result setsysSetAutoUpdateEnableFlag(bool flag);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief GetBatteryPercentageFlag
|
||||||
|
* @note Only available on [2.0.0+].
|
||||||
|
* @param[out] out Output flag.
|
||||||
|
*/
|
||||||
|
Result setsysGetBatteryPercentageFlag(bool *out);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief SetBatteryPercentageFlag
|
||||||
|
* @note Only available on [2.0.0+].
|
||||||
|
* @param[in] flag Input flag.
|
||||||
|
*/
|
||||||
|
Result setsysSetBatteryPercentageFlag(bool flag);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief GetExternalRtcResetFlag
|
||||||
|
* @note Only available on [2.0.0+].
|
||||||
|
* @param[out] out Output flag.
|
||||||
|
*/
|
||||||
|
Result setsysGetExternalRtcResetFlag(bool *out);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief SetExternalRtcResetFlag
|
||||||
|
* @note Only available on [2.0.0+].
|
||||||
|
* @param[in] flag Input flag.
|
||||||
|
*/
|
||||||
|
Result setsysSetExternalRtcResetFlag(bool flag);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief GetUsbFullKeyEnableFlag
|
||||||
|
* @note Only available on [3.0.0+].
|
||||||
|
* @param[out] out Output flag.
|
||||||
|
*/
|
||||||
|
Result setsysGetUsbFullKeyEnableFlag(bool *out);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief SetUsbFullKeyEnableFlag
|
||||||
|
* @note Only available on [3.0.0+].
|
||||||
|
* @param[in] flag Input flag.
|
||||||
|
*/
|
||||||
|
Result setsysSetUsbFullKeyEnableFlag(bool flag);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief GetBluetoothAfhEnableFlag
|
||||||
|
* @note Only available on [3.0.0+].
|
||||||
|
* @param[out] out Output flag.
|
||||||
|
*/
|
||||||
|
Result setsysGetBluetoothAfhEnableFlag(bool *out);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief SetBluetoothAfhEnableFlag
|
||||||
|
* @note Only available on [3.0.0+].
|
||||||
|
* @param[in] flag Input flag.
|
||||||
|
*/
|
||||||
|
Result setsysSetBluetoothAfhEnableFlag(bool flag);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief GetBluetoothBoostEnableFlag
|
||||||
|
* @note Only available on [3.0.0+].
|
||||||
|
* @param[out] out Output flag.
|
||||||
|
*/
|
||||||
|
Result setsysGetBluetoothBoostEnableFlag(bool *out);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief SetBluetoothBoostEnableFlag
|
||||||
|
* @note Only available on [3.0.0+].
|
||||||
|
* @param[in] flag Input flag.
|
||||||
|
*/
|
||||||
|
Result setsysSetBluetoothBoostEnableFlag(bool flag);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief GetInRepairProcessEnableFlag
|
||||||
|
* @note Only available on [3.0.0+].
|
||||||
|
* @param[out] out Output flag.
|
||||||
|
*/
|
||||||
|
Result setsysGetInRepairProcessEnableFlag(bool *out);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief SetInRepairProcessEnableFlag
|
||||||
|
* @note Only available on [3.0.0+].
|
||||||
|
* @param[in] flag Input flag.
|
||||||
|
*/
|
||||||
|
Result setsysSetInRepairProcessEnableFlag(bool flag);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief GetHeadphoneVolumeUpdateFlag
|
||||||
|
* @note Only available on [3.0.0+].
|
||||||
|
* @param[out] out Output flag.
|
||||||
|
*/
|
||||||
|
Result setsysGetHeadphoneVolumeUpdateFlag(bool *out);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief SetHeadphoneVolumeUpdateFlag
|
||||||
|
* @note Only available on [3.0.0+].
|
||||||
|
* @param[in] flag Input flag.
|
||||||
|
*/
|
||||||
|
Result setsysSetHeadphoneVolumeUpdateFlag(bool flag);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief GetRequiresRunRepairTimeReviser
|
||||||
|
* @note Only available on [5.0.0+].
|
||||||
|
* @param[out] out Output flag.
|
||||||
|
*/
|
||||||
|
Result setsysGetRequiresRunRepairTimeReviser(bool *out);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief SetRequiresRunRepairTimeReviser
|
||||||
|
* @note Only available on [5.0.0+].
|
||||||
|
* @param[in] flag Input flag.
|
||||||
|
*/
|
||||||
|
Result setsysSetRequiresRunRepairTimeReviser(bool flag);
|
||||||
|
@ -186,6 +186,30 @@ Result setGetRegionCode(SetRegion *out) {
|
|||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static Result _setsysGetFirmwareVersionImpl(SetSysFirmwareVersion *out, u32 cmd_id) {
|
||||||
|
return serviceDispatch(&g_setsysSrv, cmd_id,
|
||||||
|
.buffer_attrs = { SfBufferAttr_FixedSize | SfBufferAttr_HipcPointer | SfBufferAttr_Out },
|
||||||
|
.buffers = { { out, sizeof(*out) } },
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Result setsysGetFirmwareVersion(SetSysFirmwareVersion *out) {
|
||||||
|
/* GetFirmwareVersion2 does exactly what GetFirmwareVersion does, except it doesn't zero the revision field. */
|
||||||
|
if (hosversionAtLeast(3,0,0)) {
|
||||||
|
return _setsysGetFirmwareVersionImpl(out, 4);
|
||||||
|
} else {
|
||||||
|
return _setsysGetFirmwareVersionImpl(out, 3);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Result setsysGetLockScreenFlag(bool *out) {
|
||||||
|
return _setCmdNoInOutBool(&g_setsysSrv, out, 7);
|
||||||
|
}
|
||||||
|
|
||||||
|
Result setsysSetLockScreenFlag(bool flag) {
|
||||||
|
return _setCmdInBoolNoOut(&g_setsysSrv, flag, 8);
|
||||||
|
}
|
||||||
|
|
||||||
Result setsysGetColorSetId(ColorSetId *out) {
|
Result setsysGetColorSetId(ColorSetId *out) {
|
||||||
u32 color_set=0;
|
u32 color_set=0;
|
||||||
Result rc = _setCmdNoInOutU32(&g_setsysSrv, &color_set, 23);
|
Result rc = _setCmdNoInOutU32(&g_setsysSrv, &color_set, 23);
|
||||||
@ -197,6 +221,22 @@ Result setsysSetColorSetId(ColorSetId id) {
|
|||||||
return _setCmdInU32NoOut(&g_setsysSrv, id, 24);
|
return _setCmdInU32NoOut(&g_setsysSrv, id, 24);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Result setsysGetConsoleInformationUploadFlag(bool *out) {
|
||||||
|
return _setCmdNoInOutBool(&g_setsysSrv, out, 25);
|
||||||
|
}
|
||||||
|
|
||||||
|
Result setsysSetConsoleInformationUploadFlag(bool flag) {
|
||||||
|
return _setCmdInBoolNoOut(&g_setsysSrv, flag, 26);
|
||||||
|
}
|
||||||
|
|
||||||
|
Result setsysGetAutomaticApplicationDownloadFlag(bool *out) {
|
||||||
|
return _setCmdNoInOutBool(&g_setsysSrv, out, 27);
|
||||||
|
}
|
||||||
|
|
||||||
|
Result setsysSetAutomaticApplicationDownloadFlag(bool flag) {
|
||||||
|
return _setCmdInBoolNoOut(&g_setsysSrv, flag, 28);
|
||||||
|
}
|
||||||
|
|
||||||
Result setsysGetSettingsItemValueSize(const char *name, const char *item_key, u64 *size_out) {
|
Result setsysGetSettingsItemValueSize(const char *name, const char *item_key, u64 *size_out) {
|
||||||
char send_name[SET_MAX_NAME_SIZE];
|
char send_name[SET_MAX_NAME_SIZE];
|
||||||
char send_item_key[SET_MAX_NAME_SIZE];
|
char send_item_key[SET_MAX_NAME_SIZE];
|
||||||
@ -241,6 +281,22 @@ Result setsysGetSettingsItemValue(const char *name, const char *item_key, void *
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Result setsysGetQuestFlag(bool *out) {
|
||||||
|
return _setCmdNoInOutBool(&g_setsysSrv, out, 47);
|
||||||
|
}
|
||||||
|
|
||||||
|
Result setsysSetQuestFlag(bool flag) {
|
||||||
|
return _setCmdInBoolNoOut(&g_setsysSrv, flag, 48);
|
||||||
|
}
|
||||||
|
|
||||||
|
Result setsysGetUsb30EnableFlag(bool *out) {
|
||||||
|
return _setCmdNoInOutBool(&g_setsysSrv, out, 65);
|
||||||
|
}
|
||||||
|
|
||||||
|
Result setsysSetUsb30EnableFlag(bool flag) {
|
||||||
|
return _setCmdInBoolNoOut(&g_setsysSrv, flag, 66);
|
||||||
|
}
|
||||||
|
|
||||||
Result setsysGetSerialNumber(char *serial) {
|
Result setsysGetSerialNumber(char *serial) {
|
||||||
char out[0x18]={0};
|
char out[0x18]={0};
|
||||||
|
|
||||||
@ -252,44 +308,20 @@ Result setsysGetSerialNumber(char *serial) {
|
|||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
Result setsysGetFlag(SetSysFlag flag, bool *out) {
|
Result setsysGetNfcEnableFlag(bool *out) {
|
||||||
return _setCmdNoInOutBool(&g_setsysSrv, out, flag);
|
return _setCmdNoInOutBool(&g_setsysSrv, out, 69);
|
||||||
}
|
}
|
||||||
|
|
||||||
Result setsysSetFlag(SetSysFlag flag, bool enable) {
|
Result setsysSetNfcEnableFlag(bool flag) {
|
||||||
return _setCmdInBoolNoOut(&g_setsysSrv, enable, flag + 1);
|
return _setCmdInBoolNoOut(&g_setsysSrv, flag, 70);
|
||||||
}
|
}
|
||||||
|
|
||||||
static Result _setsysGetFirmwareVersionImpl(SetSysFirmwareVersion *out, u32 cmd_id) {
|
Result setsysGetWirelessLanEnableFlag(bool *out) {
|
||||||
return serviceDispatch(&g_setsysSrv, cmd_id,
|
return _setCmdNoInOutBool(&g_setsysSrv, out, 73);
|
||||||
.buffer_attrs = { SfBufferAttr_FixedSize | SfBufferAttr_HipcPointer | SfBufferAttr_Out },
|
|
||||||
.buffers = { { out, sizeof(*out) } },
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Result setsysGetFirmwareVersion(SetSysFirmwareVersion *out) {
|
Result setsysSetWirelessLanEnableFlag(bool flag) {
|
||||||
/* GetFirmwareVersion2 does exactly what GetFirmwareVersion does, except it doesn't zero the revision field. */
|
return _setCmdInBoolNoOut(&g_setsysSrv, flag, 74);
|
||||||
if (hosversionAtLeast(3,0,0)) {
|
|
||||||
return _setsysGetFirmwareVersionImpl(out, 4);
|
|
||||||
} else {
|
|
||||||
return _setsysGetFirmwareVersionImpl(out, 3);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Result setsysBindFatalDirtyFlagEvent(Event *out_event) {
|
|
||||||
return _setCmdGetEvent(&g_setsysSrv, out_event, false, 93);
|
|
||||||
}
|
|
||||||
|
|
||||||
Result setsysGetFatalDirtyFlags(u64 *flags_0, u64 *flags_1) {
|
|
||||||
struct {
|
|
||||||
u64 flags_0;
|
|
||||||
u64 flags_1;
|
|
||||||
} out;
|
|
||||||
|
|
||||||
Result rc = serviceDispatchOut(&g_setsysSrv, 94, out);
|
|
||||||
if (R_SUCCEEDED(rc) && flags_0) *flags_0 = out.flags_0;
|
|
||||||
if (R_SUCCEEDED(rc) && flags_1) *flags_1 = out.flags_1;
|
|
||||||
return rc;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Result setsysGetDeviceNickname(char* nickname) {
|
Result setsysGetDeviceNickname(char* nickname) {
|
||||||
@ -308,3 +340,153 @@ Result setsysSetDeviceNickname(const char* nickname) {
|
|||||||
.buffers = { { send_nickname, SET_MAX_NICKNAME_SIZE } },
|
.buffers = { { send_nickname, SET_MAX_NICKNAME_SIZE } },
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Result setsysGetBluetoothEnableFlag(bool *out) {
|
||||||
|
return _setCmdNoInOutBool(&g_setsysSrv, out, 88);
|
||||||
|
}
|
||||||
|
|
||||||
|
Result setsysSetBluetoothEnableFlag(bool flag) {
|
||||||
|
return _setCmdInBoolNoOut(&g_setsysSrv, flag, 89);
|
||||||
|
}
|
||||||
|
|
||||||
|
Result setsysBindFatalDirtyFlagEvent(Event *out_event) {
|
||||||
|
return _setCmdGetEvent(&g_setsysSrv, out_event, false, 93);
|
||||||
|
}
|
||||||
|
|
||||||
|
Result setsysGetFatalDirtyFlags(u64 *flags_0, u64 *flags_1) {
|
||||||
|
struct {
|
||||||
|
u64 flags_0;
|
||||||
|
u64 flags_1;
|
||||||
|
} out;
|
||||||
|
|
||||||
|
Result rc = serviceDispatchOut(&g_setsysSrv, 94, out);
|
||||||
|
if (R_SUCCEEDED(rc) && flags_0) *flags_0 = out.flags_0;
|
||||||
|
if (R_SUCCEEDED(rc) && flags_1) *flags_1 = out.flags_1;
|
||||||
|
return rc;
|
||||||
|
}
|
||||||
|
|
||||||
|
Result setsysGetAutoUpdateEnableFlag(bool *out) {
|
||||||
|
if (hosversionBefore(2,0,0))
|
||||||
|
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
|
||||||
|
|
||||||
|
return _setCmdNoInOutBool(&g_setsysSrv, out, 95);
|
||||||
|
}
|
||||||
|
|
||||||
|
Result setsysSetAutoUpdateEnableFlag(bool flag) {
|
||||||
|
if (hosversionBefore(2,0,0))
|
||||||
|
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
|
||||||
|
|
||||||
|
return _setCmdInBoolNoOut(&g_setsysSrv, flag, 96);
|
||||||
|
}
|
||||||
|
|
||||||
|
Result setsysGetBatteryPercentageFlag(bool *out) {
|
||||||
|
if (hosversionBefore(2,0,0))
|
||||||
|
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
|
||||||
|
|
||||||
|
return _setCmdNoInOutBool(&g_setsysSrv, out, 99);
|
||||||
|
}
|
||||||
|
|
||||||
|
Result setsysSetBatteryPercentageFlag(bool flag) {
|
||||||
|
if (hosversionBefore(2,0,0))
|
||||||
|
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
|
||||||
|
|
||||||
|
return _setCmdInBoolNoOut(&g_setsysSrv, flag, 100);
|
||||||
|
}
|
||||||
|
|
||||||
|
Result setsysGetExternalRtcResetFlag(bool *out) {
|
||||||
|
if (hosversionBefore(2,0,0))
|
||||||
|
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
|
||||||
|
|
||||||
|
return _setCmdNoInOutBool(&g_setsysSrv, out, 101);
|
||||||
|
}
|
||||||
|
|
||||||
|
Result setsysSetExternalRtcResetFlag(bool flag) {
|
||||||
|
if (hosversionBefore(2,0,0))
|
||||||
|
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
|
||||||
|
|
||||||
|
return _setCmdInBoolNoOut(&g_setsysSrv, flag, 102);
|
||||||
|
}
|
||||||
|
|
||||||
|
Result setsysGetUsbFullKeyEnableFlag(bool *out) {
|
||||||
|
if (hosversionBefore(3,0,0))
|
||||||
|
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
|
||||||
|
|
||||||
|
return _setCmdNoInOutBool(&g_setsysSrv, out, 103);
|
||||||
|
}
|
||||||
|
|
||||||
|
Result setsysSetUsbFullKeyEnableFlag(bool flag) {
|
||||||
|
if (hosversionBefore(3,0,0))
|
||||||
|
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
|
||||||
|
|
||||||
|
return _setCmdInBoolNoOut(&g_setsysSrv, flag, 104);
|
||||||
|
}
|
||||||
|
|
||||||
|
Result setsysGetBluetoothAfhEnableFlag(bool *out) {
|
||||||
|
if (hosversionBefore(3,0,0))
|
||||||
|
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
|
||||||
|
|
||||||
|
return _setCmdNoInOutBool(&g_setsysSrv, out, 111);
|
||||||
|
}
|
||||||
|
|
||||||
|
Result setsysSetBluetoothAfhEnableFlag(bool flag) {
|
||||||
|
if (hosversionBefore(3,0,0))
|
||||||
|
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
|
||||||
|
|
||||||
|
return _setCmdInBoolNoOut(&g_setsysSrv, flag, 112);
|
||||||
|
}
|
||||||
|
|
||||||
|
Result setsysGetBluetoothBoostEnableFlag(bool *out) {
|
||||||
|
if (hosversionBefore(3,0,0))
|
||||||
|
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
|
||||||
|
|
||||||
|
return _setCmdNoInOutBool(&g_setsysSrv, out, 113);
|
||||||
|
}
|
||||||
|
|
||||||
|
Result setsysSetBluetoothBoostEnableFlag(bool flag) {
|
||||||
|
if (hosversionBefore(3,0,0))
|
||||||
|
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
|
||||||
|
|
||||||
|
return _setCmdInBoolNoOut(&g_setsysSrv, flag, 114);
|
||||||
|
}
|
||||||
|
|
||||||
|
Result setsysGetInRepairProcessEnableFlag(bool *out) {
|
||||||
|
if (hosversionBefore(3,0,0))
|
||||||
|
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
|
||||||
|
|
||||||
|
return _setCmdNoInOutBool(&g_setsysSrv, out, 115);
|
||||||
|
}
|
||||||
|
|
||||||
|
Result setsysSetInRepairProcessEnableFlag(bool flag) {
|
||||||
|
if (hosversionBefore(3,0,0))
|
||||||
|
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
|
||||||
|
|
||||||
|
return _setCmdInBoolNoOut(&g_setsysSrv, flag, 116);
|
||||||
|
}
|
||||||
|
|
||||||
|
Result setsysGetHeadphoneVolumeUpdateFlag(bool *out) {
|
||||||
|
if (hosversionBefore(3,0,0))
|
||||||
|
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
|
||||||
|
|
||||||
|
return _setCmdNoInOutBool(&g_setsysSrv, out, 117);
|
||||||
|
}
|
||||||
|
|
||||||
|
Result setsysSetHeadphoneVolumeUpdateFlag(bool flag) {
|
||||||
|
if (hosversionBefore(3,0,0))
|
||||||
|
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
|
||||||
|
|
||||||
|
return _setCmdInBoolNoOut(&g_setsysSrv, flag, 118);
|
||||||
|
}
|
||||||
|
|
||||||
|
Result setsysGetRequiresRunRepairTimeReviser(bool *out) {
|
||||||
|
if (hosversionBefore(5,0,0))
|
||||||
|
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
|
||||||
|
|
||||||
|
return _setCmdNoInOutBool(&g_setsysSrv, out, 141);
|
||||||
|
}
|
||||||
|
|
||||||
|
Result setsysSetRequiresRunRepairTimeReviser(bool flag) {
|
||||||
|
if (hosversionBefore(5,0,0))
|
||||||
|
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
|
||||||
|
|
||||||
|
return _setCmdInBoolNoOut(&g_setsysSrv, flag, 142);
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user