]> git.karo-electronics.de Git - oswald.git/blobdiff - ui/oswald_watch_faces.c
Bluetooth handling, screen reworks for icons
[oswald.git] / ui / oswald_watch_faces.c
index 6db3196abd2d39baba91ff3e415e07866066b96c..7e27fd40ca58a80cd81cc421fbde2c37693103e7 100644 (file)
@@ -9,6 +9,16 @@
 
 #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"
+
+
+/* sine table, per degree, factor 100 */
 int16_t sintab[]={
            0,   2,   3,   5,   7,   9,  10,  12,  14,  16,
           17,  19,  21,  22,  24,  26,  28,  29,  31,  33,
@@ -131,6 +141,7 @@ void DrawLcdDigitalClock(boolean show_seconds)
        int gRow = 3;
        int gColumn = 3;
        char tstr[16];
+       int i;
 
        SetFont(MetaWatchTime);
 
@@ -175,6 +186,37 @@ void DrawLcdDigitalClock(boolean show_seconds)
                snprintf(tstr, 16, "%d/%d %d", OswaldClk.month, OswaldClk.day, OswaldClk.year);
        WriteLcdString(3, 25, tstr);
 
+       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);
+
+       gRow = 0;
+       gColumn = 45;
+       SetFont(MetaWatch5);
+       for (i=0; i<strlen(MainMessage); i++) {
+               gRow += WriteLcdCharacter(gRow, gColumn, MainMessage[i]);
+               if (gRow > 90) {
+                       gRow = 0;
+                       gColumn += 7;
+               }
+               if (gColumn > 95)
+                       i = 255;
+       }
+#if 0
        snprintf(tstr, 16, "%d%% (%dmV)", OswaldPowerState.percent, OswaldPowerState.level);
        WriteLcdString(2, 48, tstr);
        WriteLcdString(2, 64, OswaldPowerState.source ? "ext" : "bat");
@@ -198,6 +240,7 @@ void DrawLcdDigitalClock(boolean show_seconds)
                                break;
                };
        };
+#endif
        hal_lcd_update_display();
 }