// Copyright 2017 Citra Emulator Project // Licensed under GPLv2 or any later version // Refer to the license.txt file included. #pragma once #include "core/frontend/input.h" namespace InputCommon { class MotionEmuDevice; class MotionEmu : public Input::Factory { 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 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 current_device; }; } // namespace InputCommon