X-Git-Url: https://git.karo-electronics.de/?a=blobdiff_plain;f=ui%2Foswald_watch_faces.c;h=8be07ea1cf07774b0da8011a375ec0451014383e;hb=6029630643335ebe7dbba2da8e7bf2b5f7a434f9;hp=49cf73a6bacd0cd2d81164701b2a85e3bd5004a2;hpb=16600ff42846105227c8a3cbb4f2b818ca41811d;p=oswald.git diff --git a/ui/oswald_watch_faces.c b/ui/oswald_watch_faces.c index 49cf73a..8be07ea 100644 --- a/ui/oswald_watch_faces.c +++ b/ui/oswald_watch_faces.c @@ -3,8 +3,6 @@ #include "oswald.h" #include "oswald_main.h" -#include "Fonts.h" -#include "LcdDisplay.h" #include "oswald_hal.h" #include "oswald_graphics.h" @@ -120,15 +118,15 @@ void draw_status_icons(void) } } else { if (OswaldPowerState.percent > 75) - oswald_draw_bitmap_offset(81, 0, 0,0, battery100_icon_width, battery100_icon_height, battery100_icon_bits); + oswald_draw_bitmap(81, 0, battery100_icon_width, battery100_icon_height, battery100_icon_bits); else if (OswaldPowerState.percent > 50) - oswald_draw_bitmap_offset(81, 0, 0,0, battery75_icon_width, battery75_icon_height, battery75_icon_bits); + oswald_draw_bitmap(81, 0, battery75_icon_width, battery75_icon_height, battery75_icon_bits); else if (OswaldPowerState.percent > 25) - oswald_draw_bitmap_offset(81, 0, 0,0, battery50_icon_width, battery50_icon_height, battery50_icon_bits); + oswald_draw_bitmap(81, 0, battery50_icon_width, battery50_icon_height, battery50_icon_bits); else if (OswaldPowerState.percent > 5) - oswald_draw_bitmap_offset(81, 0, 0,0, battery25_icon_width, battery25_icon_height, battery25_icon_bits); + oswald_draw_bitmap(81, 0, battery25_icon_width, battery25_icon_height, battery25_icon_bits); else - oswald_draw_bitmap_offset(81, 0, 0,0, battery0_icon_width, battery0_icon_height, battery0_icon_bits); + oswald_draw_bitmap(81, 0, battery0_icon_width, battery0_icon_height, battery0_icon_bits); } if (hal_bluetooth_get_state() == BLUETOOTH_ON) @@ -161,12 +159,12 @@ void DrawLcdAnaClock(boolean show_seconds) hal_lcd_clear_display(); - snprintf(tstr, 16, "%02d", OswaldClk.day); + snprintf(tstr, 16, "%2d", OswaldClk.day); #if 0 SetFont(MetaWatch16); WriteLcdString(70, 40, tstr); #else - oswald_write_string(70, 43, FONT_7x12b, tstr); + oswald_write_string(70, 43, FONT_6x9, tstr); #endif // Marker @@ -210,8 +208,8 @@ void DrawLcdAnaClock(boolean show_seconds) void DrawLcdDigitalClock(boolean show_seconds) { - int gRow = 3; - int gColumn = 3; + int gRow = 1; + int gColumn = 1; char tstr[16]; int i; @@ -300,32 +298,50 @@ void DrawLcdDigitalClock(boolean show_seconds) #endif #else hal_lcd_clear_display(); - snprintf(tstr, 16, "%02d", OswaldClk.hour); - oswald_write_string(0, 0, FONT_16x26, tstr); - oswald_write_character(26, 0, FONT_16x26, ':'); - snprintf(tstr, 16, "%02d", OswaldClk.minute); - oswald_write_string(36, 0, FONT_16x26, tstr); + + if (OswaldClk.clk24hr) { + gRow += oswald_write_character(gRow, gColumn, FONT_LCD13x21, (OswaldClk.hour / 10)); + gRow += oswald_write_character(gRow, gColumn, FONT_LCD13x21, (OswaldClk.hour % 10)); + } else { + unsigned char val = OswaldClk.hour; + if (val > 12) + val -= 12; + gRow += oswald_write_character(gRow, gColumn, FONT_LCD13x21, (val / 10)); + gRow += oswald_write_character(gRow, gColumn, FONT_LCD13x21, (val % 10)); + } + if (OswaldClk.second % 2) + oswald_write_character(gRow-4, gColumn, FONT_LCD13x21, 10); + gRow += 5; + gRow += oswald_write_character(gRow, gColumn, FONT_LCD13x21, (OswaldClk.minute / 10)); + gRow += oswald_write_character(gRow, gColumn, FONT_LCD13x21, (OswaldClk.minute % 10)); +#endif + if (show_seconds) { + oswald_write_character(59, 9, FONT_LCD8x13, (OswaldClk.second / 10)); + oswald_write_character(67, 9, FONT_LCD8x13, (OswaldClk.second % 10)); + } if (OswaldClk.day_first) - snprintf(tstr, 16, "%d.%d.%d", OswaldClk.day, OswaldClk.month, OswaldClk.year); + snprintf(tstr, 16, "%2d.%2d.%4d", OswaldClk.day, OswaldClk.month, OswaldClk.year); else - snprintf(tstr, 16, "%d/%d %d", OswaldClk.month, OswaldClk.day, OswaldClk.year); - oswald_write_string(0, 25, FONT_7x12b, tstr); + snprintf(tstr, 16, "%2d/%2d %4d", OswaldClk.month, OswaldClk.day, OswaldClk.year); + oswald_write_string(0, 25, FONT_6x9, tstr); gRow = 0; gColumn = 45; for (i=0; i 90) { gRow = 0; gColumn += 9; } - if (gColumn > 95) + if (gColumn > 86) i = 255; } draw_status_icons(); -#endif + hal_lcd_update_display(); }