/* * Copyright 2023 jacqueline * * SPDX-License-Identifier: GPL-3.0-only */ #pragma once #include #include #include "feedback_device.hpp" #include "input_device.hpp" #include "input_touch_wheel.hpp" #include "nvs.hpp" #include "service_locator.hpp" namespace input { class DeviceFactory { public: DeviceFactory(std::shared_ptr); auto createInputs(drivers::NvsStorage::InputModes mode) -> std::vector>; auto createFeedbacks() -> std::vector>; auto touch_wheel() -> std::shared_ptr { return wheel_; } private: std::shared_ptr services_; // HACK: the touchwheel is current a special case, since it's the only input // device that has some kind of setting/configuration; scroll sensitivity. std::shared_ptr wheel_; }; } // namespace input