// Copyright 2017 Citra Emulator Project // Licensed under GPLv2 or any later version // Refer to the license.txt file included. #pragma once #include #include "core/frontend/input.h" namespace ScriptedInput { int IndexOfButton(const std::string& button); class ScriptedButtonList; /** * A button device factory that returns inputs from a script file */ class ScriptedButtons final : public Input::Factory { public: ScriptedButtons(); /** * Creates a button device * @param params unused */ std::unique_ptr Create(const Common::ParamPackage& params) override; /** * True if any button is being controlled */ bool IsInUse(); void SetActiveButtons(const std::vector& buttons_active); private: std::shared_ptr scripted_button_list; bool is_in_use {false}; }; } // namespace InputCommon