Skip to content

Commit 3e42297

Browse files
committed
Update
1 parent 329482f commit 3e42297

4 files changed

Lines changed: 27 additions & 25 deletions

File tree

src/drivers/Cst816s.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ namespace Pinetime {
2121
uint16_t y = 0;
2222
Gestures gesture = Gestures::None;
2323
bool touching = false;
24-
bool isValid = false;
24+
bool isValid = true;
2525
};
2626

2727
Cst816S(TwiMaster& twiMaster, uint8_t twiAddress);

src/main.cpp

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -315,9 +315,6 @@ int main(void) {
315315

316316
systemTask.Start();
317317

318-
touchHandler.Register(&systemTask);
319-
touchHandler.Start();
320-
321318
nimble_port_init();
322319

323320
vTaskStartScheduler();

src/systemtask/SystemTask.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,9 @@ void SystemTask::Work() {
144144
heartRateSensor.Disable();
145145
heartRateApp.Start();
146146

147+
touchHandler.Register(this);
148+
touchHandler.Start();
149+
147150
nrf_gpio_cfg_sense_input(pinButton, (nrf_gpio_pin_pull_t) GPIO_PIN_CNF_PULL_Pulldown, (nrf_gpio_pin_sense_t) GPIO_PIN_CNF_SENSE_High);
148151
nrf_gpio_cfg_output(15);
149152
nrf_gpio_pin_set(15);

src/touchhandler/TouchHandler.cpp

Lines changed: 23 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -30,37 +30,39 @@ void TouchHandler::Process(void* instance) {
3030
}
3131

3232
void TouchHandler::Work() {
33-
Pinetime::Drivers::Cst816S::Gestures prevGesture = Pinetime::Drivers::Cst816S::Gestures::None;
33+
bool slideReleased = true;
3434
while (true) {
3535
vTaskSuspend(taskHandle);
3636

3737
info = touchPanel.GetTouchInfo();
3838

39-
if (info.gesture != Pinetime::Drivers::Cst816S::Gestures::None) {
40-
if (prevGesture != info.gesture) {
41-
if (info.gesture == Pinetime::Drivers::Cst816S::Gestures::SlideDown || info.gesture == Pinetime::Drivers::Cst816S::Gestures::SlideLeft ||
42-
info.gesture == Pinetime::Drivers::Cst816S::Gestures::SlideUp || info.gesture == Pinetime::Drivers::Cst816S::Gestures::SlideRight) {
43-
prevGesture = info.gesture;
39+
if (info.isValid) {
40+
if (info.gesture != Pinetime::Drivers::Cst816S::Gestures::None) {
41+
if (slideReleased) {
42+
if (info.gesture == Pinetime::Drivers::Cst816S::Gestures::SlideDown ||
43+
info.gesture == Pinetime::Drivers::Cst816S::Gestures::SlideLeft ||
44+
info.gesture == Pinetime::Drivers::Cst816S::Gestures::SlideUp ||
45+
info.gesture == Pinetime::Drivers::Cst816S::Gestures::SlideRight) {
46+
slideReleased = false;
47+
}
48+
gesture = info.gesture;
4449
}
45-
gesture = info.gesture;
4650
}
47-
}
4851

49-
if (systemTask->IsSleeping()) {
50-
systemTask->PushMessage(System::Messages::TouchWakeUp);
51-
} else {
52-
if (info.touching) {
53-
if (!isCancelled) {
54-
lvgl.SetNewTouchPoint(info.x, info.y, true);
55-
}
56-
} else {
57-
if (isCancelled) {
58-
lvgl.SetNewTouchPoint(-1, -1, false);
59-
isCancelled = false;
52+
if (!systemTask->IsSleeping()) {
53+
if (info.touching) {
54+
if (!isCancelled) {
55+
lvgl.SetNewTouchPoint(info.x, info.y, true);
56+
}
6057
} else {
61-
lvgl.SetNewTouchPoint(info.x, info.y, false);
58+
if (isCancelled) {
59+
lvgl.SetNewTouchPoint(-1, -1, false);
60+
isCancelled = false;
61+
} else {
62+
lvgl.SetNewTouchPoint(info.x, info.y, false);
63+
}
64+
slideReleased = true;
6265
}
63-
prevGesture = Pinetime::Drivers::Cst816S::Gestures::None;
6466
}
6567
systemTask->OnTouchEvent();
6668
}

0 commit comments

Comments
 (0)