diff options
Diffstat (limited to 'pico-watch.c')
-rw-r--r-- | pico-watch.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/pico-watch.c b/pico-watch.c index a7c3886..eb5f7cc 100644 --- a/pico-watch.c +++ b/pico-watch.c @@ -6,6 +6,7 @@ #include "oled/ss_oled.h" #include "init.h" +#include "buttons.h" #include "apps/main_clock.h" int current_app = 0; @@ -14,6 +15,7 @@ int current_app = 0; #define APP_DATA_BUFFER_LEN 256 int (*APPS_FUNC_INIT[NUMBER_OF_APPS])(SSOLED *oled, char *data, uint data_size) = {main_clock_init}; int (*APPS_FUNC_RENDER[NUMBER_OF_APPS])(SSOLED *oled, char *data, uint data_size) = {main_clock_render}; +int (*APPS_FUNC_BTNPRESS[NUMBER_OF_APPS])(SSOLED *oled, char *data, uint data_size, uint gpio) = {main_clock_btnpressed}; int (*APPS_FUNC_BGREFRESH[NUMBER_OF_APPS])(SSOLED *oled, char *data, uint data_size) = {main_clock_bgrefresh}; int (*APPS_FUNC_DESTROY[NUMBER_OF_APPS])(SSOLED *oled, char *data, uint data_size) = {main_clock_destroy}; char APPS_DATA[NUMBER_OF_APPS][APP_DATA_BUFFER_LEN]; @@ -29,6 +31,10 @@ int app_render(int app_id) { return (*APPS_FUNC_RENDER[app_id])(&oled, &APPS_DATA[app_id][0], sizeof(APPS_DATA[app_id])); } +int app_btnpressed(int app_id, uint gpio) { + return (*APPS_FUNC_BTNPRESS[app_id])(&oled, &APPS_DATA[app_id][0], sizeof(APPS_DATA[app_id]), gpio); +} + int app_destroy(int app_id) { if (APPS_IS_INIT[app_id]) return (*APPS_FUNC_INIT[app_id])(&oled, &APPS_DATA[app_id][0], sizeof(APPS_DATA[app_id])); @@ -36,10 +42,10 @@ int app_destroy(int app_id) { int main() { init_all(); + init_buttons(); app_init(current_app); - oledWriteString(&oled, 0,15,0, (char *)"Test clock", FONT_8x8, 0, 1); while (1) { app_render(current_app); sleep_ms(500); |