Add Stopwatch application

It can be started, stopped, and cleared. It also continues to run if
you leave the screen.
This commit is contained in:
2019-12-17 22:12:20 -08:00
parent 00c9910872
commit 463c3afd3d
7 changed files with 279 additions and 13 deletions

View File

@@ -34,6 +34,7 @@ ScreenManager::ScreenManager(BSP::Schedule::TaskScheduler &scheduler,
: m_scheduler(scheduler)
, m_screen_stack{nullptr}
, m_screen_stack_depth(0)
, m_root_initialized(false)
, m_display(display)
, m_buttons(buttons)
{
@@ -74,10 +75,14 @@ NextTime ScreenManager::execute()
ReturnCode ScreenManager::set_root_screen(Screen &screen)
{
m_screen_stack[m_screen_stack_depth] = &screen;
m_screen_stack_depth = 1;
current_screen()->enable();
m_scheduler.add_task(*this, NextTime::asap());
m_screen_stack[0] = &screen;
if (!m_root_initialized) {
m_screen_stack_depth = 1;
current_screen()->enable();
m_scheduler.add_task(*this, NextTime::asap());
m_root_initialized = true;
}
return ReturnCode::OK;
}