hidsys: Added HidsysUniquePadId/HidsysUniquePadSerialNumber.

These are now used where needed. Various adjustments.
This commit is contained in:
yellows8 2020-11-23 21:18:13 -05:00 committed by fincs
parent 012e84d7bd
commit 215d62966e
No known key found for this signature in database
GPG Key ID: 62C7609ADA219C60
4 changed files with 176 additions and 169 deletions

View File

@ -6,6 +6,7 @@
#pragma once #pragma once
#include "../types.h" #include "../types.h"
#include "../services/hid.h" #include "../services/hid.h"
#include "../services/hidsys.h"
#include "../sf/service.h" #include "../sf/service.h"
/// HdlsDeviceInfo, for [7.0.0-8.1.0]. /// HdlsDeviceInfo, for [7.0.0-8.1.0].
@ -124,36 +125,36 @@ Service* hiddbgGetServiceSession(void);
/// Ignores subsequent home button presses. /// Ignores subsequent home button presses.
Result hiddbgDeactivateHomeButton(void); Result hiddbgDeactivateHomeButton(void);
/// Writes the input RGB colors to the spi-flash for the specified controller (offset 0x6050 size 0x6). See hidsys.h for UniquePadId. Only available with [3.0.0+]. /// Writes the input RGB colors to the spi-flash for the specified controller (offset 0x6050 size 0x6). Only available with [3.0.0+].
Result hiddbgUpdateControllerColor(u32 colorBody, u32 colorButtons, u64 UniquePadId); Result hiddbgUpdateControllerColor(u32 colorBody, u32 colorButtons, HidsysUniquePadId unique_pad_id);
/// Writes the input RGB colors followed by inval to the spi-flash for the specified controller (offset 0x6050 size 0xD). See hidsys.h for UniquePadId. Only available with [5.0.0+]. /// Writes the input RGB colors followed by inval to the spi-flash for the specified controller (offset 0x6050 size 0xD). Only available with [5.0.0+].
Result hiddbgUpdateDesignInfo(u32 colorBody, u32 colorButtons, u32 colorLeftGrip, u32 colorRightGrip, u8 inval, u64 UniquePadId); Result hiddbgUpdateDesignInfo(u32 colorBody, u32 colorButtons, u32 colorLeftGrip, u32 colorRightGrip, u8 inval, HidsysUniquePadId unique_pad_id);
/// Get the OperationEvent for the specified controller. See hidsys.h for UniquePadId. /// Get the OperationEvent for the specified controller.
/// The Event must be closed by the user once finished with it. /// The Event must be closed by the user once finished with it.
/// Only available with [6.0.0+]. /// Only available with [6.0.0+].
Result hiddbgAcquireOperationEventHandle(Event* out_event, bool autoclear, u64 UniquePadId); Result hiddbgAcquireOperationEventHandle(Event* out_event, bool autoclear, HidsysUniquePadId unique_pad_id);
/// Reads spi-flash for the specified controller. See hidsys.h for UniquePadId. /// Reads spi-flash for the specified controller.
/// This also uses \ref hiddbgAcquireOperationEventHandle to wait for the operation to finish, then \ref hiddbgGetOperationResult is used. /// This also uses \ref hiddbgAcquireOperationEventHandle to wait for the operation to finish, then \ref hiddbgGetOperationResult is used.
/// Only available with [6.0.0+]. /// Only available with [6.0.0+].
Result hiddbgReadSerialFlash(u32 offset, void* buffer, size_t size, u64 UniquePadId); Result hiddbgReadSerialFlash(u32 offset, void* buffer, size_t size, HidsysUniquePadId unique_pad_id);
/// Writes spi-flash for the specified controller. See hidsys.h for UniquePadId. /// Writes spi-flash for the specified controller.
/// buffer and tmem_size must be page-aligned. size is the actual transfer size. /// buffer and tmem_size must be page-aligned. size is the actual transfer size.
/// This also uses \ref hiddbgAcquireOperationEventHandle to wait for the operation to finish, then \ref hiddbgGetOperationResult is used. /// This also uses \ref hiddbgAcquireOperationEventHandle to wait for the operation to finish, then \ref hiddbgGetOperationResult is used.
/// Only available with [6.0.0+]. /// Only available with [6.0.0+].
Result hiddbgWriteSerialFlash(u32 offset, void* buffer, size_t tmem_size, size_t size, u64 UniquePadId); Result hiddbgWriteSerialFlash(u32 offset, void* buffer, size_t tmem_size, size_t size, HidsysUniquePadId unique_pad_id);
/// Get the Result for the Operation and handles cleanup, for the specified controller. See hidsys.h for UniquePadId. /// Get the Result for the Operation and handles cleanup, for the specified controller.
/// Only available with [6.0.0+]. /// Only available with [6.0.0+].
Result hiddbgGetOperationResult(u64 UniquePadId); Result hiddbgGetOperationResult(HidsysUniquePadId unique_pad_id);
/// Gets the internal DeviceType for the specified controller. See hidsys.h for UniquePadId. /// Gets the internal DeviceType for the specified controller.
/// Only available with [6.0.0+]. /// Only available with [6.0.0+].
/// Pre-9.0.0 the output is an u32, with [9.0.0+] it's an u8. /// Pre-9.0.0 the output is an u32, with [9.0.0+] it's an u8.
Result hiddbgGetUniquePadDeviceTypeSetInternal(u64 UniquePadId, u32 *out); Result hiddbgGetUniquePadDeviceTypeSetInternal(HidsysUniquePadId unique_pad_id, u32 *out);
/// Gets a list of AbstractedPadHandles, where AbstractedPadHandles is the output array with max entries = count. total_entries is total entries written to the output array. /// Gets a list of AbstractedPadHandles, where AbstractedPadHandles is the output array with max entries = count. total_entries is total entries written to the output array.
/// Only available with [5.0.0-8.1.0]. /// Only available with [5.0.0-8.1.0].

View File

