InfiniTime.git

commit f68c7b65b31f0bb7ff729740a29d5796b2c04f01

Author: Avamander <avamander@gmail.com>

Minor formatting, diagnostic and documentation changes

 src/CMakeLists.txt | 2 +-
 src/displayapp/screens/InfiniPaint.cpp | 12 ++++++------
 src/displayapp/screens/Screen.h | 18 +++++++++++++++---
 src/logging/NrfLogger.cpp | 5 +++++
 src/systemtask/SystemTask.cpp | 5 ++++-


diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 961dedb4c869e8ba8737329acd6cb03a90ef9a9e..cd37810f0d6f12d67ac93b26d99b56eb1479cd94 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -552,7 +552,7 @@         ../
 )
 
 
-set(COMMON_FLAGS -MP -MD -mthumb -mabi=aapcs -Wall -g3 -ffunction-sections -fdata-sections -fno-strict-aliasing -fno-builtin --short-enums -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -Wreturn-type -Werror=return-type)
+set(COMMON_FLAGS -MP -MD -mthumb -mabi=aapcs -Wall -Wno-unknown-pragmas -g3 -ffunction-sections -fdata-sections -fno-strict-aliasing -fno-builtin --short-enums -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -Wreturn-type -Werror=return-type)
 add_definitions(-DCONFIG_GPIO_AS_PINRESET)
 add_definitions(-DDEBUG)
 add_definitions(-DNIMBLE_CFG_CONTROLLER)




diff --git a/src/displayapp/screens/InfiniPaint.cpp b/src/displayapp/screens/InfiniPaint.cpp
index b340f5d86e8ee6b5cbcd8e74d72e0d34001b66b1..312bb93a96812551aa385a731a001ffc22a32565 100644
--- a/src/displayapp/screens/InfiniPaint.cpp
+++ b/src/displayapp/screens/InfiniPaint.cpp
@@ -7,9 +7,9 @@ using namespace Pinetime::Applications::Screens;
 extern lv_font_t jetbrains_mono_extrabold_compressed;
 extern lv_font_t jetbrains_mono_bold_20;
 
-InfiniPaint::InfiniPaint(Pinetime::Applications::DisplayApp *app, Pinetime::Components::LittleVgl& lvgl) : Screen(app), lvgl{lvgl} {
+InfiniPaint::InfiniPaint(Pinetime::Applications::DisplayApp *app, Pinetime::Components::LittleVgl &lvgl) : Screen(app), lvgl{lvgl} {
   app->SetTouchMode(DisplayApp::TouchModes::Polling);
-  std::fill(b, b+bufferSize, LV_COLOR_WHITE);
+  std::fill(b, b + bufferSize, LV_COLOR_WHITE);
 }
 
 InfiniPaint::~InfiniPaint() {
@@ -33,10 +33,10 @@ }
 
 bool InfiniPaint::OnTouchEvent(uint16_t x, uint16_t y) {
   lv_area_t area;
-  area.x1 = x-(width/2);
-  area.y1 = y-(height/2);
-  area.x2 = x+(width/2)-1;
-  area.y2 = y+(height/2)-1;
+  area.x1 = x - (width / 2);
+  area.y1 = y - (height / 2);
+  area.x2 = x + (width / 2) - 1;
+  area.y2 = y + (height / 2) - 1;
   lvgl.SetFullRefresh(Components::LittleVgl::FullRefreshDirections::None);
   lvgl.FlushDisplay(&area, b);
   return true;




diff --git a/src/displayapp/screens/Screen.h b/src/displayapp/screens/Screen.h
index 0a17b4dae3411415845dceb717b9d0592c94ceb5..6b1d0eec2d03c84b2b44cedf5f3e27cc9779eaff 100644
--- a/src/displayapp/screens/Screen.h
+++ b/src/displayapp/screens/Screen.h
@@ -12,13 +12,25 @@         public:
           explicit Screen(DisplayApp* app) : app{app} {}
           virtual ~Screen() = default;
 
-          // Return false if the app can be closed, true if it must continue to run
+          /**
+           * Most of the time, apps only react to events (touch events, for example).
+           * In this case you don't need to do anything in this method.
+           *
+           * For example, InfiniPaint does nothing in Refresh().
+           * But, if you want to update your display periodically, draw an animation...
+           * you cannot do it in a touch event handler because these handlers are not
+           * called if the user does not touch the screen.
+           *
+           * That's why Refresh() is there: update the display periodically.
+           *
+           * @return false if the app can be closed, true if it must continue to run
+           **/
           virtual bool Refresh() = 0;
 
-          // Return false if the button hasn't been handled by the app, true if it has been handled
+          /** @return false if the button hasn't been handled by the app, true if it has been handled */
           virtual bool OnButtonPushed() { return false; }
 
-          // Return false if the event hasn't been handled by the app, true if it has been handled
+          /** @return false if the event hasn't been handled by the app, true if it has been handled */
           virtual bool OnTouchEvent(TouchEvents event) { return false; }
           virtual bool OnTouchEvent(uint16_t x, uint16_t y) { return false; }
 




diff --git a/src/logging/NrfLogger.cpp b/src/logging/NrfLogger.cpp
index 7ccacc82deb513ad11c20537a614936c20f9d29b..0d95c06a073bbfe4ce881e467d107daf7cbbffa2 100644
--- a/src/logging/NrfLogger.cpp
+++ b/src/logging/NrfLogger.cpp
@@ -19,10 +19,15 @@ }
 
 void NrfLogger::Process(void*) {
   NRF_LOG_INFO("Logger task started!");
+  // Suppress endless loop diagnostic
+  #pragma clang diagnostic push
+  #pragma ide diagnostic ignored "EndlessLoop"
   while (1) {
     NRF_LOG_FLUSH();
     vTaskDelay(100); // Not good for power consumption, it will wake up every 100ms...
   }
+  // Clear diagnostic suppression
+  #pragma clang diagnostic pop
 }
 
 void NrfLogger::Resume() {




diff --git a/src/systemtask/SystemTask.cpp b/src/systemtask/SystemTask.cpp
index c0552d53d81203beb39a0d42ad719623a164d8ef..01942daf24fe6f2112beadd54185c356575ba1cc 100644
--- a/src/systemtask/SystemTask.cpp
+++ b/src/systemtask/SystemTask.cpp
@@ -100,6 +100,9 @@
   idleTimer = xTimerCreate ("idleTimer", idleTime, pdFALSE, this, IdleTimerCallback);
   xTimerStart(idleTimer, 0);
 
+  // Suppress endless loop diagnostic
+  #pragma clang diagnostic push
+  #pragma ide diagnostic ignored "EndlessLoop"
   while(true) {
     uint8_t msg;
     if (xQueueReceive(systemTasksMsgQueue, &msg, isSleeping ? 2500 : 1000)) {
@@ -231,7 +234,7 @@   xHigherPriorityTaskWoken = pdFALSE;
   xQueueSendFromISR(systemTasksMsgQueue, &msg, &xHigherPriorityTaskWoken);
   if (xHigherPriorityTaskWoken) {
     /* Actual macro used here is port specific. */
-    // TODO : should I do something here?
+    // TODO: should I do something here?
   }
 }