diff options
author | Uros Majstorovic <majstor@majstor.org> | 2022-09-04 18:37:42 +0200 |
---|---|---|
committer | Uros Majstorovic <majstor@majstor.org> | 2022-09-04 18:37:42 +0200 |
commit | fc98d3809e0db36d634f290417b9152f87f83e3e (patch) | |
tree | d7c0cbb883571dccfcd4028d8b7b2a2144fc2d2b /fw/fe310/phone/app/app.c | |
parent | 07e6abe5d5a1813298805bea2bf9d62ad895aaaa (diff) |
new phone firmware
Diffstat (limited to 'fw/fe310/phone/app/app.c')
-rw-r--r-- | fw/fe310/phone/app/app.c | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/fw/fe310/phone/app/app.c b/fw/fe310/phone/app/app.c new file mode 100644 index 0000000..ae25545 --- /dev/null +++ b/fw/fe310/phone/app/app.c @@ -0,0 +1,106 @@ +#include <stdlib.h> + +#include <dev/net.h> + +#include <eve/eve.h> +#include <eve/eve_kbd.h> +#include <eve/eve_font.h> + +#include <eve/screen/window.h> +#include <eve/screen/page.h> +#include <eve/screen/form.h> + +#include "status.h" +#include "app.h" + +#define KBD_X 0 +#define KBD_Y 629 +#define KBD_W 480 +#define KBD_H 225 + +static EVEKbd kbd; +static EVEFont font; +static EVEWindowRoot win_root; +static EVEWindowKbd win_kbd; +static EVEWindow win_status; +static EVEWindow win_main; +static EVEView view_status; +static EVEViewStack view_stack; + +EVEWindowRoot *app_root(void) { + return &win_root; +} + +EVEViewStack *app_stack(void){ + return &view_stack; +} + +EVEFont *app_font(void) { + return &font; +} + +void app_refresh(void) { + eve_select(); + eve_window_root_draw(app_root()); + eve_deselect(); +} + +EVEView *app_search_view(char *name) { + EVEWindow *win = eve_window_search(&win_root.w, name); + + if (win) return win->view; + return NULL; +} + +eve_view_constructor_t app_current_view(void) { + return eve_stack_get(&view_stack); +} + +void app_init(eve_view_constructor_t home_page, int b) { + EVERect g; + + eve_select(); + + if (b >= 0) eve_brightness(b); + + eve_font_init(&font, APP_FONT_HANDLE); + + g.x = 0; + g.y = 0; + g.w = APP_SCREEN_W; + g.h = APP_SCREEN_H; + eve_window_init_root(&win_root, &g, "root", &font); + + g.x = KBD_X; + g.y = KBD_Y; + g.w = KBD_W; + g.h = KBD_H; + eve_kbd_init(&kbd, &g, win_root.mem_next, &win_root.mem_next); + eve_window_init_kbd(&win_kbd, &g, &win_root, "kbd", &kbd); + + g.x = 0; + g.y = 0; + g.w = APP_SCREEN_W; + g.h = APP_STATUS_H; + eve_window_init(&win_status, &g, (EVEWindow *)&win_root, "status"); + app_status_init(&view_status, &win_status); + + g.x = 0; + g.y = APP_STATUS_H; + g.w = APP_SCREEN_W; + g.h = APP_SCREEN_H - APP_STATUS_H; + eve_window_init(&win_main, &g, (EVEWindow *)&win_root, "main"); + + eve_stack_init(&view_stack); + eve_stack_create_view(&view_stack, &win_main, home_page); + + eve_window_append(&win_status); + eve_window_append(&win_main); + + eve_window_root_draw(&win_root); + + eve_deselect(); + + eos_net_acquire_for_evt(EOS_EVT_EVE | EVE_ETYPE_INTR, 1); + // eos_net_acquire_for_evt(EOS_EVT_TIMER | EOS_TIMER_ETYPE_EVE, 1); +} |