+++ /dev/null
-#define Oswald_width 80
-#define Oswald_height 96
-static const char Oswald_bits[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x0F,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x3F, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0xF8, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0xF0, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF,
- 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x0F, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x0F, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0xFE, 0x3F, 0x00, 0x00, 0x00, 0x00, 0xBA, 0x01, 0x00, 0x00, 0xF8,
- 0x3F, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x3F, 0x00, 0x00, 0xF0, 0x7F, 0x00,
- 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x00, 0x00, 0xE0, 0x7F, 0x00, 0x00, 0x00,
- 0xF0, 0xFF, 0xFF, 0x03, 0x00, 0xE0, 0x7F, 0x00, 0x00, 0x00, 0xF8, 0xFF,
- 0xFF, 0x0F, 0x00, 0xC0, 0x7F, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x3F,
- 0x00, 0xC0, 0x7F, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0x7F, 0x00, 0xC0,
- 0x7F, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0x00, 0x80, 0x7F, 0x00,
- 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0x03, 0x80, 0x3F, 0x00, 0x00, 0x00,
- 0xE0, 0xFF, 0xFF, 0xFF, 0x07, 0x80, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x59,
- 0xE9, 0xFF, 0x0F, 0xC0, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC,
- 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF,
- 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0, 0x83, 0x0F, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0xC0, 0x01, 0x0F, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x0C, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
- 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00,
- 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x18, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x02, 0x10, 0x18, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x83, 0x07, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x83, 0x07, 0x78, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x81,
- 0x0F, 0x7C, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x07, 0x7C,
- 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC3, 0x07, 0x7C, 0x38, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x07, 0x7C, 0x38, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x80, 0x87, 0x07, 0x7C, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0xCF, 0x07, 0x7C, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xCF,
- 0x87, 0x7C, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xF0, 0x03,
- 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0xF8, 0x03, 0x16, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0xF8, 0x03, 0x13, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x1A, 0xF0, 0x81, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x34, 0x00, 0xC0, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC8,
- 0x01, 0x38, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0xF7, 0xCF,
- 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x58, 0xFC, 0x1E, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xE0, 0x9F, 0xFF, 0x67, 0xFE, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0xF8, 0xBF, 0xF0, 0x63, 0xFE, 0x07, 0x00, 0x00, 0x00, 0x00,
- 0xFC, 0xFF, 0xE6, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0xDF, 0xFF,
- 0xDF, 0xA2, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x80, 0xE1, 0xEF, 0x00, 0xF1,
- 0xB6, 0x63, 0x00, 0x00, 0x00, 0x40, 0x00, 0x74, 0x00, 0xF0, 0x13, 0x80,
- 0x00, 0x00, 0x00, 0x70, 0x00, 0x96, 0x00, 0x9C, 0x21, 0x00, 0x01, 0x00,
- 0x00, 0x48, 0xC0, 0x89, 0x03, 0x27, 0xC1, 0x00, 0x01, 0x00, 0x00, 0x64,
- 0xD1, 0xC8, 0xFE, 0x66, 0x82, 0x11, 0x01, 0x00, 0x00, 0x3C, 0x33, 0x44,
- 0x06, 0x3C, 0x02, 0x91, 0x03, 0x00, 0x00, 0x10, 0x11, 0x84, 0x03, 0x00,
- 0x02, 0xB3, 0x04, 0x00, 0x00, 0xE0, 0x09, 0x04, 0x01, 0x00, 0x02, 0xB1,
- 0x04, 0x00, 0x00, 0x00, 0x07, 0x04, 0x00, 0x00, 0x02, 0x91, 0x05, 0x00,
- 0x00, 0x00, 0x02, 0x08, 0x00, 0x00, 0x07, 0x9E, 0x07, 0x00, 0x00, 0x00,
- 0x00, 0x0C, 0x00, 0x00, 0x04, 0xE0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x04,
- 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x80,
- 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0xA4, 0xC7, 0x07, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x78, 0xF9, 0x0F, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0xFE, 0x0F, 0xFE, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0xFF, 0x00, 0xF0, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
- 0x00, 0xE0, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xE0,
- 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0xE0, 0x1F, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x00, 0xF0, 0x1F, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0xFF, 0x01, 0xFC, 0x2F, 0x10, 0x00, 0x00, 0x00, 0x00,
- 0x80, 0xFF, 0x05, 0xF2, 0xF3, 0xFF, 0x01, 0x00, 0x00, 0x00, 0xD4, 0xFC,
- 0x04, 0x02, 0x3C, 0x00, 0x03, 0x00, 0x00, 0x80, 0xEF, 0x01, 0x0C, 0x8E,
- 0x07, 0x00, 0x02, 0x00, 0x00, 0xC0, 0x00, 0x07, 0x1E, 0xF9, 0x03, 0x00,
- 0x04, 0x00, 0x00, 0x20, 0x00, 0xFC, 0xB1, 0x81, 0x00, 0x00, 0x06, 0x00,
- 0x00, 0x10, 0x00, 0x30, 0xE0, 0x01, 0x00, 0x00, 0x06, 0x00, 0x00, 0x10,
- 0x00, 0x00, 0x60, 0x06, 0x00, 0x00, 0x07, 0x00, 0x00, 0x10, 0x00, 0x00,
- 0xE0, 0x3C, 0x00, 0x80, 0x05, 0x00, 0x00, 0x38, 0x00, 0x00, 0xF8, 0x83,
- 0x07, 0xE0, 0x02, 0x00, 0x00, 0x78, 0x00, 0x00, 0x6F, 0x7E, 0xFE, 0x3E,
- 0x03, 0x00, 0x00, 0xD0, 0x01, 0x30, 0x30, 0xC0, 0x81, 0xC3, 0x01, 0x00,
- 0x00, 0x20, 0xFF, 0x4F, 0x0F, 0x00, 0x0E, 0x78, 0x00, 0x00, 0x00, 0xC0,
- 0x09, 0xFA, 0x00, 0x00, 0xF8, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x07,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- };
#include "battery100_icon.xbm"
#include "charger_icon.xbm"
#include "bluetooth_icon.xbm"
+#include "bluetooth_con_icon.xbm"
/* sine table, per degree, factor 100 */
return sintab[v];
}
+void draw_status_icons(void)
+{
+ static uint8_t ci = 0;
+
+ if (OswaldPowerState.source) {
+ oswald_draw_bitmap(81, 0, charger_icon_width, charger_icon_height, charger_icon_bits);
+
+ if (OswaldPowerState.charge_state != POWER_CHARGER_DONE) {
+ if (ci==0) oswald_draw_bitmap(81, 0, battery0_icon_width, battery0_icon_height, battery0_icon_bits);
+ else if (ci==1) oswald_draw_bitmap(81, 0, battery25_icon_width, battery25_icon_height, battery25_icon_bits);
+ else if (ci==2) oswald_draw_bitmap(81, 0, battery50_icon_width, battery50_icon_height, battery50_icon_bits);
+ else if (ci==3) oswald_draw_bitmap(81, 0, battery75_icon_width, battery75_icon_height, battery75_icon_bits);
+ else if (ci==4) oswald_draw_bitmap(81, 0, battery100_icon_width, battery100_icon_height, battery100_icon_bits);
+ ci++;
+ ci %= 5;
+ } else {
+ oswald_draw_bitmap(81, 0, battery100_icon_width, battery100_icon_height, battery100_icon_bits);
+ }
+ } else {
+ if (OswaldPowerState.percent > 75)
+ oswald_draw_bitmap(81, 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);
+ else if (OswaldPowerState.percent > 25)
+ oswald_draw_bitmap(81, 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);
+ else
+ oswald_draw_bitmap(81, 0, battery0_icon_width, battery0_icon_height, battery0_icon_bits);
+ }
+
+ if (hal_bluetooth_get_state() == BLUETOOTH_ON)
+ oswald_draw_bitmap(81, 0, bluetooth_icon_width, bluetooth_icon_height, bluetooth_icon_bits);
+ else if (hal_bluetooth_get_state() == BLUETOOTH_CONNECTED)
+ oswald_draw_bitmap(81, 0, bluetooth_con_icon_width, bluetooth_con_icon_height, bluetooth_con_icon_bits);
+}
+
void DrawLcdAnaClock(boolean show_seconds)
{
int16_t i, x, y, x2, y2;
snprintf(tstr, 16, "%02d", OswaldClk.day);
WriteLcdString(70, 40, tstr);
+ // Marker
// plot(R*cos(360° * i/N), R*sin(360° * i/N))
for (i=0; i<12; i++) {
- tmp = 48 + ((43 * f_cos((360 / 12) * i)) / 100);
- x = tmp;
- tmp = 48 + ((43 * f_sin((360 / 12) * i)) / 100);
- y = tmp;
- tmp = 48 + ((48 * f_cos((360 / 12) * i)) / 100);
- x2 = tmp;
- tmp = 48 + ((48 * f_sin((360 / 12) * i)) / 100);
- y2 = tmp;
+ x = 47 + ((43 * f_cos((360 / 12) * i)) / 100);
+ 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);
+ // g_printerr("br %d,%d %d,%d\n", x,y,x2,y2);
};
// Hour
- tmp = 48 + (30 * f_cos(((360 / 12) * hour) + ((OswaldClk.minute * 360) /12 / 60)) / 100);
+ tmp = 47 + (30 * f_cos(((360 / 12) * hour) + ((OswaldClk.minute * 360) /12 / 60)) / 100);
x = tmp;
- tmp = 48 + (30 * f_sin(((360 / 12) * hour) + ((OswaldClk.minute * 360) /12 / 60)) / 100);
+ tmp = 47 + (30 * f_sin(((360 / 12) * hour) + ((OswaldClk.minute * 360) /12 / 60)) / 100);
y = tmp;
- DrawLcdLineBresenhamWW(48, 48, x, y, 2);
+ DrawLcdLineBresenhamWW(47, 47, x, y, 2);
+
// Minute
- tmp = 48 + ((40 * f_cos((360 / 60) * minute)) / 100);
+ tmp = 47 + ((40 * f_cos((360 / 60) * minute)) / 100);
x = tmp;
- tmp = 48 + ((40 * f_sin((360 / 60) * minute)) / 100);
+ tmp = 47 + ((40 * f_sin((360 / 60) * minute)) / 100);
y = tmp;
- DrawLcdLineBresenhamWW(48, 48, x, y, 2);
+ DrawLcdLineBresenhamWW(47, 47, x, y, 2);
+
if (show_seconds) {
// Seconds
- tmp = 48 + ((40 * f_cos((360 / 60) * seconds)) / 100);
+ tmp = 47 + ((40 * f_cos((360 / 60) * seconds)) / 100);
x = tmp;
- tmp = 48 + ((40 * f_sin((360 / 60) * seconds)) / 100);
+ tmp = 47 + ((40 * f_sin((360 / 60) * seconds)) / 100);
y = tmp;
- DrawLcdLineBresenham(48, 48, x, y);
+ DrawLcdLineBresenham(47, 47, x, y);
};
+ draw_status_icons();
+
hal_lcd_update_display();
}
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 (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;