@@ -18,61 +18,47 @@ Pinetime::Drivers::Cst816S::Gestures TouchHandler::GestureGet() {
1818 return returnGesture;
1919}
2020
21- void TouchHandler::Start () {
22- if (pdPASS != xTaskCreate (TouchHandler::Process, " Touch" , 100 , this , 0 , &taskHandle)) {
23- APP_ERROR_HANDLER (NRF_ERROR_NO_MEM);
24- }
25- }
26-
27- void TouchHandler::Process (void * instance) {
28- auto * app = static_cast <TouchHandler*>(instance);
29- app->Work ();
30- }
31-
32- void TouchHandler::Work () {
33- bool slideReleased = true ;
34- while (true ) {
35- vTaskSuspend (taskHandle);
21+ bool TouchHandler::GetNewTouchInfo () {
22+ info = touchPanel.GetTouchInfo ();
3623
37- info = touchPanel.GetTouchInfo ();
38-
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 ;
49- }
50- }
24+ if (!info.isValid ) {
25+ return false ;
26+ }
5127
52- if (!systemTask->IsSleeping ()) {
28+ if (info.gesture != Pinetime::Drivers::Cst816S::Gestures::None) {
29+ if (slideReleased) {
30+ if (info.gesture == Pinetime::Drivers::Cst816S::Gestures::SlideDown ||
31+ info.gesture == Pinetime::Drivers::Cst816S::Gestures::SlideLeft ||
32+ info.gesture == Pinetime::Drivers::Cst816S::Gestures::SlideUp ||
33+ info.gesture == Pinetime::Drivers::Cst816S::Gestures::SlideRight) {
5334 if (info.touching ) {
54- if (!isCancelled) {
55- lvgl.SetNewTouchPoint (info.x , info.y , true );
56- }
57- } else {
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 ;
35+ gesture = info.gesture ;
36+ slideReleased = false ;
6537 }
38+ } else {
39+ gesture = info.gesture ;
6640 }
67- systemTask->OnTouchEvent ();
6841 }
6942 }
70- }
7143
72- void TouchHandler::Register (Pinetime::System::SystemTask* systemTask) {
73- this ->systemTask = systemTask;
44+ if (!info.touching ) {
45+ slideReleased = true ;
46+ }
47+
48+ return true ;
7449}
7550
76- void TouchHandler::WakeUp () {
77- vTaskResume (taskHandle);
51+ void TouchHandler::UpdateLvglTouchPoint () {
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 ;
60+ } else {
61+ lvgl.SetNewTouchPoint (info.x , info.y , false );
62+ }
63+ }
7864}
0 commit comments