summaryrefslogtreecommitdiff
path: root/src/ui/include/wheel_encoder.hpp
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2023-06-01 15:28:32 +1000
committerjacqueline <me@jacqueline.id.au>2023-06-01 15:28:54 +1000
commit6fd588e970470b15936187980829916d0dbe77bb (patch)
tree1b1e73ef52bef2e41499ee5ceadc45efd408050b /src/ui/include/wheel_encoder.hpp
parentdb2e29a72d9b934e7b58f1d20ac3768eae484ab5 (diff)
downloadtangara-fw-6fd588e970470b15936187980829916d0dbe77bb.tar.gz
Add touchwheel -> encoder adapter
Diffstat (limited to 'src/ui/include/wheel_encoder.hpp')
-rw-r--r--src/ui/include/wheel_encoder.hpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/ui/include/wheel_encoder.hpp b/src/ui/include/wheel_encoder.hpp
new file mode 100644
index 00000000..0651ce0b
--- /dev/null
+++ b/src/ui/include/wheel_encoder.hpp
@@ -0,0 +1,30 @@
+/*
+ * Copyright 2023 jacqueline <me@jacqueline.id.au>
+ *
+ * SPDX-License-Identifier: GPL-3.0-only
+ */
+
+#pragma once
+
+#include <memory>
+
+#include "hal/lv_hal_indev.h"
+
+#include "relative_wheel.hpp"
+
+namespace ui {
+
+class TouchWheelEncoder {
+ public:
+ explicit TouchWheelEncoder(std::weak_ptr<drivers::RelativeWheel> wheel);
+
+ auto Read(lv_indev_data_t *data) -> void;
+ auto registration() -> lv_indev_t* { return registration_; }
+
+ private:
+ lv_indev_drv_t driver_;
+ lv_indev_t *registration_;
+ std::weak_ptr<drivers::RelativeWheel> wheel_;
+};
+
+} // namespace ui