summaryrefslogtreecommitdiff
path: root/src/ui/encoder_input.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/encoder_input.cpp')
-rw-r--r--src/ui/encoder_input.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/ui/encoder_input.cpp b/src/ui/encoder_input.cpp
index f6f74aaf..9aa5d29a 100644
--- a/src/ui/encoder_input.cpp
+++ b/src/ui/encoder_input.cpp
@@ -40,7 +40,8 @@ EncoderInput::EncoderInput(drivers::IGpios& gpios, drivers::TouchWheel& wheel)
raw_wheel_(wheel),
relative_wheel_(std::make_unique<drivers::RelativeWheel>(wheel)),
scroller_(std::make_unique<Scroller>()),
- mode_(drivers::NvsStorage::InputModes::kRotatingWheel) {
+ mode_(drivers::NvsStorage::InputModes::kRotatingWheel),
+ is_locked_(false) {
lv_indev_drv_init(&driver_);
driver_.type = LV_INDEV_TYPE_ENCODER;
driver_.read_cb = encoder_read;
@@ -50,6 +51,10 @@ EncoderInput::EncoderInput(drivers::IGpios& gpios, drivers::TouchWheel& wheel)
}
auto EncoderInput::Read(lv_indev_data_t* data) -> void {
+ if (is_locked_) {
+ return;
+ }
+
raw_wheel_.Update();
relative_wheel_->Update();
// GPIOs updating is handled by system_fsm.