#include "oswald.h"
#include "oswald_main.h"
-#include "Fonts.h"
-#include "LcdDisplay.h"
#include "oswald_hal.h"
#include "oswald_graphics.h"
}
} 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)
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
void DrawLcdDigitalClock(boolean show_seconds)
{
- int gRow = 3;
- int gColumn = 3;
+ int gRow = 1;
+ int gColumn = 1;
char tstr[16];
int i;
#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<strlen(MainMessage); i++) {
- gRow += oswald_write_character(gRow, gColumn, FONT_6x8, MainMessage[i]);
+ if (gRow == 0 && MainMessage[i] == ' ')
+ continue;
+ gRow += oswald_write_character(gRow, gColumn, FONT_DROID8x12, MainMessage[i]);
if (gRow > 90) {
gRow = 0;
gColumn += 9;
}
- if (gColumn > 95)
+ if (gColumn > 86)
i = 255;
}
draw_status_icons();
-#endif
+
hal_lcd_update_display();
}