/* * Copyright 2023 jacqueline * * SPDX-License-Identifier: GPL-3.0-only */ #pragma once #include #include #include #include "freertos/FreeRTOS.h" #include "freertos/task.h" #include "freertos/timers.h" #include "display.hpp" #include "relative_wheel.hpp" #include "screen.hpp" #include "themes.hpp" #include "touchwheel.hpp" #include "wheel_encoder.hpp" namespace ui { class UiTask { public: static auto Start() -> UiTask*; ~UiTask(); // FIXME: Once we have more input devices, this function should accept a more // generic interface. auto SetInputDevice(std::shared_ptr dev) -> void; private: UiTask(); auto Main() -> void; std::shared_ptr input_device_; std::shared_ptr current_screen_; }; } // namespace ui