summaryrefslogtreecommitdiffstats
path: root/src/input_common/motion_emu.h
diff options
context:
space:
mode:
authorwwylele <wwylele@gmail.com>2017-08-06 23:04:06 +0200
committerwwylele <wwylele@gmail.com>2017-08-11 10:05:08 +0200
commit188194908c2785bd1e03485941b9148777cdddd7 (patch)
treeab6cd04195f5e18bd1e7dd21a7c2896066827a6f /src/input_common/motion_emu.h
parentHID: use MotionDevice for Accelerometer and Gyroscope (diff)
downloadyuzu-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.h47
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