summaryrefslogtreecommitdiffstats
path: root/src/core/hle/service/hid/controllers/debug_pad.h
diff options
context:
space:
mode:
authorDavid Marcec <dmarcecguzman@gmail.com>2018-10-18 13:01:55 +0200
committerZach Hilman <zachhilman@gmail.com>2018-11-19 05:21:33 +0100
commitf66c6fe55424c229728c5dc2e36efe51386a0dd0 (patch)
tree9cf121d363df9269bd267bc430e1f4698e804e30 /src/core/hle/service/hid/controllers/debug_pad.h
parentAdded controller helper funcs (diff)
downloadyuzu-f66c6fe55424c229728c5dc2e36efe51386a0dd0.tar
yuzu-f66c6fe55424c229728c5dc2e36efe51386a0dd0.tar.gz
yuzu-f66c6fe55424c229728c5dc2e36efe51386a0dd0.tar.bz2
yuzu-f66c6fe55424c229728c5dc2e36efe51386a0dd0.tar.lz
yuzu-f66c6fe55424c229728c5dc2e36efe51386a0dd0.tar.xz
yuzu-f66c6fe55424c229728c5dc2e36efe51386a0dd0.tar.zst
yuzu-f66c6fe55424c229728c5dc2e36efe51386a0dd0.zip
Diffstat (limited to '')
-rw-r--r--src/core/hle/service/hid/controllers/debug_pad.h34
1 files changed, 32 insertions, 2 deletions
diff --git a/src/core/hle/service/hid/controllers/debug_pad.h b/src/core/hle/service/hid/controllers/debug_pad.h
index 62b4f2682..a41564b4d 100644
--- a/src/core/hle/service/hid/controllers/debug_pad.h
+++ b/src/core/hle/service/hid/controllers/debug_pad.h
@@ -5,6 +5,7 @@
#pragma once
#include <array>
+#include "common/bit_field.h"
#include "common/common_funcs.h"
#include "common/common_types.h"
#include "common/swap.h"
@@ -35,11 +36,40 @@ private:
};
static_assert(sizeof(AnalogStick) == 0x8);
+ struct PadState {
+ union {
+ u32_le raw{};
+ BitField<0, 1, u32_le> a;
+ BitField<1, 1, u32_le> b;
+ BitField<2, 1, u32_le> x;
+ BitField<3, 1, u32_le> y;
+ BitField<4, 1, u32_le> l;
+ BitField<5, 1, u32_le> r;
+ BitField<6, 1, u32_le> zl;
+ BitField<7, 1, u32_le> zr;
+ BitField<8, 1, u32_le> plus;
+ BitField<9, 1, u32_le> minus;
+ BitField<10, 1, u32_le> d_left;
+ BitField<11, 1, u32_le> d_up;
+ BitField<12, 1, u32_le> d_right;
+ BitField<13, 1, u32_le> d_down;
+ };
+ };
+ static_assert(sizeof(PadState) == 0x4, "PadState is an invalid size");
+
+ struct Attributes {
+ union {
+ u32_le raw{};
+ BitField<0, 1, u32_le> connected;
+ };
+ };
+ static_assert(sizeof(Attributes) == 0x4, "Attributes is an invalid size");
+
struct PadStates {
s64_le sampling_number;
s64_le sampling_number2;
- u32_le attribute;
- u32_le button_state;
+ Attributes attribute;
+ PadState pad_state;
AnalogStick r_stick;
AnalogStick l_stick;
};