summaryrefslogtreecommitdiff
path: root/src/displayapp/screens/ScreenList.h
diff options
context:
space:
mode:
authorJean-François Milants <jf@codingfield.com>2021-06-06 15:56:03 +0200
committerJean-François Milants <jf@codingfield.com>2021-06-06 15:56:03 +0200
commit7f9cc51b050e1034b573e37484f7afe29c370d81 (patch)
treede5228132fb72e89bb5d999b74b40f4248d41022 /src/displayapp/screens/ScreenList.h
parent79f0fcb07aa80eb70385223272e29f2ba5657bc8 (diff)
Initialize SystemTask, DisplayApp and HeartRateTask as global static variable instead of variables on the heap. We don't need them on the heap as we know their size at build time, it'll reduce memory fragmentation and it'll make memory analysis easier.
Diffstat (limited to 'src/displayapp/screens/ScreenList.h')
-rw-r--r--src/displayapp/screens/ScreenList.h13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/displayapp/screens/ScreenList.h b/src/displayapp/screens/ScreenList.h
index 73ea4610..ea66bfb2 100644
--- a/src/displayapp/screens/ScreenList.h
+++ b/src/displayapp/screens/ScreenList.h
@@ -15,12 +15,17 @@ namespace Pinetime {
public:
ScreenList(DisplayApp* app,
uint8_t initScreen,
- std::array<std::function<std::unique_ptr<Screen>()>, N>&& screens,
+ const std::array<std::function<std::unique_ptr<Screen>()>, N>&& screens,
ScreenListModes mode)
- : Screen(app), initScreen {initScreen}, screens {std::move(screens)}, mode {mode}, current {this->screens[initScreen]()} {
- screenIndex = initScreen;
+ : Screen(app), initScreen {initScreen}, screens {std::move(screens)}, mode {mode}, screenIndex{initScreen}, current {this->screens[initScreen]()} {
+
}
+ ScreenList(const ScreenList&) = delete;
+ ScreenList& operator=(const ScreenList&) = delete;
+ ScreenList(ScreenList&&) = delete;
+ ScreenList& operator=(ScreenList&&) = delete;
+
~ScreenList() override {
lv_obj_clean(lv_scr_act());
}
@@ -97,7 +102,7 @@ namespace Pinetime {
private:
uint8_t initScreen = 0;
- std::array<std::function<std::unique_ptr<Screen>()>, N> screens;
+ const std::array<std::function<std::unique_ptr<Screen>()>, N> screens;
ScreenListModes mode = ScreenListModes::UpDown;
uint8_t screenIndex = 0;