Apply InfiniTime LittleVgl changes

This commit is contained in:
Riku Isokoski 2023-02-24 18:11:26 +02:00
parent c6bccf5225
commit 48afc495ab
2 changed files with 30 additions and 9 deletions

View File

@ -268,15 +268,35 @@ void LittleVgl::FlushDisplay(const lv_area_t* area, lv_color_t* color_p) {
vTaskDelay(pdMS_TO_TICKS(3)); vTaskDelay(pdMS_TO_TICKS(3));
} }
void LittleVgl::SetNewTouchPoint(uint16_t x, uint16_t y, bool contact) { void LittleVgl::SetNewTouchPoint(int16_t x, int16_t y, bool contact) {
tap_x = x; if (contact) {
tap_y = y; if (!isCancelled) {
tapped = contact; touchPoint = {x, y};
tapped = true;
}
} else {
if (isCancelled) {
touchPoint = {-1, -1};
tapped = false;
isCancelled = false;
} else {
touchPoint = {x, y};
tapped = false;
}
}
} }
void LittleVgl::CancelTap() {
if (tapped) {
isCancelled = true;
touchPoint = {-1, -1};
}
}
bool LittleVgl::GetTouchPadInfo(lv_indev_data_t* ptr) { bool LittleVgl::GetTouchPadInfo(lv_indev_data_t* ptr) {
ptr->point.x = tap_x; ptr->point.x = touchPoint.x;
ptr->point.y = tap_y; ptr->point.y = touchPoint.y;
if (tapped) { if (tapped) {
ptr->state = LV_INDEV_STATE_PR; ptr->state = LV_INDEV_STATE_PR;
} else { } else {

View File

@ -24,7 +24,8 @@ namespace Pinetime {
void FlushDisplay(const lv_area_t* area, lv_color_t* color_p); void FlushDisplay(const lv_area_t* area, lv_color_t* color_p);
bool GetTouchPadInfo(lv_indev_data_t* ptr); bool GetTouchPadInfo(lv_indev_data_t* ptr);
void SetFullRefresh(FullRefreshDirections direction); void SetFullRefresh(FullRefreshDirections direction);
void SetNewTouchPoint(uint16_t x, uint16_t y, bool contact); void SetNewTouchPoint(int16_t x, int16_t y, bool contact);
void CancelTap();
bool GetFullRefresh() { bool GetFullRefresh() {
bool returnValue = fullRefresh; bool returnValue = fullRefresh;
@ -59,9 +60,9 @@ namespace Pinetime {
uint16_t writeOffset = 0; uint16_t writeOffset = 0;
uint16_t scrollOffset = 0; uint16_t scrollOffset = 0;
uint16_t tap_x = 0; lv_point_t touchPoint = {};
uint16_t tap_y = 0;
bool tapped = false; bool tapped = false;
bool isCancelled = false;
}; };
} }
} }