@ -36,6 +36,16 @@ typedef enum {
HidcfgButtonConfig_Disabled = 22, ///< Disabled HidcfgButtonConfig_Disabled = 22, ///< Disabled
} HidcfgButtonConfig; } HidcfgButtonConfig;
/// UniquePadId for a controller.
typedef struct {
u64 id; ///< UniquePadId
} HidsysUniquePadId;
/// UniquePadSerialNumber
typedef struct {
char serial_number[0x10]; ///< SerialNumber
} HidsysUniquePadSerialNumber;
/// Mini Cycle struct for \ref HidsysNotificationLedPattern. /// Mini Cycle struct for \ref HidsysNotificationLedPattern.
typedef struct { typedef struct {
u8 ledIntensity; ///< Mini Cycle X LED Intensity. u8 ledIntensity; ///< Mini Cycle X LED Intensity.
@ -165,12 +175,12 @@ Result hidsysGetSupportedNpadStyleSetOfCallerApplet(u32 *out);
/** /**
* @brief Gets the UniquePadIds for the specified controller. * @brief Gets the UniquePadIds for the specified controller.
* @note Only available on [3.0.0+]. * @note Only available on [3.0.0+].
* @param id Controller ID. Must not be CONTROLLER_P1_AUTO. * @param[in] id \ref HidNpadIdType
* @param UniquePadIds Output array of UniquePadIds. * @param[out] unique_pad_ids Output array of \ref HidsysUniquePadId.
* @param Max number of entries for the UniquePadIds array. * @param[in] count Max number of entries for the unique_pad_ids array.
* @param total_entries Total output array entries. Optional, can be NULL. * @param[out] total_out Total output array entries. Optional, can be NULL.
*/ */
Result hidsysGetUniquePadsFromNpad(HidNpadIdType id, u64 *UniquePadIds, s32 count, s32 *total_entries); Result hidsysGetUniquePadsFromNpad(HidNpadIdType id, HidsysUniquePadId *unique_pad_ids, s32 count, s32 *total_out);
/** /**
* @brief EnableAppletToGetInput * @brief EnableAppletToGetInput
@ -180,140 +190,140 @@ Result hidsysEnableAppletToGetInput(bool enable);
/** /**
* @brief Gets a list of all UniquePadIds. * @brief Gets a list of all UniquePadIds.
* @param UniquePadIds Output array of UniquePadIds. * @param[out] unique_pad_ids Output array of \ref HidsysUniquePadId.
* @param Max number of entries for the UniquePadIds array. * @param[in] count Max number of entries for the unique_pad_ids array.
* @param total_entries Total output array entries. Optional, can be NULL. * @param[out] total_out Total output array entries. Optional, can be NULL.
*/ */
Result hidsysGetUniquePadIds(u64 *UniquePadIds, s32 count, s32 *total_entries); Result hidsysGetUniquePadIds(HidsysUniquePadId *unique_pad_ids, s32 count, s32 *total_out);
/** /**
* @brief Gets the unique pad's serial number. * @brief Gets the \ref HidsysUniquePadSerialNumber.
* @note Only available on [5.0.0+]. * @note Only available on [5.0.0+].
* @param UniquePadId UniquePadId for the controller. * @param[in] unique_pad_id \ref HidsysUniquePadId
* @param serial Pointer to output the serial to. (The buffer size needs to be at least 0x11 bytes) * @param[out] serial \ref HidsysUniquePadSerialNumber
*/ */
Result hidsysGetUniquePadSerialNumber(u64 UniquePadId, char *serial); Result hidsysGetUniquePadSerialNumber(HidsysUniquePadId unique_pad_id, HidsysUniquePadSerialNumber *serial);
/** /**
* @brief Sets the HOME-button notification LED pattern, for the specified controller. * @brief Sets the HOME-button notification LED pattern, for the specified controller.
* @note Generally this should only be used if \ref hidsysSetNotificationLedPatternWithTimeout is not usable. * @note Generally this should only be used if \ref hidsysSetNotificationLedPatternWithTimeout is not usable.
* @note Only available on [7.0.0+]. * @note Only available on [7.0.0+].
* @param pattern \ref HidsysNotificationLedPattern * @param[in] pattern \ref HidsysNotificationLedPattern
* @param UniquePadId UniquePadId for the controller. * @param[in] unique_pad_id \ref HidsysUniquePadId
*/ */
Result hidsysSetNotificationLedPattern(const HidsysNotificationLedPattern *pattern, u64 UniquePadId); Result hidsysSetNotificationLedPattern(const HidsysNotificationLedPattern *pattern, HidsysUniquePadId unique_pad_id);
/** /**
* @brief Sets the HOME-button notification LED pattern, for the specified controller. The LED will automatically be disabled once the specified timeout occurs. * @brief Sets the HOME-button notification LED pattern, for the specified controller. The LED will automatically be disabled once the specified timeout occurs.
* @note Only available on [9.0.0+], and with controllers which have the [9.0.0+] firmware installed. * @note Only available on [9.0.0+], and with controllers which have the [9.0.0+] firmware installed.
* @param[in] pattern \ref HidsysNotificationLedPattern * @param[in] pattern \ref HidsysNotificationLedPattern
* @param[in] UniquePadId UniquePadId for the controller. * @param[in] unique_pad_id \ref HidsysUniquePadId
* @param[in] timeout Timeout in nanoseconds. * @param[in] timeout Timeout in nanoseconds.
*/ */
Result hidsysSetNotificationLedPatternWithTimeout(const HidsysNotificationLedPattern *pattern, u64 UniquePadId, u64 timeout); Result hidsysSetNotificationLedPatternWithTimeout(const HidsysNotificationLedPattern *pattern, HidsysUniquePadId unique_pad_id, u64 timeout);
/** /**
* @brief IsButtonConfigSupported * @brief IsButtonConfigSupported
* @note Only available on [10.0.0+]. * @note Only available on [10.0.0+].
* @param[in] unique_pad_id UniquePadId for the controller. * @param[in] unique_pad_id \ref HidsysUniquePadId
* @param[out] out Output bool flag. * @param[out] out Output bool flag.
*/ */
Result hidsysIsButtonConfigSupported(u64 unique_pad_id, bool *out); Result hidsysIsButtonConfigSupported(HidsysUniquePadId unique_pad_id, bool *out);
/** /**
* @brief DeleteButtonConfig * @brief DeleteButtonConfig
* @note Only available on [10.0.0+]. * @note Only available on [10.0.0+].
* @param[in] unique_pad_id UniquePadId for the controller. * @param[in] unique_pad_id \ref HidsysUniquePadId
*/ */
Result hidsysDeleteButtonConfig(u64 unique_pad_id); Result hidsysDeleteButtonConfig(HidsysUniquePadId unique_pad_id);
/** /**
* @brief SetButtonConfigEnabled * @brief SetButtonConfigEnabled
* @note Only available on [10.0.0+]. * @note Only available on [10.0.0+].
* @param[in] unique_pad_id UniquePadId for the controller. * @param[in] unique_pad_id \ref HidsysUniquePadId
* @param[in] flag Input flag. * @param[in] flag Input flag.
*/ */
Result hidsysSetButtonConfigEnabled(u64 unique_pad_id, bool flag); Result hidsysSetButtonConfigEnabled(HidsysUniquePadId unique_pad_id, bool flag);
/** /**
* @brief IsButtonConfigEnabled * @brief IsButtonConfigEnabled
* @note Only available on [10.0.0+]. * @note Only available on [10.0.0+].
* @param[in] unique_pad_id UniquePadId for the controller. * @param[in] unique_pad_id \ref HidsysUniquePadId
* @param[out] out Output bool flag. * @param[out] out Output bool flag.
*/ */
Result hidsysIsButtonConfigEnabled(u64 unique_pad_id, bool *out); Result hidsysIsButtonConfigEnabled(HidsysUniquePadId unique_pad_id, bool *out);
/** /**
* @brief SetButtonConfigEmbedded * @brief SetButtonConfigEmbedded
* @note Only available on [10.0.0+]. * @note Only available on [10.0.0+].
* @param[in] unique_pad_id UniquePadId for the controller. * @param[in] unique_pad_id \ref HidsysUniquePadId
* @param[in] config \ref HidsysButtonConfigEmbedded * @param[in] config \ref HidsysButtonConfigEmbedded
*/ */
Result hidsysSetButtonConfigEmbedded(u64 unique_pad_id, const HidsysButtonConfigEmbedded *config); Result hidsysSetButtonConfigEmbedded(HidsysUniquePadId unique_pad_id, const HidsysButtonConfigEmbedded *config);
/** /**
* @brief SetButtonConfigFull * @brief SetButtonConfigFull
* @note Only available on [10.0.0+]. * @note Only available on [10.0.0+].
* @param[in] unique_pad_id UniquePadId for the controller. * @param[in] unique_pad_id \ref HidsysUniquePadId
* @param[in] config \ref HidsysButtonConfigFull * @param[in] config \ref HidsysButtonConfigFull
*/ */
Result hidsysSetButtonConfigFull(u64 unique_pad_id, const HidsysButtonConfigFull *config); Result hidsysSetButtonConfigFull(HidsysUniquePadId unique_pad_id, const HidsysButtonConfigFull *config);
/** /**
* @brief SetButtonConfigLeft * @brief SetButtonConfigLeft
* @note Only available on [10.0.0+]. * @note Only available on [10.0.0+].
* @param[in] unique_pad_id UniquePadId for the controller. * @param[in] unique_pad_id \ref HidsysUniquePadId
* @param[in] config \ref HidsysButtonConfigLeft * @param[in] config \ref HidsysButtonConfigLeft
*/ */
Result hidsysSetButtonConfigLeft(u64 unique_pad_id, const HidsysButtonConfigLeft *config); Result hidsysSetButtonConfigLeft(HidsysUniquePadId unique_pad_id, const HidsysButtonConfigLeft *config);
/** /**
* @brief SetButtonConfigRight * @brief SetButtonConfigRight
* @note Only available on [10.0.0+]. * @note Only available on [10.0.0+].
* @param[in] unique_pad_id UniquePadId for the controller. * @param[in] unique_pad_id \ref HidsysUniquePadId
* @param[in] config \ref HidsysButtonConfigRight * @param[in] config \ref HidsysButtonConfigRight
*/ */
Result hidsysSetButtonConfigRight(u64 unique_pad_id, const HidsysButtonConfigRight *config); Result hidsysSetButtonConfigRight(HidsysUniquePadId unique_pad_id, const HidsysButtonConfigRight *config);
/** /**
* @brief GetButtonConfigEmbedded * @brief GetButtonConfigEmbedded
* @note Only available on [10.0.0+]. * @note Only available on [10.0.0+].
* @param[in] unique_pad_id UniquePadId for the controller. * @param[in] unique_pad_id \ref HidsysUniquePadId
* @param[out] config \ref HidsysButtonConfigEmbedded * @param[out] config \ref HidsysButtonConfigEmbedded
*/ */
Result hidsysGetButtonConfigEmbedded(u64 unique_pad_id, HidsysButtonConfigEmbedded *config); Result hidsysGetButtonConfigEmbedded(HidsysUniquePadId unique_pad_id, HidsysButtonConfigEmbedded *config);
/** /**
* @brief GetButtonConfigFull * @brief GetButtonConfigFull
* @note Only available on [10.0.0+]. * @note Only available on [10.0.0+].
* @param[in] unique_pad_id UniquePadId for the controller. * @param[in] unique_pad_id \ref HidsysUniquePadId
* @param[out] config \ref HidsysButtonConfigFull * @param[out] config \ref HidsysButtonConfigFull
*/ */
Result hidsysGetButtonConfigFull(u64 unique_pad_id, HidsysButtonConfigFull *config); Result hidsysGetButtonConfigFull(HidsysUniquePadId unique_pad_id, HidsysButtonConfigFull *config);
/** /**
* @brief GetButtonConfigLeft * @brief GetButtonConfigLeft
* @note Only available on [10.0.0+]. * @note Only available on [10.0.0+].
* @param[in] unique_pad_id UniquePadId for the controller. * @param[in] unique_pad_id \ref HidsysUniquePadId
* @param[out] config \ref HidsysButtonConfigLeft * @param[out] config \ref HidsysButtonConfigLeft
*/ */
Result hidsysGetButtonConfigLeft(u64 unique_pad_id, HidsysButtonConfigLeft *config); Result hidsysGetButtonConfigLeft(HidsysUniquePadId unique_pad_id, HidsysButtonConfigLeft *config);
/** /**
* @brief GetButtonConfigRight * @brief GetButtonConfigRight
* @note Only available on [10.0.0+]. * @note Only available on [10.0.0+].
* @param[in] unique_pad_id UniquePadId for the controller. * @param[in] unique_pad_id \ref HidsysUniquePadId
* @param[out] config \ref HidsysButtonConfigRight * @param[out] config \ref HidsysButtonConfigRight
*/ */
Result hidsysGetButtonConfigRight(u64 unique_pad_id, HidsysButtonConfigRight *config); Result hidsysGetButtonConfigRight(HidsysUniquePadId unique_pad_id, HidsysButtonConfigRight *config);
/** /**
* @brief IsCustomButtonConfigSupported * @brief IsCustomButtonConfigSupported
* @note Only available on [10.0.0+]. * @note Only available on [10.0.0+].
* @param[in] unique_pad_id UniquePadId for the controller. * @param[in] unique_pad_id \ref HidsysUniquePadId
* @param[out] out Output bool flag. * @param[out] out Output bool flag.
*/ */
Result hidsysIsCustomButtonConfigSupported(u64 unique_pad_id, bool *out); Result hidsysIsCustomButtonConfigSupported(HidsysUniquePadId unique_pad_id, bool *out);
/** /**
* @brief IsDefaultButtonConfigEmbedded * @brief IsDefaultButtonConfigEmbedded
@ -474,18 +484,18 @@ Result hidsysDeleteButtonConfigStorageRight(s32 index);
/** /**
* @brief IsUsingCustomButtonConfig * @brief IsUsingCustomButtonConfig
* @note Only available on [10.0.0+]. * @note Only available on [10.0.0+].
* @param[in] unique_pad_id UniquePadId for the controller. * @param[in] unique_pad_id \ref HidsysUniquePadId
* @param[out] out Output bool flag. * @param[out] out Output bool flag.
*/ */
Result hidsysIsUsingCustomButtonConfig(u64 unique_pad_id, bool *out); Result hidsysIsUsingCustomButtonConfig(HidsysUniquePadId unique_pad_id, bool *out);
/** /**
* @brief IsAnyCustomButtonConfigEnabled * @brief IsAnyCustomButtonConfigEnabled
* @note Only available on [10.0.0+]. * @note Only available on [10.0.0+].
* @param[in] unique_pad_id UniquePadId for the controller. * @param[in] unique_pad_id \ref HidsysUniquePadId
* @param[out] out Output bool flag. * @param[out] out Output bool flag.
*/ */
Result hidsysIsAnyCustomButtonConfigEnabled(u64 unique_pad_id, bool *out); Result hidsysIsAnyCustomButtonConfigEnabled(HidsysUniquePadId unique_pad_id, bool *out);
/** /**
* @brief SetAllCustomButtonConfigEnabled * @brief SetAllCustomButtonConfigEnabled
@ -504,64 +514,64 @@ Result hidsysSetAllDefaultButtonConfig(void);
/** /**
* @brief SetHidButtonConfigEmbedded * @brief SetHidButtonConfigEmbedded
* @note Only available on [10.0.0+]. * @note Only available on [10.0.0+].
* @param[in] unique_pad_id UniquePadId for the controller. * @param[in] unique_pad_id \ref HidsysUniquePadId
* @param[in] config \ref HidcfgButtonConfigEmbedded * @param[in] config \ref HidcfgButtonConfigEmbedded
*/ */
Result hidsysSetHidButtonConfigEmbedded(u64 unique_pad_id, const HidcfgButtonConfigEmbedded *config); Result hidsysSetHidButtonConfigEmbedded(HidsysUniquePadId unique_pad_id, const HidcfgButtonConfigEmbedded *config);
/** /**
* @brief SetHidButtonConfigFull * @brief SetHidButtonConfigFull
* @note Only available on [10.0.0+]. * @note Only available on [10.0.0+].
* @param[in] unique_pad_id UniquePadId for the controller. * @param[in] unique_pad_id \ref HidsysUniquePadId
* @param[in] config \ref HidcfgButtonConfigFull * @param[in] config \ref HidcfgButtonConfigFull
*/ */
Result hidsysSetHidButtonConfigFull(u64 unique_pad_id, const HidcfgButtonConfigFull *config); Result hidsysSetHidButtonConfigFull(HidsysUniquePadId unique_pad_id, const HidcfgButtonConfigFull *config);
/** /**
* @brief SetHidButtonConfigLeft * @brief SetHidButtonConfigLeft
* @note Only available on [10.0.0+]. * @note Only available on [10.0.0+].
* @param[in] unique_pad_id UniquePadId for the controller. * @param[in] unique_pad_id \ref HidsysUniquePadId
* @param[in] config \ref HidcfgButtonConfigLeft * @param[in] config \ref HidcfgButtonConfigLeft
*/ */
Result hidsysSetHidButtonConfigLeft(u64 unique_pad_id, const HidcfgButtonConfigLeft *config); Result hidsysSetHidButtonConfigLeft(HidsysUniquePadId unique_pad_id, const HidcfgButtonConfigLeft *config);
/** /**
* @brief SetHidButtonConfigRight * @brief SetHidButtonConfigRight
* @note Only available on [10.0.0+]. * @note Only available on [10.0.0+].
* @param[in] unique_pad_id UniquePadId for the controller. * @param[in] unique_pad_id \ref HidsysUniquePadId
* @param[in] config \ref HidcfgButtonConfigRight * @param[in] config \ref HidcfgButtonConfigRight
*/ */
Result hidsysSetHidButtonConfigRight(u64 unique_pad_id, const HidcfgButtonConfigRight *config); Result hidsysSetHidButtonConfigRight(HidsysUniquePadId unique_pad_id, const HidcfgButtonConfigRight *config);
/** /**
* @brief GetHidButtonConfigEmbedded * @brief GetHidButtonConfigEmbedded
* @note Only available on [10.0.0+]. * @note Only available on [10.0.0+].
* @param[in] unique_pad_id UniquePadId for the controller. * @param[in] unique_pad_id \ref HidsysUniquePadId
* @param[out] config \ref HidcfgButtonConfigEmbedded * @param[out] config \ref HidcfgButtonConfigEmbedded
*/ */
Result hidsysGetHidButtonConfigEmbedded(u64 unique_pad_id, HidcfgButtonConfigEmbedded *config); Result hidsysGetHidButtonConfigEmbedded(HidsysUniquePadId unique_pad_id, HidcfgButtonConfigEmbedded *config);
/** /**
* @brief GetHidButtonConfigFull * @brief GetHidButtonConfigFull
* @note Only available on [10.0.0+]. * @note Only available on [10.0.0+].
* @param[in] unique_pad_id UniquePadId for the controller. * @param[in] unique_pad_id \ref HidsysUniquePadId
* @param[out] config \ref HidcfgButtonConfigFull * @param[out] config \ref HidcfgButtonConfigFull
*/ */
Result hidsysGetHidButtonConfigFull(u64 unique_pad_id, HidcfgButtonConfigFull *config); Result hidsysGetHidButtonConfigFull(HidsysUniquePadId unique_pad_id, HidcfgButtonConfigFull *config);
/** /**
* @brief GetHidButtonConfigLeft * @brief GetHidButtonConfigLeft
* @note Only available on [10.0.0+]. * @note Only available on [10.0.0+].
* @param[in] unique_pad_id UniquePadId for the controller. * @param[in] unique_pad_id \ref HidsysUniquePadId
* @param[out] config \ref HidcfgButtonConfigLeft * @param[out] config \ref HidcfgButtonConfigLeft
*/ */
Result hidsysGetHidButtonConfigLeft(u64 unique_pad_id, HidcfgButtonConfigLeft *config); Result hidsysGetHidButtonConfigLeft(HidsysUniquePadId unique_pad_id, HidcfgButtonConfigLeft *config);
/** /**
* @brief GetHidButtonConfigRight * @brief GetHidButtonConfigRight
* @note Only available on [10.0.0+]. * @note Only available on [10.0.0+].
* @param[in] unique_pad_id UniquePadId for the controller. * @param[in] unique_pad_id \ref HidsysUniquePadId
* @param[out] config \ref HidcfgButtonConfigRight * @param[out] config \ref HidcfgButtonConfigRight
*/ */
Result hidsysGetHidButtonConfigRight(u64 unique_pad_id, HidcfgButtonConfigRight *config); Result hidsysGetHidButtonConfigRight(HidsysUniquePadId unique_pad_id, HidcfgButtonConfigRight *config);

View File

@ -80,20 +80,20 @@ Result hiddbgDeactivateHomeButton(void) {
return _hiddbgCmdNoIO(110); return _hiddbgCmdNoIO(110);
} }
Result hiddbgUpdateControllerColor(u32 colorBody, u32 colorButtons, u64 UniquePadId) { Result hiddbgUpdateControllerColor(u32 colorBody, u32 colorButtons, HidsysUniquePadId unique_pad_id) {
if (hosversionBefore(3,0,0)) if (hosversionBefore(3,0,0))
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer); return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
const struct { const struct {
u32 colorBody; u32 colorBody;
u32 colorButtons; u32 colorButtons;
u64 UniquePadId; HidsysUniquePadId unique_pad_id;
} in = { colorBody, colorButtons, UniquePadId }; } in = { colorBody, colorButtons, unique_pad_id };
return serviceDispatchIn(&g_hiddbgSrv, 221, in); return serviceDispatchIn(&g_hiddbgSrv, 221, in);
} }
Result hiddbgUpdateDesignInfo(u32 colorBody, u32 colorButtons, u32 colorLeftGrip, u32 colorRightGrip, u8 inval, u64 UniquePadId) { Result hiddbgUpdateDesignInfo(u32 colorBody, u32 colorButtons, u32 colorLeftGrip, u32 colorRightGrip, u8 inval, HidsysUniquePadId unique_pad_id) {
if (hosversionBefore(5,0,0)) if (hosversionBefore(5,0,0))
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer); return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
@ -104,20 +104,20 @@ Result hiddbgUpdateDesignInfo(u32 colorBody, u32 colorButtons, u32 colorLeftGrip
u32 colorRightGrip; u32 colorRightGrip;
u8 inval; u8 inval;
u8 pad[7]; u8 pad[7];
u64 UniquePadId; HidsysUniquePadId unique_pad_id;
} in = { colorBody, colorButtons, colorLeftGrip, colorRightGrip, inval, {0}, UniquePadId }; } in = { colorBody, colorButtons, colorLeftGrip, colorRightGrip, inval, {0}, unique_pad_id };
return serviceDispatchIn(&g_hiddbgSrv, 224, in); return serviceDispatchIn(&g_hiddbgSrv, 224, in);
} }
Result hiddbgAcquireOperationEventHandle(Event* out_event, bool autoclear, u64 UniquePadId) { Result hiddbgAcquireOperationEventHandle(Event* out_event, bool autoclear, HidsysUniquePadId unique_pad_id) {
if (hosversionBefore(6,0,0)) if (hosversionBefore(6,0,0))
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer); return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
Handle tmp_handle = INVALID_HANDLE; Handle tmp_handle = INVALID_HANDLE;
Result rc = 0; Result rc = 0;
rc = serviceDispatchIn(&g_hiddbgSrv, 228, UniquePadId, rc = serviceDispatchIn(&g_hiddbgSrv, 228, unique_pad_id,
.out_handle_attrs = { SfOutHandleAttr_HipcCopy }, .out_handle_attrs = { SfOutHandleAttr_HipcCopy },
.out_handles = &tmp_handle, .out_handles = &tmp_handle,
); );
@ -125,13 +125,13 @@ Result hiddbgAcquireOperationEventHandle(Event* out_event, bool autoclear, u64 U
return rc; return rc;
} }
static Result _hiddbgReadSerialFlash(TransferMemory *tmem, u32 offset, u64 size, u64 UniquePadId) { static Result _hiddbgReadSerialFlash(TransferMemory *tmem, u32 offset, u64 size, HidsysUniquePadId unique_pad_id) {
const struct { const struct {
u32 offset; u32 offset;
u32 pad; u32 pad;
u64 size; u64 size;
u64 UniquePadId; HidsysUniquePadId unique_pad_id;
} in = { offset, 0, size, UniquePadId }; } in = { offset, 0, size, unique_pad_id };
return serviceDispatchIn(&g_hiddbgSrv, 229, in, return serviceDispatchIn(&g_hiddbgSrv, 229, in,
.in_num_handles = 1, .in_num_handles = 1,
@ -139,14 +139,14 @@ static Result _hiddbgReadSerialFlash(TransferMemory *tmem, u32 offset, u64 size,
); );
} }
static Result _hiddbgWriteSerialFlash(TransferMemory *tmem, u32 offset, u64 tmem_size, u64 size, u64 UniquePadId) { static Result _hiddbgWriteSerialFlash(TransferMemory *tmem, u32 offset, u64 tmem_size, u64 size, HidsysUniquePadId unique_pad_id) {
const struct { const struct {
u32 offset; u32 offset;
u32 pad; u32 pad;
u64 tmem_size; u64 tmem_size;
u64 size; u64 size;
u64 UniquePadId; HidsysUniquePadId unique_pad_id;
} in = { offset, 0, tmem_size, size, UniquePadId }; } in = { offset, 0, tmem_size, size, unique_pad_id };
return serviceDispatchIn(&g_hiddbgSrv, 230, in, return serviceDispatchIn(&g_hiddbgSrv, 230, in,
.in_num_handles = 1, .in_num_handles = 1,
@ -155,7 +155,7 @@ static Result _hiddbgWriteSerialFlash(TransferMemory *tmem, u32 offset, u64 tmem
} }
// sdk-nso doesn't use hiddbgAcquireOperationEventHandle/hiddbgGetOperationResult in the *SerialFlash impl, those are used seperately by the user. [9.0.0+] sdk-nso no longer exposes *SerialFlash and related functionality. // sdk-nso doesn't use hiddbgAcquireOperationEventHandle/hiddbgGetOperationResult in the *SerialFlash impl, those are used seperately by the user. [9.0.0+] sdk-nso no longer exposes *SerialFlash and related functionality.
Result hiddbgReadSerialFlash(u32 offset, void* buffer, size_t size, u64 UniquePadId) { Result hiddbgReadSerialFlash(u32 offset, void* buffer, size_t size, HidsysUniquePadId unique_pad_id) {
Result rc=0; Result rc=0;
Event tmpevent={0}; Event tmpevent={0};
TransferMemory tmem; TransferMemory tmem;
@ -167,17 +167,17 @@ Result hiddbgReadSerialFlash(u32 offset, void* buffer, size_t size, u64 UniquePa
rc = tmemCreate(&tmem, sizealign, Perm_Rw); rc = tmemCreate(&tmem, sizealign, Perm_Rw);
if (R_FAILED(rc)) return rc; if (R_FAILED(rc)) return rc;
rc = hiddbgAcquireOperationEventHandle(&tmpevent, true, UniquePadId); // *Must* be used before _hiddbgReadSerialFlash. rc = hiddbgAcquireOperationEventHandle(&tmpevent, true, unique_pad_id); // *Must* be used before _hiddbgReadSerialFlash.
if (R_SUCCEEDED(rc)) rc = _hiddbgReadSerialFlash(&tmem, offset, size, UniquePadId); if (R_SUCCEEDED(rc)) rc = _hiddbgReadSerialFlash(&tmem, offset, size, unique_pad_id);
if (R_SUCCEEDED(rc)) rc = eventWait(&tmpevent, UINT64_MAX); if (R_SUCCEEDED(rc)) rc = eventWait(&tmpevent, UINT64_MAX);
if (R_SUCCEEDED(rc)) rc = hiddbgGetOperationResult(UniquePadId); if (R_SUCCEEDED(rc)) rc = hiddbgGetOperationResult(unique_pad_id);
if (R_SUCCEEDED(rc)) memcpy(buffer, tmem.src_addr, size); if (R_SUCCEEDED(rc)) memcpy(buffer, tmem.src_addr, size);
eventClose(&tmpevent); eventClose(&tmpevent);
tmemClose(&tmem); tmemClose(&tmem);
return rc; return rc;
} }
Result hiddbgWriteSerialFlash(u32 offset, void* buffer, size_t tmem_size, size_t size, u64 UniquePadId) { Result hiddbgWriteSerialFlash(u32 offset, void* buffer, size_t tmem_size, size_t size, HidsysUniquePadId unique_pad_id) {
Result rc=0; Result rc=0;
Event tmpevent={0}; Event tmpevent={0};
TransferMemory tmem; TransferMemory tmem;
@ -188,27 +188,27 @@ Result hiddbgWriteSerialFlash(u32 offset, void* buffer, size_t tmem_size, size_t
rc = tmemCreateFromMemory(&tmem, buffer, tmem_size, Perm_R); rc = tmemCreateFromMemory(&tmem, buffer, tmem_size, Perm_R);
if (R_FAILED(rc)) return rc; if (R_FAILED(rc)) return rc;
rc = hiddbgAcquireOperationEventHandle(&tmpevent, true, UniquePadId); // *Must* be used before _hiddbgWriteSerialFlash. rc = hiddbgAcquireOperationEventHandle(&tmpevent, true, unique_pad_id); // *Must* be used before _hiddbgWriteSerialFlash.
if (R_SUCCEEDED(rc)) rc = _hiddbgWriteSerialFlash(&tmem, offset, tmem_size, size, UniquePadId); if (R_SUCCEEDED(rc)) rc = _hiddbgWriteSerialFlash(&tmem, offset, tmem_size, size, unique_pad_id);
if (R_SUCCEEDED(rc)) rc = eventWait(&tmpevent, UINT64_MAX); if (R_SUCCEEDED(rc)) rc = eventWait(&tmpevent, UINT64_MAX);
if (R_SUCCEEDED(rc)) rc = hiddbgGetOperationResult(UniquePadId); if (R_SUCCEEDED(rc)) rc = hiddbgGetOperationResult(unique_pad_id);
eventClose(&tmpevent); eventClose(&tmpevent);
tmemClose(&tmem); tmemClose(&tmem);
return rc; return rc;
} }
Result hiddbgGetOperationResult(u64 UniquePadId) { Result hiddbgGetOperationResult(HidsysUniquePadId unique_pad_id) {
if (hosversionBefore(6,0,0)) if (hosversionBefore(6,0,0))
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer); return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
return _hiddbgCmdInU64NoOut(UniquePadId, 231); return _hiddbgCmdInU64NoOut(unique_pad_id.id, 231);
} }
Result hiddbgGetUniquePadDeviceTypeSetInternal(u64 UniquePadId, u32 *out) { Result hiddbgGetUniquePadDeviceTypeSetInternal(HidsysUniquePadId unique_pad_id, u32 *out) {
if (hosversionBefore(6,0,0)) if (hosversionBefore(6,0,0))
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer); return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
u32 tmp=0; u32 tmp=0;
Result rc = serviceDispatchInOut(&g_hiddbgSrv, 234, UniquePadId, tmp); Result rc = serviceDispatchInOut(&g_hiddbgSrv, 234, unique_pad_id, tmp);
if (R_SUCCEEDED(rc) && out) { // Pre-9.0.0 output is an u32, with [9.0.0+] it's an u8. if (R_SUCCEEDED(rc) && out) { // Pre-9.0.0 output is an u32, with [9.0.0+] it's an u8.
if (hosversionBefore(9,0,0)) if (hosversionBefore(9,0,0))
*out = tmp; *out = tmp;

View File

@ -181,7 +181,7 @@ Result hidsysGetSupportedNpadStyleSetOfCallerApplet(u32 *out) {
return _hidsysGetMaskedSupportedNpadStyleSet(AppletResourceUserId, out); return _hidsysGetMaskedSupportedNpadStyleSet(AppletResourceUserId, out);
} }
Result hidsysGetUniquePadsFromNpad(HidNpadIdType id, u64 *UniquePadIds, s32 count, s32 *total_entries) { Result hidsysGetUniquePadsFromNpad(HidNpadIdType id, HidsysUniquePadId *unique_pad_ids, s32 count, s32 *total_out) {
if (hosversionBefore(3,0,0)) if (hosversionBefore(3,0,0))
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer); return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
@ -189,9 +189,9 @@ Result hidsysGetUniquePadsFromNpad(HidNpadIdType id, u64 *UniquePadIds, s32 coun
s64 out=0; s64 out=0;
Result rc = serviceDispatchInOut(&g_hidsysSrv, 321, tmp, out, Result rc = serviceDispatchInOut(&g_hidsysSrv, 321, tmp, out,
.buffer_attrs = { SfBufferAttr_HipcPointer | SfBufferAttr_Out }, .buffer_attrs = { SfBufferAttr_HipcPointer | SfBufferAttr_Out },
.buffers = { { UniquePadIds, count*sizeof(u64) } }, .buffers = { { unique_pad_ids, count*sizeof(HidsysUniquePadId) } },
); );
if (R_SUCCEEDED(rc) && total_entries) *total_entries = out; if (R_SUCCEEDED(rc) && total_out) *total_out = out;
return rc; return rc;
} }
@ -204,141 +204,137 @@ Result hidsysEnableAppletToGetInput(bool enable) {
return serviceDispatchIn(&g_hidsysSrv, 503, in); return serviceDispatchIn(&g_hidsysSrv, 503, in);
} }
Result hidsysGetUniquePadIds(u64 *UniquePadIds, s32 count, s32 *total_entries) { Result hidsysGetUniquePadIds(HidsysUniquePadId *unique_pad_ids, s32 count, s32 *total_out) {
s64 out=0; s64 out=0;
Result rc = serviceDispatchOut(&g_hidsysSrv, 703, out, Result rc = serviceDispatchOut(&g_hidsysSrv, 703, out,
.buffer_attrs = { SfBufferAttr_HipcPointer | SfBufferAttr_Out }, .buffer_attrs = { SfBufferAttr_HipcPointer | SfBufferAttr_Out },
.buffers = { { UniquePadIds, count*sizeof(u64) } }, .buffers = { { unique_pad_ids, count*sizeof(HidsysUniquePadId) } },
); );
if (R_SUCCEEDED(rc) && total_entries) *total_entries = out; if (R_SUCCEEDED(rc) && total_out) *total_out = out;
return rc; return rc;
} }
Result hidsysGetUniquePadSerialNumber(u64 UniquePadId, char *serial) { Result hidsysGetUniquePadSerialNumber(HidsysUniquePadId unique_pad_id, HidsysUniquePadSerialNumber *serial) {
if (hosversionBefore(5,0,0)) if (hosversionBefore(5,0,0))
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer); return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
char out[0x10]={0}; return serviceDispatchInOut(&g_hidsysSrv, 809, unique_pad_id, *serial);
if (serial) memset(serial, 0, 0x11);
Result rc = serviceDispatchInOut(&g_hidsysSrv, 809, UniquePadId, out);
if (R_SUCCEEDED(rc) && serial) memcpy(serial, out, 0x10);
return rc;
} }
Result hidsysSetNotificationLedPattern(const HidsysNotificationLedPattern *pattern, u64 UniquePadId) { Result hidsysSetNotificationLedPattern(const HidsysNotificationLedPattern *pattern, HidsysUniquePadId unique_pad_id) {
if (hosversionBefore(7,0,0)) if (hosversionBefore(7,0,0))
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer); return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
const struct { const struct {
HidsysNotificationLedPattern pattern; HidsysNotificationLedPattern pattern;
u64 UniquePadId; HidsysUniquePadId unique_pad_id;
} in = { *pattern, UniquePadId }; } in = { *pattern, unique_pad_id };
return serviceDispatchIn(&g_hidsysSrv, 830, in); return serviceDispatchIn(&g_hidsysSrv, 830, in);
} }
Result hidsysSetNotificationLedPatternWithTimeout(const HidsysNotificationLedPattern *pattern, u64 UniquePadId, u64 timeout) { Result hidsysSetNotificationLedPatternWithTimeout(const HidsysNotificationLedPattern *pattern, HidsysUniquePadId unique_pad_id, u64 timeout) {
if (hosversionBefore(9,0,0)) if (hosversionBefore(9,0,0))
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer); return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
const struct { const struct {
HidsysNotificationLedPattern pattern; HidsysNotificationLedPattern pattern;
u64 UniquePadId; HidsysUniquePadId unique_pad_id;
u64 timeout; u64 timeout;
} in = { *pattern, UniquePadId, timeout }; } in = { *pattern, unique_pad_id, timeout };
return serviceDispatchIn(&g_hidsysSrv, 831, in); return serviceDispatchIn(&g_hidsysSrv, 831, in);
} }
Result hidsysIsButtonConfigSupported(u64 unique_pad_id, bool *out) { Result hidsysIsButtonConfigSupported(HidsysUniquePadId unique_pad_id, bool *out) {
if (hosversionBefore(10,0,0)) if (hosversionBefore(10,0,0))
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer); return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
return _hidsysCmdInU64OutBool(unique_pad_id, out, 1200); return _hidsysCmdInU64OutBool(unique_pad_id.id, out, 1200);
} }
Result hidsysDeleteButtonConfig(u64 unique_pad_id) { Result hidsysDeleteButtonConfig(HidsysUniquePadId unique_pad_id) {
if (hosversionBefore(10,0,0)) if (hosversionBefore(10,0,0))
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer); return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
return _hidsysCmdInU64NoOut(unique_pad_id, 1201); return _hidsysCmdInU64NoOut(unique_pad_id.id, 1201);
} }
Result hidsysSetButtonConfigEnabled(u64 unique_pad_id, bool flag) { Result hidsysSetButtonConfigEnabled(HidsysUniquePadId unique_pad_id, bool flag) {
if (hosversionBefore(10,0,0)) if (hosversionBefore(10,0,0))
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer); return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
return _hidsysCmdInU64InBoolNoOut(unique_pad_id, flag, 1202); return _hidsysCmdInU64InBoolNoOut(unique_pad_id.id, flag, 1202);
} }
Result hidsysIsButtonConfigEnabled(u64 unique_pad_id, bool *out) { Result hidsysIsButtonConfigEnabled(HidsysUniquePadId unique_pad_id, bool *out) {
if (hosversionBefore(10,0,0)) if (hosversionBefore(10,0,0))
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer); return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
return _hidsysCmdInU64OutBool(unique_pad_id, out, 1203); return _hidsysCmdInU64OutBool(unique_pad_id.id, out, 1203);
} }
Result hidsysSetButtonConfigEmbedded(u64 unique_pad_id, const HidsysButtonConfigEmbedded *config) { Result hidsysSetButtonConfigEmbedded(HidsysUniquePadId unique_pad_id, const HidsysButtonConfigEmbedded *config) {
if (hosversionBefore(10,0,0)) if (hosversionBefore(10,0,0))
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer); return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
return _hidsysCmdInU64InBufNoOut(unique_pad_id, config, sizeof(*config), 1204); return _hidsysCmdInU64InBufNoOut(unique_pad_id.id, config, sizeof(*config), 1204);
} }
Result hidsysSetButtonConfigFull(u64 unique_pad_id, const HidsysButtonConfigFull *config) { Result hidsysSetButtonConfigFull(HidsysUniquePadId unique_pad_id, const HidsysButtonConfigFull *config) {
if (hosversionBefore(10,0,0)) if (hosversionBefore(10,0,0))
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer); return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
return _hidsysCmdInU64InBufNoOut(unique_pad_id, config, sizeof(*config), 1205); return _hidsysCmdInU64InBufNoOut(unique_pad_id.id, config, sizeof(*config), 1205);
} }
Result hidsysSetButtonConfigLeft(u64 unique_pad_id, const HidsysButtonConfigLeft *config) { Result hidsysSetButtonConfigLeft(HidsysUniquePadId unique_pad_id, const HidsysButtonConfigLeft *config) {
if (hosversionBefore(10,0,0)) if (hosversionBefore(10,0,0))
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer); return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
return _hidsysCmdInU64InBufNoOut(unique_pad_id, config, sizeof(*config), 1206); return _hidsysCmdInU64InBufNoOut(unique_pad_id.id, config, sizeof(*config), 1206);
} }
Result hidsysSetButtonConfigRight(u64 unique_pad_id, const HidsysButtonConfigRight *config) { Result hidsysSetButtonConfigRight(HidsysUniquePadId unique_pad_id, const HidsysButtonConfigRight *config) {
if (hosversionBefore(10,0,0)) if (hosversionBefore(10,0,0))
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer); return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
return _hidsysCmdInU64InBufNoOut(unique_pad_id, config, sizeof(*config), 1207); return _hidsysCmdInU64InBufNoOut(unique_pad_id.id, config, sizeof(*config), 1207);
} }
Result hidsysGetButtonConfigEmbedded(u64 unique_pad_id, HidsysButtonConfigEmbedded *config) { Result hidsysGetButtonConfigEmbedded(HidsysUniquePadId unique_pad_id, HidsysButtonConfigEmbedded *config) {
if (hosversionBefore(10,0,0)) if (hosversionBefore(10,0,0))
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer); return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
return _hidsysCmdInU64OutBuf(unique_pad_id, config, sizeof(*config), 1208); return _hidsysCmdInU64OutBuf(unique_pad_id.id, config, sizeof(*config), 1208);
} }
Result hidsysGetButtonConfigFull(u64 unique_pad_id, HidsysButtonConfigFull *config) { Result hidsysGetButtonConfigFull(HidsysUniquePadId unique_pad_id, HidsysButtonConfigFull *config) {
if (hosversionBefore(10,0,0)) if (hosversionBefore(10,0,0))
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer); return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
return _hidsysCmdInU64OutBuf(unique_pad_id, config, sizeof(*config), 1209); return _hidsysCmdInU64OutBuf(unique_pad_id.id, config, sizeof(*config), 1209);
} }
Result hidsysGetButtonConfigLeft(u64 unique_pad_id, HidsysButtonConfigLeft *config) { Result hidsysGetButtonConfigLeft(HidsysUniquePadId unique_pad_id, HidsysButtonConfigLeft *config) {
if (hosversionBefore(10,0,0)) if (hosversionBefore(10,0,0))
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer); return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
return _hidsysCmdInU64OutBuf(unique_pad_id, config, sizeof(*config), 1210); return _hidsysCmdInU64OutBuf(unique_pad_id.id, config, sizeof(*config), 1210);
} }
Result hidsysGetButtonConfigRight(u64 unique_pad_id, HidsysButtonConfigRight *config) { Result hidsysGetButtonConfigRight(HidsysUniquePadId unique_pad_id, HidsysButtonConfigRight *config) {
if (hosversionBefore(10,0,0)) if (hosversionBefore(10,0,0))
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer); return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
return _hidsysCmdInU64OutBuf(unique_pad_id, config, sizeof(*config), 1211); return _hidsysCmdInU64OutBuf(unique_pad_id.id, config, sizeof(*config), 1211);
} }
Result hidsysIsCustomButtonConfigSupported(u64 unique_pad_id, bool *out) { Result hidsysIsCustomButtonConfigSupported(HidsysUniquePadId unique_pad_id, bool *out) {
if (hosversionBefore(10,0,0)) if (hosversionBefore(10,0,0))
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer); return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
return _hidsysCmdInU64OutBool(unique_pad_id, out, 1250); return _hidsysCmdInU64OutBool(unique_pad_id.id, out, 1250);
} }
Result hidsysIsDefaultButtonConfigEmbedded(const HidcfgButtonConfigEmbedded *config, bool *out) { Result hidsysIsDefaultButtonConfigEmbedded(const HidcfgButtonConfigEmbedded *config, bool *out) {
@ -481,14 +477,14 @@ Result hidsysDeleteButtonConfigStorageRight(s32 index) {
return _hidsysCmdInU32NoOut((u32)index, 1270); return _hidsysCmdInU32NoOut((u32)index, 1270);
} }
Result hidsysIsUsingCustomButtonConfig(u64 unique_pad_id, bool *out) { Result hidsysIsUsingCustomButtonConfig(HidsysUniquePadId unique_pad_id, bool *out) {
if (hosversionBefore(10,0,0)) if (hosversionBefore(10,0,0))
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer); return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
return _hidsysCmdInU64OutBool(unique_pad_id, out, 1271); return _hidsysCmdInU64OutBool(unique_pad_id.id, out, 1271);
} }
Result hidsysIsAnyCustomButtonConfigEnabled(u64 unique_pad_id, bool *out) { Result hidsysIsAnyCustomButtonConfigEnabled(HidsysUniquePadId unique_pad_id, bool *out) {
if (hosversionBefore(10,0,0)) if (hosversionBefore(10,0,0))
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer); return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
@ -502,11 +498,11 @@ Result hidsysSetAllCustomButtonConfigEnabled(u64 AppletResourceUserId, bool flag
return _hidsysCmdInU64InBoolNoOut(AppletResourceUserId, flag, 1273); return _hidsysCmdInU64InBoolNoOut(AppletResourceUserId, flag, 1273);
} }
Result hidsysSetDefaultButtonConfig(u64 unique_pad_id) { Result hidsysSetDefaultButtonConfig(HidsysUniquePadId unique_pad_id) {
if (hosversionBefore(10,0,0)) if (hosversionBefore(10,0,0))
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer); return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
return _hidsysCmdInU64NoOut(unique_pad_id, 1274); return _hidsysCmdInU64NoOut(unique_pad_id.id, 1274);
} }
Result hidsysSetAllDefaultButtonConfig(void) { Result hidsysSetAllDefaultButtonConfig(void) {
@ -516,59 +512,59 @@ Result hidsysSetAllDefaultButtonConfig(void) {
return _hidsysCmdNoIO(1275); return _hidsysCmdNoIO(1275);
} }
Result hidsysSetHidButtonConfigEmbedded(u64 unique_pad_id, const HidcfgButtonConfigEmbedded *config) { Result hidsysSetHidButtonConfigEmbedded(HidsysUniquePadId unique_pad_id, const HidcfgButtonConfigEmbedded *config) {
if (hosversionBefore(10,0,0)) if (hosversionBefore(10,0,0))
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer); return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
return _hidsysCmdInU64InBufNoOut(unique_pad_id, config, sizeof(*config), 1276); return _hidsysCmdInU64InBufNoOut(unique_pad_id.id, config, sizeof(*config), 1276);
} }
Result hidsysSetHidButtonConfigFull(u64 unique_pad_id, const HidcfgButtonConfigFull *config) { Result hidsysSetHidButtonConfigFull(HidsysUniquePadId unique_pad_id, const HidcfgButtonConfigFull *config) {
if (hosversionBefore(10,0,0)) if (hosversionBefore(10,0,0))
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer); return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
return _hidsysCmdInU64InBufNoOut(unique_pad_id, config, sizeof(*config), 1277); return _hidsysCmdInU64InBufNoOut(unique_pad_id.id, config, sizeof(*config), 1277);
} }
Result hidsysSetHidButtonConfigLeft(u64 unique_pad_id, const HidcfgButtonConfigLeft *config) { Result hidsysSetHidButtonConfigLeft(HidsysUniquePadId unique_pad_id, const HidcfgButtonConfigLeft *config) {
if (hosversionBefore(10,0,0)) if (hosversionBefore(10,0,0))
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer); return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
return _hidsysCmdInU64InBufNoOut(unique_pad_id, config, sizeof(*config), 1278); return _hidsysCmdInU64InBufNoOut(unique_pad_id.id, config, sizeof(*config), 1278);
} }
Result hidsysSetHidButtonConfigRight(u64 unique_pad_id, const HidcfgButtonConfigRight *config) { Result hidsysSetHidButtonConfigRight(HidsysUniquePadId unique_pad_id, const HidcfgButtonConfigRight *config) {
if (hosversionBefore(10,0,0)) if (hosversionBefore(10,0,0))
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer); return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
return _hidsysCmdInU64InBufNoOut(unique_pad_id, config, sizeof(*config), 1279); return _hidsysCmdInU64InBufNoOut(unique_pad_id.id, config, sizeof(*config), 1279);
} }
Result hidsysGetHidButtonConfigEmbedded(u64 unique_pad_id, HidcfgButtonConfigEmbedded *config) { Result hidsysGetHidButtonConfigEmbedded(HidsysUniquePadId unique_pad_id, HidcfgButtonConfigEmbedded *config) {
if (hosversionBefore(10,0,0)) if (hosversionBefore(10,0,0))
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer); return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
return _hidsysCmdInU64OutBuf(unique_pad_id, config, sizeof(*config), 1280); return _hidsysCmdInU64OutBuf(unique_pad_id.id, config, sizeof(*config), 1280);
} }
Result hidsysGetHidButtonConfigFull(u64 unique_pad_id, HidcfgButtonConfigFull *config) { Result hidsysGetHidButtonConfigFull(HidsysUniquePadId unique_pad_id, HidcfgButtonConfigFull *config) {
if (hosversionBefore(10,0,0)) if (hosversionBefore(10,0,0))
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer); return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
return _hidsysCmdInU64OutBuf(unique_pad_id, config, sizeof(*config), 1281); return _hidsysCmdInU64OutBuf(unique_pad_id.id, config, sizeof(*config), 1281);
} }
Result hidsysGetHidButtonConfigLeft(u64 unique_pad_id, HidcfgButtonConfigLeft *config) { Result hidsysGetHidButtonConfigLeft(HidsysUniquePadId unique_pad_id, HidcfgButtonConfigLeft *config) {
if (hosversionBefore(10,0,0)) if (hosversionBefore(10,0,0))
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer); return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
return _hidsysCmdInU64OutBuf(unique_pad_id, config, sizeof(*config), 1282); return _hidsysCmdInU64OutBuf(unique_pad_id.id, config, sizeof(*config), 1282);
} }
Result hidsysGetHidButtonConfigRight(u64 unique_pad_id, HidcfgButtonConfigRight *config) { Result hidsysGetHidButtonConfigRight(HidsysUniquePadId unique_pad_id, HidcfgButtonConfigRight *config) {
if (hosversionBefore(10,0,0)) if (hosversionBefore(10,0,0))
return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer); return MAKERESULT(Module_Libnx, LibnxError_IncompatSysVer);
return _hidsysCmdInU64OutBuf(unique_pad_id, config, sizeof(*config), 1283); return _hidsysCmdInU64OutBuf(unique_pad_id.id, config, sizeof(*config), 1283);
} }