summaryrefslogtreecommitdiffstats
path: root/pico-watch.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'pico-watch.cpp')
-rw-r--r--pico-watch.cpp22
1 files changed, 12 insertions, 10 deletions
diff --git a/pico-watch.cpp b/pico-watch.cpp
index bbaa679..f75317e 100644
--- a/pico-watch.cpp
+++ b/pico-watch.cpp
@@ -10,19 +10,21 @@
#include "buttons.hpp"
#include "apps/main_clock.hpp"
#include "apps/home_menu.hpp"
+#include "apps/settings/main.hpp"
global_status g_s;
+user_settings g_user;
Api app_api;
-#define NUMBER_OF_APPS 2
+#define NUMBER_OF_APPS 3
#define APP_DATA_BUFFER_LEN 256
-int (*APPS_FUNC_INIT[NUMBER_OF_APPS])(Api *app_api) = {app_home_menu::init, app_main_clock::init};
-int (*APPS_FUNC_RENDER[NUMBER_OF_APPS])(Api *app_api) = {app_home_menu::render, app_main_clock::render};
-int (*APPS_FUNC_BTNPRESS[NUMBER_OF_APPS])(Api *app_api, uint gpio, unsigned long delta) = {app_home_menu::btnpressed, app_main_clock::btnpressed};
-int (*APPS_FUNC_BGREFRESH[NUMBER_OF_APPS])(Api *app_api, bool in_foreground) = {app_home_menu::bgrefresh, app_main_clock::bgrefresh};
-int (*APPS_FUNC_DESTROY[NUMBER_OF_APPS])(Api *app_api) = {app_home_menu::destroy, app_main_clock::destroy};
-int APPS_DESTROY_ON_EXIT[NUMBER_OF_APPS] = {0, 1};
-int APPS_IS_INIT[NUMBER_OF_APPS] = {0, 0}; // Only run in background if init
+int (*APPS_FUNC_INIT[NUMBER_OF_APPS])(Api *app_api) = {app_home_menu::init, app_main_clock::init, app_settings::init};
+int (*APPS_FUNC_RENDER[NUMBER_OF_APPS])(Api *app_api) = {app_home_menu::render, app_main_clock::render, app_settings::render};
+int (*APPS_FUNC_BTNPRESS[NUMBER_OF_APPS])(Api *app_api, uint gpio, unsigned long delta) = {app_home_menu::btnpressed, app_main_clock::btnpressed, app_settings::btnpressed};
+int (*APPS_FUNC_BGREFRESH[NUMBER_OF_APPS])(Api *app_api, bool in_foreground) = {app_home_menu::bgrefresh, app_main_clock::bgrefresh, app_settings::bgrefresh};
+int (*APPS_FUNC_DESTROY[NUMBER_OF_APPS])(Api *app_api) = {app_home_menu::destroy, app_main_clock::destroy, app_settings::destroy};
+int APPS_DESTROY_ON_EXIT[NUMBER_OF_APPS] = {0, 1, 1};
+int APPS_IS_INIT[NUMBER_OF_APPS] = {0}; // Only run in background if init
int app_init(int app_id) {
app_api.display_fill(0,1); // Clear OLED
@@ -83,11 +85,11 @@ int app_bgrefresh(int app_id) {
bool repeating_callback(struct repeating_timer *t) {
// Enter shallow sleep mode when needed
auto time_since_last_press = time_since_button_press();
- if (!g_s.is_sleeping && time_since_last_press > ENTER_SLEEP_DELAY) {
+ if (!g_s.is_sleeping && time_since_last_press > g_user.sleep_delay) {
g_s.is_sleeping = true;
app_api.performance_set(Api::perf_modes::ENTER_SHALLOW_SLEEP);
app_api.display_power(false);
- } else if (g_s.is_sleeping && time_since_last_press < ENTER_SLEEP_DELAY) {
+ } else if (g_s.is_sleeping && time_since_last_press < g_user.sleep_delay) {
g_s.is_sleeping = false;
app_api.performance_set(Api::perf_modes::EXIT_SHALLOW_SLEEP);
app_api.display_power(true);