X-Git-Url: https://git.karo-electronics.de/?a=blobdiff_plain;f=ui%2Foswald_main.c;h=f26603b9e4a085c9947d659cfef4a5f2d21be5e8;hb=133faed023f55592a87ee1b8dbc74bc4a8917006;hp=f2e4abeeecd4a708a25af77d1d33abd06e77e7ba;hpb=ad140c1dc1090e2a99ff7a362713436e0ae51c7d;p=oswald.git diff --git a/ui/oswald_main.c b/ui/oswald_main.c index f2e4abe..f26603b 100644 --- a/ui/oswald_main.c +++ b/ui/oswald_main.c @@ -17,7 +17,7 @@ alarm_clk OswaldAlarm; watch_state OswaldState; watch_screen OswaldScreens[SCREENS_END]; power_state OswaldPowerState; -u8t backlight_safety_off = 0; +uint8_t backlight_safety_off = 0; char MainMessage[148]; @@ -32,7 +32,7 @@ void oswald_change_to_screen(screen_number screen_id) } } -void oswald_set_time(u8t hour, u8t minute, u8t second, boolean clk24hr) +void oswald_set_time(uint8_t hour, uint8_t minute, uint8_t second, boolean clk24hr) { OswaldClk.hour = hour; OswaldClk.minute = minute; @@ -40,7 +40,7 @@ void oswald_set_time(u8t hour, u8t minute, u8t second, boolean clk24hr) OswaldClk.clk24hr = clk24hr; } -void oswald_set_date(u8t day, u8t month, u16t year, boolean day_first) +void oswald_set_date(uint8_t day, uint8_t month, uint16_t year, boolean day_first) { OswaldClk.day = day; OswaldClk.month = month; @@ -100,25 +100,21 @@ void oswald_halfsecond_tick(void) void oswald_handle_button_press(watch_button button) { switch (button) { - case BUTTON_D: - // backlight on/off - if (hal_lcd_get_backlight()) { - hal_lcd_set_backlight(FALSE); - backlight_safety_off = 0; - } else { - hal_lcd_set_backlight(TRUE); - backlight_safety_off = 2; - } - break; case BUTTON_A: case BUTTON_B: case BUTTON_E: case BUTTON_F: if (OswaldState.screen->event_func != NULL && - (OswaldState.screen->event_mask & EVENT_USER_BUTTONS)) - OswaldState.screen->event_func(EVENT_USER_BUTTONS, &button); + (OswaldState.screen->event_mask & EVENT_USER_BUTTONS)) { + OswaldState.screen->event_func(EVENT_USER_BUTTONS, &button); + } break; case BUTTON_C: + if (OswaldState.screen->event_func != NULL && + (OswaldState.screen->event_mask & EVENT_USER_BUTTONS)) { + if (OswaldState.screen->event_func(EVENT_USER_BUTTONS, &button) == EVENT_RET_HANDLED) + break; + } OswaldState.screen->event_func(EVENT_SCREEN_DESTROY, NULL); // next screen OswaldState.screen_id++; @@ -128,13 +124,23 @@ void oswald_handle_button_press(watch_button button) OswaldState.screen = &OswaldScreens[OswaldState.screen_id]; OswaldState.screen->event_func(EVENT_SCREEN_VISIBLE, NULL); break; + case BUTTON_D: + // backlight on/off + if (hal_lcd_get_backlight()) { + hal_lcd_set_backlight(FALSE); + backlight_safety_off = 0; + } else { + hal_lcd_set_backlight(TRUE); + backlight_safety_off = 2; + } + break; default: // should never get here break; }; } -void oswald_handle_accel_event(u8t x, u8t y, u8t z) +void oswald_handle_accel_event(uint8_t x, uint8_t y, uint8_t z) { accel_data_t accel_data; @@ -147,7 +153,7 @@ void oswald_handle_accel_event(u8t x, u8t y, u8t z) OswaldState.screen->event_func(EVENT_ACCEL_UPDATE, &accel_data); } -void oswald_handle_ambientlight_event(u8t light_level) +void oswald_handle_ambientlight_event(uint8_t light_level) { if (OswaldState.screen->event_func != NULL && (OswaldState.screen->event_mask & EVENT_AMBIENTLIGHT_UPDATE)) @@ -205,6 +211,9 @@ void oswald_init(void) OswaldScreens[ALARM_SCREEN].event_mask = EVENT_USER_BUTTONS | EVENT_HALF_SEC_TIMER; OswaldScreens[ALARM_SCREEN].event_func = alarm_handle_events; + OswaldScreens[INFO_SCREEN].event_mask = 0x00; // this one does not consume any events + OswaldScreens[INFO_SCREEN].event_func = info_screen_handle_events; + OswaldState.screen_id = IDLE_SCREEN; OswaldState.screen = &OswaldScreens[OswaldState.screen_id]; @@ -214,5 +223,7 @@ void oswald_init(void) OswaldAlarm.hour = 12; OswaldAlarm.minute = 0; OswaldAlarm.wday = 0x00; + + // strcpy(MainMessage, "So koennte dann eine Nachricht aussehen. Samt Text mit Unterlaengen. Und dies ist dann die letzte Zeile und mehr Text als paßt."); }