#include <time.h> #include <stdio.h> #include <string.h> #include "oswald-ui.h" #include "Fonts.h" #include "LcdDisplay.h" #define NUM_LCD_ROWS 96 #define NUM_LCD_COL_BYTES ( 12 ) #define MAX_FONT_ROWS ( 19 ) gint WriteLcdCharacter(oswald_ui *ui, gint x, gint y, unsigned char Character) { gint CharacterHeight = GetCharacterHeight(); gint CharacterWidth = GetCharacterWidth(Character); unsigned int bitmap[MAX_FONT_ROWS]; gint lx, ly; GetCharacterBitmap(Character,(unsigned int*)&bitmap); // printf("cw=%d ch=%d\n", CharacterWidth, CharacterHeight); for (ly=0; ly<CharacterHeight; ly++) { for (lx=0; lx<CharacterWidth; lx++) { if (bitmap[ly] & (1<<lx)) { set_pixel(ui, lx+x, ly+y, TRUE); // printf("."); } else { set_pixel(ui, lx+x, ly+y, FALSE); // printf(" "); } } // printf("\n"); } return CharacterWidth + GetFontSpacing(); } void WriteLcdString(oswald_ui *ui, gint x, gint y, gchar *str) { gint lx, i; if (str == NULL || strlen(str)==0) return; lx = x; for (i=0; i<strlen(str); i++) { lx += WriteLcdCharacter(ui, lx, y, str[i]); } } void update_idle_time_date(oswald_ui *ui) { gint gRow = 3; gint gColumn = 4; static gchar secs = 0; SetFont(MetaWatchTime); //gRow += WriteLcdCharacter(ui, gRow, gColumn, TIME_CHARACTER_SPACE_INDEX); gRow += WriteLcdCharacter(ui, gRow, gColumn, 2); gRow += WriteLcdCharacter(ui, gRow, gColumn, 3); gRow += WriteLcdCharacter(ui, gRow, gColumn, TIME_CHARACTER_COLON_INDEX); gRow += WriteLcdCharacter(ui, gRow, gColumn, 1); gRow += WriteLcdCharacter(ui, gRow, gColumn, 7); gRow += WriteLcdCharacter(ui, gRow, gColumn, TIME_CHARACTER_COLON_INDEX); gRow += WriteLcdCharacter(ui, gRow, gColumn, (secs / 10)); gRow += WriteLcdCharacter(ui, gRow, gColumn, (secs % 10)); secs = ++secs % 60; }