From 1c095a1323b042d703729e4d6b11a29e143df395 Mon Sep 17 00:00:00 2001 From: Sebastian Leonhardt Date: Sat, 1 Oct 2016 21:53:31 +0200 Subject: [PATCH] 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 --- apps/menus/time_menu.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) 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 @@ #include "font.h" #include "system.h" +#ifdef SAMSUNG_YH820 +#include "splash.h" +#endif + static int timedate_set(void) { /* Make a local copy of the time struct */ @@ -280,6 +284,20 @@ int time_screen(void* ignored) draw_timedate(&clock_vps[i], &screens[i]); } +#ifdef SAMSUNG_YH820 + /* some hardware revisions of the yh820 have a rtc problem: if you try to set + the time/date it will leave the player in an absolute unresponsive state + which can only be reverted by removing the battery. Setting time/date + should be prohibited on this targets. Fortunately we can autodetect these, + because they always report "02:02:02" as time. + */ + struct tm *tm = get_time(); + if (tm->tm_year==102 && tm->tm_hour==2 && tm->tm_min==2 && tm->tm_sec==2) { + splash(4*HZ, "Can't set time/date due to hardware issues!"); + return 0; + } +#endif + ret = do_menu(&time_menu, NULL, menu, false); pop_current_activity(); /* see comments above in the button callback */