diff options
author | bunnei <bunneidev@gmail.com> | 2020-10-08 19:18:39 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-08 19:18:39 +0200 |
commit | 06e65de93cfa923b6fb1f12fa20193515249234d (patch) | |
tree | 9771ca19a2686af1185f62ed7488d977d37a1703 /src/input_common/motion_from_button.cpp | |
parent | Merge pull request #4765 from ReinUsesLisp/fix-sort-devices (diff) | |
parent | Add random motion input to keyboard (diff) | |
download | yuzu-06e65de93cfa923b6fb1f12fa20193515249234d.tar yuzu-06e65de93cfa923b6fb1f12fa20193515249234d.tar.gz yuzu-06e65de93cfa923b6fb1f12fa20193515249234d.tar.bz2 yuzu-06e65de93cfa923b6fb1f12fa20193515249234d.tar.lz yuzu-06e65de93cfa923b6fb1f12fa20193515249234d.tar.xz yuzu-06e65de93cfa923b6fb1f12fa20193515249234d.tar.zst yuzu-06e65de93cfa923b6fb1f12fa20193515249234d.zip |
Diffstat (limited to 'src/input_common/motion_from_button.cpp')
-rw-r--r-- | src/input_common/motion_from_button.cpp | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/input_common/motion_from_button.cpp b/src/input_common/motion_from_button.cpp new file mode 100644 index 000000000..9d459f963 --- /dev/null +++ b/src/input_common/motion_from_button.cpp @@ -0,0 +1,34 @@ +// Copyright 2020 yuzu Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#include "input_common/motion_from_button.h" +#include "input_common/motion_input.h" + +namespace InputCommon { + +class MotionKey final : public Input::MotionDevice { +public: + using Button = std::unique_ptr<Input::ButtonDevice>; + + MotionKey(Button key_) : key(std::move(key_)) {} + + Input::MotionStatus GetStatus() const override { + + if (key->GetStatus()) { + return motion.GetRandomMotion(2, 6); + } + return motion.GetRandomMotion(0, 0); + } + +private: + Button key; + InputCommon::MotionInput motion{0.0f, 0.0f, 0.0f}; +}; + +std::unique_ptr<Input::MotionDevice> MotionFromButton::Create(const Common::ParamPackage& params) { + auto key = Input::CreateDevice<Input::ButtonDevice>(params.Serialize()); + return std::make_unique<MotionKey>(std::move(key)); +} + +} // namespace InputCommon |