diff options
-rw-r--r-- | apps/status.c | 68 |
1 files changed, 51 insertions, 17 deletions
diff --git a/apps/status.c b/apps/status.c index fe4762e3ea..2f57274e60 100644 --- a/apps/status.c +++ b/apps/status.c | |||
@@ -35,11 +35,11 @@ | |||
35 | 35 | ||
36 | static enum playmode current_mode = STATUS_STOP; | 36 | static enum playmode current_mode = STATUS_STOP; |
37 | 37 | ||
38 | #ifdef HAVE_LCD_BITMAP | ||
39 | long switch_tick; | 38 | long switch_tick; |
39 | int battery_charge_step = 0; | ||
40 | #ifdef HAVE_LCD_BITMAP | ||
40 | bool plug_state; | 41 | bool plug_state; |
41 | bool battery_state; | 42 | bool battery_state; |
42 | int battery_charge_step = 0; | ||
43 | #endif | 43 | #endif |
44 | 44 | ||
45 | void status_init(void) | 45 | void status_init(void) |
@@ -62,21 +62,6 @@ void status_draw(void) | |||
62 | #endif | 62 | #endif |
63 | 63 | ||
64 | #if defined(HAVE_LCD_CHARCELLS) | 64 | #if defined(HAVE_LCD_CHARCELLS) |
65 | lcd_icon(ICON_BATTERY, true); | ||
66 | if(battlevel > 25) | ||
67 | lcd_icon(ICON_BATTERY_1, true); | ||
68 | else | ||
69 | lcd_icon(ICON_BATTERY_1, false); | ||
70 | if(battlevel > 50) | ||
71 | lcd_icon(ICON_BATTERY_2, true); | ||
72 | else | ||
73 | lcd_icon(ICON_BATTERY_2, false); | ||
74 | if(battlevel > 75) | ||
75 | lcd_icon(ICON_BATTERY_3, true); | ||
76 | else | ||
77 | lcd_icon(ICON_BATTERY_3, false); | ||
78 | |||
79 | |||
80 | lcd_icon(ICON_VOLUME, true); | 65 | lcd_icon(ICON_VOLUME, true); |
81 | if(volume > 10) | 66 | if(volume > 10) |
82 | lcd_icon(ICON_VOLUME_1, true); | 67 | lcd_icon(ICON_VOLUME_1, true); |
@@ -119,6 +104,55 @@ void status_draw(void) | |||
119 | default: | 104 | default: |
120 | break; | 105 | break; |
121 | } | 106 | } |
107 | if(charger_inserted()) | ||
108 | { | ||
109 | if(TIME_AFTER(current_tick, switch_tick)) | ||
110 | { | ||
111 | lcd_icon(ICON_BATTERY, true); | ||
112 | lcd_icon(ICON_BATTERY_1, false); | ||
113 | lcd_icon(ICON_BATTERY_2, false); | ||
114 | lcd_icon(ICON_BATTERY_3, false); | ||
115 | switch(battery_charge_step) | ||
116 | { | ||
117 | case 0: | ||
118 | battery_charge_step++; | ||
119 | break; | ||
120 | case 1: | ||
121 | lcd_icon(ICON_BATTERY_1, true); | ||
122 | battery_charge_step++; | ||
123 | break; | ||
124 | case 2: | ||
125 | lcd_icon(ICON_BATTERY_1, true); | ||
126 | lcd_icon(ICON_BATTERY_2, true); | ||
127 | battery_charge_step++; | ||
128 | break; | ||
129 | case 3: | ||
130 | lcd_icon(ICON_BATTERY_1, true); | ||
131 | lcd_icon(ICON_BATTERY_2, true); | ||
132 | lcd_icon(ICON_BATTERY_3, true); | ||
133 | battery_charge_step = 0; | ||
134 | break; | ||
135 | default: | ||
136 | battery_charge_step = 0; | ||
137 | break; | ||
138 | } | ||
139 | switch_tick = current_tick + HZ/2; | ||
140 | } | ||
141 | } else { | ||
142 | lcd_icon(ICON_BATTERY, true); | ||
143 | if(battlevel > 25) | ||
144 | lcd_icon(ICON_BATTERY_1, true); | ||
145 | else | ||
146 | lcd_icon(ICON_BATTERY_1, false); | ||
147 | if(battlevel > 50) | ||
148 | lcd_icon(ICON_BATTERY_2, true); | ||
149 | else | ||
150 | lcd_icon(ICON_BATTERY_2, false); | ||
151 | if(battlevel > 75) | ||
152 | lcd_icon(ICON_BATTERY_3, true); | ||
153 | else | ||
154 | lcd_icon(ICON_BATTERY_3, false); | ||
155 | } | ||
122 | #endif | 156 | #endif |
123 | #ifdef HAVE_LCD_BITMAP | 157 | #ifdef HAVE_LCD_BITMAP |
124 | if (global_settings.statusbar) { | 158 | if (global_settings.statusbar) { |