diff options
author | german77 <juangerman-13@hotmail.com> | 2021-09-21 00:20:56 +0200 |
---|---|---|
committer | Narr the Reg <juangerman-13@hotmail.com> | 2021-11-25 03:30:22 +0100 |
commit | fa8e23b84281022bf6b4e8916231a17e9997e5aa (patch) | |
tree | d74ffb84e5c2e391963db69bcdfb94be42edeac1 /src/input_common/drivers/touch_screen.cpp | |
parent | input_common: Rewrite mouse (diff) | |
download | yuzu-fa8e23b84281022bf6b4e8916231a17e9997e5aa.tar yuzu-fa8e23b84281022bf6b4e8916231a17e9997e5aa.tar.gz yuzu-fa8e23b84281022bf6b4e8916231a17e9997e5aa.tar.bz2 yuzu-fa8e23b84281022bf6b4e8916231a17e9997e5aa.tar.lz yuzu-fa8e23b84281022bf6b4e8916231a17e9997e5aa.tar.xz yuzu-fa8e23b84281022bf6b4e8916231a17e9997e5aa.tar.zst yuzu-fa8e23b84281022bf6b4e8916231a17e9997e5aa.zip |
Diffstat (limited to 'src/input_common/drivers/touch_screen.cpp')
-rw-r--r-- | src/input_common/drivers/touch_screen.cpp | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/input_common/drivers/touch_screen.cpp b/src/input_common/drivers/touch_screen.cpp new file mode 100644 index 000000000..e13835e9f --- /dev/null +++ b/src/input_common/drivers/touch_screen.cpp @@ -0,0 +1,47 @@ +// Copyright 2021 yuzu Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included + +#include "common/param_package.h" +#include "input_common/drivers/touch_screen.h" + +namespace InputCommon { + +TouchScreen::TouchScreen(const std::string input_engine_) : InputEngine(input_engine_) { + PreSetController(identifier); +} + +void TouchScreen::TouchMoved(float x, float y, std::size_t finger) { + if (finger >= 16) { + return; + } + TouchPressed(x, y, finger); +} + +void TouchScreen::TouchPressed(float x, float y, std::size_t finger) { + if (finger >= 16) { + return; + } + SetButton(identifier, static_cast<int>(finger), true); + SetAxis(identifier, static_cast<int>(finger * 2), x); + SetAxis(identifier, static_cast<int>(finger * 2 + 1), y); +} + +void TouchScreen::TouchReleased(std::size_t finger) { + if (finger >= 16) { + return; + } + SetButton(identifier, static_cast<int>(finger), false); + SetAxis(identifier, static_cast<int>(finger * 2), 0.0f); + SetAxis(identifier, static_cast<int>(finger * 2 + 1), 0.0f); +} + +void TouchScreen::ReleaseAllTouch() { + for (int index = 0; index < 16; ++index) { + SetButton(identifier, index, false); + SetAxis(identifier, index * 2, 0.0f); + SetAxis(identifier, index * 2 + 1, 0.0f); + } +} + +} // namespace InputCommon |