Ersa Wearable Platform
Embedded smartwatch firmware and application framework
Loading...
Searching...
No Matches
application_manager.h
Go to the documentation of this file.
1#pragma once
2
3#include "application.h"
4#include "ersa/events/event.h"
5#include "ersa/hal/display.h"
6#include <stdint.h>
7#include <stddef.h>
8
9namespace ersa {
10namespace app {
11
21public:
23 static constexpr size_t MAX_APPS = 16;
24
27
35 bool registerApp(Application* app);
43 bool switchTo(const char* appId);
48 bool switchTo(size_t index);
49
53 size_t getAppCount() const;
55 Application* getApp(size_t index) const;
56
63 bool handleEvent(const events::Event& event);
64
66 void markDirty(bool fullRefresh = false);
68 void clearDirty();
70 bool isDirty() const;
72 bool isFullRefreshNeeded() const;
74 bool isAppSwitched() const;
76 void clearAppSwitched();
77
84 void render(hal::IDisplay& display);
85
87 void tick();
88
91
92private:
94 size_t appCount_{0};
96
97 bool dirty_{true};
99 bool appSwitched_{true};
100 uint32_t lastRenderTime_{0};
101};
102
103} // namespace app
104} // namespace ersa
Definition application_manager.h:20
Application * apps_[MAX_APPS]
Definition application_manager.h:93
bool registerApp(Application *app)
Definition application_manager.cpp:18
void markDirty(bool fullRefresh=false)
Definition application_manager.cpp:85
size_t getAppCount() const
Definition application_manager.cpp:70
bool appSwitched_
Definition application_manager.h:99
void clearDirty()
Definition application_manager.cpp:92
bool isFullRefreshNeeded() const
Definition application_manager.cpp:101
bool dirty_
Definition application_manager.h:97
uint32_t lastRenderTime_
Definition application_manager.h:100
bool switchTo(const char *appId)
Definition application_manager.cpp:37
static ApplicationManager & instance()
Definition application_manager.cpp:13
bool isDirty() const
Definition application_manager.cpp:97
void render(hal::IDisplay &display)
Definition application_manager.cpp:113
void clearAppSwitched()
Definition application_manager.cpp:109
static constexpr size_t MAX_APPS
Definition application_manager.h:23
size_t appCount_
Definition application_manager.h:94
bool handleEvent(const events::Event &event)
Definition application_manager.cpp:79
bool fullRefreshNeeded_
Definition application_manager.h:98
Application * getActiveApp() const
Definition application_manager.cpp:66
Application * getApp(size_t index) const
Definition application_manager.cpp:74
bool isAppSwitched() const
Definition application_manager.cpp:105
void tick()
Definition application_manager.cpp:136
Application * activeApp_
Definition application_manager.h:95
ApplicationManager()
Definition application_manager.cpp:7
Definition application.h:22
Definition display.h:40
Definition application.h:10
Definition event.h:134