diff options
Diffstat (limited to 'src/input_common/helpers/stick_from_buttons.h')
-rw-r--r-- | src/input_common/helpers/stick_from_buttons.h | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/input_common/helpers/stick_from_buttons.h b/src/input_common/helpers/stick_from_buttons.h new file mode 100644 index 000000000..437ace4f7 --- /dev/null +++ b/src/input_common/helpers/stick_from_buttons.h @@ -0,0 +1,30 @@ +// Copyright 2017 Citra Emulator Project +// Licensed under GPLv2 or any later version +// Refer to the license.txt file included. + +#pragma once + +#include "common/input.h" + +namespace InputCommon { + +/** + * An analog device factory that takes direction button devices and combines them into a analog + * device. + */ +class StickFromButton final : public Common::Input::Factory<Common::Input::InputDevice> { +public: + /** + * Creates an analog device from direction button devices + * @param params contains parameters for creating the device: + * - "up": a serialized ParamPackage for creating a button device for up direction + * - "down": a serialized ParamPackage for creating a button device for down direction + * - "left": a serialized ParamPackage for creating a button device for left direction + * - "right": a serialized ParamPackage for creating a button device for right direction + * - "modifier": a serialized ParamPackage for creating a button device as the modifier + * - "modifier_scale": a float for the multiplier the modifier gives to the position + */ + std::unique_ptr<Common::Input::InputDevice> Create(const Common::ParamPackage& params) override; +}; + +} // namespace InputCommon |