summaryrefslogtreecommitdiff
path: root/src/core/frontend
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/frontend')
-rw-r--r--src/core/frontend/emu_window.cpp8
-rw-r--r--src/core/frontend/input.h7
2 files changed, 9 insertions, 6 deletions
diff --git a/src/core/frontend/emu_window.cpp b/src/core/frontend/emu_window.cpp
index 8c1193894..589842917 100644
--- a/src/core/frontend/emu_window.cpp
+++ b/src/core/frontend/emu_window.cpp
@@ -30,12 +30,14 @@ private:
30 class Device : public Input::TouchDevice { 30 class Device : public Input::TouchDevice {
31 public: 31 public:
32 explicit Device(std::weak_ptr<TouchState>&& touch_state) : touch_state(touch_state) {} 32 explicit Device(std::weak_ptr<TouchState>&& touch_state) : touch_state(touch_state) {}
33 std::tuple<float, float, bool> GetStatus() const override { 33 Input::TouchStatus GetStatus() const override {
34 Input::TouchStatus touch_status = {};
34 if (auto state = touch_state.lock()) { 35 if (auto state = touch_state.lock()) {
35 std::lock_guard guard{state->mutex}; 36 std::lock_guard guard{state->mutex};
36 return std::make_tuple(state->touch_x, state->touch_y, state->touch_pressed); 37 touch_status[0] =
38 std::make_tuple(state->touch_x, state->touch_y, state->touch_pressed);
37 } 39 }
38 return std::make_tuple(0.0f, 0.0f, false); 40 return touch_status;
39 } 41 }
40 42
41 private: 43 private:
diff --git a/src/core/frontend/input.h b/src/core/frontend/input.h
index de51a754e..f014dfea3 100644
--- a/src/core/frontend/input.h
+++ b/src/core/frontend/input.h
@@ -163,10 +163,11 @@ using MotionStatus = std::tuple<Common::Vec3<float>, Common::Vec3<float>, Common
163using MotionDevice = InputDevice<MotionStatus>; 163using MotionDevice = InputDevice<MotionStatus>;
164 164
165/** 165/**
166 * A touch status is an object that returns a tuple of two floats and a bool. The floats are 166 * A touch status is an object that returns an array of 16 tuple elements of two floats and a bool.
167 * x and y coordinates in the range 0.0 - 1.0, and the bool indicates whether it is pressed. 167 * The floats are x and y coordinates in the range 0.0 - 1.0, and the bool indicates whether it is
168 * pressed.
168 */ 169 */
169using TouchStatus = std::tuple<float, float, bool>; 170using TouchStatus = std::array<std::tuple<float, float, bool>, 16>;
170 171
171/** 172/**
172 * A touch device is an input device that returns a touch status object 173 * A touch device is an input device that returns a touch status object