diff options
author | wwylele <wwylele@gmail.com> | 2017-08-06 23:04:06 +0200 |
---|---|---|
committer | wwylele <wwylele@gmail.com> | 2017-08-11 10:05:08 +0200 |
commit | 188194908c2785bd1e03485941b9148777cdddd7 (patch) | |
tree | ab6cd04195f5e18bd1e7dd21a7c2896066827a6f /src/input_common/motion_emu.h | |
parent | HID: use MotionDevice for Accelerometer and Gyroscope (diff) | |
download | yuzu-188194908c2785bd1e03485941b9148777cdddd7.tar yuzu-188194908c2785bd1e03485941b9148777cdddd7.tar.gz yuzu-188194908c2785bd1e03485941b9148777cdddd7.tar.bz2 yuzu-188194908c2785bd1e03485941b9148777cdddd7.tar.lz yuzu-188194908c2785bd1e03485941b9148777cdddd7.tar.xz yuzu-188194908c2785bd1e03485941b9148777cdddd7.tar.zst yuzu-188194908c2785bd1e03485941b9148777cdddd7.zip |
Diffstat (limited to 'src/input_common/motion_emu.h')
-rw-r--r-- | src/input_common/motion_emu.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/input_common/motion_emu.h b/src/input_common/motion_emu.h new file mode 100644 index 000000000..195fb69d2 --- /dev/null +++ b/src/input_common/motion_emu.h @@ -0,0 +1,47 @@ +// Copyright 2017 Citra Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#pragma once +#include "common/thread.h" +#include "common/vector_math.h" +#include "core/frontend/input.h" + +namespace InputCommon { + +class MotionEmuDevice; + +class MotionEmu : public Input::Factory<Input::MotionDevice> { +public: + /** + * Creates a motion device emulated from mouse input + * @param params contains parameters for creating the device: + * - "update_period": update period in milliseconds + * - "sensitivity": the coefficient converting mouse movement to tilting angle + */ + std::unique_ptr<Input::MotionDevice> Create(const Common::ParamPackage& params) override; + + /** + * Signals that a motion sensor tilt has begun. + * @param x the x-coordinate of the cursor + * @param y the y-coordinate of the cursor + */ + void BeginTilt(int x, int y); + + /** + * Signals that a motion sensor tilt is occurring. + * @param x the x-coordinate of the cursor + * @param y the y-coordinate of the cursor + */ + void Tilt(int x, int y); + + /** + * Signals that a motion sensor tilt has ended. + */ + void EndTilt(); + +private: + std::weak_ptr<MotionEmuDevice> current_device; +}; + +} // namespace InputCommon |