summaryrefslogtreecommitdiff
path: root/src/ui/wheel_encoder.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui/wheel_encoder.cpp')
-rw-r--r--src/ui/wheel_encoder.cpp18
1 files changed, 4 insertions, 14 deletions
diff --git a/src/ui/wheel_encoder.cpp b/src/ui/wheel_encoder.cpp
index 243772d7..a0e12b7f 100644
--- a/src/ui/wheel_encoder.cpp
+++ b/src/ui/wheel_encoder.cpp
@@ -25,7 +25,7 @@ TouchWheelEncoder::TouchWheelEncoder(
std::weak_ptr<drivers::RelativeWheel> wheel)
: last_key_(0), wheel_(wheel) {
lv_indev_drv_init(&driver_);
- driver_.type = LV_INDEV_TYPE_KEYPAD;
+ driver_.type = LV_INDEV_TYPE_ENCODER;
driver_.read_cb = encoder_read;
// driver_.feedback_cb = encoder_feedback;
driver_.user_data = this;
@@ -41,19 +41,9 @@ auto TouchWheelEncoder::Read(lv_indev_data_t* data) -> void {
lock->Update();
- auto ticks = lock->ticks();
- if (ticks > 0) {
- data->key = LV_KEY_PREV;
- data->state = LV_INDEV_STATE_PRESSED;
- } else if (ticks < 0) {
- data->key = LV_KEY_NEXT;
- data->state = LV_INDEV_STATE_PRESSED;
- } else if (lock->is_clicking()) {
- data->key = LV_KEY_ENTER;
- data->state = LV_INDEV_STATE_PRESSED;
- } else {
- data->state = LV_INDEV_STATE_RELEASED;
- }
+ data->enc_diff = lock->ticks();
+ data->state =
+ lock->is_clicking() ? LV_INDEV_STATE_PRESSED : LV_INDEV_STATE_RELEASED;
}
} // namespace ui