From 0774b17846fc7bd12bfe329fbaed6524d96c81cb Mon Sep 17 00:00:00 2001 From: german Date: Wed, 2 Sep 2020 19:59:34 -0500 Subject: Remove RealMotionDevice --- src/input_common/udp/client.cpp | 10 +++++++++- src/input_common/udp/client.h | 3 ++- src/input_common/udp/udp.cpp | 2 +- 3 files changed, 12 insertions(+), 3 deletions(-) (limited to 'src/input_common/udp') diff --git a/src/input_common/udp/client.cpp b/src/input_common/udp/client.cpp index 3f4eaf448..91e13482d 100644 --- a/src/input_common/udp/client.cpp +++ b/src/input_common/udp/client.cpp @@ -170,10 +170,18 @@ void Client::OnPadData(Response::PadData data) { // directions correspond to the ones of the Switch Common::Vec3f accel = Common::MakeVec(data.accel.x, data.accel.y, data.accel.z); Common::Vec3f gyro = Common::MakeVec(data.gyro.pitch, data.gyro.yaw, data.gyro.roll); + + // TODO: Calculate the correct rotation vector and orientation matrix + const auto rotation = Common::MakeVec(0.0f, 0.0f, 0.0f); + const std::array orientation{ + Common::Vec3f(1.0f, 0.0f, 0.0f), + Common::Vec3f(0.0f, 1.0f, 0.0f), + Common::Vec3f(0.0f, 0.0f, 1.0f), + }; { std::lock_guard guard(status->update_mutex); - status->motion_status = {accel, gyro}; + status->motion_status = {accel, gyro, rotation, orientation}; // TODO: add a setting for "click" touch. Click touch refers to a device that differentiates // between a simple "tap" and a hard press that causes the touch screen to click. diff --git a/src/input_common/udp/client.h b/src/input_common/udp/client.h index b8c654755..a73283ae8 100644 --- a/src/input_common/udp/client.h +++ b/src/input_common/udp/client.h @@ -14,6 +14,7 @@ #include "common/common_types.h" #include "common/thread.h" #include "common/vector_math.h" +#include "core/frontend/input.h" namespace InputCommon::CemuhookUDP { @@ -30,7 +31,7 @@ struct Version; struct DeviceStatus { std::mutex update_mutex; - std::tuple, Common::Vec3> motion_status; + Input::MotionStatus motion_status; std::tuple touch_status; // calibration data for scaling the device's touch area to 3ds diff --git a/src/input_common/udp/udp.cpp b/src/input_common/udp/udp.cpp index 4b347e47e..03bae5752 100644 --- a/src/input_common/udp/udp.cpp +++ b/src/input_common/udp/udp.cpp @@ -29,7 +29,7 @@ private: class UDPMotionDevice final : public Input::MotionDevice { public: explicit UDPMotionDevice(std::shared_ptr status_) : status(std::move(status_)) {} - std::tuple, Common::Vec3> GetStatus() const override { + Input::MotionStatus GetStatus() const override { std::lock_guard guard(status->update_mutex); return status->motion_status; } -- cgit v1.2.3