summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar David Marcec2018-10-18 22:01:55 +1100
committerGravatar Zach Hilman2018-11-18 23:21:33 -0500
commitf66c6fe55424c229728c5dc2e36efe51386a0dd0 (patch)
tree9cf121d363df9269bd267bc430e1f4698e804e30 /src
parentAdded controller helper funcs (diff)
downloadyuzu-f66c6fe55424c229728c5dc2e36efe51386a0dd0.tar.gz
yuzu-f66c6fe55424c229728c5dc2e36efe51386a0dd0.tar.xz
yuzu-f66c6fe55424c229728c5dc2e36efe51386a0dd0.zip
Added debugpad skeleton
Diffstat (limited to 'src')
-rw-r--r--src/core/hle/service/hid/controllers/debug_pad.cpp23
-rw-r--r--src/core/hle/service/hid/controllers/debug_pad.h34
2 files changed, 55 insertions, 2 deletions
diff --git a/src/core/hle/service/hid/controllers/debug_pad.cpp b/src/core/hle/service/hid/controllers/debug_pad.cpp
index 3d100763f..ac9b23bb8 100644
--- a/src/core/hle/service/hid/controllers/debug_pad.cpp
+++ b/src/core/hle/service/hid/controllers/debug_pad.cpp
@@ -34,6 +34,29 @@ void Controller_DebugPad::OnUpdate(u8* data, std::size_t size) {
34 cur_entry.sampling_number = last_entry.sampling_number + 1; 34 cur_entry.sampling_number = last_entry.sampling_number + 1;
35 cur_entry.sampling_number2 = cur_entry.sampling_number; 35 cur_entry.sampling_number2 = cur_entry.sampling_number;
36 // TODO(ogniK): Update debug pad states 36 // TODO(ogniK): Update debug pad states
37 cur_entry.attribute.connected.Assign(1);
38 auto& pad = cur_entry.pad_state;
39
40 pad.a.Assign(0);
41 pad.b.Assign(0);
42 pad.x.Assign(0);
43 pad.y.Assign(0);
44 pad.l.Assign(0);
45 pad.r.Assign(0);
46 pad.zl.Assign(0);
47 pad.zr.Assign(0);
48 pad.plus.Assign(0);
49 pad.minus.Assign(0);
50 pad.d_left.Assign(0);
51 pad.d_up.Assign(0);
52 pad.d_right.Assign(0);
53 pad.d_down.Assign(0);
54
55 cur_entry.l_stick.x = 0;
56 cur_entry.l_stick.y = 0;
57
58 cur_entry.r_stick.x = 0;
59 cur_entry.r_stick.y = 0;
37 60
38 std::memcpy(data, &shared_memory, sizeof(SharedMemory)); 61 std::memcpy(data, &shared_memory, sizeof(SharedMemory));
39} 62}
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 @@
5#pragma once 5#pragma once
6 6
7#include <array> 7#include <array>
8#include "common/bit_field.h"
8#include "common/common_funcs.h" 9#include "common/common_funcs.h"
9#include "common/common_types.h" 10#include "common/common_types.h"
10#include "common/swap.h" 11#include "common/swap.h"
@@ -35,11 +36,40 @@ private:
35 }; 36 };
36 static_assert(sizeof(AnalogStick) == 0x8); 37 static_assert(sizeof(AnalogStick) == 0x8);
37 38
39 struct PadState {
40 union {
41 u32_le raw{};
42 BitField<0, 1, u32_le> a;
43 BitField<1, 1, u32_le> b;
44 BitField<2, 1, u32_le> x;
45 BitField<3, 1, u32_le> y;
46 BitField<4, 1, u32_le> l;
47 BitField<5, 1, u32_le> r;
48 BitField<6, 1, u32_le> zl;
49 BitField<7, 1, u32_le> zr;
50 BitField<8, 1, u32_le> plus;
51 BitField<9, 1, u32_le> minus;
52 BitField<10, 1, u32_le> d_left;
53 BitField<11, 1, u32_le> d_up;
54 BitField<12, 1, u32_le> d_right;
55 BitField<13, 1, u32_le> d_down;
56 };
57 };
58 static_assert(sizeof(PadState) == 0x4, "PadState is an invalid size");
59
60 struct Attributes {
61 union {
62 u32_le raw{};
63 BitField<0, 1, u32_le> connected;
64 };
65 };
66 static_assert(sizeof(Attributes) == 0x4, "Attributes is an invalid size");
67
38 struct PadStates { 68 struct PadStates {
39 s64_le sampling_number; 69 s64_le sampling_number;
40 s64_le sampling_number2; 70 s64_le sampling_number2;
41 u32_le attribute; 71 Attributes attribute;
42 u32_le button_state; 72 PadState pad_state;
43 AnalogStick r_stick; 73 AnalogStick r_stick;
44 AnalogStick l_stick; 74 AnalogStick l_stick;
45 }; 75 };