summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAvamander <avamander@gmail.com>2020-10-04 15:08:48 +0300
committerAvamander <avamander@gmail.com>2020-10-09 11:36:16 +0300
commitf68c7b65b31f0bb7ff729740a29d5796b2c04f01 (patch)
tree89d957f4bdf5d6ad8a0f888f3ca2b25de907ab4c /src
parentbb72712d376685143b57d321c6f967cbbca4c28e (diff)
Minor formatting, diagnostic and documentation changes
Diffstat (limited to 'src')
-rw-r--r--src/CMakeLists.txt2
-rw-r--r--src/displayapp/screens/InfiniPaint.cpp12
-rw-r--r--src/displayapp/screens/Screen.h18
-rw-r--r--src/logging/NrfLogger.cpp5
-rw-r--r--src/systemtask/SystemTask.cpp5
5 files changed, 31 insertions, 11 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 961dedb4..cd37810f 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -552,7 +552,7 @@ link_directories(
)
-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 b340f5d8..312bb93a 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(Pinetime::Applications::TouchEvents event) {
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 0a17b4da..6b1d0eec 100644
--- a/src/displayapp/screens/Screen.h
+++ b/src/displayapp/screens/Screen.h
@@ -12,13 +12,25 @@ namespace Pinetime {
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 7ccacc82..0d95c06a 100644
--- a/src/logging/NrfLogger.cpp
+++ b/src/logging/NrfLogger.cpp
@@ -19,10 +19,15 @@ void NrfLogger::Init() {
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 c0552d53..01942daf 100644
--- a/src/systemtask/SystemTask.cpp
+++ b/src/systemtask/SystemTask.cpp
@@ -100,6 +100,9 @@ void SystemTask::Work() {
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 @@ void SystemTask::PushMessage(SystemTask::Messages msg) {
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?
}
}