mirror of
https://github.com/switchbrew/libnx.git
synced 2025-06-21 20:42:44 +02:00
568 lines
21 KiB
C
568 lines
21 KiB
C
/**
|
|
* @file hidsys.h
|
|
* @brief hid:sys service IPC wrapper.
|
|
* @author exelix, yellows8
|
|
*/
|
|
#pragma once
|
|
#include "../types.h"
|
|
#include "../kernel/event.h"
|
|
#include "../services/hid.h"
|
|
#include "../sf/service.h"
|
|
|
|
/// ButtonConfig. Selects what button to map to.
|
|
typedef enum {
|
|
HidcfgButtonConfig_A = 0, ///< A
|
|
HidcfgButtonConfig_B = 1, ///< B
|
|
HidcfgButtonConfig_X = 2, ///< X
|
|
HidcfgButtonConfig_Y = 3, ///< Y
|
|
HidcfgButtonConfig_LStick = 4, ///< Left Stick Button
|
|
HidcfgButtonConfig_RStick = 5, ///< Right Stick Button
|
|
HidcfgButtonConfig_L = 6, ///< L
|
|
HidcfgButtonConfig_R = 7, ///< R
|
|
HidcfgButtonConfig_ZL = 8, ///< ZL
|
|
HidcfgButtonConfig_ZR = 9, ///< ZR
|
|
HidcfgButtonConfig_Minus = 10, ///< Minus
|
|
HidcfgButtonConfig_Plus = 11, ///< Plus
|
|
HidcfgButtonConfig_DLeft = 12, ///< DLeft
|
|
HidcfgButtonConfig_DUp = 13, ///< DUp
|
|
HidcfgButtonConfig_DRight = 14, ///< DRight
|
|
HidcfgButtonConfig_DDown = 15, ///< DDown
|
|
HidcfgButtonConfig_SL_Left = 16, ///< SL on Left controller.
|
|
HidcfgButtonConfig_SR_Left = 17, ///< SR on Left controller.
|
|
HidcfgButtonConfig_SL_Right = 18, ///< SL on Right controller.
|
|
HidcfgButtonConfig_SR_Right = 19, ///< SR on Right controller.
|
|
HidcfgButtonConfig_HOME = 20, ///< HOME
|
|
HidcfgButtonConfig_Capture = 21, ///< Capture
|
|
HidcfgButtonConfig_Disabled = 22, ///< Disabled
|
|
} HidcfgButtonConfig;
|
|
|
|
/// Mini Cycle struct for \ref HidsysNotificationLedPattern.
|
|
typedef struct {
|
|
u8 ledIntensity; ///< Mini Cycle X LED Intensity.
|
|
u8 transitionSteps; ///< Fading Transition Steps to Mini Cycle X (Uses PWM). Value 0x0: Instant. Each step duration is based on HidsysNotificationLedPattern::baseMiniCycleDuration.
|
|
u8 finalStepDuration; ///< Final Step Duration Multiplier of Mini Cycle X. Value 0x0: 12.5ms, 0x1 - xF: 1x - 15x. Value is a Multiplier of HidsysNotificationLedPattern::baseMiniCycleDuration.
|
|
u8 pad;
|
|
} HidsysNotificationLedPatternCycle;
|
|
|
|
/// Structure for \ref hidsysSetNotificationLedPattern.
|
|
/// See also: https://switchbrew.org/wiki/HID_services#NotificationLedPattern
|
|
/// Only the low 4bits of each used byte in this struct is used.
|
|
typedef struct {
|
|
u8 baseMiniCycleDuration; ///< Mini Cycle Base Duration. Value 0x1-0xF: 12.5ms - 187.5ms. Value 0x0 = 0ms/OFF.
|
|
u8 totalMiniCycles; ///< Number of Mini Cycles + 1. Value 0x0-0xF: 1 - 16 mini cycles.
|
|
u8 totalFullCycles; ///< Number of Full Cycles. Value 0x1-0xF: 1 - 15 full cycles. Value 0x0 is repeat forever, but if baseMiniCycleDuration is set to 0x0, it does the 1st Mini Cycle with a 12.5ms step duration and then the LED stays on with startIntensity.
|
|
u8 startIntensity; ///< LED Start Intensity. Value 0x0=0% - 0xF=100%.
|
|
|
|
HidsysNotificationLedPatternCycle miniCycles[16]; ///< Mini Cycles
|
|
|
|
u8 unk_x44[0x2]; ///< Unknown
|
|
u8 pad_x46[0x2]; ///< Padding
|
|
} HidsysNotificationLedPattern;
|
|
|
|
/// ButtonConfigEmbedded
|
|
typedef struct {
|
|
u8 unk_x0[0x2C8];
|
|
} HidsysButtonConfigEmbedded;
|
|
|
|
/// ButtonConfigFull
|
|
typedef struct {
|
|
u8 unk_x0[0x2C8];
|
|
} HidsysButtonConfigFull;
|
|
|
|
/// ButtonConfigLeft
|
|
typedef struct {
|
|
u8 unk_x0[0x1C8];
|
|
} HidsysButtonConfigLeft;
|
|
|
|
/// ButtonConfigRight
|
|
typedef struct {
|
|
u8 unk_x0[0x1A0];
|
|
} HidsysButtonConfigRight;
|
|
|
|
/// JoystickConfig
|
|
typedef struct {
|
|
u32 unk_x0; ///< Orientation. 0 = default, 1 = enabled for Left, 2 = enabled for Right.
|
|
u8 stick_change; ///< StickChange
|
|
u8 pad[3]; ///< Padding
|
|
} HidcfgJoystickConfig;
|
|
|
|
/// ButtonConfigEmbedded
|
|
typedef struct {
|
|
u32 button_config[17]; ///< \ref HidcfgButtonConfig, for the following buttons: DLeft, DUp, DRight, DDown, A, B, X, Y, LStick, RStick, L, R, ZL, ZR, Minus, Plus, Capture.
|
|
HidcfgJoystickConfig joystick_config[2]; ///< \ref HidcfgJoystickConfig, for the left and right stick.
|
|
} HidcfgButtonConfigEmbedded;
|
|
|
|
/// ButtonConfigFull
|
|
typedef struct {
|
|
u32 button_config[17]; ///< \ref HidcfgButtonConfig, for the following buttons: DLeft, DUp, DRight, DDown, A, B, X, Y, LStick, RStick, L, R, ZL, ZR, Minus, Plus, Capture.
|
|
HidcfgJoystickConfig joystick_config[2]; ///< \ref HidcfgJoystickConfig, for the left and right stick.
|
|
} HidcfgButtonConfigFull;
|
|
|
|
/// ButtonConfigLeft
|
|
typedef struct {
|
|
u32 button_config[11]; ///< \ref HidcfgButtonConfig, for the following buttons: DLeft, DUp, DRight, DDown, LStick, L, ZL, Minus, SL_Left, SR_Left, Capture.
|
|
HidcfgJoystickConfig joystick_config; ///< \ref HidcfgJoystickConfig
|
|
} HidcfgButtonConfigLeft;
|
|
|
|
/// ButtonConfigRight
|
|
typedef struct {
|
|
u32 button_config[10]; ///< \ref HidcfgButtonConfig, for the following buttons: A, B, X, Y, RStick, R, ZR, Plus, SL_Right, SR_Right.
|
|
HidcfgJoystickConfig joystick_config; ///< \ref HidcfgJoystickConfig
|
|
} HidcfgButtonConfigRight;
|
|
|
|
/// Initialize hidsys.
|
|
Result hidsysInitialize(void);
|
|
|
|
/// Exit hidsys.
|
|
void hidsysExit(void);
|
|
|
|
/// Gets the Service object for the actual hidsys service session.
|
|
Service* hidsysGetServiceSession(void);
|
|
|
|
/**
|
|
* @brief Returns an event that fires when the home button is pressed, this will prevent the home menu from opening when the button is pressed.
|
|
* @note The Event must be closed by the user once finished with it.
|
|
* @param[out] out_event Output Event with autoclear=false.
|
|
**/
|
|
Result hidsysAcquireHomeButtonEventHandle(Event* out_event);
|
|
|
|
/**
|
|
* @brief Returns an event that fires when the sleep button is pressed.
|
|
* @note The Event must be closed by the user once finished with it.
|
|
* @param[out] out_event Output Event with autoclear=false.
|
|
**/
|
|
Result hidsysAcquireSleepButtonEventHandle(Event* out_event);
|
|
|
|
/**
|
|
* @brief Returns an event that fires when the capture button is pressed.
|
|
* @note The Event must be closed by the user once finished with it.
|
|
* @param[out] out_event Output Event with autoclear=false.
|
|
**/
|
|
Result hidsysAcquireCaptureButtonEventHandle(Event* out_event);
|
|
|
|
/**
|
|
* @brief ActivateHomeButton
|
|
**/
|
|
Result hidsysActivateHomeButton(void);
|
|
|
|
/**
|
|
* @brief ActivateSleepButton
|
|
**/
|
|
Result hidsysActivateSleepButton(void);
|
|
|
|
/**
|
|
* @brief ActivateCaptureButton
|
|
**/
|
|
Result hidsysActivateCaptureButton(void);
|
|
|
|
/**
|
|
* @brief Gets the SupportedNpadStyleSet for the CallerApplet. applet must be initialized in order to use this (uses \ref appletGetAppletResourceUserIdOfCallerApplet).
|
|
* @note Only available on [6.0.0+].
|
|
* @param[out] out \ref HidControllerType
|
|
*/
|
|
Result hidsysGetSupportedNpadStyleSetOfCallerApplet(HidControllerType *out);
|
|
|
|
/**
|
|
* @brief Gets the UniquePadIds for the specified controller.
|
|
* @note Only available on [3.0.0+].
|
|
* @param id Controller ID. Must not be CONTROLLER_P1_AUTO.
|
|
* @param UniquePadIds Output array of UniquePadIds.
|
|
* @param Max number of entries for the UniquePadIds array.
|
|
* @param total_entries Total output array entries. Optional, can be NULL.
|
|
*/
|
|
Result hidsysGetUniquePadsFromNpad(HidControllerID id, u64 *UniquePadIds, s32 count, s32 *total_entries);
|
|
|
|
/**
|
|
* @brief EnableAppletToGetInput
|
|
* @param[in] enable Input flag.
|
|
**/
|
|
Result hidsysEnableAppletToGetInput(bool enable);
|
|
|
|
/**
|
|
* @brief Gets a list of all UniquePadIds.
|
|
* @param UniquePadIds Output array of UniquePadIds.
|
|
* @param Max number of entries for the UniquePadIds array.
|
|
* @param total_entries Total output array entries. Optional, can be NULL.
|
|
*/
|
|
Result hidsysGetUniquePadIds(u64 *UniquePadIds, s32 count, s32 *total_entries);
|
|
|
|
/**
|
|
* @brief Gets the unique pad's serial number.
|
|
* @note Only available on [5.0.0+].
|
|
* @param UniquePadId UniquePadId for the controller.
|
|
* @param serial Pointer to output the serial to. (The buffer size needs to be at least 0x11 bytes)
|
|
*/
|
|
Result hidsysGetUniquePadSerialNumber(u64 UniquePadId, char *serial);
|
|
|
|
/**
|
|
* @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 Only available on [7.0.0+].
|
|
* @param pattern \ref HidsysNotificationLedPattern
|
|
* @param UniquePadId UniquePadId for the controller.
|
|
*/
|
|
Result hidsysSetNotificationLedPattern(const HidsysNotificationLedPattern *pattern, u64 UniquePadId);
|
|
|
|
/**
|
|
* @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.
|
|
* @param[in] pattern \ref HidsysNotificationLedPattern
|
|
* @param[in] UniquePadId UniquePadId for the controller.
|
|
* @param[in] timeout Timeout in nanoseconds.
|
|
*/
|
|
Result hidsysSetNotificationLedPatternWithTimeout(const HidsysNotificationLedPattern *pattern, u64 UniquePadId, u64 timeout);
|
|
|
|
/**
|
|
* @brief IsButtonConfigSupported
|
|
* @note Only available on [10.0.0+].
|
|
* @param[in] unique_pad_id UniquePadId for the controller.
|
|
* @param[out] out Output bool flag.
|
|
*/
|
|
Result hidsysIsButtonConfigSupported(u64 unique_pad_id, bool *out);
|
|
|
|
/**
|
|
* @brief DeleteButtonConfig
|
|
* @note Only available on [10.0.0+].
|
|
* @param[in] unique_pad_id UniquePadId for the controller.
|
|
*/
|
|
Result hidsysDeleteButtonConfig(u64 unique_pad_id);
|
|
|
|
/**
|
|
* @brief SetButtonConfigEnabled
|
|
* @note Only available on [10.0.0+].
|
|
* @param[in] unique_pad_id UniquePadId for the controller.
|
|
* @param[in] flag Input flag.
|
|
*/
|
|
Result hidsysSetButtonConfigEnabled(u64 unique_pad_id, bool flag);
|
|
|
|
/**
|
|
* @brief IsButtonConfigEnabled
|
|
* @note Only available on [10.0.0+].
|
|
* @param[in] unique_pad_id UniquePadId for the controller.
|
|
* @param[out] out Output bool flag.
|
|
*/
|
|
Result hidsysIsButtonConfigEnabled(u64 unique_pad_id, bool *out);
|
|
|
|
/**
|
|
* @brief SetButtonConfigEmbedded
|
|
* @note Only available on [10.0.0+].
|
|
* @param[in] unique_pad_id UniquePadId for the controller.
|
|
* @param[in] config \ref HidsysButtonConfigEmbedded
|
|
*/
|
|
Result hidsysSetButtonConfigEmbedded(u64 unique_pad_id, const HidsysButtonConfigEmbedded *config);
|
|
|
|
/**
|
|
* @brief SetButtonConfigFull
|
|
* @note Only available on [10.0.0+].
|
|
* @param[in] unique_pad_id UniquePadId for the controller.
|
|
* @param[in] config \ref HidsysButtonConfigFull
|
|
*/
|
|
Result hidsysSetButtonConfigFull(u64 unique_pad_id, const HidsysButtonConfigFull *config);
|
|
|
|
/**
|
|
* @brief SetButtonConfigLeft
|
|
* @note Only available on [10.0.0+].
|
|
* @param[in] unique_pad_id UniquePadId for the controller.
|
|
* @param[in] config \ref HidsysButtonConfigLeft
|
|
*/
|
|
Result hidsysSetButtonConfigLeft(u64 unique_pad_id, const HidsysButtonConfigLeft *config);
|
|
|
|
/**
|
|
* @brief SetButtonConfigRight
|
|
* @note Only available on [10.0.0+].
|
|
* @param[in] unique_pad_id UniquePadId for the controller.
|
|
* @param[in] config \ref HidsysButtonConfigRight
|
|
*/
|
|
Result hidsysSetButtonConfigRight(u64 unique_pad_id, const HidsysButtonConfigRight *config);
|
|
|
|
/**
|
|
* @brief GetButtonConfigEmbedded
|
|
* @note Only available on [10.0.0+].
|
|
* @param[in] unique_pad_id UniquePadId for the controller.
|
|
* @param[out] config \ref HidsysButtonConfigEmbedded
|
|
*/
|
|
Result hidsysGetButtonConfigEmbedded(u64 unique_pad_id, HidsysButtonConfigEmbedded *config);
|
|
|
|
/**
|
|
* @brief GetButtonConfigFull
|
|
* @note Only available on [10.0.0+].
|
|
* @param[in] unique_pad_id UniquePadId for the controller.
|
|
* @param[out] config \ref HidsysButtonConfigFull
|
|
*/
|
|
Result hidsysGetButtonConfigFull(u64 unique_pad_id, HidsysButtonConfigFull *config);
|
|
|
|
/**
|
|
* @brief GetButtonConfigLeft
|
|
* @note Only available on [10.0.0+].
|
|
* @param[in] unique_pad_id UniquePadId for the controller.
|
|
* @param[out] config \ref HidsysButtonConfigLeft
|
|
*/
|
|
Result hidsysGetButtonConfigLeft(u64 unique_pad_id, HidsysButtonConfigLeft *config);
|
|
|
|
/**
|
|
* @brief GetButtonConfigRight
|
|
* @note Only available on [10.0.0+].
|
|
* @param[in] unique_pad_id UniquePadId for the controller.
|
|
* @param[out] config \ref HidsysButtonConfigRight
|
|
*/
|
|
Result hidsysGetButtonConfigRight(u64 unique_pad_id, HidsysButtonConfigRight *config);
|
|
|
|
/**
|
|
* @brief IsCustomButtonConfigSupported
|
|
* @note Only available on [10.0.0+].
|
|
* @param[in] unique_pad_id UniquePadId for the controller.
|
|
* @param[out] out Output bool flag.
|
|
*/
|
|
Result hidsysIsCustomButtonConfigSupported(u64 unique_pad_id, bool *out);
|
|
|
|
/**
|
|
* @brief IsDefaultButtonConfigEmbedded
|
|
* @note Only available on [10.0.0+].
|
|
* @param[in] config \ref HidcfgButtonConfigEmbedded
|
|
* @param[out] out Output bool flag.
|
|
*/
|
|
Result hidsysIsDefaultButtonConfigEmbedded(const HidcfgButtonConfigEmbedded *config, bool *out);
|
|
|
|
/**
|
|
* @brief IsDefaultButtonConfigFull
|
|
* @note Only available on [10.0.0+].
|
|
* @param[in] config \ref HidcfgButtonConfigFull
|
|
* @param[out] out Output bool flag.
|
|
*/
|
|
Result hidsysIsDefaultButtonConfigFull(const HidcfgButtonConfigFull *config, bool *out);
|
|
|
|
/**
|
|
* @brief IsDefaultButtonConfigLeft
|
|
* @note Only available on [10.0.0+].
|
|
* @param[in] config \ref HidcfgButtonConfigLeft
|
|
* @param[out] out Output bool flag.
|
|
*/
|
|
Result hidsysIsDefaultButtonConfigLeft(const HidcfgButtonConfigLeft *config, bool *out);
|
|
|
|
/**
|
|
* @brief IsDefaultButtonConfigRight
|
|
* @note Only available on [10.0.0+].
|
|
* @param[in] config \ref HidcfgButtonConfigRight
|
|
* @param[out] out Output bool flag.
|
|
*/
|
|
Result hidsysIsDefaultButtonConfigRight(const HidcfgButtonConfigRight *config, bool *out);
|
|
|
|
/**
|
|
* @brief IsButtonConfigStorageEmbeddedEmpty
|
|
* @note Only available on [10.0.0+].
|
|
* @param[in] index Array index for an array which contains a total of 5 entries.
|
|
* @param[out] out Output bool flag.
|
|
*/
|
|
Result hidsysIsButtonConfigStorageEmbeddedEmpty(s32 index, bool *out);
|
|
|
|
/**
|
|
* @brief IsButtonConfigStorageFullEmpty
|
|
* @note Only available on [10.0.0+].
|
|
* @param[in] index Array index for an array which contains a total of 5 entries.
|
|
* @param[out] out Output bool flag.
|
|
*/
|
|
Result hidsysIsButtonConfigStorageFullEmpty(s32 index, bool *out);
|
|
|
|
/**
|
|
* @brief IsButtonConfigStorageLeftEmpty
|
|
* @note Only available on [10.0.0+].
|
|
* @param[in] index Array index for an array which contains a total of 5 entries.
|
|
* @param[out] out Output bool flag.
|
|
*/
|
|
Result hidsysIsButtonConfigStorageLeftEmpty(s32 index, bool *out);
|
|
|
|
/**
|
|
* @brief IsButtonConfigStorageRightEmpty
|
|
* @note Only available on [10.0.0+].
|
|
* @param[in] index Array index for an array which contains a total of 5 entries.
|
|
* @param[out] out Output bool flag.
|
|
*/
|
|
Result hidsysIsButtonConfigStorageRightEmpty(s32 index, bool *out);
|
|
|
|
/**
|
|
* @brief GetButtonConfigStorageEmbedded
|
|
* @note Only available on [10.0.0+].
|
|
* @param[in] index Array index for an array which contains a total of 5 entries.
|
|
* @param[out] config \ref HidcfgButtonConfigEmbedded
|
|
*/
|
|
Result hidsysGetButtonConfigStorageEmbedded(s32 index, HidcfgButtonConfigEmbedded *config);
|
|
|
|
/**
|
|
* @brief GetButtonConfigStorageFull
|
|
* @note Only available on [10.0.0+].
|
|
* @param[in] index Array index for an array which contains a total of 5 entries.
|
|
* @param[out] config \ref HidcfgButtonConfigFull
|
|
*/
|
|
Result hidsysGetButtonConfigStorageFull(s32 index, HidcfgButtonConfigFull *config);
|
|
|
|
/**
|
|
* @brief GetButtonConfigStorageLeft
|
|
* @note Only available on [10.0.0+].
|
|
* @param[in] index Array index for an array which contains a total of 5 entries.
|
|
* @param[out] config \ref HidcfgButtonConfigLeft
|
|
*/
|
|
Result hidsysGetButtonConfigStorageLeft(s32 index, HidcfgButtonConfigLeft *config);
|
|
|
|
/**
|
|
* @brief GetButtonConfigStorageRight
|
|
* @note Only available on [10.0.0+].
|
|
* @param[in] index Array index for an array which contains a total of 5 entries.
|
|
* @param[out] config \ref HidcfgButtonConfigRight
|
|
*/
|
|
Result hidsysGetButtonConfigStorageRight(s32 index, HidcfgButtonConfigRight *config);
|
|
|
|
/**
|
|
* @brief SetButtonConfigStorageEmbedded
|
|
* @note Only available on [10.0.0+].
|
|
* @param[in] index Array index for an array which contains a total of 5 entries.
|
|
* @param[in] config \ref HidcfgButtonConfigEmbedded
|
|
*/
|
|
Result hidsysSetButtonConfigStorageEmbedded(s32 index, const HidcfgButtonConfigEmbedded *config);
|
|
|
|
/**
|
|
* @brief SetButtonConfigStorageFull
|
|
* @note Only available on [10.0.0+].
|
|
* @param[in] index Array index for an array which contains a total of 5 entries.
|
|
* @param[in] config \ref HidcfgButtonConfigFull
|
|
*/
|
|
Result hidsysSetButtonConfigStorageFull(s32 index, const HidcfgButtonConfigFull *config);
|
|
|
|
/**
|
|
* @brief SetButtonConfigStorageLeft
|
|
* @note Only available on [10.0.0+].
|
|
* @param[in] index Array index for an array which contains a total of 5 entries.
|
|
* @param[in] config \ref HidcfgButtonConfigLeft
|
|
*/
|
|
Result hidsysSetButtonConfigStorageLeft(s32 index, const HidcfgButtonConfigLeft *config);
|
|
|
|
/**
|
|
* @brief SetButtonConfigStorageRight
|
|
* @note Only available on [10.0.0+].
|
|
* @param[in] index Array index for an array which contains a total of 5 entries.
|
|
* @param[in] config \ref HidcfgButtonConfigRight
|
|
*/
|
|
Result hidsysSetButtonConfigStorageRight(s32 index, const HidcfgButtonConfigRight *config);
|
|
|
|
/**
|
|
* @brief DeleteButtonConfigStorageEmbedded
|
|
* @note Only available on [10.0.0+].
|
|
* @param[in] index Array index for an array which contains a total of 5 entries.
|
|
*/
|
|
Result hidsysDeleteButtonConfigStorageEmbedded(s32 index);
|
|
|
|
/**
|
|
* @brief DeleteButtonConfigStorageFull
|
|
* @note Only available on [10.0.0+].
|
|
* @param[in] index Array index for an array which contains a total of 5 entries.
|
|
*/
|
|
Result hidsysDeleteButtonConfigStorageFull(s32 index);
|
|
|
|
/**
|
|
* @brief DeleteButtonConfigStorageLeft
|
|
* @note Only available on [10.0.0+].
|
|
* @param[in] index Array index for an array which contains a total of 5 entries.
|
|
*/
|
|
Result hidsysDeleteButtonConfigStorageLeft(s32 index);
|
|
|
|
/**
|
|
* @brief DeleteButtonConfigStorageRight
|
|
* @note Only available on [10.0.0+].
|
|
* @param[in] index Array index for an array which contains a total of 5 entries.
|
|
*/
|
|
Result hidsysDeleteButtonConfigStorageRight(s32 index);
|
|
|
|
/**
|
|
* @brief IsUsingCustomButtonConfig
|
|
* @note Only available on [10.0.0+].
|
|
* @param[in] unique_pad_id UniquePadId for the controller.
|
|
* @param[out] out Output bool flag.
|
|
*/
|
|
Result hidsysIsUsingCustomButtonConfig(u64 unique_pad_id, bool *out);
|
|
|
|
/**
|
|
* @brief IsAnyCustomButtonConfigEnabled
|
|
* @note Only available on [10.0.0+].
|
|
* @param[in] unique_pad_id UniquePadId for the controller.
|
|
* @param[out] out Output bool flag.
|
|
*/
|
|
Result hidsysIsAnyCustomButtonConfigEnabled(u64 unique_pad_id, bool *out);
|
|
|
|
/**
|
|
* @brief SetAllCustomButtonConfigEnabled
|
|
* @note Only available on [10.0.0+].
|
|
* @param[in] AppletResourceUserId AppletResourceUserId
|
|
* @param[in] flag Input bool flag.
|
|
*/
|
|
Result hidsysSetAllCustomButtonConfigEnabled(u64 AppletResourceUserId, bool flag);
|
|
|
|
/**
|
|
* @brief SetAllDefaultButtonConfig
|
|
* @note Only available on [10.0.0+].
|
|
*/
|
|
Result hidsysSetAllDefaultButtonConfig(void);
|
|
|
|
/**
|
|
* @brief SetHidButtonConfigEmbedded
|
|
* @note Only available on [10.0.0+].
|
|
* @param[in] unique_pad_id UniquePadId for the controller.
|
|
* @param[in] config \ref HidcfgButtonConfigEmbedded
|
|
*/
|
|
Result hidsysSetHidButtonConfigEmbedded(u64 unique_pad_id, const HidcfgButtonConfigEmbedded *config);
|
|
|
|
/**
|
|
* @brief SetHidButtonConfigFull
|
|
* @note Only available on [10.0.0+].
|
|
* @param[in] unique_pad_id UniquePadId for the controller.
|
|
* @param[in] config \ref HidcfgButtonConfigFull
|
|
*/
|
|
Result hidsysSetHidButtonConfigFull(u64 unique_pad_id, const HidcfgButtonConfigFull *config);
|
|
|
|
/**
|
|
* @brief SetHidButtonConfigLeft
|
|
* @note Only available on [10.0.0+].
|
|
* @param[in] unique_pad_id UniquePadId for the controller.
|
|
* @param[in] config \ref HidcfgButtonConfigLeft
|
|
*/
|
|
Result hidsysSetHidButtonConfigLeft(u64 unique_pad_id, const HidcfgButtonConfigLeft *config);
|
|
|
|
/**
|
|
* @brief SetHidButtonConfigRight
|
|
* @note Only available on [10.0.0+].
|
|
* @param[in] unique_pad_id UniquePadId for the controller.
|
|
* @param[in] config \ref HidcfgButtonConfigRight
|
|
*/
|
|
Result hidsysSetHidButtonConfigRight(u64 unique_pad_id, const HidcfgButtonConfigRight *config);
|
|
|
|
/**
|
|
* @brief GetHidButtonConfigEmbedded
|
|
* @note Only available on [10.0.0+].
|
|
* @param[in] unique_pad_id UniquePadId for the controller.
|
|
* @param[out] config \ref HidcfgButtonConfigEmbedded
|
|
*/
|
|
Result hidsysGetHidButtonConfigEmbedded(u64 unique_pad_id, HidcfgButtonConfigEmbedded *config);
|
|
|
|
/**
|
|
* @brief GetHidButtonConfigFull
|
|
* @note Only available on [10.0.0+].
|
|
* @param[in] unique_pad_id UniquePadId for the controller.
|
|
* @param[out] config \ref HidcfgButtonConfigFull
|
|
*/
|
|
Result hidsysGetHidButtonConfigFull(u64 unique_pad_id, HidcfgButtonConfigFull *config);
|
|
|
|
/**
|
|
* @brief GetHidButtonConfigLeft
|
|
* @note Only available on [10.0.0+].
|
|
* @param[in] unique_pad_id UniquePadId for the controller.
|
|
* @param[out] config \ref HidcfgButtonConfigLeft
|
|
*/
|
|
Result hidsysGetHidButtonConfigLeft(u64 unique_pad_id, HidcfgButtonConfigLeft *config);
|
|
|
|
/**
|
|
* @brief GetHidButtonConfigRight
|
|
* @note Only available on [10.0.0+].
|
|
* @param[in] unique_pad_id UniquePadId for the controller.
|
|
* @param[out] config \ref HidcfgButtonConfigRight
|
|
*/
|
|
Result hidsysGetHidButtonConfigRight(u64 unique_pad_id, HidcfgButtonConfigRight *config);
|
|
|