diff options
author | Sebastian Leonhardt <sebastian.leonhardt@web.de> | 2016-10-01 21:53:31 +0200 |
---|---|---|
committer | Solomon Peachy <pizza@shaftnet.org> | 2019-02-07 23:06:54 +0100 |
commit | 1c095a1323b042d703729e4d6b11a29e143df395 (patch) | |
tree | 58d48ccd0155071391dee7f6892c53dfa663b66a /apps/menus/time_menu.c | |
parent | 053c4d0593ea1dc5974bf0cc4c08ffc3db65c30e (diff) | |
download | rockbox-1c095a1323b042d703729e4d6b11a29e143df395.tar.gz rockbox-1c095a1323b042d703729e4d6b11a29e143df395.zip |
YH-820: prohibit to change time/date on some hardware versions
This patch will autodetect these players, where setting the time/date
would leave the player in an unusable state.
Change-Id: I0579610ce7c10152ace27bb9c06cf6cb2aab8052
Diffstat (limited to 'apps/menus/time_menu.c')
-rw-r--r-- | apps/menus/time_menu.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/apps/menus/time_menu.c b/apps/menus/time_menu.c index 93ca786cea..94e19b06aa 100644 --- a/apps/menus/time_menu.c +++ b/apps/menus/time_menu.c | |||
@@ -43,6 +43,10 @@ | |||
43 | #include "font.h" | 43 | #include "font.h" |
44 | #include "system.h" | 44 | #include "system.h" |
45 | 45 | ||
46 | #ifdef SAMSUNG_YH820 | ||
47 | #include "splash.h" | ||
48 | #endif | ||
49 | |||
46 | static int timedate_set(void) | 50 | static int timedate_set(void) |
47 | { | 51 | { |
48 | /* Make a local copy of the time struct */ | 52 | /* Make a local copy of the time struct */ |
@@ -280,6 +284,20 @@ int time_screen(void* ignored) | |||
280 | draw_timedate(&clock_vps[i], &screens[i]); | 284 | draw_timedate(&clock_vps[i], &screens[i]); |
281 | } | 285 | } |
282 | 286 | ||
287 | #ifdef SAMSUNG_YH820 | ||
288 | /* some hardware revisions of the yh820 have a rtc problem: if you try to set | ||
289 | the time/date it will leave the player in an absolute unresponsive state | ||
290 | which can only be reverted by removing the battery. Setting time/date | ||
291 | should be prohibited on this targets. Fortunately we can autodetect these, | ||
292 | because they always report "02:02:02" as time. | ||
293 | */ | ||
294 | struct tm *tm = get_time(); | ||
295 | if (tm->tm_year==102 && tm->tm_hour==2 && tm->tm_min==2 && tm->tm_sec==2) { | ||
296 | splash(4*HZ, "Can't set time/date due to hardware issues!"); | ||
297 | return 0; | ||
298 | } | ||
299 | #endif | ||
300 | |||
283 | ret = do_menu(&time_menu, NULL, menu, false); | 301 | ret = do_menu(&time_menu, NULL, menu, false); |
284 | pop_current_activity(); | 302 | pop_current_activity(); |
285 | /* see comments above in the button callback */ | 303 | /* see comments above in the button callback */ |