|
|
@ -14,9 +14,7 @@ namespace ui { |
|
|
|
void encoder_read(lv_indev_drv_t* drv, lv_indev_data_t* data) { |
|
|
|
void encoder_read(lv_indev_drv_t* drv, lv_indev_data_t* data) { |
|
|
|
TouchWheelEncoder* instance = |
|
|
|
TouchWheelEncoder* instance = |
|
|
|
reinterpret_cast<TouchWheelEncoder*>(drv->user_data); |
|
|
|
reinterpret_cast<TouchWheelEncoder*>(drv->user_data); |
|
|
|
ESP_LOGI("Wheel Encoder", "Before read state: %d", data->state); |
|
|
|
|
|
|
|
instance->Read(data); |
|
|
|
instance->Read(data); |
|
|
|
ESP_LOGI("Wheel Encoder", "After read state: %d", data->state); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void encoder_feedback(lv_indev_drv_t* drv, uint8_t event_code) { |
|
|
|
void encoder_feedback(lv_indev_drv_t* drv, uint8_t event_code) { |
|
|
@ -29,7 +27,7 @@ TouchWheelEncoder::TouchWheelEncoder( |
|
|
|
lv_indev_drv_init(&driver_); |
|
|
|
lv_indev_drv_init(&driver_); |
|
|
|
driver_.type = LV_INDEV_TYPE_KEYPAD; |
|
|
|
driver_.type = LV_INDEV_TYPE_KEYPAD; |
|
|
|
driver_.read_cb = encoder_read; |
|
|
|
driver_.read_cb = encoder_read; |
|
|
|
driver_.feedback_cb = encoder_feedback; |
|
|
|
// driver_.feedback_cb = encoder_feedback;
|
|
|
|
driver_.user_data = this; |
|
|
|
driver_.user_data = this; |
|
|
|
|
|
|
|
|
|
|
|
registration_ = lv_indev_drv_register(&driver_); |
|
|
|
registration_ = lv_indev_drv_register(&driver_); |
|
|
@ -46,15 +44,12 @@ auto TouchWheelEncoder::Read(lv_indev_data_t* data) -> void { |
|
|
|
|
|
|
|
|
|
|
|
auto ticks = lock->ticks(); |
|
|
|
auto ticks = lock->ticks(); |
|
|
|
if (ticks > 0) { |
|
|
|
if (ticks > 0) { |
|
|
|
ESP_LOGI("wheel encoder", "is prev"); |
|
|
|
|
|
|
|
data->key = LV_KEY_PREV; |
|
|
|
data->key = LV_KEY_PREV; |
|
|
|
data->state = LV_INDEV_STATE_PRESSED; |
|
|
|
data->state = LV_INDEV_STATE_PRESSED; |
|
|
|
} else if (ticks < 0) { |
|
|
|
} else if (ticks < 0) { |
|
|
|
ESP_LOGI("wheel encoder", "is next"); |
|
|
|
|
|
|
|
data->key = LV_KEY_NEXT; |
|
|
|
data->key = LV_KEY_NEXT; |
|
|
|
data->state = LV_INDEV_STATE_PRESSED; |
|
|
|
data->state = LV_INDEV_STATE_PRESSED; |
|
|
|
} else if (lock->is_clicking()) { |
|
|
|
} else if (lock->is_clicking()) { |
|
|
|
ESP_LOGI("wheel encoder", "is clicking"); |
|
|
|
|
|
|
|
data->key = LV_KEY_ENTER; |
|
|
|
data->key = LV_KEY_ENTER; |
|
|
|
data->state = LV_INDEV_STATE_PRESSED; |
|
|
|
data->state = LV_INDEV_STATE_PRESSED; |
|
|
|
} else { |
|
|
|
} else { |
|
|
|