diff options
-rw-r--r-- | apps/menus/main_menu.c | 49 |
1 files changed, 25 insertions, 24 deletions
diff --git a/apps/menus/main_menu.c b/apps/menus/main_menu.c index 6980e37bcb..ea223d9702 100644 --- a/apps/menus/main_menu.c +++ b/apps/menus/main_menu.c | |||
@@ -48,20 +48,19 @@ | |||
48 | #include "version.h" | 48 | #include "version.h" |
49 | #include "time.h" | 49 | #include "time.h" |
50 | 50 | ||
51 | 51 | static const struct browse_folder_info config = {ROCKBOX_DIR, SHOW_CFG}; | |
52 | static struct browse_folder_info config = {ROCKBOX_DIR, SHOW_CFG}; | ||
53 | 52 | ||
54 | /***********************************/ | 53 | /***********************************/ |
55 | /* MANAGE SETTINGS MENU */ | 54 | /* MANAGE SETTINGS MENU */ |
56 | 55 | ||
57 | static int reset_settings(void) | 56 | static int reset_settings(void) |
58 | { | 57 | { |
59 | unsigned char *lines[]={ID2P(LANG_RESET_ASK)}; | 58 | const unsigned char *lines[]={ID2P(LANG_RESET_ASK)}; |
60 | unsigned char *yes_lines[]={ | 59 | const unsigned char *yes_lines[]={ |
61 | str(LANG_SETTINGS), | 60 | str(LANG_SETTINGS), |
62 | ID2P(LANG_RESET_DONE_CLEAR) | 61 | ID2P(LANG_RESET_DONE_CLEAR) |
63 | }; | 62 | }; |
64 | unsigned char *no_lines[]={yes_lines[0], ID2P(LANG_CANCEL)}; | 63 | const unsigned char *no_lines[]={yes_lines[0], ID2P(LANG_CANCEL)}; |
65 | struct text_message message={(char **)lines, 1}; | 64 | struct text_message message={(char **)lines, 1}; |
66 | struct text_message yes_message={(char **)yes_lines, 2}; | 65 | struct text_message yes_message={(char **)yes_lines, 2}; |
67 | struct text_message no_message={(char **)no_lines, 2}; | 66 | struct text_message no_message={(char **)no_lines, 2}; |
@@ -145,7 +144,8 @@ enum infoscreenorder | |||
145 | INFO_COUNT | 144 | INFO_COUNT |
146 | }; | 145 | }; |
147 | #if CONFIG_RTC | 146 | #if CONFIG_RTC |
148 | const int dayname[] = { | 147 | const int dayname[] = |
148 | { | ||
149 | LANG_WEEKDAY_SUNDAY, | 149 | LANG_WEEKDAY_SUNDAY, |
150 | LANG_WEEKDAY_MONDAY, | 150 | LANG_WEEKDAY_MONDAY, |
151 | LANG_WEEKDAY_TUESDAY, | 151 | LANG_WEEKDAY_TUESDAY, |
@@ -155,7 +155,8 @@ const int dayname[] = { | |||
155 | LANG_WEEKDAY_SATURDAY | 155 | LANG_WEEKDAY_SATURDAY |
156 | }; | 156 | }; |
157 | 157 | ||
158 | const int monthname[] = { | 158 | const int monthname[] = |
159 | { | ||
159 | LANG_MONTH_JANUARY, | 160 | LANG_MONTH_JANUARY, |
160 | LANG_MONTH_FEBRUARY, | 161 | LANG_MONTH_FEBRUARY, |
161 | LANG_MONTH_MARCH, | 162 | LANG_MONTH_MARCH, |
@@ -170,13 +171,14 @@ const int monthname[] = { | |||
170 | LANG_MONTH_DECEMBER | 171 | LANG_MONTH_DECEMBER |
171 | }; | 172 | }; |
172 | #endif | 173 | #endif |
173 | static char* info_getname(int selected_item, void * data, char *buffer) | 174 | static char* info_getname(int selected_item, void *data, char *buffer) |
174 | { | 175 | { |
175 | struct info_data *info = (struct info_data*)data; | 176 | struct info_data *info = (struct info_data*)data; |
176 | #if CONFIG_RTC | 177 | #if CONFIG_RTC |
177 | struct tm *tm; | 178 | struct tm *tm; |
178 | #endif | 179 | #endif |
179 | const unsigned char *kbyte_units[] = { | 180 | const unsigned char *kbyte_units[] = |
181 | { | ||
180 | ID2P(LANG_KILOBYTE), | 182 | ID2P(LANG_KILOBYTE), |
181 | ID2P(LANG_MEGABYTE), | 183 | ID2P(LANG_MEGABYTE), |
182 | ID2P(LANG_GIGABYTE) | 184 | ID2P(LANG_GIGABYTE) |
@@ -187,10 +189,10 @@ static char* info_getname(int selected_item, void * data, char *buffer) | |||
187 | #endif | 189 | #endif |
188 | if (info->new_data) | 190 | if (info->new_data) |
189 | { | 191 | { |
190 | fat_size( IF_MV2(0,) &info->size, &info->free ); | 192 | fat_size(IF_MV2(0,) &info->size, &info->free); |
191 | #ifdef HAVE_MULTIVOLUME | 193 | #ifdef HAVE_MULTIVOLUME |
192 | if (fat_ismounted(1)) | 194 | if (fat_ismounted(1)) |
193 | fat_size( 1, &info->size2, &info->free2 ); | 195 | fat_size(1, &info->size2, &info->free2); |
194 | else | 196 | else |
195 | info->size2 = 0; | 197 | info->size2 = 0; |
196 | #endif | 198 | #endif |
@@ -211,18 +213,18 @@ static char* info_getname(int selected_item, void * data, char *buffer) | |||
211 | case INFO_TIME: | 213 | case INFO_TIME: |
212 | tm = get_time(); | 214 | tm = get_time(); |
213 | snprintf(buffer, MAX_PATH, "%02d:%02d:%02d %s", | 215 | snprintf(buffer, MAX_PATH, "%02d:%02d:%02d %s", |
214 | global_settings.timeformat == 0 | 216 | global_settings.timeformat == 0 ? tm->tm_hour : tm->tm_hour-12, |
215 | ?tm->tm_hour:tm->tm_hour-12, | 217 | tm->tm_min, |
216 | tm->tm_min, tm->tm_sec, | 218 | tm->tm_sec, |
217 | global_settings.timeformat == 0 | 219 | global_settings.timeformat == 0 ? "" : tm->tm_hour>11 ? "P" : "A"); |
218 | ?"":tm->tm_hour>11?"P":"A"); | ||
219 | break; | 220 | break; |
220 | case INFO_DATE: | 221 | case INFO_DATE: |
221 | tm = get_time(); | 222 | tm = get_time(); |
222 | snprintf(buffer, MAX_PATH, "%s %d %s %d", str(dayname[tm->tm_wday]), | 223 | snprintf(buffer, MAX_PATH, "%s %d %s %d", |
223 | tm->tm_year+1900, | 224 | str(dayname[tm->tm_wday]), |
224 | str(monthname[tm->tm_mon]), | 225 | tm->tm_year+1900, |
225 | tm->tm_mday); | 226 | str(monthname[tm->tm_mon]), |
227 | tm->tm_mday); | ||
226 | break; | 228 | break; |
227 | #endif | 229 | #endif |
228 | case INFO_BUFFER: /* buffer */ | 230 | case INFO_BUFFER: /* buffer */ |
@@ -230,7 +232,6 @@ static char* info_getname(int selected_item, void * data, char *buffer) | |||
230 | long buflen = ((audiobufend - audiobuf) * 2) / 2097; /* avoid overflow */ | 232 | long buflen = ((audiobufend - audiobuf) * 2) / 2097; /* avoid overflow */ |
231 | int integer = buflen / 1000; | 233 | int integer = buflen / 1000; |
232 | int decimal = buflen % 1000; | 234 | int decimal = buflen % 1000; |
233 | |||
234 | snprintf(buffer, MAX_PATH, (char *)str(LANG_BUFFER_STAT), | 235 | snprintf(buffer, MAX_PATH, (char *)str(LANG_BUFFER_STAT), |
235 | integer, decimal); | 236 | integer, decimal); |
236 | } | 237 | } |
@@ -251,7 +252,7 @@ static char* info_getname(int selected_item, void * data, char *buffer) | |||
251 | else | 252 | else |
252 | strcpy(buffer, "(n/a)"); | 253 | strcpy(buffer, "(n/a)"); |
253 | break; | 254 | break; |
254 | case INFO_DISK1: /* disc usage 1 */ | 255 | case INFO_DISK1: /* disk usage 1 */ |
255 | #ifdef HAVE_MULTIVOLUME | 256 | #ifdef HAVE_MULTIVOLUME |
256 | output_dyn_value(s1, sizeof s1, info->free, kbyte_units, true); | 257 | output_dyn_value(s1, sizeof s1, info->free, kbyte_units, true); |
257 | output_dyn_value(s2, sizeof s2, info->size, kbyte_units, true); | 258 | output_dyn_value(s2, sizeof s2, info->size, kbyte_units, true); |
@@ -262,7 +263,7 @@ static char* info_getname(int selected_item, void * data, char *buffer) | |||
262 | snprintf(buffer, MAX_PATH, SIZE_FMT, str(LANG_DISK_SIZE_INFO), s1); | 263 | snprintf(buffer, MAX_PATH, SIZE_FMT, str(LANG_DISK_SIZE_INFO), s1); |
263 | #endif | 264 | #endif |
264 | break; | 265 | break; |
265 | case INFO_DISK2: /* disc usage 2 */ | 266 | case INFO_DISK2: /* disk usage 2 */ |
266 | #ifdef HAVE_MULTIVOLUME | 267 | #ifdef HAVE_MULTIVOLUME |
267 | if (info->size2) | 268 | if (info->size2) |
268 | { | 269 | { |
@@ -307,7 +308,7 @@ static int info_speak_item(int selected_item, void * data) | |||
307 | case INFO_BUFFER: /* buffer */ | 308 | case INFO_BUFFER: /* buffer */ |
308 | { | 309 | { |
309 | talk_id(LANG_BUFFER_STAT, false); | 310 | talk_id(LANG_BUFFER_STAT, false); |
310 | long buflen = (audiobufend - audiobuf) / 1024L; | 311 | long buflen = ((audiobufend - audiobuf) * 2) / 2097; /* avoid overflow */ |
311 | output_dyn_value(NULL, 0, buflen, kbyte_units, true); | 312 | output_dyn_value(NULL, 0, buflen, kbyte_units, true); |
312 | break; | 313 | break; |
313 | } | 314 | } |