X-Git-Url: https://git.karo-electronics.de/?p=oswald.git;a=blobdiff_plain;f=ui%2Foswald_watch_faces.c;h=49cf73a6bacd0cd2d81164701b2a85e3bd5004a2;hp=4ca034fb9951a97e4938cbac5a9e80b4d5e2771c;hb=16600ff42846105227c8a3cbb4f2b818ca41811d;hpb=1553c23cf33de5d8a193ffc8c7014cf826fc9fd3 diff --git a/ui/oswald_watch_faces.c b/ui/oswald_watch_faces.c index 4ca034f..49cf73a 100644 --- a/ui/oswald_watch_faces.c +++ b/ui/oswald_watch_faces.c @@ -6,20 +6,48 @@ #include "Fonts.h" #include "LcdDisplay.h" #include "oswald_hal.h" +#include "oswald_graphics.h" #include "oswald_watch_faces.h" -#include "battery0_icon.xbm" -#include "battery25_icon.xbm" -#include "battery50_icon.xbm" -#include "battery75_icon.xbm" -#include "battery100_icon.xbm" -#include "charger_icon.xbm" -#include "bluetooth_icon.xbm" -#include "bluetooth_con_icon.xbm" +#if defined(__GNUC__) && (__MSP430X__ > 0) +__attribute__((__far__)) +#endif +#include "bitmaps/battery0_icon.xbm" +#if defined(__GNUC__) && (__MSP430X__ > 0) +__attribute__((__far__)) +#endif +#include "bitmaps/battery25_icon.xbm" +#if defined(__GNUC__) && (__MSP430X__ > 0) +__attribute__((__far__)) +#endif +#include "bitmaps/battery50_icon.xbm" +#if defined(__GNUC__) && (__MSP430X__ > 0) +__attribute__((__far__)) +#endif +#include "bitmaps/battery75_icon.xbm" +#if defined(__GNUC__) && (__MSP430X__ > 0) +__attribute__((__far__)) +#endif +#include "bitmaps/battery100_icon.xbm" +#if defined(__GNUC__) && (__MSP430X__ > 0) +__attribute__((__far__)) +#endif +#include "bitmaps/charger_icon.xbm" +#if defined(__GNUC__) && (__MSP430X__ > 0) +__attribute__((__far__)) +#endif +#include "bitmaps/bluetooth_icon.xbm" +#if defined(__GNUC__) && (__MSP430X__ > 0) +__attribute__((__far__)) +#endif +#include "bitmaps/bluetooth_con_icon.xbm" /* sine table, per degree, factor 100 */ +#if defined(__GNUC__) && (__MSP430X__ > 0) +__attribute__((__far__)) +#endif int16_t sintab[]={ 0, 2, 3, 5, 7, 9, 10, 12, 14, 16, 17, 19, 21, 22, 24, 26, 28, 29, 31, 33, @@ -92,15 +120,15 @@ void draw_status_icons(void) } } else { if (OswaldPowerState.percent > 75) - oswald_draw_bitmap(81, 0, battery100_icon_width, battery100_icon_height, battery100_icon_bits); + oswald_draw_bitmap_offset(81, 0, 0,0, battery100_icon_width, battery100_icon_height, battery100_icon_bits); else if (OswaldPowerState.percent > 50) - oswald_draw_bitmap(81, 0, battery75_icon_width, battery75_icon_height, battery75_icon_bits); + oswald_draw_bitmap_offset(81, 0, 0,0, battery75_icon_width, battery75_icon_height, battery75_icon_bits); else if (OswaldPowerState.percent > 25) - oswald_draw_bitmap(81, 0, battery50_icon_width, battery50_icon_height, battery50_icon_bits); + oswald_draw_bitmap_offset(81, 0, 0,0, battery50_icon_width, battery50_icon_height, battery50_icon_bits); else if (OswaldPowerState.percent > 5) - oswald_draw_bitmap(81, 0, battery25_icon_width, battery25_icon_height, battery25_icon_bits); + oswald_draw_bitmap_offset(81, 0, 0,0, battery25_icon_width, battery25_icon_height, battery25_icon_bits); else - oswald_draw_bitmap(81, 0, battery0_icon_width, battery0_icon_height, battery0_icon_bits); + oswald_draw_bitmap_offset(81, 0, 0,0, battery0_icon_width, battery0_icon_height, battery0_icon_bits); } if (hal_bluetooth_get_state() == BLUETOOTH_ON) @@ -133,9 +161,13 @@ void DrawLcdAnaClock(boolean show_seconds) hal_lcd_clear_display(); - SetFont(MetaWatch16); snprintf(tstr, 16, "%02d", OswaldClk.day); +#if 0 + SetFont(MetaWatch16); WriteLcdString(70, 40, tstr); +#else + oswald_write_string(70, 43, FONT_7x12b, tstr); +#endif // Marker // plot(R*cos(360° * i/N), R*sin(360° * i/N)) @@ -144,7 +176,7 @@ void DrawLcdAnaClock(boolean show_seconds) y = 47 + ((43 * f_sin((360 / 12) * i)) / 100); x2 = 47 + ((47 * f_cos((360 / 12) * i)) / 100); y2 = 47 + ((47 * f_sin((360 / 12) * i)) / 100); - DrawLcdLineBresenhamWW(x, y, x2, y2, 2); + oswald_draw_line_ww(x, y, x2, y2, 2); // g_printerr("br %d,%d %d,%d\n", x,y,x2,y2); }; @@ -153,14 +185,14 @@ void DrawLcdAnaClock(boolean show_seconds) x = tmp; tmp = 47 + (30 * f_sin(((360 / 12) * hour) + ((OswaldClk.minute * 360) /12 / 60)) / 100); y = tmp; - DrawLcdLineBresenhamWW(47, 47, x, y, 2); + oswald_draw_line_ww(47, 47, x, y, 2); // Minute tmp = 47 + ((40 * f_cos((360 / 60) * minute)) / 100); x = tmp; tmp = 47 + ((40 * f_sin((360 / 60) * minute)) / 100); y = tmp; - DrawLcdLineBresenhamWW(47, 47, x, y, 2); + oswald_draw_line_ww(47, 47, x, y, 2); if (show_seconds) { // Seconds @@ -168,7 +200,7 @@ void DrawLcdAnaClock(boolean show_seconds) x = tmp; tmp = 47 + ((40 * f_sin((360 / 60) * seconds)) / 100); y = tmp; - DrawLcdLineBresenham(47, 47, x, y); + oswald_draw_line(47, 47, x, y); }; draw_status_icons(); @@ -183,6 +215,7 @@ void DrawLcdDigitalClock(boolean show_seconds) char tstr[16]; int i; +#if 0 SetFont(MetaWatchTime); hal_lcd_clear_display(); @@ -226,27 +259,7 @@ void DrawLcdDigitalClock(boolean show_seconds) snprintf(tstr, 16, "%d/%d %d", OswaldClk.month, OswaldClk.day, OswaldClk.year); WriteLcdString(3, 25, tstr); -#if 0 - if (OswaldPowerState.source) - oswald_draw_bitmap(81, 4, charger_icon_width, charger_icon_height, charger_icon_bits); - - if (OswaldPowerState.percent > 75) - oswald_draw_bitmap(81, 4, battery100_icon_width, battery100_icon_height, battery100_icon_bits); - else if (OswaldPowerState.percent > 50) - oswald_draw_bitmap(81, 4, battery75_icon_width, battery75_icon_height, battery75_icon_bits); - else if (OswaldPowerState.percent > 25) - oswald_draw_bitmap(81, 4, battery50_icon_width, battery50_icon_height, battery50_icon_bits); - else if (OswaldPowerState.percent > 5) - oswald_draw_bitmap(81, 4, battery25_icon_width, battery25_icon_height, battery25_icon_bits); - else - oswald_draw_bitmap(81, 4, battery0_icon_width, battery0_icon_height, battery0_icon_bits); - - - if (hal_bluetooth_get_state() >= BLUETOOTH_ON) - oswald_draw_bitmap(81, 4, bluetooth_icon_width, bluetooth_icon_height, bluetooth_icon_bits); -#else draw_status_icons(); -#endif gRow = 0; gColumn = 45; @@ -284,6 +297,34 @@ void DrawLcdDigitalClock(boolean show_seconds) break; }; }; +#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.day_first) + snprintf(tstr, 16, "%d.%d.%d", 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); + + gRow = 0; + gColumn = 45; + for (i=0; i 90) { + gRow = 0; + gColumn += 9; + } + if (gColumn > 95) + i = 255; + } + + draw_status_icons(); #endif hal_lcd_update_display(); }