summaryrefslogtreecommitdiff
path: root/src/input/include/input_touch_wheel.hpp
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2024-04-11 15:16:35 +1000
committerjacqueline <me@jacqueline.id.au>2024-04-11 15:16:35 +1000
commit33919e9e3f419e13318fa6b8217d8c8dcd86c1eb (patch)
tree9e3a1209c8f17f9a6d57249fae7067cbb81e0227 /src/input/include/input_touch_wheel.hpp
parented82063af5f83530afa5cfb5bf5bd516f3d05f2a (diff)
downloadtangara-fw-33919e9e3f419e13318fa6b8217d8c8dcd86c1eb.tar.gz
Migrate all existing control schemes to the cool new world
Diffstat (limited to 'src/input/include/input_touch_wheel.hpp')
-rw-r--r--src/input/include/input_touch_wheel.hpp20
1 files changed, 17 insertions, 3 deletions
diff --git a/src/input/include/input_touch_wheel.hpp b/src/input/include/input_touch_wheel.hpp
index a4923f21..c81cbb1a 100644
--- a/src/input/include/input_touch_wheel.hpp
+++ b/src/input/include/input_touch_wheel.hpp
@@ -6,29 +6,43 @@
#pragma once
+#include <sys/_stdint.h>
#include <cstdint>
#include "hal/lv_hal_indev.h"
#include "haptics.hpp"
#include "input_device.hpp"
+#include "input_trigger.hpp"
+#include "nvs.hpp"
+#include "property.hpp"
#include "touchwheel.hpp"
namespace input {
class TouchWheel : public IInputDevice {
public:
- TouchWheel(drivers::TouchWheel&);
+ TouchWheel(drivers::NvsStorage&, drivers::TouchWheel&);
auto read(lv_indev_data_t* data) -> void override;
+ auto sensitivity() -> lua::Property&;
+
private:
- auto calculate_ticks(const drivers::TouchWheelData& data) -> int8_t;
+ auto calculateTicks(const drivers::TouchWheelData& data) -> int8_t;
+ auto calculateThreshold(uint8_t sensitivity) -> uint8_t;
+ drivers::NvsStorage& nvs_;
drivers::TouchWheel& wheel_;
+ lua::Property sensitivity_;
+
+ Trigger up_;
+ Trigger right_;
+ Trigger down_;
+ Trigger left_;
+
bool is_scrolling_;
- uint8_t sensitivity_;
uint8_t threshold_;
bool is_first_read_;
uint8_t last_angle_;