mirror of
https://github.com/switchbrew/libnx.git
synced 2025-06-21 20:42:44 +02:00
hidsys: Updated Hidcfg.
This commit is contained in:
parent
73768fffa7
commit
639ba8ef78
@ -9,32 +9,39 @@
|
|||||||
#include "../services/hid.h"
|
#include "../services/hid.h"
|
||||||
#include "../sf/service.h"
|
#include "../sf/service.h"
|
||||||
|
|
||||||
/// ButtonConfig. Selects what button to map to.
|
/// Selects what button to map to.
|
||||||
typedef enum {
|
typedef enum {
|
||||||
HidcfgButtonConfig_A = 0, ///< A
|
HidcfgDigitalButtonAssignment_A = 0, ///< A
|
||||||
HidcfgButtonConfig_B = 1, ///< B
|
HidcfgDigitalButtonAssignment_B = 1, ///< B
|
||||||
HidcfgButtonConfig_X = 2, ///< X
|
HidcfgDigitalButtonAssignment_X = 2, ///< X
|
||||||
HidcfgButtonConfig_Y = 3, ///< Y
|
HidcfgDigitalButtonAssignment_Y = 3, ///< Y
|
||||||
HidcfgButtonConfig_LStick = 4, ///< Left Stick Button
|
HidcfgDigitalButtonAssignment_StickL = 4, ///< Left Stick Button
|
||||||
HidcfgButtonConfig_RStick = 5, ///< Right Stick Button
|
HidcfgDigitalButtonAssignment_StickR = 5, ///< Right Stick Button
|
||||||
HidcfgButtonConfig_L = 6, ///< L
|
HidcfgDigitalButtonAssignment_L = 6, ///< L
|
||||||
HidcfgButtonConfig_R = 7, ///< R
|
HidcfgDigitalButtonAssignment_R = 7, ///< R
|
||||||
HidcfgButtonConfig_ZL = 8, ///< ZL
|
HidcfgDigitalButtonAssignment_ZL = 8, ///< ZL
|
||||||
HidcfgButtonConfig_ZR = 9, ///< ZR
|
HidcfgDigitalButtonAssignment_ZR = 9, ///< ZR
|
||||||
HidcfgButtonConfig_Minus = 10, ///< Minus
|
HidcfgDigitalButtonAssignment_Select = 10, ///< Select / Minus
|
||||||
HidcfgButtonConfig_Plus = 11, ///< Plus
|
HidcfgDigitalButtonAssignment_Start = 11, ///< Start / Plus
|
||||||
HidcfgButtonConfig_DLeft = 12, ///< DLeft
|
HidcfgDigitalButtonAssignment_Left = 12, ///< Left
|
||||||
HidcfgButtonConfig_DUp = 13, ///< DUp
|
HidcfgDigitalButtonAssignment_Up = 13, ///< Up
|
||||||
HidcfgButtonConfig_DRight = 14, ///< DRight
|
HidcfgDigitalButtonAssignment_Right = 14, ///< Right
|
||||||
HidcfgButtonConfig_DDown = 15, ///< DDown
|
HidcfgDigitalButtonAssignment_Down = 15, ///< Down
|
||||||
HidcfgButtonConfig_SL_Left = 16, ///< SL on Left controller.
|
HidcfgDigitalButtonAssignment_LeftSL = 16, ///< SL on Left controller.
|
||||||
HidcfgButtonConfig_SR_Left = 17, ///< SR on Left controller.
|
HidcfgDigitalButtonAssignment_LeftSR = 17, ///< SR on Left controller.
|
||||||
HidcfgButtonConfig_SL_Right = 18, ///< SL on Right controller.
|
HidcfgDigitalButtonAssignment_RightSL = 18, ///< SL on Right controller.
|
||||||
HidcfgButtonConfig_SR_Right = 19, ///< SR on Right controller.
|
HidcfgDigitalButtonAssignment_RightSR = 19, ///< SR on Right controller.
|
||||||
HidcfgButtonConfig_HOME = 20, ///< HOME
|
HidcfgDigitalButtonAssignment_HomeButton = 20, ///< HomeButton
|
||||||
HidcfgButtonConfig_Capture = 21, ///< Capture
|
HidcfgDigitalButtonAssignment_CaptureButton = 21, ///< CaptureButton
|
||||||
HidcfgButtonConfig_Disabled = 22, ///< Disabled
|
HidcfgDigitalButtonAssignment_Invalid = 22, ///< Invalid / Disabled
|
||||||
} HidcfgButtonConfig;
|
} HidcfgDigitalButtonAssignment;
|
||||||
|
|
||||||
|
/// AnalogStickRotation
|
||||||
|
typedef enum {
|
||||||
|
HidcfgAnalogStickRotation_None = 0, ///< None
|
||||||
|
HidcfgAnalogStickRotation_Clockwise90 = 1, ///< Clockwise90
|
||||||
|
HidcfgAnalogStickRotation_Anticlockwise90 = 2, ///< Anticlockwise90
|
||||||
|
} HidcfgAnalogStickRotation;
|
||||||
|
|
||||||
/// UniquePadId for a controller.
|
/// UniquePadId for a controller.
|
||||||
typedef struct {
|
typedef struct {
|
||||||
@ -89,35 +96,88 @@ typedef struct {
|
|||||||
u8 unk_x0[0x1A0];
|
u8 unk_x0[0x1A0];
|
||||||
} HidsysButtonConfigRight;
|
} HidsysButtonConfigRight;
|
||||||
|
|
||||||
/// JoystickConfig
|
/// AnalogStickAssignment
|
||||||
typedef struct {
|
typedef struct {
|
||||||
u32 unk_x0; ///< Orientation. 0 = default, 1 = enabled for Left, 2 = enabled for Right.
|
u32 rotation; ///< \ref HidcfgAnalogStickRotation
|
||||||
u8 stick_change; ///< StickChange
|
u8 is_paired_stick_assigned; ///< IsPairedStickAssigned
|
||||||
u8 pad[3]; ///< Padding
|
u8 pad[3]; ///< Padding
|
||||||
} HidcfgJoystickConfig;
|
} HidcfgAnalogStickAssignment;
|
||||||
|
|
||||||
/// ButtonConfigEmbedded
|
/// ButtonConfigEmbedded
|
||||||
typedef struct {
|
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.
|
u32 hardware_button_left; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonLeft
|
||||||
HidcfgJoystickConfig joystick_config[2]; ///< \ref HidcfgJoystickConfig, for the left and right stick.
|
u32 hardware_button_up; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonUp
|
||||||
|
u32 hardware_button_right; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonRight
|
||||||
|
u32 hardware_button_down; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonDown
|
||||||
|
u32 hardware_button_a; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonA
|
||||||
|
u32 hardware_button_b; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonB
|
||||||
|
u32 hardware_button_x; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonX
|
||||||
|
u32 hardware_button_y; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonY
|
||||||
|
u32 hardware_button_stick_l; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonStickL
|
||||||
|
u32 hardware_button_stick_r; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonStickR
|
||||||
|
u32 hardware_button_l; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonL
|
||||||
|
u32 hardware_button_r; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonR
|
||||||
|
u32 hardware_button_zl; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonZL
|
||||||
|
u32 hardware_button_zr; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonZR
|
||||||
|
u32 hardware_button_select; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonSelect
|
||||||
|
u32 hardware_button_start; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonStart
|
||||||
|
u32 hardware_button_capture; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonCapture
|
||||||
|
HidcfgAnalogStickAssignment hardware_stick_l; ///< HardwareStickL
|
||||||
|
HidcfgAnalogStickAssignment hardware_stick_r; ///< HardwareStickR
|
||||||
} HidcfgButtonConfigEmbedded;
|
} HidcfgButtonConfigEmbedded;
|
||||||
|
|
||||||
/// ButtonConfigFull
|
/// ButtonConfigFull
|
||||||
typedef struct {
|
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.
|
u32 hardware_button_left; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonLeft
|
||||||
HidcfgJoystickConfig joystick_config[2]; ///< \ref HidcfgJoystickConfig, for the left and right stick.
|
u32 hardware_button_up; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonUp
|
||||||
|
u32 hardware_button_right; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonRight
|
||||||
|
u32 hardware_button_down; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonDown
|
||||||
|
u32 hardware_button_a; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonA
|
||||||
|
u32 hardware_button_b; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonB
|
||||||
|
u32 hardware_button_x; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonX
|
||||||
|
u32 hardware_button_y; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonY
|
||||||
|
u32 hardware_button_stick_l; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonStickL
|
||||||
|
u32 hardware_button_stick_r; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonStickR
|
||||||
|
u32 hardware_button_l; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonL
|
||||||
|
u32 hardware_button_r; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonR
|
||||||
|
u32 hardware_button_zl; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonZL
|
||||||
|
u32 hardware_button_zr; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonZR
|
||||||
|
u32 hardware_button_select; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonSelect
|
||||||
|
u32 hardware_button_start; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonStart
|
||||||
|
u32 hardware_button_capture; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonCapture
|
||||||
|
HidcfgAnalogStickAssignment hardware_stick_l; ///< HardwareStickL
|
||||||
|
HidcfgAnalogStickAssignment hardware_stick_r; ///< HardwareStickR
|
||||||
} HidcfgButtonConfigFull;
|
} HidcfgButtonConfigFull;
|
||||||
|
|
||||||
/// ButtonConfigLeft
|
/// ButtonConfigLeft
|
||||||
typedef struct {
|
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.
|
u32 hardware_button_left; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonLeft
|
||||||
HidcfgJoystickConfig joystick_config; ///< \ref HidcfgJoystickConfig
|
u32 hardware_button_up; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonUp
|
||||||
|
u32 hardware_button_right; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonRight
|
||||||
|
u32 hardware_button_down; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonDown
|
||||||
|
u32 hardware_button_stick_l; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonStickL
|
||||||
|
u32 hardware_button_l; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonL
|
||||||
|
u32 hardware_button_zl; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonZL
|
||||||
|
u32 hardware_button_select; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonSelect
|
||||||
|
u32 hardware_button_left_sl; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonLeftSL
|
||||||
|
u32 hardware_button_left_sr; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonLeftSR
|
||||||
|
u32 hardware_button_capture; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonCapture
|
||||||
|
HidcfgAnalogStickAssignment hardware_stick_l; ///< HardwareStickL
|
||||||
} HidcfgButtonConfigLeft;
|
} HidcfgButtonConfigLeft;
|
||||||
|
|
||||||
/// ButtonConfigRight
|
/// ButtonConfigRight
|
||||||
typedef struct {
|
typedef struct {
|
||||||
u32 button_config[10]; ///< \ref HidcfgButtonConfig, for the following buttons: A, B, X, Y, RStick, R, ZR, Plus, SL_Right, SR_Right.
|
u32 hardware_button_a; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonA
|
||||||
HidcfgJoystickConfig joystick_config; ///< \ref HidcfgJoystickConfig
|
u32 hardware_button_b; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonB
|
||||||
|
u32 hardware_button_x; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonX
|
||||||
|
u32 hardware_button_y; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonY
|
||||||
|
u32 hardware_button_stick_r; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonStickR
|
||||||
|
u32 hardware_button_r; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonR
|
||||||
|
u32 hardware_button_zr; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonZR
|
||||||
|
u32 hardware_button_start; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonStart
|
||||||
|
u32 hardware_button_right_sl; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonRightSL
|
||||||
|
u32 hardware_button_right_sr; ///< \ref HidcfgDigitalButtonAssignment HardwareButtonRightSR
|
||||||
|
HidcfgAnalogStickAssignment hardware_stick_r; ///< HardwareStickR
|
||||||
} HidcfgButtonConfigRight;
|
} HidcfgButtonConfigRight;
|
||||||
|
|
||||||
/// Initialize hidsys.
|
/// Initialize hidsys.
|
||||||
|
Loading…
Reference in New Issue
Block a user