mirror of
https://git.suyu.dev/suyu/suyu.git
synced 2024-11-26 05:16:24 -05:00
controllers/npad: Add DeviceHandle struct
A DeviceHandle describes a vibration device or six-axis sensor based on the npad type, npad id, and device index/position
This commit is contained in:
parent
ceb7b11f16
commit
0a966e2cac
1 changed files with 55 additions and 32 deletions
|
@ -39,6 +39,61 @@ public:
|
||||||
// Called when input devices should be loaded
|
// Called when input devices should be loaded
|
||||||
void OnLoadInputDevices() override;
|
void OnLoadInputDevices() override;
|
||||||
|
|
||||||
|
enum class NPadControllerType {
|
||||||
|
None,
|
||||||
|
ProController,
|
||||||
|
Handheld,
|
||||||
|
JoyDual,
|
||||||
|
JoyLeft,
|
||||||
|
JoyRight,
|
||||||
|
Pokeball,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum class NpadType : u8 {
|
||||||
|
ProController = 3,
|
||||||
|
Handheld = 4,
|
||||||
|
JoyconDual = 5,
|
||||||
|
JoyconLeft = 6,
|
||||||
|
JoyconRight = 7,
|
||||||
|
Pokeball = 9,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum class DeviceIndex : u8 {
|
||||||
|
Left = 0,
|
||||||
|
Right = 1,
|
||||||
|
None = 2,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum class GyroscopeZeroDriftMode : u32 {
|
||||||
|
Loose = 0,
|
||||||
|
Standard = 1,
|
||||||
|
Tight = 2,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum class NpadHoldType : u64 {
|
||||||
|
Vertical = 0,
|
||||||
|
Horizontal = 1,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum class NPadAssignments : u32 {
|
||||||
|
Dual = 0,
|
||||||
|
Single = 1,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum class NpadHandheldActivationMode : u64 {
|
||||||
|
Dual = 0,
|
||||||
|
Single = 1,
|
||||||
|
None = 2,
|
||||||
|
};
|
||||||
|
|
||||||
|
struct DeviceHandle {
|
||||||
|
NpadType npad_type{};
|
||||||
|
u8 npad_id{};
|
||||||
|
DeviceIndex device_index{};
|
||||||
|
INSERT_PADDING_BYTES(1);
|
||||||
|
};
|
||||||
|
static_assert(sizeof(DeviceHandle) == 4, "DeviceHandle is an invalid size");
|
||||||
|
|
||||||
struct NPadType {
|
struct NPadType {
|
||||||
union {
|
union {
|
||||||
u32_le raw{};
|
u32_le raw{};
|
||||||
|
@ -62,38 +117,6 @@ public:
|
||||||
};
|
};
|
||||||
static_assert(sizeof(Vibration) == 0x10, "Vibration is an invalid size");
|
static_assert(sizeof(Vibration) == 0x10, "Vibration is an invalid size");
|
||||||
|
|
||||||
enum class GyroscopeZeroDriftMode : u32 {
|
|
||||||
Loose = 0,
|
|
||||||
Standard = 1,
|
|
||||||
Tight = 2,
|
|
||||||
};
|
|
||||||
|
|
||||||
enum class NpadHoldType : u64 {
|
|
||||||
Vertical = 0,
|
|
||||||
Horizontal = 1,
|
|
||||||
};
|
|
||||||
|
|
||||||
enum class NPadAssignments : u32_le {
|
|
||||||
Dual = 0,
|
|
||||||
Single = 1,
|
|
||||||
};
|
|
||||||
|
|
||||||
enum class NpadHandheldActivationMode : u64 {
|
|
||||||
Dual = 0,
|
|
||||||
Single = 1,
|
|
||||||
None = 2,
|
|
||||||
};
|
|
||||||
|
|
||||||
enum class NPadControllerType {
|
|
||||||
None,
|
|
||||||
ProController,
|
|
||||||
Handheld,
|
|
||||||
JoyDual,
|
|
||||||
JoyLeft,
|
|
||||||
JoyRight,
|
|
||||||
Pokeball,
|
|
||||||
};
|
|
||||||
|
|
||||||
struct LedPattern {
|
struct LedPattern {
|
||||||
explicit LedPattern(u64 light1, u64 light2, u64 light3, u64 light4) {
|
explicit LedPattern(u64 light1, u64 light2, u64 light3, u64 light4) {
|
||||||
position1.Assign(light1);
|
position1.Assign(light1);
|
||||||
|
|
Loading…
Reference in a new issue