summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgerman77 <juangerman-13@hotmail.com>2021-05-13 20:26:07 +0200
committergerman77 <juangerman-13@hotmail.com>2021-05-13 20:41:32 +0200
commitfd7c273fabc3d8aa3ff11fe90a92885bfcd6f807 (patch)
tree0587a6572b1994e0f8c798be30744a447886df74
parentMerge pull request #6294 from german77/kernelCleanup (diff)
downloadyuzu-fd7c273fabc3d8aa3ff11fe90a92885bfcd6f807.tar
yuzu-fd7c273fabc3d8aa3ff11fe90a92885bfcd6f807.tar.gz
yuzu-fd7c273fabc3d8aa3ff11fe90a92885bfcd6f807.tar.bz2
yuzu-fd7c273fabc3d8aa3ff11fe90a92885bfcd6f807.tar.lz
yuzu-fd7c273fabc3d8aa3ff11fe90a92885bfcd6f807.tar.xz
yuzu-fd7c273fabc3d8aa3ff11fe90a92885bfcd6f807.tar.zst
yuzu-fd7c273fabc3d8aa3ff11fe90a92885bfcd6f807.zip
-rw-r--r--src/input_common/udp/client.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/input_common/udp/client.cpp b/src/input_common/udp/client.cpp
index 8a38a380d..bc1dfab3d 100644
--- a/src/input_common/udp/client.cpp
+++ b/src/input_common/udp/client.cpp
@@ -86,6 +86,7 @@ private:
case Type::PadData: {
Response::PadData pad_data;
std::memcpy(&pad_data, &receive_buffer[sizeof(Header)], sizeof(Response::PadData));
+ SanitizeMotion(pad_data);
callback.pad_data(std::move(pad_data));
break;
}
@@ -114,6 +115,28 @@ private:
StartSend(timer.expiry());
}
+ void SanitizeMotion(Response::PadData& data) {
+ // Zero out any non number value
+ if (!std::isnormal(data.gyro.pitch)) {
+ data.gyro.pitch = 0;
+ }
+ if (!std::isnormal(data.gyro.roll)) {
+ data.gyro.roll = 0;
+ }
+ if (!std::isnormal(data.gyro.yaw)) {
+ data.gyro.yaw = 0;
+ }
+ if (!std::isnormal(data.accel.x)) {
+ data.accel.x = 0;
+ }
+ if (!std::isnormal(data.accel.y)) {
+ data.accel.y = 0;
+ }
+ if (!std::isnormal(data.accel.z)) {
+ data.accel.z = 0;
+ }
+ }
+
SocketCallback callback;
boost::asio::io_service io_service;
boost::asio::basic_waitable_timer<clock> timer;